Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 89
![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
come posso determinare il tempo di trading giornaliero nei futures?
MarketInfo(Symbol(),MODE_STARTING)
MarketInfo(Symbol(),MODE_EXPIRATION)
restituisce degli zeri
Quale broker?
Quindi, prima di tutto, dovreste controllare con il vostro broker.
Cari membri del forum, come scrivere la condizione di attraversamento della linea del canale da parte del prezzo nel vostro Expert Advisor, per esempio, il prezzo attraversa la linea del canale dall'alto e il commercio è aperto o chiuso? Si prega di notare che sono interessato al momento di questo crossover. Sarei felice di aiutare.
double price0=NormalizeDouble(ObjectGetValueByShift("NameYourChannelLine", 0),Digits)); - valore della vostra linea sulla barra 0.
double price1=NormalizeDouble(ObjectGetValueByShift("NameYourChannelLine", 1),Digits)); - valore della vostra linea sulla barra 1.
E il modo più semplice per determinare il momento della rottura sulla barra zero: se(High[0]>prezzo0 && High[1]<=prezzo1) {la linea ha rotto verso l'alto}, se(Low[0]<prezzo0 && Low[1]>=prezzo1) {la linea ha rotto verso il basso}. Gli if saranno TRUE dal momento della rottura fino alla fine della barra corrente. È auspicabile che la vostra linea di canale abbia la proprietà OBJPROP_RAY==True
Cari membri del forum, come fare una condizione in un EA per l'attraversamento della linea del canale, per esempio, se il prezzo attraversa la linea del canale dall'alto e viene aperto o chiuso un affare? Si prega di notare che sono interessato al momento di questo crossover. Sarei felice di aiutare.
Un paio di modi:
Se Ask > linea del canale e Low[1] <=linea del canale, incrocia verso l'alto
Se Bid < linea del canale e High[1] >=linea del canale, incrocia verso il basso
Potete controllare con MA con il periodo 1
. Devo aver posto male la domanda, avrei dovuto allegare parte del codice. Mi correggo.
Come suggerito da
artmedia70 ha indicato l'incrocio da chiudere come segue. Chiude l'affare secondo lo screenshot. Ma dobbiamo chiudere l'affare dove c'è la croce
void CheckForClose()
{
doppio PriceHigh, PriceLow;
//---- go trading solo per i primi tik del nuovo bar
se(Volume[0]>1) ritorno;
PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0);
PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0);
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=124 || OrderSymbol()!=Symbol()) continua;
//---- controllare il tipo di ordine
if(OrderType()==OP_BUY)
{
if(Low[1]<=PriceHigh && Ask>=PriceHigh ) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
pausa;
}
if(OrderType()==OP_SELL)
{
if(High[1]>=PriceLow && Bid<=PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
pausa;
}
}
//----
}
come si può selezionare l'ultimo ordine CHIUSO nel software e ottenere informazioni da esso?
Puoi trovare tutto quello che ti piace.
Grazie per il vostro aiuto
. Devo aver posto male la domanda, avrei dovuto allegare parte del codice. Mi correggo.
Come suggerito da
artmedia70 ha indicato l'incrocio da chiudere come segue. L'affare si sta chiudendo secondo lo screenshot. Ma dobbiamo chiudere l'affare dove c'è la croce
void CheckForClose()
{
doppio PriceHigh, PriceLow;
//---- go trading solo per i primi tik del nuovo bar
se(Volume[0]>1) ritorno;
PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0);
PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0);
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=124 || OrderSymbol()!=Symbol()) continua;
//---- controllare il tipo di ordine
if(OrderType()==OP_BUY)
{
if(Low[1]<=PriceHigh && Ask>=PriceHigh ) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
pausa;
}
if(OrderType()==OP_SELL)
{
if(High[1]>=PriceLow && Bid<=PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
pausa;
}
}
//----
}
ExtremeTMA - un'esagerazione empia. È un bel pezzo di storia - le ultime 30 battute, se non di più. L'ho usato per scrivere un Expert Advisor - fa schifo. Immaginate: appare un segnale, l'ho raggiunto, ma qualche tempo dopo il segnale non esiste sulla storia - l'indicatore viene ridisegnato e si scopre che sono entrato per niente
Hai fatto un errore nel determinare l'incrocio: if(Low[1]<=PriceHigh && Ask>=PriceHigh ) ... dovreste scrivere if(Low[1]<=PriceHigh && Ask>PriceHigh ) ... E per l'opposto per analogia.
Inserisci il codice con il pulsante SRC nel pannello nella parte superiore della finestra di input del tuo messaggio
ZZZY Dov'è lo screenshot con la croce?
ExtremeTMA - sono empiamente sovraccarichi. E un'enorme fetta di storia - le ultime 30 battute, se non di più. L'ho usato per scrivere un Expert Advisor - fa schifo. Immaginate: ho ricevuto un segnale, sono entrato, e qualche tempo dopo il segnale non esiste nella storia - l'indicatore ha fatto troppi ridisegni e si scopre che sono entrato nel mercato invano
Hai fatto un errore nel determinare l'incrocio: if(Low[1]<=PriceHigh && Ask>=PriceHigh ) ... dovreste scrivere if(Low[1]<=PriceHigh && Ask>PriceHigh ) ... E per l'opposto per analogia.
SZY Il codice deve essere incollato premendo il pulsante SRC nel pannello in alto della finestra di inserimento del testo
Corretto, ho chiuso il trade allo stesso modo come nello screenshot sopra, e dovrebbe essere dove c'è la croce rossa.
Sono d'accordo che ExtremeTMA ridisegna, ma immagino che non influisca sulla ricerca dei punti di ingresso, la cosa principale qui sono i filtri. Ho usato l'indicatore TDI. Ho allegato quello che ho fatto (non ho buone mani, ecco perché questo EA dovrebbe essere gestito correttamente). Ho solo un problema con esso, ci vogliono circa 5 ore in tester per 1 anno (ho fatto un errore da qualche parte). Se non è difficile cercare gli errori.
Corretto, chiuso il trade allo stesso modo come nello screenshot sopra, ma dove la croce rossa dovrebbe essere.
Sono d'accordo sul fatto che ExtremeTMA è in overdrawing, ma credo che non influisca sulla ricerca di punti di ingresso, la cosa principale qui sono i filtri. Ho usato l'indicatore TDI. Ho allegato la punta (le mie mani non sono semplici, il progetto Expert Advisor è proprio come le mie mani). Ho solo un problema con esso, ci vogliono circa 5 ore in tester per 1 anno (ho fatto un errore da qualche parte). Se non è difficile cercare gli errori.
Non ho ancora cercato gli errori - c'è molto da fare.
Per chiudere Sell dove si trova la croce rossa, è necessario controllare la barra corrente. Se Ask<= livello di chiusura && High[1]> livello di chiusura