以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=181268)

--  作者:weitar
--  发布时间:2020/7/18 1:00:56
--  求老师帮写一条公式
求老师帮写一条公式,行情回测用;
当价格触发20日均线时,如果前一根 K线的收盘价是收在20日均线之上,则平空开多仓,如果前一根K线的收盘价是收在20日均线之下时,则平多开空仓;(每次开仓的价格都是以20日均线的价格买卖);50个点止损,60个点止盈。如果平仓后行情趋势延续,比如:止盈平仓后,收盘价仍收在20日均线上,则在下一根K线,以K线的平均价开多仓;止盈平仓后,收盘价仍收在20日均线下,则在下一根K线,以K线的平均价开空仓。谢谢老师!

--  作者:wenarm
--  发布时间:2020/7/20 8:29:54
--  

如果平仓后行情趋势延续   

你所谓的行情趋势延续请给出具体的定义。


--  作者:weitar
--  发布时间:2020/7/20 10:31:18
--  
老师您好!请看图,谢谢!
--  作者:weitar
--  发布时间:2020/7/20 11:20:40
--  
好像上传的图片没有显示出来,重新详述一下:每根K线的收盘价都有三种可能性出现,收在均线上、刚好收在均线价、收在均线下。做多平仓后,如果该根K线的收盘价收在均线上,定义为多头延续;做空平仓后,如果该根K线的收盘价收在均线下,定义为空头延续(上面是说止盈平仓,不包括止损平仓),那么 就在次根 K线(以K线的平均价)重新开仓,止盈止损仍沿用原来的原则。每次买卖处都要加上标识,谢谢!
--  作者:weitar
--  发布时间:2020/7/21 8:19:55
--  
增加多一条平仓方式:因有时会高开或低开,不会触发平均线,所以增加次根K线的收盘价平仓。优先级别为:平均线价格成交>收盘价成交=止损价成交,谢谢!
--  作者:wenarm
--  发布时间:2020/7/22 10:46:23
--  
以下是引用weitar在2020/7/21 8:19:55的发言:
增加多一条平仓方式:因有时会高开或低开,不会触发平均线,所以增加次根K线的收盘价平仓。优先级别为:平均线价格成交>收盘价成交=止损价成交,谢谢!

这个在图表中实现不了。图表无法对委托单进行精细化控制,牵扯到追撤的操作,图表在理论持仓的机制上体现不出来。

 

 

ma20:ma(close,20);
if CROSS(ma20,close)=1 then begin
 SELLSHORT(HOLDING<0,HOLDING,LIMIT,ma20),IGNORECHECKPRICE;
 buy(HOLDING=0,1,LIMIT,ma20),IGNORECHECKPRICE;
end
if CROSS(close,ma20)=1 then begin
 SELL(HOLDING>0,HOLDING,LIMIT,ma20),IGNORECHECKPRICE;
 buyshort(HOLDING=0,1,LIMIT,ma20),IGNORECHECKPRICE;
end

//多止盈
IF C-AVGENTERPRICE>60*MINDIFF AND HOLDING>0 THEN BEGIN
 SELL(1,HOLDING,MARKET);
 if CLOSE>ma20 then buy(HOLDING=0,1,LIMIT,(c+o+h+l)/4),IGNORECHECKPRICE;
END
//空止盈
IF AVGENTERPRICE-C>60*MINDIFF AND HOLDING<0 THEN BEGIN
 SELLSHORT(1,HOLDING,MARKET);
 if CLOSE<ma20 then  buy(HOLDING=0,1,LIMIT,(c+o+h+l)/4),IGNORECHECKPRICE;
END

//多止损
IF AVGENTERPRICE-C>50*MINDIFF AND HOLDING>0 THEN BEGIN
 SELL(1,HOLDING,MARKET);

END

//空止损
IF C-AVGENTERPRICE>50*MINDIFF AND HOLDING<0 THEN BEGIN
 SELLSHORT(1,HOLDING,MARKET);
END