以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=171371)

--  作者:霹雳游侠
--  发布时间:2019/7/31 11:21:33
--  策略编写求助

想编写一个日内策略求指导

 

macd金叉做多,死叉做空,n个mindiff止损,2n个mindiff止盈,收盘清仓。

每天由1手开始下单,平仓后如果当天总收益为正,全天交易终止。

当天总收益为负时,下一单开1.5倍仓位(按四舍五入取值),当日总亏损到2000时,平仓,且全天交易终止


--  作者:FireScript
--  发布时间:2019/7/31 14:25:30
--  
 你这个思路的话有个地方,持仓如果隔日的话,你这个怎么处理。如果是昨天的仓位,我今天平仓,算今日的收益?
--  作者:霹雳游侠
--  发布时间:2019/7/31 14:30:14
--  

只做日内,每天收盘前清仓,第二天出信号后再开仓


--  作者:FireScript
--  发布时间:2019/7/31 15:00:13
--  
 “当天总收益为负时,下一单开1.5倍仓位(按四舍五入取值)”这个如果是连续亏损 开仓手数在上次开仓手数基础上连续增加?

--  作者:霹雳游侠
--  发布时间:2019/7/31 15:51:48
--  
是的,但是日内总亏损触及到2000,就清仓,当天停止交易
--  作者:FireScript
--  发布时间:2019/7/31 16:21:33
--  
 input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6),N(5,1,100,1);//参数设置
VARIABLE:ss:=1;//手数
DIFF : =EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  := EMA(DIFF,M);
MACD1 := 2*(DIFF-DEA), COLORSTICK;
macdjc:=cross(diff,dea);//macd金叉
macdsc:=cross(dea,diff);

tdyk:asset-ref(asset,if(todaybar=BARPOS,BARPOS-1,todaybar));//当日盈亏,按照资产变化计算的

if macdsc then
begin
sell(holding>0,holding,MARKET);
ss:=if(tdyk<0,round(ss*1.5),ss);
buyshort(holding=0 and ((tdyk<=0 and tdyk>-2000)),ss,market);
end

if macdjc then
begin
sellshort(holding<0,holding,market);
ss:=if(tdyk<0,round(ss*1.5),ss);
buy(holding=0 and  ((tdyk<=0 and tdyk>-2000)) ,ss,MARKET);
end

if tdyk<-2000 then //亏损到一定程度情况下全平
begin
sellshort(holding<0,holding,market);
sell(holding>0,holding,MARKET);
end


if time=CLOSETIME(0) then //收盘全平
begin
ss:=1;
sellshort(holding<0,holding,market);
sell(holding>0,holding,MARKET);    
end

//止盈止损部分 以多头为例,空头自行参考这个补全即可.N是止盈止损的点数
//止盈
IF C-AvGENTERPRICE>N*MINDIFF THEN BEGIN
SELL(1,HOLDING,MARKET);
END

//止损
IF AvGENTERPRICE-C>N*MINDIFF THEN BEGIN
SELL(1,HOLDING,MARKET);
END

仅供参考。
[此贴子已经被作者于2019/7/31 16:21:51编辑过]

--  作者:霹雳游侠
--  发布时间:2019/8/1 9:42:31
--  

昨天最后收到的回复,显示“内容被屏蔽”


--  作者:FireScript
--  发布时间:2019/8/1 10:05:24
--  
 可以了。部分关键词被屏蔽。