以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]编写求助  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=159452)

--  作者:曦瓜
--  发布时间:2017/11/13 11:28:09
--  [求助]编写求助
使用均线交易,要求价格突破60均线做多开仓5手,但价格跌破20均线减仓2手,如果价格突破5日均线再加仓2手。(如果没有出现减仓,价格突破5日均线不加仓),如何编写。谢谢
--  作者:FireScript
--  发布时间:2017/11/13 13:22:58
--  

样例如下:

代码逻辑是这样的,开仓条件是60均线突破开仓,减仓是跌破20日均线减仓,加仓条件是只要之前有过减仓则减仓2手,不过这里加仓的处理是只要之前有减仓就加仓,所以可能会出现连续加仓的。

 

ma5:ma(c,5);//5日均线
ma20:ma(c,20);
ma60:ma(c,60);

buycond1:=cross(c,ma60) and holding=0;//突破60日均线开仓
buycond2:cross(c,ma5);//减仓后再突破5日均线加仓
sellcond1:=cross(ma20,c) and holding>0;//跌破20日均线减仓

LastSell:=BARSLAST(sellcond1);

if buycond1 then buy(1,5,MARKET);//开仓
if sellcond1 then sell(1,2,MARKET);//减仓
if buycond2 and LastSell>0 then buy(1,2,MARKET);//加仓

[此贴子已经被作者于2017/11/13 13:54:10编辑过]

--  作者:曦瓜
--  发布时间:2017/11/13 13:46:02
--  
谢谢。
这个没有出来加仓效果,还有能否控制连续加仓。

--  作者:FireScript
--  发布时间:2017/11/13 13:55:53
--  
抱歉,之前有个单词写错了导致加仓没能触发,已经在2楼修改了。 你的加仓要如何控制,需要紧跟着减仓之后再加仓?请详细描述下。
--  作者:曦瓜
--  发布时间:2017/11/13 14:18:24
--  
总共开仓手数我要求控制在5手之内,如果价格突破60日均线则开多5手,价格大于60日均线 下穿20日均线则减仓2手,当价格跌破20日均线减仓后再次突破5日均线则再加仓2手。如果价格没有跌破20日均线,上穿5日均线则不加仓维持原有仓位。谢谢
--  作者:FireScript
--  发布时间:2017/11/13 14:30:27
--  

代码如下:

ma5:ma(c,5);//5日均线
ma20:ma(c,20);
ma60:ma(c,60);

sellcond1:=cross(ma20,c) and c>ma60 and holding>0;//跌破20日均线减仓条件
buycond1:=cross(c,ma60) and holding=0;//突破60日均线开仓条件
LastSell:=BARSLAST(sellcond1);
buycond2:cross(c,ma5) and holding<5 and LastSell>0;//加仓条件

if buycond1 then buy(1,5,MARKET);//开仓
if sellcond1 then sell(1,2,MARKET);//减仓
if buycond2  then buy(1,2,MARKET);//加仓

当前持仓:holding;