[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 5

 
granit77:

Domanda: come faccio a mettere un terminale pulito? Dopotutto, quando provo a riavviare, il sistema mi riconosce automaticamente, permettendomi di ricaricare il file del terminale e salvando le informazioni precedentemente accumulate: conto demo, indicatori scritti, ecc. Apparentemente c'è un file tra quelli salvati che non permette di ricaricare i dati storici. :)
 
Ciao, la mia domanda è se gli EA MT4 funzioneranno su questo dispositivo
 
boris.45:
Basta scaricare di nuovo dal vostro broker e metterlo in una directory diversa. Inserisci manualmente il nome utente e la password del tuo conto demo se è necessario, ma è meglio aprirne uno nuovo.
E come un bambino appena nato sarai completamente senza peccato.
 
afirius:
Ciao! La domanda è se gli EAs di MT4 funzioneranno su questo dispositivo
lo farà!
 
Fico) finalmente una panacea).
T-G:
sarà!
 
che avrebbe aiutato, cambiare comprare per vendere nel codice di questo esperto
File:
ema_wma.mq4  5 kb
 

Ciao, ecco il problema.

Lo stesso Expert Advisor fa trading normalmente su un conto demo e nel tester, ma si rifiuta di funzionare o funziona in modo errato su un conto reale.

Cosa devo fare per risolvere il problema?

extern int ma1 = 7;
extern int ma2 = 100;
extern int ma3 = 200;
extern int ma4 = 300;
extern int shift = 15;
extern double StartLot = 0.5;
extern double LotStep = 0.25;
extern int candleAmount = 25;
extern bool workAlone = true;

double   MA1;
double   MA2;
double   MA3;
double   MA4;
int      Trend;
int      i;
datetime shiftTime;
int      ticket;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   if (Digits == 3 || Digits == 5)
      shift = shift*10;
   MA1 = iMA(NULL,0,ma1,0,MODE_SMA,PRICE_CLOSE,1);
   MA2 = iMA(NULL,0,ma2,0,MODE_SMA,PRICE_CLOSE,1);
   MA3 = iMA(NULL,0,ma3,0,MODE_SMA,PRICE_CLOSE,1);
   MA4 = iMA(NULL,0,ma4,0,MODE_SMA,PRICE_CLOSE,1);
   if (MA1<MA2 && MA1<MA3 && MA1<MA4)        {Trend = 1;}
   else if (MA1>MA2 && MA1>MA3 && MA1>MA4)   {Trend = 4;}
   else                                      {Trend = 2;}
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   MA1 = iMA(NULL,0,ma1,0,MODE_SMA,PRICE_CLOSE,1);
   MA2 = iMA(NULL,0,ma2,0,MODE_SMA,PRICE_CLOSE,1);
   MA3 = iMA(NULL,0,ma3,0,MODE_SMA,PRICE_CLOSE,1);
   MA4 = iMA(NULL,0,ma4,0,MODE_SMA,PRICE_CLOSE,1);

   if (Trend == 2)
   {  if (MA1<MA2 && MA1<MA3 && MA1<MA4)
      {  for (i = OrdersTotal(); i >= 0; i--)
         {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType() == OP_BUY)
               OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),shift,Blue);
         }
         shiftTime = Time[0];
         if (OrdersTotal() == 0 || !workAlone)
         {  ticket = OrderSend(Symbol(),OP_SELL,LotsOptimized(Symbol()),NormalizeDouble(Bid,Digits),shift,0,0,"",777,0,Red);
            if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
               shiftTime = OrderOpenTime();
         }
         Trend = 1;
      }
      else if (MA1>MA2 && MA1>MA3 && MA1>MA4)
      {  for (i = OrdersTotal(); i >= 0; i--)
         {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType() == OP_SELL)
              OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),shift,Red);
         }
         shiftTime = Time[0];
         if (OrdersTotal() == 0 || !workAlone)
         {  ticket = OrderSend(Symbol(),OP_BUY,LotsOptimized(Symbol()),NormalizeDouble(Ask,Digits),shift,0,0,"",777,0,Blue);
            if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
               shiftTime = OrderOpenTime();
         }
         Trend = 4;
      }
   }

   if (Trend == 1)
   {  if (MA1>MA2 || MA1>MA3 || MA1>MA4)
      {  Trend = 2;
         if (iBarShift(NULL,0,shiftTime,false) >= candleAmount)
         {  for (i = OrdersTotal(); i >= 0; i--)
            {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
               {  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),shift,Red);}}}}}

   if (Trend == 4)
   {  if (MA1<MA2 || MA1<MA3 || MA1<MA4)
      {  Trend = 2;
         if (iBarShift(NULL,0,shiftTime,false) >= candleAmount)
         {  for (i = OrdersTotal(); i >= 0; i--)
            {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
               {  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),shift,Blue);}}}}}
//----
   return(0);
  }

//+------------------------------------------------------------------+

double LotsOptimized(string symbol)
{  double lot = StartLot;
   int    losses = 0;
   if (LotStep > 0)
   {  for (int c = OrdersHistoryTotal() - 1; c >= 0; c--)
      {  if (OrderSelect(c,SELECT_BY_POS,MODE_HISTORY) == false) break;
         if (OrderSymbol() != symbol) continue;
         //----
         if (OrderProfit() > 0) break;
         if (OrderProfit() < 0) losses++;
      }
      if (losses >= 1) lot = NormalizeDouble(lot + LotStep * losses,2);
   }
   if (lot < MarketInfo(symbol,MODE_MINLOT)) lot = MarketInfo(symbol,MODE_MINLOT);
   return (lot);
}

//+------------------------------------------------------------------+ 
 
deboir:

Ciao, ecco il problema.

Lo stesso Expert Advisor fa trading normalmente su un conto demo e nel tester, ma si rifiuta di funzionare o funziona in modo errato su un conto reale.

Cosa devo fare per risolvere il problema?


I miracoli non accadono. Che società di intermediazione ha? Alcune società di brokeraggio non ti permettono di piazzare ordini a mercato se il tuo ordine contiene istruzioni per impostare uno stop loss e/o un take profit. Broco, per esempio, è così. Lì, devi prima aprire un ordine a mercato e solo dopo piazzare ordini di stop tramite modifica.
 
In particolare ho eseguito un test con il parametro x=1, poi il parametro x=2, poi ho ottimizzato x da 1 a 2 passo 1. tutte le caselle di controllo sono disattivate, saltando anche i tagli inutili. l'algoritmo genetico è stato attivato e disattivato. i risultati sono diversi, helpppppp!

ho deselezionato "skip useless cuts" e i tagli appaiono. solo che differiscono da un test semplice. per esempio, con il parametro x=1 un test semplice risulta in 500 affari, con x=2 - 700 affari. Dovrei ottimizzare questo parametro e x=1 ora ottiene 1 affare, x=2 ottiene anche 1 affare. Il mio Expert Advisor sta usando una modifica grafica virtuale, è possibile che sia che l'ottimizzazione non riesca a creare un oggetto grafico?

consigliare cosa potrebbe essere, ho provato nel tester, gli ordini si aprono e chiudono normalmente, ho selezionato il parametro, ho testato tutti i risultati sono respinti, ho cambiato manualmente questo parametro nel test, tutto è ok. Ho attivato l'algoritmo genetico durante l'ottimizzazione e l'ho disabilitato, ho cambiato le mie impostazioni.
 

dzhini, eddy

Attenzione ai post duplicati. Messaggi doppi cancellati. Da qui in poi ci sarà un divieto.

Motivazione: