追踪资金功能(股票)--有人遇到过现成的吗? - 页 4

 

我的建议:

//+------------------------------------------------------------------+
//|Трал по эквити                                                    |
//+------------------------------------------------------------------+
bool EcvitiTral3(double EqvTralStep){
if(OrdersTotal()<1){ gEqviti=AccountBalance();return(false);}
if(!GlobalVariableCheck("step")){ EqvTralStep= EqvTralStep;}
  else{ EqvTralStep=GlobalVariableGet("step");}
EqvTralStep= EqvTralStep*(GlobalVariableGet("multi")-GlobalVariableGet("disable"));
  if( WithoutLoss){
    if(AccountEquity()>=AccountBalance()){
      if(AccountEquity()-AccountBalance()>((AccountBalance()/100)*( EqvTralStep*2))){ EqvTralStep= EqvTralStep*2;}
      if(AccountEquity()>( gEqviti+( gEqviti/100* EqvTralStep))){
        gEqviti= gEqviti+( gEqviti/200* EqvTralStep);
        eqvtrade=true;
        if(!GlobalVariableCheck("stop")){GlobalVariableSet("stop",0);}
      }
      if(AccountEquity()<= gEqviti){ CloseAll();Print("CloseAll");GlobalVariableDel("stop");return(false);}
      else{Comment(AccountFreeMargin()+AccountMargin(),"\n",
                 "EQUITY TRALING MODE\n",
                 "EQUITY TRALING STEP   =", EqvTralStep," %",
                 "\n ACCOUNT BALANS         = ",AccountBalance(),
                 "\n CLOSE LEVEL                  = ", gEqviti,
                 "\n ACCOUNT EQUITY        = ",AccountEquity(),
                 "\n NEXT STEP                     = ", gEqviti+( gEqviti/100* EqvTralStep));
                 return(true);
      }
    }else{GlobalVariableDel("stop");} 
  }else{
    if(AccountEquity()>AccountBalance()){
      if(AccountEquity()-AccountBalance()>((AccountBalance()/100)*( EqvTralStep*2))){ EqvTralStep= EqvTralStep*2;}      
      if(AccountEquity()>( gEqviti+( gEqviti/100* EqvTralStep))){
        gEqviti= gEqviti+( gEqviti/200* EqvTralStep);
        eqvtrade=true;
        if(!GlobalVariableCheck("stop")){GlobalVariableSet("stop",0);}
      }
      if(AccountEquity()<= gEqviti){ CloseAll();Print("CloseAll");GlobalVariableDel("stop");return(false);}
      else{Comment(AccountFreeMargin()+AccountMargin(),"\n",
                 "EQUITY TRALING MODE\n",
                 "EQUITY TRALING STEP   =", EqvTralStep," %",
                 "\n ACCOUNT BALANS         = ",AccountBalance(),
                 "\n CLOSE LEVEL                  = ", gEqviti,
                 "\n ACCOUNT EQUITY        = ",AccountEquity(),
                 "\n NEXT STEP                     = ", gEqviti+( gEqviti/100* EqvTralStep));
                 return(true);
      }
    }else{GlobalVariableDel("stop");}  
  }
return(false);
}
看涨期权被放在开头,并与EA其他区块的拖曳时间重叠,拖曳步骤是可变的 - 二次方,这允许很好地与股权跳跃工作,捕捉最大的利润。 CU模式允许将无利可图的订单削减在萌芽状态。
 
xrust >>:

我的建议:

后续步骤是可变的,它允许在公平的跳跃中工作,以获取最大的利润。 CUE模式允许将无利可图的订单削减在萌芽状态。

下午好,xrust !请再解释一下这个装置的操作。我不能让它工作。

我不能让它工作。

1.函数CloseAll(),它必须是一个删除所有订单和/或平仓 的f函数。

我有一个类似的功能,这里没有问题。

2.我已经在属性中定义了它。

外部 bool WithoutLoss = true。

- 这个参数是什么?

3.

extern double gEqviti=200;// - 这是达到股权的大小,在这个时候拖网开始工作?

4.我还设置了--

bool eqvtrade。

还有什么需要设置的?参数EqvTralStep;是如何设置的?

并请(如果不难的话)用2-3个字描述该功能的一般工作原理。

 
该函数在EA的最开始被调用,紧接着int Start()。
//удаляем запрет на торговлю после удаления всех ордеров 
  if(OrdersTotal()<1){
    if(GlobalVariableCheck("stop")){GlobalVariableDel("stop");}  
    gEqviti=AccountBalance(); 
  } 
//тралим эквити
  if( EcvitiTral3( EqwTralStep)){return(0);}
  if(GlobalVariableCheck("stop")){return(0);}

如果eqviti已经上升到余额以上,它就会阻止所有EA的钢铁功能和拖网。

现在是变量:在全局变量 中,静态的双倍gEqviti。

extern double EqwTralStep=0.03; 尾随步骤,占股本的百分比 extern bool WithoutLoss=false; 允许应用盈亏平衡法

这个函数是如何工作的:当权益超过余额时,它将余额水平记录为零,这意味着它需要关闭,如果权益超过EqwTralStep的百分比,它将关闭水平上移,如果超过的速度很高,该函数将按四次方增加步长。

 
谢谢你!我会试一试的。
 

不客气,如果你有任何困难,请不要犹豫,...

 

完成了。它已经启动并运行。到目前为止,它工作得很好。已经上网第二个星期了。

但是。时常会有罕见的故障。

通常情况下,我在市场上同时有3-10个位置。

但是--当市场上有一个头寸时,它突然以利润=1-2个点关闭,没有任何明显的原因!这就是为什么我们的市场上有一个头寸。

我不明白为什么。我的专家顾问的基本代码并没有规定这种情况。

 

这是很容易控制的,这种平仓可以由价格的急剧波动和移动到一个新的平仓水平引起,结果是平仓

这样做。

организуйте в функции стическую переменную static double prewlewel;

потом перед , или за комментами 

  if( prewlewel!= gEqviti){
    prewlewel= gEqviti;
    Print( prewlewel);
  } 

А здесь добавьте обнуление переменной 
if(OrdersTotal()<1){ gEqviti=AccountBalance(); prewlewel=0;return(false);}
 

xrust - 我对你有个建议 - 你能不能把你的股票拖网版本的代码作为一个独立的EA。

这将是一个对手工交易员非常有用的工具。

我一直在寻找这样的工具,但没有找到合适的东西,而且我自己也不擅长编码(或者说是很弱)。

 
ToKa_TuXa писал(а)>>

xrust - 我对你有个建议 - 你能不能把你的股票拖网版本的代码作为一个独立的EA。

这将是一个对手工交易员非常有用的工具。

好主意!我支持你...

的确如此。这样的设计不会不被注意。

 
试试这个 吧 操作简单。我自己也在使用它。你所要做的就是指定你想要的利润和达到利润后允许的缩水比例。
原因: