以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  画线交易代码求助  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=174018)

--  作者:听风是雨
--  发布时间:2020/1/16 11:40:29
--  画线交易代码求助
N:=BACKSET(ISLASTBAR,BARSLAST(WEEKDAY<REF(WEEKDAY,1))+1);
MID:=VALUEWHEN(WEEKDAY<REF(WEEKDAY,1),REF(C,1));
DRAWSL(N,MID,0,1,2,COLORYELLOW);
DRAWSL(N,MID+1*10*MINPRICE,0,1,2,COLORYELLOW);
DRAWSL(N,MID+1*10*MINPRICE,0,1,2,COLORYELLOW);
DRAWSL(N,MID+2*10*MINPRICE,0,1,2,COLORYELLOW);
DRAWSL(N,MID-2*10*MINPRICE,0,1,2,COLORYELLOW);
DRAWSL(N,MID+3*10*MINPRICE,0,1,2,COLORYELLOW);
DRAWSL(N,MID-3*10*MINPRICE,0,1,2,COLORYELLOW);
DRAWSL(N,MID+4*10*MINPRICE,0,1,2,COLORYELLOW);
DRAWSL(N,MID-4*10*MINPRICE,0,1,2,COLORYELLOW);
DRAWSL(N,MID+5*10MINPRICE,0,1,2,COLORYELLOW);
DRAWSL(N,MID-5*10*MINPRICE,0,1,2,COLORYELLOW);
这个可以在划线的那里选择买卖吗?突破选择买,下破选择卖

--  作者:yukizzc
--  发布时间:2020/1/16 12:48:30
--  
N:=BACKSET(ISLASTBAR,BARSLAST(WEEKDAY<REF(WEEKDAY,1))+1);
MID:=VALUEWHEN(WEEKDAY<REF(WEEKDAY,1),REF(C,1));
DRAWSL(N,MID,0,1,2,COLORYELLOW);
DRAWSL(N,MID+1*10*MINDIFF,0,1,2,COLORYELLOW);
DRAWSL(N,MID+1*10*MINDIFF,0,1,2,COLORYELLOW);
DRAWSL(N,MID+2*10*MINDIFF,0,1,2,COLORYELLOW);
DRAWSL(N,MID-2*10*MINDIFF,0,1,2,COLORYELLOW);
DRAWSL(N,MID+3*10*MINDIFF,0,1,2,COLORYELLOW);
DRAWSL(N,MID-3*10*MINDIFF,0,1,2,COLORYELLOW);
DRAWSL(N,MID+4*10*MINDIFF,0,1,2,COLORYELLOW);
DRAWSL(N,MID-4*10*MINDIFF,0,1,2,COLORYELLOW);
DRAWSL(N,MID+5*10*MINDIFF,0,1,2,COLORYELLOW);
DRAWSL(N,MID-5*10*MINDIFF,0,1,2,COLORYELLOW);
--  作者:yukizzc
--  发布时间:2020/1/16 12:49:22
--  

mid-5*10*mindiff

这就是几条不同的线,你直接用这几个线去判断就可以了

突破可以参考系统自带的ma均线策略


--  作者:听风是雨
--  发布时间:2020/1/16 13:01:45
--  
老师。描述细致点,我是新手,谢谢你了,麻烦你再详细的说说,谢谢了
--  作者:FireScript
--  发布时间:2020/1/16 13:21:00
--  
 你这个代码里面用到了未来函数。没办法改写成交易策略的。
--  作者:听风是雨
--  发布时间:2020/1/16 13:35:03
--  

这个应该没有未来函数吧,上周的收盘价,是过去时啊


--  作者:wenarm
--  发布时间:2020/1/16 13:35:39
--  

你这种逻辑没法程序化执行。图表历史信号在新的一周开始时,信号都丢了。

 

建议你自己手工设置画线下单。或者取消当周的限制。程序化处理方式类似下面方式

 

//N:BACKSET(ISLASTBAR,BARSLAST(WEEKDAY<REF(WEEKDAY,1))+1);
MID:VALUEWHEN(WEEKDAY<REF(WEEKDAY,1),REF(C,1));
//DRAWSL(N,MID,0,1,2,COLORYELLOW);
//DRAWSL(N,MID+1*10*MINDIFF,0,1,2,COLORYELLOW);

buy(CROSS(CLOSE,MID)=1, 1,MARKET);
buy(CROSS(CLOSE,(MID+1*10*MINDIFF))=1, 1,MARKET);
SELL(CROSS(MID,CLOSE)=1, 1,MARKET);
SELL( CROSS((MID+1*10*MINDIFF),CLOSE)=1, 1,MARKET);

[此贴子已经被作者于2020/1/16 13:41:02编辑过]

--  作者:听风是雨
--  发布时间:2020/1/16 13:47:21
--  
那我换成月K呢
--  作者:wenarm
--  发布时间:2020/1/16 13:57:48
--  

你这种逻辑换成什么k都没用。历史信号被清掉,你账户里的仓位还怎么平?还有一种方式,就是使用专业版的后台程序化。他不需要图表中的虚拟持仓。

 


--  作者:FireScript
--  发布时间:2020/1/16 15:07:45
--  
 这种真的不行。BACKSET 这个函数是被认定为未来的,即使在其他软件里面 我看了函数说明 也是指明不能和交易函数在一起使用的。因此无法制作成交易模型的。所以主要问题出在这个变量N上。