策略求编写(均线金叉破位 顺势交易) [MC]
-
MC用户求助:
您的多头策略和空头策略是相互对应的,以下对您的多头策略提出几个疑问:
第一、“K线收盘价第二次上破120日 (变量)且21日上穿120日均线(macd金叉) 或出现红柱”,这个是您的开仓条件,那么请问这进行条件判断顺序是什么,即先判断哪两个条件,再判断哪个条件?“(K线收盘价第二次上破120日 (变量)且21日上穿120日均线(macd金叉)) 或出现红柱”这样的判断顺序是否是您的真实意思?“K线收盘价第二次上破120日 (变量)且21日上穿120日均线(macd金叉)”这两个同时满足的情况很少,即使出现也并不代表趋势来临
第二、“开仓价位于”破位价“,这个建议直接使用市价单委托;若要避免滑价或者需要更接近破位价,可以使用bar内模式。
第三、”止损是开仓后的前期低点“,这句话很模糊,前期低点在这里是如何定义的?
-
MC回复讨论一:
您的多头策略和空头策略是相互对应的,以下对您的多头策略提出几个疑问:
第一、“K线收盘价第二次上破120日 (变量)且21日上穿120日均线(macd金叉) 或出现红柱”,这个是您的开仓条件,那么请问这进行条件判断顺序是什么,即先判断哪两个条件,再判断哪个条件?“(K线收盘价第二次上破120日 (变量)且21日上穿120日均线(macd金叉)) 或出现红柱”这样的判断顺序是否是您的真实意思?“K线收盘价第二次上破120日 (变量)且21日上穿120日均线(macd金叉)”这两个同时满足的情况很少,即使出现也并不代表趋势来临
第二、“开仓价位于”破位价“,这个建议直接使用市价单委托;若要避免滑价或者需要更接近破位价,可以使用bar内模式。
第三、”止损是开仓后的前期低点“,这句话很模糊,前期低点在这里是如何定义的?
-
MC回复讨论二:
1、K线收盘价第二次上破120日 (变量)这个是首要前提条件,在这个基础上,出现金叉或红柱即可开仓。同时出现的情况是不多,也并不是代表趋势的来临,但是这段周期内的行情可做。
2、可以用Bar内模式
3、前期低点也可以理解为上破120日最近的一个1小时K线的低点。
-
MC回复讨论三:
//代码
input: pricevalue(close), fastlength(21), slowlength(120), lot(1), profit(0.1), drawback(20);
var: fast_ma(0), slow_ma(0), loss(0);
fast_ma=averagefc(pricevalue,fastlength); //快速均线,这里是21日
slow_ma=averagefc(pricevalue,slowlength); //慢速均线,这里是120日
condition1=close cross above slow_ma; //收盘价上破120日均线
condition2=fast_ma cross above slow_ma; //快速均线上慢速均线
condition3=close>open; //红柱,这里您可能需要定义一下红柱的长度,如果只是收盘价大于开盘价可能太简单了
if condition1 and (condition2 or condition3) then begin
buy lot shares next bar at market; //这里使用的是市价单,当进场条件满足时,同时将当根bar的最低价存储在loss中
loss=low;
end;
sell next bar at loss stop; //止损出场
condition1=close cross under slow_ma;
condition2=fast_ma cross under slow_ma;
condition3=close<open;
if condition1 and (condition2 or condition3) then begin
sellshort lot shares next bar at market;
loss=high;
end;
if marketposition=-1 then
buytocover next bar at loss stop;
//上面这部分是空头策略,我将多头进场与空头进场两部分写在一个信号中了,对比多头部分看一下空头部分
if marketposition=0 then
setpercenttrailing(lot*close*profit*bigpointvalue,drawback)
else setpercenttrailing(lot*entryprice*profit*bigpointvalue,drawback);
{这部分是通过setpercenttrailing进行止盈,但是有一点,您说10%的盈利,如果是根据进场价的10%来衡量盈利,这个盈利可能太大了,这个关键字的用法见帖子http://forums.icetech.com.cn/for ... &extra=page%3D1}
其它说明:
第一、MC中的策略一般会分成两个信号,而这里写在一起了。
第二、您的策略多头进场部分有说明”K线收盘价第二次上破120日均线“,抱歉,这个地方之前忘记问了,所以并没有将这个想法加到上面的策略中去,请问第二次是如何衡量的?如果第三次、第四次出现是否就不进场了?
第三、以上只是初步的策略,您看一下有什么地方需要修改的。
-
MC回复讨论四:
//代码
input: pricevalue(close), fastlength(21), slowlength(120), lot(1), profit(0.1), drawback(20);
var: fast_ma(0), slow_ma(0), loss(0);
fast_ma=averagefc(pricevalue,fastlength); //快速均线,这里是21日
slow_ma=averagefc(pricevalue,slowlength); //慢速均线,这里是120日
condition1=close cross above slow_ma; //收盘价上破120日均线
condition2=fast_ma cross above slow_ma; //快速均线上慢速均线
condition3=close>open; //红柱,这里您可能需要定义一下红柱的长度,如果只是收盘价大于开盘价可能太简单了
if condition1 and (condition2 or condition3) then begin
buy lot shares next bar at market; //这里使用的是市价单,当进场条件满足时,同时将当根bar的最低价存储在loss中
loss=low;
end;
sell next bar at loss stop; //止损出场
condition1=close cross under slow_ma;
condition2=fast_ma cross under slow_ma;
condition3=close<open;
if condition1 and (condition2 or condition3) then begin
sellshort lot shares next bar at market;
loss=high;
end;
if marketposition=-1 then
buytocover next bar at loss stop;
//上面这部分是空头策略,我将多头进场与空头进场两部分写在一个信号中了,对比多头部分看一下空头部分
if marketposition=0 then
setpercenttrailing(lot*close*profit*bigpointvalue,drawback)
else setpercenttrailing(lot*entryprice*profit*bigpointvalue,drawback);
{这部分是通过setpercenttrailing进行止盈,但是有一点,您说10%的盈利,如果是根据进场价的10%来衡量盈利,这个盈利可能太大了,这个关键字的用法见帖子http://forums.icetech.com.cn/for ... &extra=page%3D1}
其它说明:
第一、MC中的策略一般会分成两个信号,而这里写在一起了。
第二、您的策略多头进场部分有说明”K线收盘价第二次上破120日均线“,抱歉,这个地方之前忘记问了,所以并没有将这个想法加到上面的策略中去,请问第二次是如何衡量的?如果第三次、第四次出现是否就不进场了?
第三、以上只是初步的策略,您看一下有什么地方需要修改的。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容