以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  赚3保1修改成赚104保34点请问怎么改  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=172400)

--  作者:yukizzc
--  发布时间:2019/10/14 14:14:27
--  赚3保1修改成赚104保34点请问怎么改
VARIABLE:DUOKONG=1;
VARIABLE:YDZY=1;     {移动止盈总开关,1为开,0为关}
VARIABLE:HIGHPRICE=0,LOWPRICE=0; {保存开仓后的最高价、最低价}
VARIABLE:DHCDS=100,KHCDS=100;   {多、空单回撤点数}
VARIABLE:DYLDS=300,KYLDS=300;   {多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓}
VARIABLE:Z3B1:=20;     {赚3保1开关}
DUOKONG:=1;
TSFS:=1;     {停损反手,1-反手 0-不反手}
ORDVOL:=s; 
ZSDS:=q;     {止损点数}
//以下变量用于移动止盈,,移动止盈只能保证你尽可能稳健盈利,却不能保证盈利最大化,如果不想使用,可是将总开关设置为0

//持有空单
IF HOLDING<0 THEN BEGIN
 IF 开多1  THEN BEGIN   //平空单
  空平:SELLSHORT(1,1,MARKET),ORDERQUEUE;
 END
 
 //止损
 IF C-ENTERPRICE>=ZSDS THEN BEGIN
  空损:SELLSHORT(1,1,MARKET),ORDERQUEUE;
 END
 
 //移动止盈
 IF YDZY=1 THEN BEGIN
  //每周期判断是否创新低
  IF L<LOWPRICE THEN BEGIN
   LOWPRICE:=L;
  END 
  
  //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
  IF ENTERPRICE-LOWPRICE>=KYLDS THEN BEGIN
   IF L-LOWPRICE>=KHCDS THEN BEGIN  //回撤超过3点
    空赢:SELLSHORT(1,1,MARKET);
   END 
  END 
 END
 
 //赚3保1
 IF Z3B1=1 THEN BEGIN
  IF ENTERPRICE-LOWPRICE>=0.5 THEN BEGIN
   IF ENTERPRICE-L<=1.2 THEN BEGIN
    空保:SELLSHORT(1,1,MARKET);
   END
  END
 END
END
//开多单

IF HOLDING=0 THEN BEGIN
 IF DUOKONG=1 OR DUOKONG=0.5 THEN BEGIN
  IF 开多1   THEN BEGIN
   多开:BUY(1=1,ORDVOL,MARKET);
   HIGHPRICE:=ENTERPRICE;  //将开仓价保存到最高价
  END 
 END
END
//持有多单
IF HOLDING>0 THEN BEGIN
 IF 开空1   THEN BEGIN  {平多单}
 多平:SELL(1,1,MARKET),ORDERQUEUE;
 END
 
 //多单管理
 //止损
 IF ENTERPRICE-C>=ZSDS THEN BEGIN
  多损:SELL(1,1,MARKET),ORDERQUEUE;
 END
 //移动止盈
 IF YDZY=1 THEN BEGIN
  //每周期判断是否创新高
  IF H>HIGHPRICE THEN BEGIN
   HIGHPRICE:=H;
  END 
 
  //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
  IF HIGHPRICE-ENTERPRICE>=DYLDS THEN BEGIN
   IF HIGHPRICE-H>=DHCDS THEN BEGIN  //回撤超过3点
    多赢:SELL(1,1,MARKET);
   END 
  END 
 END
 //赚3保1
 IF Z3B1=1 THEN BEGIN
  IF HIGHPRICE-ENTERPRICE>=0.5 THEN BEGIN
   IF H-ENTERPRICE<=1.2 THEN BEGIN
    多保:SELL(1,1,MARKET);
   END
  END
 END
END
//开空单
IF HOLDING=0 THEN BEGIN
 IF DUOKONG=1 OR DUOKONG=0.5 THEN BEGIN
  IF 开空1  THEN BEGIN
   空开:BUYSHORT(1=1,ORDVOL,MARKET);
   LOWPRICE:=ENTERPRICE;
  END 
 END
END
--  作者:qq代人发帖
--  发布时间:2019/10/14 14:29:46
--  

这个开头的全局变量写的就不对,不知道代码要表达什么意思。

要么把这个代码抛开不管,重新描述你的想法给你写。


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

[此贴子已经被作者于2019/10/14 14:31:00编辑过]

--  作者:like
--  发布时间:2019/10/14 16:12:56
--  
EMA13:=EMA(C,10),COLORWHITE; 
EMA21:=EMA(C,21),COLORYELLOW; 
EMA34:=EMA(C,34),COLORFF00FF;
EMA60:=MA(C,55),COLORFFCC66; 
X1:=(C+L+H)/3; 
X2:=EMA(X1,5); 
X3:=EMA(X2,4); 
STICKLINE(X2>X3 AND C>EMA13,LOW,HIGH,0.1,1),COLORRED; 
STICKLINE(X2>X3 AND C>EMA13,CLOSE,OPEN,3,1),COLORRED; 
STICKLINE(X2<X3 AND C<EMA13,LOW,HIGH,0.1,1),COLORFFFF52;
STICKLINE(X2<X3 AND C<EMA13,CLOSE,OPEN,3,0),COLORFFFF52;
BUY1:=FILTER(X2>X3 AND C>EMA13,4);
SELL1:=FILTER(X2<X3 AND C<EMA13,4);
VARIABLE:DUOKONG=0;
TSFS:=0;     {停损反手,1-反手 0-不反手}
ORDVOL:=1;     {开仓手数}
ZSDS:=34;     {止损点数}
//以下变量用于移动止盈,,移动止盈只能保证你尽可能稳健盈利,却不能保证盈利最大化,如果不想使用,可是将总开关设置为0
VARIABLE:YDZY=1;     {移动止盈总开关,1为开,0为关}
VARIABLE:HIGHPRICE=0,LOWPRICE=0; {保存开仓后的最高价、最低价}
VARIABLE:DHCDS=3,KHCDS=3;   {多、空单回撤点数}
VARIABLE:DYLDS=7,KYLDS=7;   {多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓}
VARIABLE:Z3B1:=1;     {赚3保1开关}
DUOKONG:=1;
//持有空单
IF HOLDING<0 THEN BEGIN
 IF BUY1 THEN BEGIN   //平空单
  空平:SELLSHORT(1,0,MARKET),ORDERQUEUE;
 END
 
 //止损
 IF C-ENTERPRICE>=ZSDS THEN BEGIN
  空损:SELLSHORT(1,0,MARKET),ORDERQUEUE;
 END
 
 //移动止盈
 IF YDZY=1 THEN BEGIN
  //每周期判断是否创新低
  IF L<LOWPRICE THEN BEGIN
   LOWPRICE:=L;
  END 
  
  //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
  IF ENTERPRICE-LOWPRICE>=KYLDS THEN BEGIN
   IF L-LOWPRICE>=KHCDS THEN BEGIN  //回撤超过3点
    空赢:SELLSHORT(1,0,MARKET);
   END 
  END 
 END
 
 //赚3保1
 IF Z3B1=1 THEN BEGIN
  IF ENTERPRICE-LOWPRICE>=3 THEN BEGIN
   IF ENTERPRICE-L<=1.2 THEN BEGIN
    空保:SELLSHORT(1,0,MARKET);
   END
  END
 END
END
//开多单
IF HOLDING=0 THEN BEGIN
 IF DUOKONG=1 OR DUOKONG=2 THEN BEGIN
  IF BUY1 THEN BEGIN
   多开:BUY(1=1,ORDVOL,MARKET);
   HIGHPRICE:=ENTERPRICE;  //将开仓价保存到最高价
  END 
 END
END
//持有多单
IF HOLDING>0 THEN BEGIN
 IF SELL1 THEN BEGIN  {平多单}
  多平:SELL(1,0,MARKET),ORDERQUEUE;
 END
 
 //多单管理
 //止损
 IF ENTERPRICE-C>=ZSDS THEN BEGIN
  多损:SELL(1,0,MARKET),ORDERQUEUE;
 END
 //移动止盈
 IF YDZY=1 THEN BEGIN
  //每周期判断是否创新高
  IF H>HIGHPRICE THEN BEGIN
   HIGHPRICE:=H;
  END 
 
  //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
  IF HIGHPRICE-ENTERPRICE>=DYLDS THEN BEGIN
   IF HIGHPRICE-H>=DHCDS THEN BEGIN  //回撤超过3点
    多赢:SELL(1,0,MARKET);
   END 
  END 
 END
 //赚3保1
 IF Z3B1=1 THEN BEGIN
  IF HIGHPRICE-ENTERPRICE>=3 THEN BEGIN
   IF H-ENTERPRICE<=1.2 THEN BEGIN
    多保:SELL(1,0,MARKET);
   END
  END
 END
END
//开空单
IF HOLDING=0 THEN BEGIN
 IF DUOKONG=1 OR DUOKONG=3 THEN BEGIN
  IF SELL1 THEN BEGIN
   空开:BUYSHORT(1=1,ORDVOL,MARKET);
   LOWPRICE:=ENTERPRICE;
  END 
 END
END

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;

请教老师把赚3保1改写成赚104保34谢谢!

--  作者:FireScript
--  发布时间:2019/10/14 16:29:28
--  
 能否具体说明下这个赚3保1的含义。

 END
 //赚3保1
 IF Z3B1=1 THEN BEGIN
  IF HIGHPRICE-ENTERPRICE>=3 THEN BEGIN
   IF H-ENTERPRICE<=1.2 THEN BEGIN
    多保:SELL(1,0,MARKET);
   END
  END
 END
END

上面红色部分 分别是3和1?

--  作者:like
--  发布时间:2019/10/15 20:25:32
--  
这个是金字塔原版的模板我怎么知道什么含义呢?我知道自己都能改写了