关闭职位。开启指示信号。 - 页 6

 
 

我不认为这是在代码中。原因就在这里。代码很简单。但这不是问题的关键。是关于这个的。

if(OrderProfit() > tp)    { OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);  }

让我们假设tp=49。在手数=0.1的情况下,当利润=50点时就会平仓。那么让我们把这批货从0.1增加到0.2,在这种情况下我们会得到什么?

这批货已经翻倍,我们将以两倍的速度获得利润tp=50。这足以让价格向我们的方向传递,只有25个点!双倍的数量使我们总共有50个!当然,这个职位也会被关闭!类似的事情也会发生在有"-sl "变量的亏损区。 因此,EA的工作方式会有很大的不同,与它最初的目的不同...

现在出现了另一个问题。如何使 "tp "变量的大小与地段大小的变化相一致?那么,OrderProfit()的值与手数成比例变化?

 
是的,OrderProfit()我没有注意到。应按地段大小划分。
 
完成了。谢谢你。这是工作....
 

问题又出现了。这是在中间的地方。从我没想到的地方...我面临着一个迫切的需求(为了参加比赛),在我的专家顾问中使用一个小的手数,=0.01。

但B-lots计算I.Kim的USED库没有规定这样的尺寸,因为它包含以下一行

如果(dLot<0.1)dLot=0.1。

我没有多想,就把这一行改成了:如果(dLot<0.01)dLot=0.01;我在属性中设置Lots=0.01。

但令我惊讶的是(没有明显的原因),这批货仍然等于=0.1 !我两种方法都试过了!- 没有什么是有效的!请知道如何从lot=0.01预见图书馆的工作的人提供建议。

//|                                                       b-Lots.mqh |
//|                                           Ким Игорь В. aka KimIV |
//|  21.12.2005  Библиотека функций расчёта размера лота.            |
 
//------- Внешние параметры модуля -----------------------------------
extern string _Parameters_b_Lots = "---------- Параметры модуля расчёта лота";
extern int LotsWayChoice  = 0;    // Способ выбора рабочего лота:
extern double Lots        = 0.01;  // Фиксированный размер лота
extern int LotsPercent    = 10;   // Процент от депозита
extern int LotsDeltaDepo  = 200;  // Коэффициент приращения депозита
extern int LotsDepoForOne = 500;  // Размер депозита для одного минилота
extern int LotsMax        = 1000; // Максимальное количество минилотов
//+------------------------------------------------------------------+
//| Главная функция получения размера лота (вызывается из советника) |
//+------------------------------------------------------------------+
double GetSizeLot(){
  double dLot;
  if (LotsWayChoice==0) dLot=Lots;
 
  // фиксированный процент от депозита
  if (LotsWayChoice==1)
  {    dLot=MathCeil(AccountFreeMargin()/10000*LotsPercent)/10;  }
 
  // фракционно-пропорциональный
  if (LotsWayChoice==2)  { 
    int k=LotsDepoForOne;
    for (double i=2; i<=LotsMax; i++)    {
      k=k+i*LotsDeltaDepo;
      if (k>AccountFreeMargin())
      {        dLot=(i-1)/10; break;      }
    }
  }
 
  // фракционно-фиксированный
  if (LotsWayChoice==3)
  {    dLot=MathCeil((AccountFreeMargin()-LotsDepoForOne)/LotsDeltaDepo)/10;  }
 
  if (dLot<0.01) dLot=0.01;
  
  return(dLot);
}
 
首先,用Marketinfo()检查当前登录账户的最小允许手数。
MODE_MINLOT- 如果它大于0.01,测试仪将不能工作于0.01的体积。
 

谢谢你。该账户被允许在lot=0.01的情况下工作。

明白了。它的作用是...

 

大家好,来自一个 "傻子"。

我刚刚开始学习MQL,我正在解析和仔细修改著名的移动平均线。谁能给我一个提示?

我如何建议不在新条形线开盘时,而是在МА触及反弹的时刻进行交易(从上方接近--买入,从下方接近--卖出)?

还有,是否可以从另一个对象,例如趋势线,做同样的事情?

 
我想我在某个地方看到过这样的专家。看这里 - http://www.metatrader4.com/ru/forum/4736/
 

大家下午好。我想开一个新的主题,但后来我决定把问题放在这里,在我的主题中...我想知道在场的人对这种事情的看法。"我(尽我所能)建立了一个专家顾问。它在测试器中的工作方式,让人眼前一亮!我简直不敢相信自己的眼睛!在固定手数=0.1的情况下工作数天后,专家顾问可以将存款增加数倍我甚至没有插入MM块。为什么?我想--"太好也不好......"!

专家顾问的工作没有指标,根据数学逻辑,有一个浮动的挂单,而不是拖网。这些是专家顾问所显示的大约结果,包括样本外的结果。



28.01.2008 - 08.02.2008, lot=0.1 (固定), tf=1min

建模质量25.00%,图表不匹配的误差0

首次存款1000.00

净利润 21904.31

盈利能力 1.86 预期回报率 4.03

绝对缩水 4.64 最大缩水 656.18 (10.19%) 相对缩水 10.19% (656.18)

交易总额 5433

盈利的交易(占所有交易的百分比) 2278 (41.93%)

最大的赢利交易 75.46 亏损交易 -11.93

平均盈利交易 20.81 亏损交易 -8.09

果然,我摩拳擦掌,几乎没有等到星期一,就把专家顾问在线 "充电 "到模拟账户。这时我发现,我的专家顾问在网上亏损....!当然,也有稳定的盈利工作时期,但总的来说,它是一个缓慢的消耗。

我开始研究这个问题。人们发现,测试者在一分钟的条形图内调制平滑的ticks,即比在线模式下传入的ticks少得多的 "刺"。由于专家顾问显然是一个点状的,所以显然是有区别的。更重要的是,我的获利 比我的止损要大很多倍!这就是为什么我的获利 要比我的止损大很多倍。

但我认为在这种情况下,测试人员的利润额应该转化为在线工作的质量。我只是确信这一点!测试器中的专家顾问的利润太潇洒了。应该怎样做才能使专家顾问在网上交易中获利?请分享你的想法。任何想法。任何聪明的事情和任何不可思议的事情都可以......