以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- [求助][原创][求助]金叉死叉 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=165263) |
-- 作者:wei0619789 -- 发布时间:2018/8/30 10:18:54 -- [求助][原创][求助]金叉死叉 请老师帮忙编写一个简单策略: MA10金叉MA20开1手多单,不设止损,当死叉时平仓。多单盈利20个点时加仓1手同时设止损在第一单开单处。 MA10死叉MA20开1手空单,不设止损,当金叉时平仓。空单盈利20个点时加仓1手同时设止损在第一单开单处。 最大盈利10000元时平仓当前所有仓位。
|
-- 作者:FireScript -- 发布时间:2018/8/30 10:52:14 -- 1.后台还是图表程序化 2.“多单盈利20个点时加仓1手同时设止损在第一单开单处。” 红字部分是指止损价设置在开仓价位置? |
-- 作者:wei0619789 -- 发布时间:2018/8/30 15:32:50 -- 是的 第一单的时候不设止损,当开第二单的时候才设,设在第一单的开单位置。@FireScript |
-- 作者:FireScript -- 发布时间:2018/8/30 16:05:21 -- ma10:ma(c,10); ma20:ma(c,20); majc:cross(ma10,ma20); masc:cross(ma20,ma10); if majc then //金叉 begin sellshort(holding<0,holding,market);//平空仓 buy(holding=0,1,market); //开多仓 end if masc then //死叉 begin sell(holding>0,holding,market);//平多仓 buyshort(holding=0,1,market); //开空仓 end if holding>0 and c-ENTERPRICE>=20*MINDIFF then //加仓 begin buy(holding<>2,1,market); end if holding<0 and ENTERPRICE-c>=20*MINDIFF then //加仓 begin buyshort(holding<>-2,1,market); end p1:=ref(ENTERPRICE,ENTERBARS+2);//如果有2次开仓,这里获取第一次开仓价 if holding=2 and c<p1 then begin sell(holding>0,holding,market); end if holding=-2 and c>p1 then begin sellshort(holding<0,holding,market); end 大致范例如上所示:
[此贴子已经被作者于2018/8/30 16:11:19编辑过]
|
-- 作者:wei0619789 -- 发布时间:2018/8/30 16:14:15 -- 谢谢老师 |
-- 作者:wei0619789 -- 发布时间:2018/9/3 20:44:09 -- 不是按照20个点加仓的 按照老师的代码在图标上显示不是按照20个点加仓的。是需要可以在同一根K线上加仓,不是等收盘之后看收盘价。劳烦老师了【抱拳】 |
-- 作者:FireScript -- 发布时间:2018/9/4 8:49:24 -- 这个不行的,图表上做不到同一个K开仓 ,并在此基础上根据这个开仓的盈利情况进行加仓的。 每一个K线就四个价格:开高低收,你判断开仓条件用的价格和你判断加仓条件用的价格都是一样的价格,显然无法在同一个K上同时成立的。
|
-- 作者:wei0619789 -- 发布时间:2018/9/7 14:39:26 -- 老师 请问怎么可以把金字塔的回测数据更长一些? |
-- 作者:FireScript -- 发布时间:2018/9/7 14:44:35 -- 回测的时候 是可用选择时间跨度的啊。 这个跨度长点就行了。 亦或者你是要在图表上加载更多K线数据?
|
-- 作者:wei0619789 -- 发布时间:2018/9/7 15:14:19 -- 选择了 但是只有不到一整年的数据。我选择的跨度是六七年呢 |