Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共82 条记录, 每页显示 10 条, 页签: [1][2] [3] [4][5][6][7][8]
[浏览完整版]

标题:均线策略代码怎么写,谢谢!

21楼
hh1988 发表于:2021/3/15 15:41:49
是的??
22楼
hh1988 发表于:2021/3/16 11:04:37
开仓条件:CROSS(C,MA(C,10))AND C>MA(C,5)*1.01;
开仓数值:MAX(REF(MA(C,10),1),(MA(C,5)*1.01));
AA:MA(CLOSE,8);
AB:=MA(CLOSE,13);

平仓条件:CROSS(ab,aa);

buy(开仓条件 and holding=0,1,limit,开仓数值);//开仓信号
sell((CROSS(AB,AA)),holding,market);//平仓信号

好像还不行  图表上没有信号显示
  
23楼
FireScript 发表于:2021/3/16 11:07:50
 本地正常。

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

唯一需要注意的是这里这个价格:
buy(开仓条件 and holding=0,1,limit,开仓数值),IGNORECHECKPRICE;//开仓信号
sell((CROSS(AB,AA)),holding,market);//平仓信号

很可能会超出所在K的价格范围,因此需要加一个函数处理下。
24楼
hh1988 发表于:2021/3/17 13:19:33
KD:=(C>=MA(C,10));//开多条件
PD1:=(C<MA(C,10));//平多条件收盘价小于10均线则平仓
PD2:=C<=AVGENTERPRICE-15*MINDIFF;//平多条件最新价低于买开仓价15个最小变动价位,多头止损
KK:=(C<MA(C,10)) ;//开空条件
PK1:=(C-AVGENTERPRICE)>=15*MINDIFF;//平空条件高于卖开仓价15个最小变动价位,空头止损;
PK2:=(C>=MA(C,10));//平空条件收盘价大于或等于10均线
空止盈:SELLSHORT(PK2,holding,market);//平空信号2
空止损:SELLSHORT(PK1,holding,market);//平空信号1
多止盈:SELL(PD1,holding,market);//平多信号1
开多:BUY(KD AND HOLDING=0,1,THISCLOSE);//开多信号
多止损:SELL(PD2,holding,market);//平多信号2
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE);//开空信号
hd:holding;

你好,如果这个策略做实盘 策略模板需要改进什么吗?  如果每次只有一单  每次开仓5手  平仓5手     实盘策略又是怎么写的?
25楼
gxx978 发表于:2021/3/17 13:26:22
1、每次只有一单,是指不要连续开仓?你的代码中已经限制了禁止连续开仓了,在开仓条件中用holding=0就可以控制。
2、开仓5手的话,那在开仓语句中,将手数改为5就可以,平仓数量继续用holding即可,例如:
     开多:BUY(KD AND HOLDING=0,5,THISCLOSE);//开多信号
      开空:BUYSHORT(KK AND HOLDING=0,5,THISCLOSE);//开空信号
26楼
hh1988 发表于:2021/3/18 13:00:24
平仓条件:CROSS(MA(C,5),C)AND C<MA(C,5)*0.995;
平仓数值: MAX(REF(MA(C,5),1),(MA(C,5)*0.995));
可以用平仓数值 来平仓吗   像前面的开仓数值一样  像这个这样(buy(开仓条件 and holding=0,1,limit,开仓数值)平仓条件你可以自己加上去就行了)
[此贴子已经被作者于2021/3/18 13:01:38编辑过]
27楼
FireScript 发表于:2021/3/18 13:18:52
 能的。和开仓一样的方式。
下单价格都可以以限价指令的方式 来直接指定价格。
比如:
平仓条件:CROSS(MA(C,5),C)AND C<MA(C,5)*0.995;
平仓数值: MAX(REF(MA(C,5),1),(MA(C,5)*0.995));

sell(平仓条件,holding,limit,平仓数值);
28楼
hh1988 发表于:2021/3/19 10:16:24
对了,连续开仓 以及   最多5成仓   这个改怎么写
29楼
FireScript 发表于:2021/3/19 10:46:10
 1.你想要在满足什么条件下多次开仓呢。有逻辑才能有代码。一般要么是一个条件多次触发同样的语句。这种就是开仓时候不要加HOLDING=0的限制,反复满足就会反复开仓。要么就是写多个语句,作为单独的加仓语句。
 2.
先算下保证金占用。
bzj1:abs(AVGENTERPRICE*HOLDING*TACCOUNT(41)*MULTIPLIER);//当前总保证金占用
然后获取下上次空仓时候的资金的值。
lastAsset:VALUEWHEN(HOLDING=0,asset);
用这2个算下比例。开仓时候判断下这个比例是否超出限制了。

逻辑上这样应该就行了。具体实现你可以尝试试下。
30楼
hh1988 发表于:2021/3/19 10:47:58
我发现这个策略在回测成交上面有个问题       假如我用5分钟回测   但是持仓周期有的一个月  好像成交按照日线级别来平仓的一样?这种情况不会出现在实盘吧

共82 条记录, 每页显示 10 条, 页签: [1][2] [3] [4][5][6][7][8]


Powered By Dvbbs Version 8.3.0
Processed in .37500 s, 3 queries.