我需要在每次发出委托后过滤后面4秒的信号~
if cond then begin
buy(...);
sleep(4000);
end;
类似的语句无法用在图表上~
今天图表实盘(图表)一开仓后sleep导致系统卡住...(没卡死..我机器高配的)
一担心马上切换回原来的系统~...
倒是昨天做模拟的时候没注意图表使用sleep会导致卡住的现象.
一直运行的好好的
现在需要一个能在图表上实现过滤最近4秒信号的程序...
希望admin能帮个忙...
本示例以后台自动交易的方式,展现了金字塔实现延迟信号确认的工作原理。
本代码可以实现3天现上穿5天线后,15秒等待信号确认后,再发开仓单。
请选择固定时间间隔模式运行后台自动交易,间隔时间设为1秒
本公式会在运行时产生很多临时数据,请用户再第二天交易前清空这些历史变量,否则会导致与第二天的临时变量冲突。方法 工具菜单-》数据-》全局变量,进去后,选择“清空”按钮
MA1:=MA(CLOSE,3);
MA2:=MA(CLOSE,5);
CROS:=CROSS(MA1,MA2);
CROS2:=CROSS(MA2,MA1);
BUY1:=FALSE;
IF ISLASTBAR THEN
BEGIN
IF CROS THEN
BEGIN
//将当前信号周期置全局变量数据库
//数据名字前加信号周期,标记周期位置
CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
//读取原有变量的时间,判断是否到延时时间
BUYTIME1:=EXTGBDATA(CRTEMP);
BUYTIME2:=TIMETOT0(CURRENTTIME);
DEBUGOUT('D1 %.0f',BUYTIME1);
IF BUYTIME1 > 1 THEN //第一次信号的原数据库读取会得到0值
BEGIN
DEBUGOUT('D2 %.0f',BUYTIME2 - BUYTIME1);
IF BUYTIME2 - BUYTIME1 > 15 THEN
BEGIN
//大于15秒的延迟,表示信号已经得到确认
BUY1:=TRUE;
END
END
ELSE
BEGIN
//第一次信号位置记录
EXTGBDATASET(CRTEMP,TIMETOT0(CURRENTTIME));
END
END
ELSE
BEGIN
//否则表示信号中间消失了
CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
EXTGBDATASET(CRTEMP,0);
END
END
TBUY(BUY1,1,MKT);
TSELL(CROS2,0,MKT);
在学习这段语句...
不少地方琢磨不透啊..
我是没搞清楚sleep是后台函数
如果金字塔在函数介绍上有一栏函数属性告知是哪类函数就更好了..
希望哪位老师能够帮我在图表上实现过滤最近4秒信号的功能
试试用全局变量。
发单后,用全局变量记录currenttime
再次发单,再用currenttime和全局变量做比较
只是这样 用于测试的图表交易系统和用于实盘的图表交易系统是分开的
试试用全局变量。
发单后,用全局变量记录currenttime
再次发单,再用currenttime和全局变量做比较
只是这样 用于测试的图表交易系统和用于实盘的图表交易系统是分开的
能不能写个简单点的例子?
EXTGBDATASET(CRTEMP,TIMETOT0(CURRENTTIME));
这句搞的我那个数据里面全是新建的全局变量...
一个思路,不知道可不可行,bbking兄根据自己的实际情况试试。
if cond and timetot0(currenttime)>timetot0(extgbdata('m')+4) then begin
//cond为买入条件,全局变量m的初始值每天更新为0
buy(......);
extgbdataset('m',currenttime);
end
如果具体情况中有用到holding的话,也要做相应的改变
一个思路,不知道可不可行,bbking兄根据自己的实际情况试试。
if cond and timetot0(currenttime)>timetot0(extgbdata('m')+4) then begin
//cond为买入条件,全局变量m的初始值每天更新为0
buy(......);
extgbdataset('m',currenttime);
end
如果具体情况中有用到holding的话,也要做相应的改变
这个M是否需要手动设置为0?否则第二天就开不了仓?
恩。是啊。你是不是日内交易?
加一行代码,让收盘的时候,全局变量m自动变为0
if hour=10 and minute=9 then begin
extgbdataset('crt',currenttime);
end;
我新建个指标~然后写入以上代码~
结果全局变量crt直接等于currenttime
可以超过10点09分钟的