[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 243

 
costy_ >> :

应该在开盘价高于MA1时去买入。

我理解 "tumblr "中的||,因为我不知道如何表示,例如 "如果"(ma1>ma2&ma1>Open[1]"或 "ma1>ma3&&ma1>Open[1])。"然后" 打开BAY()。


你可以从图中看到,并不是所有的条件都得到满足!!。


在一个53号蜡烛的购买上尝试通过其他方式。


还有什么方法可以实现逻辑?


在你的这段代码中只是有大量的错误。

把它们都描述出来,并解释为什么是这样,而不是那样....我没有那么多时间。

我现在唯一要纠正的是。

if (( ma1> ma2 && ma1> ma3 && Open[1]> ma1) || 
    ( ma2> ma1 && ma2> ma3 && Open[1]> ma1) ||
    ( ma3> ma1 && ma3> ma2 && Open[1]> ma1)
  )
  OpenBuy();
也许我有时间的时候会给你更多的提示....。



 
谢谢,知道了。
if (( ma1> ma2 && ma1> ma3  && Open[1]> ma1) || 
    ( ma2> ma1 && ma2> ma3  && Open[1]> ma1) ||
    ( ma3> ma1 && ma3> ma2  && Open[1]> ma1)
   )
    OpenBuy();

但我必须这样做。

if ( ma1> ma2 && ma1> ma3 && Open[1]> ma1)
OpenBuy();
if ( ma2> ma1 && ma2> ma3 && Open[1]> ma1)
OpenBuy();
if ( ma3> ma1 && ma3> ma2 && Open[1]> ma1)
OpenBuy();
 
costy_ >> :

>> 而我必须

同样的事情,只是第一个选项更短。

 
MrSoros >> :

同样的事情,只是第一个选项更短。

不幸的是,第一个选项在图上没有正常工作(这一切都很奇怪)。

首先当然是更漂亮,逻辑是这样的,它是先加后乘的类型。=))

 
MrSoros >> :

这些标志都是正确的。

这个想法本身(CCI关闭),从我的角度来看 - 不是啊....

我以前也经历过这种情况...

但这已经是一个战略问题了。

>>这么多交易者,这么多策略。


不,算法不是这样的,现在如果利润超过10个点,它就会在CCI上关闭,我需要的正是10个点的利润水平,只有在那里才能在klose上关闭,如果利润超过10个点,就不应该在CCI上关闭。现在,如果利润值超过10pp,它就会在CCI关闭(

在这个功能中,算法的意义是不同的,有一个10pp的利润水平--那是一个虚拟的利润,由SSI指标方向的条款固定。 当价格获利时,它总是通过这个水平,因为SSI看起来是正确的,然后在通过这个水平后,价格有时会出现反向运动,回到初始状态,或改变趋势方向,--在这种情况下,SSI总是看向另一个方向,当在10pp的反方向通过时,订单是固定的,因为SSI会看向反方向。

  if (OrderType() == OP_BUY && cci_0< cci_1 && Bid-OrderOpenPrice() >= Point* profit) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
  if (OrderType() == OP_SELL && cci_0> cci_1 && OrderOpenPrice() - Ask >= Point* profit) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);

  

  cci_0< cci_1 && Bid-OrderOpenPrice() == Point* profit // может вот так? - так вообще не работает(
 

你好。

看看地段大小是否以余额的百分比正确计算。

//расчёт размера лота
double Lots()
   {
   double ls=MarketInfo(Symbol(),MODE_MINLOT)+MarketInfo(Symbol(),MODE_LOTSTEP)*MathFloor(( procentdepo*AccountBalance()/100000-MarketInfo(Symbol(),MODE_MINLOT))/MarketInfo(Symbol(),MODE_LOTSTEP));
     if( ls>MarketInfo(Symbol(),MODE_MAXLOT))   { ls=MarketInfo(Symbol(),MODE_MAXLOT); }
     if( ls<MarketInfo(Symbol(),MODE_MINLOT))   { ls=MarketInfo(Symbol(),MODE_MINLOT); }
   return( ls);
   }

其中procentdepo为存款的%。

 
Piboli >> :

你好。

看看地段大小是否以余额的百分比正确计算。

其中prozentdepo为存款的%。

做到这一点。

extern double PercentLots  = 0.5;// внешние переменные


//то что ниже закиньте в конец кода
double GetLots() 
{
double minlot = MarketInfo(Symbol(), MODE_MINLOT);
double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);

if( PercentLots!=0)
 {
   double lot = NormalizeDouble(AccountBalance() * PercentLots  /1000.0 / 100.0, 2);
   if( lot < minlot) lot = minlot;
   if( lot > maxlot) lot = maxlot;
  }
  else lot= Lots; 
  return( lot);
  }  

//GetLots() - вставьте в ticket=OrderSend(Symbol(),OP_BUY,GetLots(),Ask,3,stop,Ask+Takeprofit*Point,"",MagicNumber,0,Green);
 
Piboli >> :

你好。

检查地段大小是否正确计算为余额的百分比。

其中procentdepo为存款的%。

更好的是,使用这个手数优化功能,这里的工作MM如果会有无利可图的交易,那么手数将减少到最初的手数。

//внешние переменные
extern double Lots = 0.1;          //стартовый лот до баланса 500
extern double MaximumRisk = 0.1;   //увеличение лота на каждые 500 баланса
extern double DecreaseFactor = 3.0;//уменьшение лота при серии убыточных позиций


//то что ниже  закиньте перед стартом
double LotsOptimized() {
       double lot = Lots;
       int orders = OrdersHistoryTotal();
       int losses = 0;
       lot = NormalizeDouble(AccountFreeMargin() * MaximumRisk / 500.0, 2);
       if ( DecreaseFactor > 0.0) {
for (int i = orders - 1; i >= 0; i--) {
       if (OrderSelect( i, SELECT_BY_POS, MODE_HISTORY) == FALSE) {
       Print("Error in history!");
       break;
       }
if (OrderSymbol() != Symbol() || OrderType() > OP_SELL) continue;
if (OrderProfit() > 0.0) break;
if (OrderProfit() < 0.0) losses++;
}
if ( losses > 1) lot = NormalizeDouble( lot - lot * losses / DecreaseFactor, 2);
}
if ( lot < 0.1) lot = 0.1;
if ( lot > 1000.0) lot = 1000;
return ( lot);}

int start(){//старт

LotsOptimized() -- вставьте в ticket=OrderSend(Symbol(),OP_BUY, LotsOptimized(),Ask,3, stop,Ask+ Takeprofit*Point,"", MagicNumber,0,Green);
 
只有前面两个帖子没有考虑到该地段的阶梯式变化。不幸的是。
 
Vinin >> :
只有前面两个帖子没有考虑到地段变化的步骤。>>不幸的是。

我可以做,如果我对这一步理解正确的话,余下的多少钱将被加入到这一批次中?

或者你的意思是要有一个恒定的地段增加曲线,但我不认为这样的进展有什么意义。

extern double balans = 500; //шаг баланса

lot = NormalizeDouble(AccountFreeMargin() * MaximumRisk / balans, 1);
原因: