Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 49

 
Alexander Antoshkin:

Per una torta e una tazza di caffè, un avviso dovrebbe essere modificato (dalle nuove build di mt4)

)

Beh, la torta può essere spedita... Dove prendete il caffè?

File:
 
Alexey Viktorov:

Beh, puoi spedire una torta... Dove prendete il caffè?

Grazie.)))

codice corretto restituito al thread dell'articolo.................................................

 
Sto cercando di installare MetaTrader4 dal file di installazione originale mt4setup.exe ma MT5 mi viene installato sfacciatamente. Sistema Windows7 x64. È così che lo sviluppatore cerca di farmi piacere la nuova piattaforma? Come posso installare quello che voglio (MT4) e non quello che mi viene imposto?
 
Andrej Akimov:
Sto cercando di installare MetaTrader4 dal file di installazione originale mt4setup.exe ma MT5 mi viene installato sfacciatamente. Sistema Windows7 x64. È così che lo sviluppatore sta cercando di farmi piacere la nuova piattaforma? Come posso installare quello che voglio (MT4) e non quello che mi viene imposto?
Ci sono già un sacco di thread sul forum con soluzioni a questo problema. Perché non usare il motore di ricerca?
 
Mostrate con un esempio come scrivere una stringa in un file e leggerla.Il file deve essere memorizzato nella root dell'unità C.Questo deve essere un esperto.
 

Sto cercando di implementare lo stop loss e il take profit in questo modo:

spread = Ask-Bid;

double StopLoss_B = NormalizeDouble(Low[1]- spread,Digits);//NormalizeDouble(Low[1]- spread,Digits)

double TakeProfit_B = NormalizeDouble(Ask+((Ask-StopLoss_B)* RiskRewart),Digits) ;

double StopLoss_S = NormalizeDouble(High[1]+ spread,Digits);//NormalizeDouble(High[1]+ spread,Digits)

double TakeProfit_S = NormalizeDouble(Bid-((StopLoss_S-Bid)* RiskRewart),Digits) ;

....

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,StopLoss_B,TakeProfit_B, "PBar",Magik,0,Blue);

....

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,StopLoss_S,TakeProfit_S, "PBar",Magik,0,Red);

Il tester mostra l'errore 130 - qualcosa di sbagliato con TP e SL. Non riesco a capire cosa esattamente, soprattutto perché a volte funziona bene, e a volte ottengo un errore.

In generale, per favore aiutatemi.

 
RichLux:

Sto cercando di implementare lo stop loss e il take profit in questo modo:

spread = Ask-Bid;

double StopLoss_B = NormalizeDouble(Low[1]- spread,Digits);//NormalizeDouble(Low[1]- spread,Digits)

double TakeProfit_B = NormalizeDouble(Ask+((Ask-StopLoss_B)* RiskRewart),Digits) ;

double StopLoss_S = NormalizeDouble(High[1]+ spread,Digits);//NormalizeDouble(High[1]+ spread,Digits)

double TakeProfit_S = NormalizeDouble(Bid-((StopLoss_S-Bid)* RiskRewart),Digits) ;

....

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,StopLoss_B,TakeProfit_B, "PBar",Magik,0,Blue);

....

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,StopLoss_S,TakeProfit_S, "PBar",Magik,0,Red);

Il tester mostra l'errore 130 - qualcosa di sbagliato con TP e SL. Non riesco a capire cosa esattamente, soprattutto perché a volte funziona bene, e a volte ottengo un errore.

In generale, per favore aiutatemi.

Forse a volte hai impostato troppo vicino al prezzo corrente, vedi cosa restituisce la funzione

double stop_level=(double)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);

...

 

Forum sul trading, sistemi di trading automatico e test di strategia

Domande dai principianti MQL4 MT4 MetaTrader 4

Sergey Gritsay, 2017.01.07 18:48

Forse a volte scommetti troppo vicino al prezzo corrente, vedi cosa ti restituisce la funzione

double stop_level=(double)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);

...


Grazie per la vostra partecipazione. Non ho capito come usare la funzione suggerita. Ma tu mi hai incoraggiato a saperne di più su questi errori sul grafico e ho capito che la ragione è che quando viene attivato uno Stop Loss, ma la candela non si è ancora chiusa, l'EA cerca di piazzare un nuovo ordine, ed è lì che si verifica l'errore. Devo pensare a come spiegare all'EA che è necessario un solo ordine per candela

 
RichLux:

Grazie per la vostra partecipazione. Non ho capito come usare la funzione suggerita. Ma tu mi hai incoraggiato a saperne di più su questi errori sul grafico e ho capito che la ragione è che quando viene attivato uno Stop Loss ma la candela non si è ancora chiusa l'EA cerca di piazzare un nuovo ordine, è lì che si verifica l'errore. Devo pensare a come spiegare all'EA che è necessario un solo ordine per candela

Se l'EA ha già un ordine sul simbolo, guarda la differenza(tempo di chiusura dell'ordine)-(tempo di apertura della candela), se la differenza è inferiore a PeriodSeconds() - non aprire un nuovo ordine.
 

Forum sul trading, sistemi di trading automatico e test di strategia

Domande dai principianti MQL4 MT4 MetaTrader 4

Vitalie Postolache, 2017.01.07 21:23

Guarda tra gli ordini chiusi, se l'Expert Advisor ha un ordine sul simbolo dato, guarda la differenza(tempo di chiusura dell'ordine) -(tempo di apertura della candela), se la differenza è inferiore a PeriodSeconds() - non aprire un nuovo ordine.

Ha fatto le cose un po' diversamente.

Nuova funzione bar:

bool NewBar()

{

static datetime lastbar = 0;

datetime curbar = Time[0];

se(lastbar != curbar)

{

ultima barra = curbar;

ritorno (vero);

}

else return(false);

}

e ho scritto condizioni per aprire solo se c'è una nuova barra