以文本方式查看主题

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

--  作者:kevinsss
--  发布时间:2019/12/19 23:54:30
--  开仓得句子
请老师帮忙表达一下,如果本次交易止损(是亏损单),下一次得下单量是上次量乘以2倍,如果本次交易盈利,下次交易用默认值量下单
--  作者:zm71212302
--  发布时间:2019/12/20 2:00:29
--  
VARIABLE:YINGKU:=0;//记录上次交易盈亏
多头止:=1;//多头止损的延伸
空头止:=1;
平多条件:=0;//多头平仓条件的延伸;
平空条件:=0;//空头平仓条件
开多条件:=1;
开空条件:=0;
开仓数量:=1;
IF HOLDING>0 THEN 
   BEGIN
   IF 多头止 THEN BEGIN
   多止:Sell(1,0,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
   YINGKU:=1;
   END
   IF 平多条件 THEN BEGIN
   IF C-ENTERPRICE<=0 THEN YINGKU:=1;
   Sell(1,0,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
   END 
END  

IF HOLDING>0 THEN 
   BEGIN
   IF 空头止 THEN BEGIN
   空止:SELLSHORT(1,0,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
   YINGKU:=1;
   END 
   IF 平空条件 THEN BEGIN
   IF ENTERPRICE-C<=0 THEN YINGKU:=1;
   SELLSHORT(1,0,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
   END  
END  
{-------------------趋势开仓------------------------------}
IF HOLDING=0 THEN 
   BEGIN
   IF 开多条件 THEN BEGIN
   IF YINGKU>0 THEN 
   开仓数量:=1*2;
   ELSE BEGIN 
   开仓数量:=1;
   END
   buy(1,开仓数量,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
   开仓数量:=1;
   YINGKU:=0;
  END 
   IF 开空条件 THEN BEGIN
   IF YINGKU>0 THEN 
   开仓数量:=1*2;
   ELSE BEGIN
   开仓数量:=1;
   END   
   buyshort(1,开仓数量,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
   开仓数量:=1;
   YINGKU:=0;
  END 
END

--  作者:zm71212302
--  发布时间:2019/12/20 2:20:20
--  
无限翻倍?上面那个空单IF HOLDING>0 THEN 错了
--  作者:zm71212302
--  发布时间:2019/12/20 2:26:48
--  
VARIABLE:YINGKU:=0,开仓数量:=1;//记录上次交易盈亏
多头止:=ENTERBARS>=5 AND C-ENTERPRICE<=0;//多头止损的延伸
空头止:=ENTERBARS>=5 AND ENTERPRICE-C<=0;
平多条件:=CROSS(MA(C,10),MA(C,5));//多头平仓条件的延伸;
平空条件:=CROSS(MA(C,5),MA(C,10));//空头平仓条件
开多条件:=CROSS(MA(C,5),MA(C,10));
开空条件:=CROSS(MA(C,10),MA(C,5));
IF HOLDING>0 THEN 
   BEGIN
   IF 多头止 THEN BEGIN
   多止:Sell(1,0,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
   YINGKU:=YINGKU+1;
   END
   IF 平多条件 THEN BEGIN
   IF C-ENTERPRICE<0 THEN YINGKU:=YINGKU+1;
   IF C-ENTERPRICE>0 THEN YINGKU:=0;
   Sell(1,0,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
   END 
END  

IF HOLDING<0 THEN 
   BEGIN
   IF 空头止 THEN BEGIN
   空止:SELLSHORT(1,0,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
   YINGKU:=YINGKU+1;
   END 
   IF 平空条件 THEN BEGIN
   IF ENTERPRICE-C<0 THEN YINGKU:=YINGKU+1;
   IF ENTERPRICE-C>0 THEN YINGKU:=0; 
   SELLSHORT(1,0,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
   END  
END  
{-------------------趋势开仓------------------------------}
IF HOLDING=0 THEN 
   BEGIN
   IF 开多条件 THEN BEGIN
   IF YINGKU>0 THEN 
   开仓数量:=1*YINGKU;
   ELSE BEGIN 
   开仓数量:=1;
   END
   buy(1,开仓数量,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
  END 
END 
IF HOLDING=0 THEN 
   BEGIN  
   IF 开空条件 THEN BEGIN
   IF YINGKU>0 THEN 
   开仓数量:=1*2;
   ELSE BEGIN
   开仓数量:=1;
   END   
   buyshort(1,开仓数量,THISCLOSE),IGNORECHECKPRICE,LINETHICK0;
  END 
END
盈亏:asset,noaxis,colorred,linethick1;

--  作者:zm71212302
--  发布时间:2019/12/20 2:28:49
--  
这样就完美了
图片点击可在新窗口打开查看此主题相关图片如下:kkkl.jpg
图片点击可在新窗口打开查看

--  作者:zm71212302
--  发布时间:2019/12/20 2:33:49
--  
我在策略共享中有账户,喜欢的可以一起研究,也可以加我微信一起交流17640326416

图片点击可在新窗口打开查看此主题相关图片如下:ddd.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/12/20 2:34:29编辑过]

--  作者:kevinsss
--  发布时间:2019/12/20 15:48:29
--  
感觉有点问题,多单4手止损后,为什么开空单2手
--  作者:zm71212302
--  发布时间:2019/12/20 16:55:08
--  
哦,上面的开仓条件只是拿MA做了个例子,你可以套用开仓止损加仓条件,逻辑开仓条件你自己设定。
--  作者:FireScript
--  发布时间:2019/12/20 16:56:35
--  
 参考这个例子就行了:

input:n(9,1,100,10),p1(3,2,40,4),p2(3,2,40,4),t1(10,1,100);//参数设置

RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
J:3*K-2*D,NODRAW;

VARIABLE:ss:=1;//初始开仓量
kdjjc:cross(k,d),NODRAW;//kdj金叉
kdjsc:cross(d,k),NODRAW;


if kdjjc then
begin
buy(holding=0,ss,market);
end

if kdjsc then begin
sell(holding>0,holding,market);
if NUMPROFIT(1)<0 and holding=0 then ss:=ss*2;
if  NUMPROFIT(1)>=0 and holding=0 then ss:=1;
end