Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 137
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ciao a tutti, come faccio a scrivere la mia condizione! Ho bisogno di mettere un ordine stop-loss dopo che il prezzo ha superato la distanza stop-loss
per Buy.....
se( )
{
------------
}
per Sell.....
per trasferire STB a Breakeven, il ticket dell'ordine e la distanza in pip sono passati nella funzione
{
double sl=0.0;
if(OrderSelect(ticket,SELECT_BY_TICKET))
{
if(OrderType()==OP_BUY)
{
if(Bid>=OrderOpenPrice() && Bid-OrderOpenPrice()>=distance*_Point) sl=OrderOpenPrice();
if(OrderStopLoss()!=0 && OrderStopLoss()>=OrderOpenPrice())return;
}
if(OrderType()==OP_SELL)
{
if(Ask<=OrderOpenPrice() && OrderOpenPrice()-Ask>=distance*_Point) sl=OrderOpenPrice();
if(OrderStopLoss()!=0 && OrderStopLoss()<=OrderOpenPrice())return;
}
ResetLastError();
if(sl<=0)return;
if(!OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0))
{
int error=GetLastError();
rezult=StringConcatenate(OrderSymbol(),": error modifying StopLoss order ",OrderTicket()," ",TypeToStr(OrderType())," №- ",error);
Print(rezult);
}
}
}
...
Non ci sarà nessuna pittura)
La logica di ricerca stessa è pesante lì, e come renderla più facile - non lo so ancora.
Vitaly, inizialmente ho cercato di spiegarti che non sono i calcoli a rallentare il tester, ma gli oggetti grafici nel test visivo. Fallo come lui consiglia
Si può rotolare nell'indicatore senza disegnare). Ed è meglio fare una scelta. Hop - disegno, hop - nessun disegno:)
e vedere la differenza di velocità.
Non è nemmeno il disegno che è in ritardo, è solo la presenza della grafica sul grafico.
Non è nemmeno il disegno che rallenta le cose, è solo la presenza di grafici sul grafico.
Vitaly, inizialmente ho cercato di spiegarti che non sono i calcoli a rallentare il tester, ma gli oggetti grafici nel test visivo. Fai quello che dice
e vedere la differenza di velocità.
Non è nemmeno il disegno che ritarda, è solo la presenza della grafica sul grafico.
Ho testato la funzione senza alcun grafico, il grafico è stato fatto solo per me per vedere la correttezza dei calcoli mentre scrivevo il codice - era di natura puramente tecnica qualche tempo fa e da tempo è stato rimosso dal codice. Il grafico è vuoto durante i test.
Così, quando non ho la funzione, allora il test "vola", ma collegare la funzione - va lentamente.
P.S. Non ho bisogno di oggetti grafici in linea di principio. Lasciate perdere la grafica - non ce l'ho e non la voglio avere!
Ho testato la funzione senza alcun grafico, il grafico è stato fatto solo per vedere la correttezza dei calcoli durante la scrittura del codice - era puramente tecnico ed è stato rimosso dal codice molto tempo fa. Il grafico è vuoto durante i test.
Così, quando non ho la funzione, il test "vola", ma collegare la funzione - va lentamente.
P.S. Non ho bisogno di oggetti grafici in linea di principio. Lasciate perdere la grafica - non ce l'ho e non la voglio avere!
Avete guardato qui?
Bene, cercherò di inserire le funzioni nell'EA. Più tardi posterò il risultato.
Grazie!!!
Per favore aiutatemi a capire come scrivere correttamente il codice per ottenere l'indice delle barre aperte alle 4:00 e alle 15:00
Questo è uno.
int shift=Bars("EURUSD",PERIOD_CURRENT,some_time,TimeCurrent());
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Sono due.
int shift=iBarShift("EURUSD",PERIOD_CURRENT,some_time);
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Questo è uno.
int shift=Bars("EURUSD",PERIOD_CURRENT,some_time,TimeCurrent());
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Sono due.
int shift=iBarShift("EURUSD",PERIOD_CURRENT,some_time);
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);