Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 59

 
Vitalie Postolache:
Sono le citazioni, sono di scarsa qualità.

L'Expert Advisor standard va bene con loro. E anche su un conto demo il trading non funziona. Le mie transazioni non si aprono. Anche se dovrebbero.

 
Michail_David:

L'esaminatore standard è a posto con loro

Confronta l'Expert Advisor standard e il tuo Expert Advisor, trova le differenze e trai le conclusioni. Ma la formulazione dell'errore indica citazioni di scarsa qualità, quando i valori di un TF non coincidono con quelli dell'altro TF.

Se questo codice è scritto per il trading in modalità " solo prezzi aperti", allora questo problema può essere evitato.

Aggiunto. Stai esattamente cercando di fare un codice in base ai prezzi aperti, non è chiaro perché dovrebbe essere testato da tutti i tick...
 
Vitalie Postolache:
Confronta lo standard e il tuo, trova le differenze e tira le conclusioni. Si può sfuggire a tale sfortuna se il codice è scritto per il trading in modalità " solo prezzi aperti".
Quello standard usa anche i prezzi di chiusura, proprio come il mio
 
Michail_David:
Il codice standard usa anche i prezzi di chiusura, come il mio

Quale EA chiama standard? Non ho visto un EA "aprezzi vicini" nella consegna del terminale.

E con i prezzi aperti, si deve avere l'intero codice di trading che lavora in questo modo, o non farlo affatto. Solo una parte del codice viene usata su una nuova barra, il resto funzionerà su ogni tick.

 
Vitalie Postolache:

Quale EA chiama standard? Non ho visto un EA "aprezzi vicini" nella consegna del terminale.

E con i prezzi aperti, si deve avere l'intero codice di trading che lavora in questo modo, o non farlo affatto. Hai solo una parte del codice usato su una nuova barra, il resto funzionerà su ogni tick.

Il campione MACD è chiamato standard. Sarebbe meglio spostare la ricerca di una nuova barra all'inizio?
 
Michail_David:
Lo chiamerei come un campione MACD standard. Sarebbe meglio spostare la ricerca di una nuova barra all'inizio?

Dove si trova in MACD Sample la modalità "solo prezzi aperti", non la vedo? È meglio spostare la ricerca di una nuova barra all'inizio di OnTick().

Ed è

static datetime New_Time=TimeCurrent();// Время текущего бара

meglio essere dichiarati al di fuori della funzione, a livello globale.

O meglio ancora, spendi un po' di tempo e cerca modi migliori per cercare una nuova barra sul forum.
 
Vitalie Postolache:

Dove si trova in MACD Sample la modalità "solo prezzi aperti", non la vedo? Sarebbe meglio spostare la ricerca di una nuova barra all'inizio di OnTick().

И

static datetime New_Time=TimeCurrent();// Время текущего бара

è meglio dichiararlo fuori dalla funzione, a livello globale.

Devo aver frainteso la modalità"solo prezzi aperti" dell'Expert Advisor standard. Mi scuso per questo. Sto appena iniziando a capirlo. Grazie per i suggerimenti. Puoi visualizzare l'intero codice? Potrebbero esserci altri commenti. Ho davvero bisogno di un paio di occhi nuovi. Lo apprezzerei molto.
 
Michail_David:
Gente, un suggerimento. Tester dà errore: 2017.02.08 18:24:43.751 TestGenerator: errore di dati non abbinati (il valore basso 1,09860 al 2016.07.27 19:30 non è raggiunto dal timeframe più basso, il prezzo basso 1,09880 non corrisponde)
Cosa significa questo e come può essere risolto? Cosa ho fatto di male?
double Margin_Percent=AccountFreeMargin()*Percent/100; //Используемые средства для открытия ордеров
double Lots=Margin_Percent/MarketInfo(Symbol(),MODE_MARGINREQUIRED);//Определение общего количества лотов
double Lots_Volume=(MathFloor(Lots)+MarketInfo(Symbol(),MODE_LOTSTEP));
double MacdCurrent=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,1); //Параметры MACD основной линии текущего бара
double MacdPrevious1=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,2);//Параметры MACD основной линии предыдущего бара
double MacdPrevious2=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,3);//Параметры MACD основной линии со смещением на 2 бара
double StopLoss=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,0);//Параметры Трейлинг стоп по параметрам ParabolicSAR текущего бара
double Previous_StopLoss=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,1);//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара
double CurrentPSAR=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,1);//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  
//------
  }
//-------------------------------------------------------------------------------------------------------
È la prima volta che vedo calcoli di variabili fatti globalmente al di fuori delle funzioni che generano eventi e il compilatore non ci giura nemmeno? Dannazione, il compilatore non sbaglia.
 
Sergey Gritsay:
Questa è la prima volta che vedo calcoli di variabili fatti globalmente al di fuori delle funzioni che generano eventi, e il compilatore non si lamenta nemmeno?
No. Accetta tutto così com'è.
 
Michail_David:
No. Accetta tutto così com'è.
mettere tutto quello che ho evidenziato nella funzione OnTick()
Motivazione: