有个思路,请哪位老师帮忙编写
日线趋势判断:
日线多头趋势:均线>5日内的低点,多头
日线空头趋势:均线<5日内的高点,空头
在30分钟周期上引用日线趋势
均线>5日内的低点 并且 (日线多头趋势:均线>5日内的低点),开多
均线<5日内的高点 , 空平
均线<5日内的高点 并且 (日线空头趋势:均线<5日内的高点) ,开空
均线>5日内的低点 ,多平
还有这个买卖函数如开多有BK、ENTERLONG、BUY、TBUY,这几个都是开多,有什么区别?怎样区别应用?请老师指点
首先回答BK、ENTERLONG、BUY、TBUY的区别:
BK,EnterLong是在系列模式下用的开多指令,不能用在逐K线模式下,
Buy用在逐K线模式下的图表交易,
TBuy用在逐K线模式下的后台交易。
首先在公式系统建立一个多空趋势的公式:
J:MA(C,5)>LLV(L,5),linethick0; //J>0为多头
D:MA(C,5)<HHV(H,5),linethick0; //D>0为空头
然后建立策略:
DuoTou:=Stkindi(stklabel(),'MA5DuoKong.J',0,6,0); //日线多头趋势
KongTou:=Stkindi(stklabel(),'MA5DuoKong.D',0,6,0); //日线空头趋势
Buy1:=MA(C,5)>LLV(L,5) And DuoTou>0;
BuyP:=MA(C,5)<HHV(H,5);
Sell1:=MA(C,5)<HHV(H,5) And KongTou>0;
SellP:=MA(C,5)>LLV(L,5);
//使用系列模式时
//{平多}EXITLONG:BuyP,TFILTER;
//{开空}ENTERSHORT:Sell1,TFILTER;
//
//{平空}EXITSHORT:SellP ,TFILTER;
//{开多} ENTERLONG:Buy1,TFILTER;
//使用逐K线模式时
variable:DuoKong=1;
OrdVol:=1; {开仓手数}
ZsDs:=10; {止损点数}
//以下变量用于移动止盈,,移动止盈只能保证你尽可能稳健盈利,却不能保证盈利最大化,如果不想使用,可是将总开关设置为0
YdZy:=0,linethick0; {移动止盈总开关,1为开,0为关}
variable:HighPrice=0,LowPrice=0; {保存开仓后的最高价、最低价}
variable:DHcDs=3,KHcDs=3; {多、空单回撤点数}
variable:DYlDs=7,KYlDs=7; {多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓}
variable:Z3B1=0; {赚3保1开关}
variable:MaxProfit=0,CurrentProfit=0; {最大盈利、当前盈利}
//持有空单
If Holding<0 then Begin
If SellP And Enterbars>=2 then begin //平空单
空平:SellShort(1,0,mkt),orderqueue;
End
//止损
If C-Enterprice>=ZsDs then begin
空损:SellShort(1,0,mkt),orderqueue;
End
//移动止盈
If YdZy=1 then begin
//每周期判断是否创新低
If L<LowPrice then begin
LowPrice:=L;
End
//如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
If Enterprice-LowPrice>=KYlDs then begin
If L-LowPrice>=KHcDs Then Begin //回撤超过3点
空赢:SellShort(1,0,market);
End
End
End
//赚3保1
If Z3B1=1 then begin
If Enterprice-LowPrice>=3 then begin
If Enterprice-L<=1.2 then begin
空保:SellShort(1,0,market);
End
End
End
End
//开多单
If holding=0 then begin
If DuoKong=1 Or DuoKong=2 then begin
If Buy1 then begin
多开:Buy(1,ordVol,mkt);
HighPrice:=Enterprice; //将开仓价保存到最高价
End
End
end
//持有多单
If Holding>0 then Begin
If BuyP And Enterbars>=2 then begin {平多单}
多平:Sell(1,0,mkt),orderqueue;
End
//多单管理
//止损
If Enterprice-C>=ZsDs then begin
多损:Sell(1,0,mkt),orderqueue;
End
//移动止盈
If YdZy=1 then begin
//每周期判断是否创新高
If H>HighPrice then begin
HighPrice:=H;
End
//如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
If HighPrice-Enterprice>=DYlDs then begin
If HighPrice-H>=DHcDs Then Begin //回撤超过3点
多赢:Sell(1,0,market);
End
End
End
//赚3保1
If Z3B1=1 then begin
If HighPrice-Enterprice>=3 then begin
If H-Enterprice<=1.2 then begin
多保:Sell(1,0,market);
End
End
End
End
//开空单
If holding=0 then begin
If DuoKong=1 Or DuoKong=3 then begin
If Sell1 then begin
空开:BuyShort(1,ordVol,mkt);
LowPrice:=enterprice;
End
End
end
最低价:LowPrice,linethick0;
最高价:HighPrice,linethick0;
开仓价:Enterprice,noaxis,linethick0;
持仓:Holding,linethick0;
//收益:asset,noaxis,colorred;
//次数:totaltrade,linethick0;
//胜率:percentwin,linethick0;
//连亏:maxseqloss,linethick0;
//连赢:maxseqwin,linethick0;
东西是做出来了,可是你的日线多头空头的条件不充分,导致信号不准确,有待你自己去优化条件。
哇,这吗长,非常感谢!我要好好学习。
我现在对这个策略非常有信心,但是我现在的期货公司(良茂期货)没有金字塔,用的是免费版,我应该怎么处理。如果买个软件可以交易吗?
金字塔暂时没有良茂期货的交易站点,如果他们是支持CTP的,可以让期货公司的技术人员联系我们,我们添加后就可以交易了!
老师,不好意思,我没把思路写清楚,现在从新调整一下,麻烦您再帮我写写策略
日线趋势判断:
日线多头趋势:均线>5日内的均线低点,多头
日线空头趋势:均线<5日内的均线高点,空头
在30分钟周期上引用日线趋势
均线>5日内的均线低点 并且 (日线多头趋势:均线>5日内的均线低点),开多
均线<5日内的均线高点 , 空平
均线<5日内的均线高点 并且 (日线空头趋势:均线<5日内的均线高点) ,开空
均线>5日内的均线低点 ,多平
另外,在30分钟的周期上引用了日线5个周期的高点或低点,这个引用过来的是日线的5个周期数据,还是就30分钟5根k线时间范围的日线数据?
30分钟周期上引用日线
你这句话的意思明显是 现在你在看30分钟线的K线
然后你要调用日线上的某种数据
感觉改动不大,建议楼主学学基础的指标编写,这样才方便日后做程序化的交易!
我现在就是在学习使用金字塔的编写,原来接触过文华的,后来发现文华的无法把我的思路实现就放弃了。现在我是能用金字塔编写比较简单的指标。
上面的这个思路我也编写好了指标,用的是“日线趋势:指标名称#DAY”,(我怎么把图片贴上去?),
现在就是想把这个做成程序化,但是做出来后好像和想象的不一样,不知道问题出在哪?
还有,我在国贸期货有个帐户,麻烦您给个建议,要怎样购买软件,然后用于交易
国贸期货是支持的,我觉得如果楼上给的代码跟你的想法不完全相同,这个可能是你想的并非你在帖子里所写的缘故。
你可以先申请一个标准版试用帐号,在模拟交易上多测测,然后修改,再进行实盘交易!