Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 508

 
In der Mitte des Tages habe ich die Expert Advisor in dieser Form (es hatte bereits ein paar Geschäfte der gleichen EA, aber in einem unvollendeten Zustand vor), - der EA funktionierte gut, die Martingale gearbeitet, nahm Verluste für einen halben Tag im Plus. Am nächsten Tag, schaltete ich die Plattform am Morgen, ging zur Arbeit, am Abend - ein Geschäft. Martingale erhöht die Menge für einen Verlust Handel, sonst - die Standard-Lot.
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);
  }
//+------------------------------------------------------------------+
 
Hallo. Im mql4-Handbuch steht, dass Timer- und ChartEvent-Ereignisse im Strategietester nicht unterstützt werden. Dementsprechend funktionieren die Schaltflächen (OBJ_BUTTON) nicht (genauer gesagt, es passiert nichts, wenn Sie klicken). Die Testversion dieses EA unterstützt diese Regel jedoch aus irgendeinem Grund nicht. Bitte sagen Sie mir, warum das so ist und wie ich die Schaltflächen im Tester zum Funktionieren bringe?
 
Maks_Knyazev:
Hallo. Im mql4-Handbuch steht, dass die Verarbeitung von Timer- und ChartEvent-Ereignissen im Strategietester nicht unterstützt wird. Dementsprechend funktionieren die Schaltflächen (OBJ_BUTTON) nicht (genauer gesagt, es passiert nichts, wenn Sie klicken). Die Testversion dieses EA unterstützt diese Regel jedoch aus irgendeinem Grund nicht. Bitte sagen Sie mir, warum das so ist und wie ich die Schaltflächen im Tester zum Funktionieren bringe?

Ja, sie funktionieren nicht. Sie müssen die Schaltflächen manuell im Prüfgerät überprüfen, etwa so

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:

Ja, sie funktionieren nicht. Im Testgerät müssen Sie die Schaltflächen manuell überprüfen, etwa so

Herzlichen Dank! Gibt es Literatur, die so etwas beschreibt?
 

flint17480, 2016.02.01 08:58

Hallo. Ich habe den Gewinn der 09-47-Minuten-Kerze auf EURUSD nicht geschlossen. Der Gewinn lag bei 1,08428, die Kerze ging bis 1,08420. Was ist zu tun? Vielen Dank im Voraus.
 
<br / translate="no">

flint17480, 2016.02.01 08:58

Hallo. Mein Gewinn bei EURUSD lag bei 1,08428 und stieg bis auf 1,08420. Können Sie mir sagen, was ich tun soll? Vielen Dank im Voraus.

Ich brauche mehr Informationen:

  1. Art der offenen Position: VERKAUFEN oder KAUFEN?
  2. Wussten Sie, dass der Preis im Terminal von BID gezogen wird?

 
Karputov Vladimir:

flint17480, 2016.02.01 08:58

Hallo. Ich habe den Gewinn der 09-47-Minuten-Kerze auf EURUSD nicht geschlossen. Der Gewinn lag bei 1,08428, die Kerze ging bis 1,08420. Was ist zu tun? Ich danke Ihnen im Voraus.

Achten Sie auf den Spread, denn Short-Positionen werden auf Asc geschlossen, während die Kerze auf Bid gezogen wird. Spreads von über 8 Pips für einen fünfstelligen Betrag sind für die meisten Währungspaare normal.

 
Karputov Vladimir:

flint17480, 2016.02.01 08:58

Hallo. Ich habe den Gewinn der 09-47-Minuten-Kerze auf EURUSD nicht geschlossen. Der Gewinn lag bei 1,08428, die Kerze ging bis 1,08420. Was ist zu tun? Ich danke Ihnen im Voraus.
Ankreuzen von Zitaten zum Schreiben. Soll ich Ihnen mein Angebot schicken? Obwohl es im kodobaz viele davon gibt. Du hattest Recht mit dem Spread.
 
Guten Tag an alle) Teilen Sie den Code für einen mobilen Stop-Loss - um den Preis zu fahren )))) Vielen Dank im Voraus
 
Tema97:
Guten Tag an alle) Teilen Sie den Code für einen mobilen Stop-Loss - um den Preis zu fahren )))) Vielen Dank im Voraus
Was mögen Sie nicht an Trailing Stop? Sie ist bereits in das Terminal integriert
Grund der Beschwerde: