Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 508

 
Adjunté una martingala. En el medio del día adjunté el Asesor Experto en esta forma (ya había hecho unos tratos del mismo EA, pero en un estado inacabado antes), - el EA funcionó bien, la martingala funcionó, sacó pérdidas por medio día en el plus. Al día siguiente, encendí la plataforma por la mañana, fui a trabajar, por la tarde - un trato. La martingala aumenta el lote para un comercio perdedor, de lo contrario - el lote estándar.
void OnTick()
  {
   datetime EaStartTime = StringToTime(StartTime);  // время начала работы советника
   datetime EaEndTime = StringToTime(EndTime);      // время окончания работы советника
   datetime CurrTime = TimeCurrent();               // это если нужно взять время терминала
   if(CurrTime<EaStartTime || CurrTime>=EaEndTime)
      return;                                       // если еще не время торговать - выход
     {
      MacdCurrent=iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,Macd_Applied_Price,MODE_MAIN,0);
      SignalCurrent=iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,Macd_Applied_Price,MODE_SIGNAL,0);
      SignalMAPrevious=iMA(NULL,0,InpMAPeriod,InpMAShift,InpMAMethod,MA_Applied_Price,1);
      SignalMAThis=iMA(NULL,0,InpMAPeriod,InpMAShift,InpMAMethod,MA_Applied_Price,0);
      SignalParabolic=iSAR(NULL,0,InpSARStep,InpSARMaximum,0);
      SignalStochastic_5=iStochastic(NULL,5,InpKPeriod,InpDPeriod,InpSlowing,MODE_SMA,0,1,0);
      MainStochastic_5=iStochastic(NULL,5,InpKPeriod,InpDPeriod,InpSlowing,MODE_SMA,0,0,0);
      SignalStochastic=iStochastic(NULL,0,InpKPeriod,InpDPeriod,InpSlowing,MODE_SMA,0,1,0);
      MainStochastic=iStochastic(NULL,0,InpKPeriod,InpDPeriod,InpSlowing,MODE_SMA,0,0,0);
      SignalCCIPrevious=iCCI(NULL,0,InpCCIPeriod,0,1);
      SignalCCIThis=iCCI(NULL,0,InpCCIPeriod,0,0);
      if(CountTrades()==0) CheckForOpen();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
 {if(ModLots())
  {
      //-----Ставим ордер на покупку.
    if(SignalCurrent<MacdCurrent && SignalMAPrevious<SignalMAThis && 
      Ask>SignalParabolic && SignalStochastic_5<MainStochastic_5&&SignalStochastic<MainStochastic&&
      SignalCCIPrevious<SignalCCIThis)
      {
       ticket=OrderSend(NULL,OP_BUY,lot,Ask,slippage,0,0,exptime,magic,0,Blue);
       if(ticket>0)
          return;
      }
//-----Ставим ордер на продажу.
    if(SignalCurrent>MacdCurrent && SignalMAPrevious>SignalMAThis && 
      Bid<SignalParabolic && SignalStochastic_5>MainStochastic_5&&SignalStochastic>MainStochastic&&
      SignalCCIPrevious>SignalCCIThis)
      {
       ticket=OrderSend(NULL,OP_SELL,lot,Bid,slippage,0,0,exptime,magic,0,Red);
       if(ticket>0)
          return;
      }
  }
 }
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
            count++;
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
bool ModLots()
  {
    for(int i=OrdersHistoryTotal()-1;i>=0;i--)
      {
       if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
       if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
         {
          if(OrderProfit()<0)
            {lot=OrderLots()*LotMarti;  break;}
          else { lot=Lots; break;}
         }
      }
   return(true);
  }
//+------------------------------------------------------------------+
 
Hola. El manual de mql4 dice que el manejo de eventos Timer y ChartEvent no es compatible con el probador de estrategias. En consecuencia, los botones (OBJ_BUTTON) no funcionan (más precisamente, no ocurre nada al hacer clic). La versión de prueba de este EA, sin embargo, por alguna razón no soporta esta regla. Por favor, díganme por qué ocurre esto y cómo hacer que los botones del probador funcionen.
 
Maks_Knyazev:
Hola. El manual de mql4 dice que el procesamiento de eventos Timer y ChartEvent no es compatible con el probador de estrategias. En consecuencia, los botones (OBJ_BUTTON) no funcionan (más precisamente, no ocurre nada al hacer clic). La versión de prueba de este EA, sin embargo, por alguna razón no soporta esta regla. Por favor, díganme por qué ocurre esto y cómo hacer que los botones del probador funcionen.

Sí, no funcionan. Tienes que comprobar los botones manualmente en el probador, así

CButton *cbSell, *cbBuy;

//проверяем из OnTick в тестере 
void CheckButtons()
{
    if(cbSell.Pressed())
    {
        OpenOrderWithCheck2(Symbol(), OP_SELL, 0.1, Bid, 50, 0, 0, "", 1, 0, clrDeepSkyBlue);
        cbSell.Pressed(false);
    }    
    if(cbBuy.Pressed())
    {
        OpenOrderWithCheck2(Symbol(), OP_BUY, 0.1, Bid, 50, 0, 0, "", 1, 0, clrRed);
        cbBuy.Pressed(false);
    }
    ChartRedraw();
}

 
Alexey Volchanskiy:

Sí, no funcionan. En el probador, tienes que comprobar los botones manualmente, así

¡Muchas gracias! ¿Existe alguna literatura que describa este tipo de cosas?
 

flint17480, 2016.02.01 08:58

Hola. No cerró el beneficio en la vela de 09-47 minutos en EURUSD el beneficio estaba en 1,08428 la vela fue a 1,08420. ¿Qué hacer? Gracias de antemano.
 
<br / translate="no">

flint17480, 2016.02.01 08:58

Hola. Mi beneficio en el EURUSD estaba en 1,08428 y subió a 1,08420. ¿Puede decirme qué hacer? Gracias de antemano.

Necesito más información:

  1. Tipo de posición abierta: ¿VENDER o COMPRAR?
  2. ¿Sabías que el precio en el terminal se sortea por BID?

 
Karputov Vladimir:

flint17480, 2016.02.01 08:58

Hola. No cerró el beneficio en la vela de 09-47 minutos en EURUSD el beneficio estaba en 1.08428 la vela fue a 1.08420. ¿Qué hacer? Gracias de antemano.

Debe prestar atención al spread, porque las posiciones cortas se cierran en Asc, mientras que la vela se dibuja en Bid. Los diferenciales de más de 8 pips para una cifra de cinco dígitos son normales para la mayoría de los pares de divisas.

 
Karputov Vladimir:

flint17480, 2016.02.01 08:58

Hola. No cerró el beneficio en la vela de 09-47 minutos en EURUSD el beneficio estaba en 1,08428 la vela fue a 1,08420. ¿Qué hacer? Gracias de antemano.
Marca las citas para escribir. ¿Le envío mi presupuesto? Aunque hay muchos en kodobaz. Tenías razón sobre la extensión.
 
Buenas tardes a todos) Compartir el código para un stop loss móvil - para conducir el precio )))) Gracias de antemano
 
Tema97:
Buenas tardes a todos) Compartir el código para un stop loss móvil - para conducir el precio )))) Gracias de antemano
¿Qué es lo que no le gusta del trailing stop? Ya está integrado en el terminal
Razón de la queja: