aiutare a mettere a punto l'indicatore - non riesco a capire l'ultima barra!
L'indicatore considera una serie di vittorie continue per le opzioni binarie, tenendo conto che la scommessa sarà fatta ogni 2 barre (cioè, dopo una - vittoria/perdita, aspetta la barra corrente), la variabile esterna è un'analisi del prezzo della barra precedente in un prezzo al rialzo o al ribasso
Ho la sensazione che funzioni, ma online l'ultima barra non viene considerata correttamente, e di conseguenza se metto l'indicatore su M1 i dati della storia saranno corretti, ma tutto online non viene calcolato correttamente, il codice:
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Ошибки, баги, вопросы Ошибка после команды CopyClose...
yur4ik: Salve, per favore aiutatemi con il modulo dei segnali per chiudere le posizioni. Cosa sto facendo di sbagliato?
Il vostro file è il modulo SIGNAL. Nel sistema Expert Advisor, è integrato allo stesso modo del modulo SIGNALS dell'indicatore USER. In altre parole, i segnali generati dal vostro modulo hanno un PESO, e può succedere che questo peso non sia sufficiente per far scattare il segnale.
Dovete pensare al modo migliore per fare la chiusura nel vostro caso. Forse non dovreste farlo nel modulo dei segnali
Il vostro file è il modulo SIGNAL. Nel sistema Expert Advisor, è integrato allo stesso modo del modulo SIGNALS dell'indicatore USER. In altre parole, i segnali generati dal vostro modulo hanno un PESO, e può succedere che questo peso non sia sufficiente per far scattare il segnale.
Dovete pensare al modo migliore per fare la chiusura nel vostro caso. Potresti non volerlo fare in un modulo di segnale.
Vorrei che fosse fatto come un modulo di segnali che potrebbe essere raccolto da un generatore di Expert Advisor. Nel momento in cui il modulo deve essere attivato, LongCondition() e ShortCondition() nel secondo modulo EA restituiscono valori zero - cioè peso=0, ho capito bene? Di conseguenza, il peso di questo modulo deve superare il segnale, ma non funziona. In CheckCloseLong() e CheckCloseShort(), ho inserito le funzioni Print("-------------"); e Print(time_GMT_DST()); che, durante il normale funzionamento del modulo, dovrebbero fare delle voci appropriate nel log al ricevimento di ogni tick. Le entrate non vengono effettuate; CheckCloseLong() e CheckCloseShort() non vengono chiamate. Qual è la fregatura?
Mi piacerebbe che fosse sotto forma di un modulo di segnali, in modo da poterlo assemblare attraverso il generatore di EA. Nel momento in cui il modulo deve essere attivato, LongCondition() e ShortCondition() nel secondo modulo dell'EA restituiscono valori zero - cioè peso=0, ho capito bene? Di conseguenza, il peso di questo modulo deve superare il segnale, ma non funziona. In CheckCloseLong() e CheckCloseShort(), ho inserito le funzioni Print("-------------"); e Print(time_GMT_DST()); che, durante il normale funzionamento del modulo, dovrebbero fare delle voci appropriate nel log al ricevimento di ogni tick. Le entrate non vengono effettuate; CheckCloseLong() e CheckCloseShort() non vengono chiamate. Qual è la fregatura?
Sono certamente una spiegazione maldestra, ma sto imparando
Utilizzare i metodi
//--- methods of checking if the market models are formedvirtualint LongCondition(void);
virtualint ShortCondition(void);
Ciao, puoi dirmi come fare un contatore per i trade perdenti? L'Expert Advisor analizza l'ultimo trade sulla storia - se non è redditizio, allora aggiunge +1 alla variabile, che sarà il numero di trade perdenti consecutivi.
Non appena arriva un trade redditizio - la variabile deve essere azzerata.
Salve, potreste consigliarmi come fare un contatore per i trade perdenti? L'Expert Advisor analizza l'ultimo trade sulla storia - se è perdente, allora aggiunge +1 alla variabile, che sarà il numero di trade perdenti consecutivi.
Non appena arriva un trade redditizio, la variabile deve essere azzerata.
Possiamo rifiutarci di lavorare con la storia del trading e lavorare solo con OnTradeTransaction() - lì prenderemo una transazione di tipo "OUT" - cioè sarà la chiusura della posizione. Una volta trovato questo commercio - determiniamo se è stato redditizio o non redditizio. Rispettivamente, le"perdite" del contatore dovrebbero essere azzerate o aumentate.
//+------------------------------------------------------------------+//| TradeTransaction function |//+------------------------------------------------------------------+voidOnTradeTransaction(constMqlTradeTransaction &trans,
constMqlTradeRequest &request,
constMqlTradeResult &result)
{
//--- get transaction type as enumeration value ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in historyif(type==TRADE_TRANSACTION_DEAL_ADD)
{
long deal_ticket =0;
long deal_order =0;
long deal_time =0;
long deal_time_msc =0;
long deal_type =-1;
long deal_entry =-1;
long deal_magic =0;
long deal_reason =-1;
long deal_position_id =0;
double deal_volume =0.0;
double deal_price =0.0;
double deal_commission =0.0;
double deal_swap =0.0;
double deal_profit =0.0;
string deal_symbol ="";
string deal_comment ="";
string deal_external_id ="";
if(HistoryDealSelect(trans.deal))
{
deal_ticket =HistoryDealGetInteger(trans.deal,DEAL_TICKET);
deal_order =HistoryDealGetInteger(trans.deal,DEAL_ORDER);
deal_time =HistoryDealGetInteger(trans.deal,DEAL_TIME);
deal_time_msc =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC);
deal_type =HistoryDealGetInteger(trans.deal,DEAL_TYPE);
deal_entry =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
deal_magic =HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
deal_reason =HistoryDealGetInteger(trans.deal,DEAL_REASON);
deal_position_id =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID);
deal_volume =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
deal_price =HistoryDealGetDouble(trans.deal,DEAL_PRICE);
deal_commission =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION);
deal_swap =HistoryDealGetDouble(trans.deal,DEAL_SWAP);
deal_profit =HistoryDealGetDouble(trans.deal,DEAL_PROFIT);
deal_symbol =HistoryDealGetString(trans.deal,DEAL_SYMBOL);
deal_comment =HistoryDealGetString(trans.deal,DEAL_COMMENT);
deal_external_id =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID);
}
elsereturn;
if(deal_symbol==Symbol() && deal_magic==m_magic)
if(deal_entry==DEAL_ENTRY_OUT)
{
if(deal_commission+deal_swap+deal_profit>0)
{
losses=0;
}
else
{
losses++;
}
}
}
}
E il controllo della storia del trading dovrebbe essere fatto in OnInit() - una volta all'inizio dell'Expert Advisor.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
aiutare a mettere a punto l'indicatore - non riesco a capire l'ultima barra!
L'indicatore considera una serie di vittorie continue per le opzioni binarie, tenendo conto che la scommessa sarà fatta ogni 2 barre (cioè, dopo una - vittoria/perdita, aspetta la barra corrente), la variabile esterna è un'analisi del prezzo della barra precedente in un prezzo al rialzo o al ribasso
Ho la sensazione che funzioni, ma online l'ultima barra non viene considerata correttamente, e di conseguenza se metto l'indicatore su M1 i dati della storia saranno corretti, ma tutto online non viene calcolato correttamente, il codice:
grazie in anticipo!
Salve, per favore aiutatemi con il modulo dei segnali per chiudere le posizioni. Cosa sto facendo di sbagliato?
Il vostro file è il modulo SIGNAL. Nel sistema Expert Advisor, è integrato allo stesso modo del modulo SIGNALS dell'indicatore USER. In altre parole, i segnali generati dal vostro modulo hanno un PESO, e può succedere che questo peso non sia sufficiente per far scattare il segnale.
Dovete pensare al modo migliore per fare la chiusura nel vostro caso. Forse non dovreste farlo nel modulo dei segnali
Il vostro file è il modulo SIGNAL. Nel sistema Expert Advisor, è integrato allo stesso modo del modulo SIGNALS dell'indicatore USER. In altre parole, i segnali generati dal vostro modulo hanno un PESO, e può succedere che questo peso non sia sufficiente per far scattare il segnale.
Dovete pensare al modo migliore per fare la chiusura nel vostro caso. Potresti non volerlo fare in un modulo di segnale.
Vorrei che fosse fatto come un modulo di segnali che potrebbe essere raccolto da un generatore di Expert Advisor. Nel momento in cui il modulo deve essere attivato, LongCondition() e ShortCondition() nel secondo modulo EA restituiscono valori zero - cioè peso=0, ho capito bene? Di conseguenza, il peso di questo modulo deve superare il segnale, ma non funziona. In CheckCloseLong() e CheckCloseShort(), ho inserito le funzioni Print("-------------"); e Print(time_GMT_DST()); che, durante il normale funzionamento del modulo, dovrebbero fare delle voci appropriate nel log al ricevimento di ogni tick. Le entrate non vengono effettuate; CheckCloseLong() e CheckCloseShort() non vengono chiamate. Qual è la fregatura?
Sono maldestro, naturalmente, ma sto imparando.Mi piacerebbe che fosse sotto forma di un modulo di segnali, in modo da poterlo assemblare attraverso il generatore di EA. Nel momento in cui il modulo deve essere attivato, LongCondition() e ShortCondition() nel secondo modulo dell'EA restituiscono valori zero - cioè peso=0, ho capito bene? Di conseguenza, il peso di questo modulo deve superare il segnale, ma non funziona. In CheckCloseLong() e CheckCloseShort(), ho inserito le funzioni Print("-------------"); e Print(time_GMT_DST()); che, durante il normale funzionamento del modulo, dovrebbero fare delle voci appropriate nel log al ricevimento di ogni tick. Le entrate non vengono effettuate; CheckCloseLong() e CheckCloseShort() non vengono chiamate. Qual è la fregatura?
Sono certamente una spiegazione maldestra, ma sto imparandoUtilizzare i metodi
Invece dei loro CheckCloseLong e CheckCloseShort.
Grazie.
Ciao, puoi dirmi come fare un contatore per i trade perdenti?
L'Expert Advisor analizza l'ultimo trade sulla storia - se non è redditizio, allora aggiunge +1 alla variabile, che sarà il numero di trade perdenti consecutivi.
Non appena arriva un trade redditizio - la variabile deve essere azzerata.
Salve, potreste consigliarmi come fare un contatore per i trade perdenti?
L'Expert Advisor analizza l'ultimo trade sulla storia - se è perdente, allora aggiunge +1 alla variabile, che sarà il numero di trade perdenti consecutivi.
Non appena arriva un trade redditizio, la variabile deve essere azzerata.
Possiamo rifiutarci di lavorare con la storia del trading e lavorare solo con OnTradeTransaction() - lì prenderemo una transazione di tipo "OUT" - cioè sarà la chiusura della posizione. Una volta trovato questo commercio - determiniamo se è stato redditizio o non redditizio. Rispettivamente, le"perdite" del contatore dovrebbero essere azzerate o aumentate.
E il controllo della storia del trading dovrebbe essere fatto in OnInit() - una volta all'inizio dell'Expert Advisor.Ciao a tutti,
Potete dirmi come posso cancellare programmaticamente il registro EA prima di visualizzare le informazioni in esso:?
Solo attraverso Win API?
Grazie!
Ciao a tutti,
Potete dirmi come posso cancellare programmaticamente il registro EA prima di visualizzare le informazioni in esso:?
Solo attraverso Win API?
Grazie!