Параллельность оредров превратить в последовательность с ожиданием в очереди

MQL4 Esperti

Specifiche

к примеру 10 стратегий выстреливают одновременно в одну и ту же милисекунду при открытие бара

надо их сделать последовательными один за другим, с проверкой, что предыдущий ордер был открыт и модифицирован SL TP

оредра могут быть отложенные и маркет

пока один ордер исполняется другие ждут в очереди


так как используется ММ настоящий баланс


double Total_Current_Risk()

{



  double res = 0;

  for (int i = 0; i < OrdersTotal(); i++)

  {

    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderStopLoss() != 0)

    {

      double m_point = MarketInfo(OrderSymbol(), MODE_POINT);

      double m_lotstep = MarketInfo(OrderSymbol(), MODE_LOTSTEP);

      double m_TickValue = MarketInfo(OrderSymbol(), MODE_TICKVALUE);


      double m_sl = 0;


      if (OrderType() == OP_BUY || OrderType() == OP_BUYLIMIT || OrderType() == OP_BUYSTOP)

      {

        m_sl = (OrderOpenPrice() - OrderStopLoss()) / m_point;

      }

      else

      {

        m_sl = (OrderStopLoss() - OrderOpenPrice()) / m_point;

      }


      res += NormalizeDouble((OrderLots() * (m_sl * m_TickValue)) + OrderCommission() + OrderSwap(), 2);

    }

  }

 Print("Account Balance: ", AccountBalance(), " -- Total Current Risk (with swap and commission): ", res, "  -- Net Balance: ", AccountBalance() - res);

  return res;

}

modify MM  ( accountbalance() - total_current_risk() )




random  range Sleep не предлогать,


################## sleep random delay #########################

ulong micro=GetMicrosecondCount();

ulong rnd = MathAbs(micro+MagicNumber);

MathSrand( rnd );

int slp = (MathRand()%120);

Verbose ("sqMMRiskFixedBalancePct, sleep="+IntegerToString(slp)+" seconds; rnd=" + IntegerToString(rnd)+"; GetMicrosecondCount()="+IntegerToString(micro) + ";GetTickCount()="+IntegerToString(GetTickCount())+"; magic="+IntegerToString(MagicNumber));

Sleep (1000*slp);


скан по номерам чартов и выставка sleep (current chart num) тоже не надо.


//+--------------------This is the new Function----------------------------+
int Get_Delay()
{
long prev_chart = ChartFirst(); // here we get ID of 1st chart

int count = 0;

while (prev_chart != -1) // we check if charts has finished
{
if (prev_chart == ChartID()) break; // we check if the current chart is = ID of selected chart, break the loop

prev_chart = ChartNext(prev_chart); // update selected Chart ID
count++; // increase count
}

return (count * 3000); // return Time in Milliseconds

}



#Sleep(Get_Delay()) _ticket = 


работает плагин OrderReliable mqh

минимальное изменения кода и структуры шаблонов, при сравнении будет использован vimdiff

указать где какой код был вставлен, так как будет использован для изменения будующих шаблонов


Con risposta

1
Sviluppatore 1
Valutazioni
(296)
Progetti
475
40%
Arbitraggio
105
40% / 24%
In ritardo
80
17%
Occupato
Pubblicati: 2 codici
2
Sviluppatore 2
Valutazioni
(54)
Progetti
102
23%
Arbitraggio
12
25% / 17%
In ritardo
13
13%
Gratuito
3
Sviluppatore 3
Valutazioni
(50)
Progetti
94
29%
Arbitraggio
4
25% / 0%
In ritardo
4
4%
Gratuito
Pubblicati: 3 codici
Ordini simili
Требуется создать советник на основе разворотных паттернов, используя дополнительные индикаторы такие как скользящее среднее, отклонение от скользящей средней, угол наклона скользящей средней. Возможно будет добавлено что то еще по ходу работы
Суть ТС:Приход в POI старшего тф, вход в позицию на младшем тф Анализ графика начинается всегда со старшего тф. Должен быть понятный контекст для работы. Активы: EURUSD, XAUUSD POI старшего таймфрейма: Liquidity (1M, 1W, 1D, 4H, 1H) Imbalance (1M, 1W, 1D, 4H, 1H) Order Block (1M, 1W, 1D, 4H, 1H) HTF Fractals (1M, 1W, 1D, 4H, 1H) Всегда дожидаться цену в POI старшего таймфрейма. Вход в позицию: Слом LTF структуры на

Informazioni sul progetto

Budget
30 - 50 USD
IVA (24%): 7.2 - 12 USD
Totale: 37 - 62 USD
Per lo sviluppatore
27 - 45 USD
Scadenze
da 1 a 7 giorno(i)

Cliente

Ordini effettuati6
Numero di arbitraggi0