Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 25

 
Viachaslau Baiko:

possibile perdita di dati a causa della conversione del tipo

Provate.

File:
 
Renat Akhtyamov:
Mostrami la linea del codice a cui punta il compilatore

Ci sono molte linee come questa, ed è per questo che ho chiesto un modulo adattato per i nuovi terminali. Ma grazie per la tua disponibilità ad aiutare)

 
Alekseu Fedotov:
Grazie, farò una prova!
 
Viachaslau Baiko:

Ci sono molte linee come questa, ed è per questo che ho chiesto un modulo adattato per i nuovi terminali. Ma grazie per la tua disponibilità ad aiutare)

Proprio su questa linea:

" possibile perdita di dati a causa della conversione del tipo"

dovrebbe essere il numero di riga e la posizione nella riga di codice con l'errore.

Ecco come è facile, è possibile correggere tutti gli errori, conoscendo la posizione esatta nel codice

 
Renat Akhtyamov:

proprio su questa linea:

" possibile perdita di dati a causa della conversione del tipo"

ci dovrebbe essere un numero di linea e una posizione nella linea di codice con l'errore.

Questo è un modo semplice per correggere tutti gli errori, conoscendo la posizione esatta nel codice.

Ho preso l'Expert Advisor offertoda Alekseu Fedotov e ho cercato di modificarlo in base alle mie esigenze.

Le mie esigenze sono le seguenti: Ad un incrocio delle bacchette, apriamo una posizione e la chiudiamo all'incrocio opposto. Se possibile, trasferiamo la posizione a Breakeven.

Ma alla fine non si apre nulla. Mi sto scervellando. Quale può essere il problema?

File:
4Tester.mq4  20 kb
 
Viachaslau Baiko:

Ho preso l'EA offertoda Alekseu Fedotov e ho cercato di modificarlo per soddisfare le mie esigenze.

Le mie esigenze sono le seguenti: Se si incrociano, apriamo una posizione, se si incrociano di nuovo, la chiudiamo. Se possibile, trasferiamo la posizione a Breakeven.

Ma alla fine non si apre nulla. Mi sto scervellando. Quale può essere il problema?

Non sono sicuro di quale sia il problema, ma mi piacerebbe vedere una linea di codice con un errore di CMM.
 
Renat Akhtyamov:
mostrare la linea del codice con l'errore di CMM, per l'ultima volta che offro aiuto.
C'è stato un errore da parte mia. Ho sbagliato la logica del programma. Ed è stato più facile per me rifarlo. Non c'è nessun errore nel codice di CMM.
 
Per favore consigliatemi se è possibile fare quanto segue con mql4 o mql5:

dopo che il prezzo attraversa un livello verticale, per colorare una parte dello sfondo di un altro colore, come indicato nell'immagine.

Grazie.
File:
Immagine1.JPG  100 kb
 
Renat Akhtyamov:
mostra uno snippet di codice su come leggi il segnale dall'indicatore nel tuo EA
extern int     stoploss             = 200,
               takeprofit           = 400,
               slippage             = 10,
               Magic                = 777;          

extern double  Lot                  = 0.5,
               buy_level            = 15;      
            

void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)                        
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
  
   double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
   double SL=0,TP=0;
  
   if (STO > buy_level)
  
  
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);    
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
      PlaySound("timeout.wav");
      Print("Ордер успешно размещен");
}
}
 
TimBerg:
extern int     stoploss             = 200,
               takeprofit           = 400,
               slippage             = 10,
               Magic                = 777;          

extern double  Lot                  = 0.5,
               buy_level            = 15;      
            

void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)                        
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
  
   double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
   double SL=0,TP=0;
  
   if (STO > buy_level)
  
  
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);    
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
      PlaySound("timeout.wav");
      Print("Ордер успешно размещен");
}
}

Proprio qui:

iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);

cambiare il periodo (timeframe) in 1,5,15,30,60,240,1440,10080,43200 //M1.M5.M30 ... ecc.

o inserire Periodo() invece di 15, allora quando si cambia TF manualmente, quello attuale sarà impostato automaticamente

Motivazione: