UID 2 积分 2892617 威望 1396340 布 龙e币 1496277 刀 在线时间 13326 小时 注册时间 2009-12-3 最后登录 2024-12-25
Easylanguage的五种输出方式
Easylanguage 的五种输出方式
(Author:杨晓 Email: yangxiao5002@126.com QQ:493202788 Date:2010-08-14 )
当 Easylanguage 识别出某种信号后,可以有五种方式向你传递消息,请选择自己喜欢的:
一、控制台 output
二、图表 chart
三、文件 file
四、提示音 wav “嘟嘟嘟…..来信号了!来信号了! ”
五、信息视窗 alert window
我们将逐一介绍…
一、控制台 output Print
发送一个或多个特定表达式到 PowerLanguage 编辑器的输出控制台(Output)或者到其他输 出目标。该表达式可以指定为任何组合的字符串,真/假,数值序列,或数学表达式。
例如:建一个系统信号,代码如下:
把该信号插入到某个 chart 中,编译后输出结果如下:
解释一下
if(BarNumber=1)then//满足条件的时候才输出,为了节约资源,这次仅在BarNumber=1的那个Bar执行下面的命令 begin print("-----print instances------");//输出一个简单的字符串 print("I ","love ","easylanguage","!"); //输出多个表达式(当前是多个字符串)。注意:当输出多个表达式时,要用逗号分割开,不是加号(只 有当表达式全部都是字符串时,才可用加号) print("Today is ",Date,",and current time is ",Time,",and currentbar's open price is ",Open);//输出多个表达式。每个表达 式都可以是任何的类型,当前实例包含字符串,日期(数字),变量(数字),另外还可为真假 数学表达式等 print(False); //输出真假,输出结果为大写字符串FALSE,不会用0或1取代 print(23); //输出数字。默认输出包含四个整数位和两个小数位,对于小数部分,至少输出两位,不足两位用0代替,超过两位的,仅输出前两位;对于 整数部分,其实默认是没有直接限制的,但另外有个数字整体(包含整数 小数和小数点)最小7位的要求,当小数2位时,整数最低就四位显示,不足四个整数 的,前面用空格代替,超过四位的,有几位输出几位 print(.1);// 输出数字。 .1表示0.1,当整数部份为0时,可以忽略整数部份来简写,但小数点不能忽略 print(23:2:1);//按照特定格式输出数字。用:设置输出格式,当前23:2:1表示输出数字23,并按照整数位至少2位,小数位为1位的格式 print(1,3,5,7,9);//输出多个表达式(当前是多个数字) print(2+3*5-1); //输出数学表达式的值 print(Close);//输出数字(当前是变量序列中的当前bar的对应值),close为内置的变量,同样可以输出自定义的变量的值。 print((High+Low+Close)/3);
print(Power(Close,2),"=",Square(Close),"=",Close*Close);//输出数学表达式的值(当前是可返回数值的函数) print("-----end------------------"); end;
另外 print 在输出多个表达式的时候,并非只能用逗号,其实在某些情况下可以用加号,这 里的某些情况专指字符串连接, 也就是说几个表达式都是字符串, 他们连在一起才可以用加 号,如果有一个是数字,对不起,不行!当然你可以把数字转变为字符串 就可以用加号了。
MessageLog
发送一个或多个特定表达式到 PowerLanguage 编辑器的输出控制台(Output) 。该表达式可 以指定为任何组合的字符串,真/假,数值序列,或数学表达式。 其功能和用法与 print 基本一样。 唯一的区别是,MessageLog 只能输出到输出控制台 Output, 而 print 还可以输出到文件,具体 print 输出到文件的方法可以参考后续的内容。
ClearDebug
清空 PowerLanguage 编辑器的输出控制台(Output) 。 默认情况下,当执行 print 或 messagelog 时,其内容追加在了输出控制台的尾部,如果没有 手动清除或使用 ClearDebug 清除或者重新打开 PowerLanguage 编辑器,那么输出控制台的 内容是越来越多的,特别是输出内容很多的情况下,会损耗机器的资源。如果我们只希望显 示最近一次执行信号的结果,那么可以在第一个 print/messagelog 前执行 ClearDebug。 实例如下:
二、图表 chart Buy/SellShort/Sell/BuyToCover
买卖信号,默认是在 chart 中自动显示出来的,比如在语句中设置“breakoutLow” :
则在图表中显示 breakoutLow:
Text_New
在指定的 bar 的指定价位,显示指定的提示信息,格式为: Text_New (BarDate, BarTime, PriceValue,"Text"); 第一个参数指定 bar 的日期, 第二个参数指定 bar 的时间, 这两个参数相当于告诉 chart 要在 哪个 bar 上显示,即确定了 x 轴位置;第三个参数指定在哪个价格点上显示信息,即 y 轴位 置,该参数可以是当前 bar 的 open 位置或者 high/low/close 位置,或者其他的位置;第四个 参数为提示信息的内容。 实例
效果: (提示信息以指定的 bar 和价格作为中间位置,根据信息长度自动调整)
三、文件 file FileAppend
写入字符串到指定文件的尾部,字符串以 ASCII 编码格式写入,如果指定的文件不存在,这 个文件将会被自动创建。 实例如下:
该函数必须两个参数,第一个为指定文件的路径,第二个为要写入的字符串,注意:第二个 参数必须是字符串,如果想写入数字,必须用 text 函数转换,可参考上面的实例 输出到文件如下:
如果想输出多个表达式,也可以使用一个 FileAppend 语句,中间用加号连接(多个字符串 的连接方式) ,如上述的代码可以等价于:
Print
Print 函数除了向输出控制台 output 发送消息外,还可以输出消息到文件,主要方式是在原 来语句基础上添加一个指定文件的参数,并将该参数放在第一个参数位置:
输出结果:
两种文件输出方式的对比: 1> Print 要比 FileAppend 灵活强大,比如我目前没有找到 FileAppend 可以换行的方式 (已找 到:NewLine) !FileAppend 的输出内容只能放在一个参数里,而 print 参数可多个,只需用
逗号隔开 2> Print 也有缺陷,似乎在向文件输出的时候是锁定文件的,其他程序就无法修改了;还有 就是当 print 到一个文件的时候,是把文件原来的内容清空再开始当前信号的所有 print,无 法象 FileAppend 那样保留原来内容然后在文件结尾追加;当多个信号同时 print 到同一个文 件的时候,只有其中一个有效(应该是最后启用的那个信号) 。
四、提示音 wav PlaySound
如果你采用半自动交易,却无法占用 100%时间去盯盘,那你可以在 chart 指标视觉显示之 外增加一个声音提示,然后就可以去旁边和同事讨论问题,这很简单但很有效(my love)
要求 c:/wen.wav 为 wav 格式的音乐文件(只支持 wav 格式) ,当达到买入或卖出或其他你设 置的条件时,音乐就会响起。
五、信息视窗 alert window Alert(外部扩展)
请参考 Max 的大作: 原创 HACK! EASYLANGUAGE 跳出提醒信息视窗 http://www.aboutels.com/forum.php?mod=viewthread& ;tid=84&extra=page%3D1 Ps:内置 Alert 命令只能用于指标,不能用于信号
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
期货论坛 - 版权/免责声明
1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易 。
2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html