以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  如何用持仓量来做加仓  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=168977)

--  作者:qq代人发帖
--  发布时间:2019/3/26 8:52:42
--  如何用持仓量来做加仓
 如何用持仓量来做加仓,1+2+4+8 翻倍式加仓。
做多:  在满足K线在均线120上方这第一  条件上,再10日和20日均线第一次金叉做一手,然后在10日均线和20日均线第二次金叉加仓2手,第三次金叉4手,第四次金叉8手。K线跌破120均线就全部平多单。
做空 :在满足K线在120均线下方,10日20日第一次死叉做1手,10日20日第二次死叉做2手,10日20日第三次死叉做4手10日20日第四次死叉做8手,K线上穿120日均线平空单

--  作者:FireScript
--  发布时间:2019/3/26 9:50:39
--  
 
VARIABLE:ct1:=1,ct2:=1;//全局变量统计开仓次数
ma10:ma(c,10);
ma20:ma(c,20);
ma120:ma(c,120);

majc:cross(ma10,ma20);
masc:cross(ma20,ma10);

by1:majc and c>ma120;
sl1:c<ma120;

if by1 and holding=0 //首次开仓
then
begin
buy(holding=0,1,market);
ct1:=ct1*2;
end

if by1 and holding>0 and ct1<=8 and ENTERBARS>0 then //加仓
begin
buy(holding>0,ct1,market);
ct1:=ct1*2;//使用全局变量来记录加仓次数,同时生成下次开仓的手数值
end

if c<ma120 and holding>0 then
begin
ct1:=1;//平仓是重置全局变量
sell(holding>0,holding,market);
end

by2:masc and c<ma120;
sl2:c>ma120;
if by2 and holding=0
then
begin
buyshort(holding=0,1,market);
ct2:=ct2*2;
end

if by2 and holding>0 and ct2<=8 and ENTERPRICE>0 then
begin
buyshort(holding>0,ct2,market);
ct2:=ct2*2;
end

if c>ma120 and holding<0 then
begin
ct2:=2;
sellshort(holding<0,holding,market);
end

提供以上范例,请在理解代码含义的基础上进行自定义修改,代码里有部分注释,如有不明确地方请跟帖询问。