Ho generato un semplice Expert Advisor con VQL5 Wizard, il codice è qui sotto. Per favore, aiutatemi a scoprire perché la funzione "Scadenza degli ordini pendenti (in barre)" non funziona. Ho impostato qualsiasi valore di Signal_Expiration da 1 a 1000, ma l'ordine pendente esiste ancora solo in una barra. Allego anche le impostazioni dei parametri.
Per i test, sto usando un conto demo nel terminale Metatrader 5, build 2136.
Sinceramente, Vladimir.
//+------------------------------------------------------------------+//| EA_MasterMQL5.mq5 |//| Copyright 2019, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2019, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Include |//+------------------------------------------------------------------+#include <Expert\Expert.mqh>
//--- available signals#include <Expert\Signal\SignalITF.mqh>
//--- available trailing#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management#include <Expert\Money\MoneyFixedRisk.mqh>
//+------------------------------------------------------------------+//| Inputs |//+------------------------------------------------------------------+//--- inputs for expertinputstring Expert_Title ="EA_MB_MasterMQL5"; // Document nameulong Expert_MagicNumber =1473; //bool Expert_EveryTick =false; ////--- inputs for main signalinputint Signal_ThresholdOpen =0; // Signal threshold value to open [0...100]inputint Signal_ThresholdClose =0; // Signal threshold value to close [0...100]inputdouble Signal_PriceLevel =0.0; // Price level to execute a dealinputdouble Signal_StopLevel =50.0; // Stop Loss level (in points)inputdouble Signal_TakeLevel =50.0; // Take Profit level (in points)inputint Signal_Expiration =4; // Expiration of pending orders (in bars)inputint Signal_ITF_GoodHourOfDay=-1; // IntradayTimeFilter(-1,...) Good hourinputint Signal_ITF_BadHoursOfDay=8389119; // IntradayTimeFilter(-1,...) Bad hours (bit-map)inputint Signal_ITF_GoodDayOfWeek=-1; // IntradayTimeFilter(-1,...) Good day of weekinputint Signal_ITF_BadDaysOfWeek=0; // IntradayTimeFilter(-1,...) Bad days of week (bit-map)inputdouble Signal_ITF_Weight =1.0; // IntradayTimeFilter(-1,...) Weight [0...1.0]//--- inputs for moneyinputdouble Money_FixRisk_Percent =10.0; // Risk percentage//+------------------------------------------------------------------+//| Global expert object |//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+//| Initialization function of the expert |//+------------------------------------------------------------------+intOnInit()
{
//--- Initializing expertif(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
{
//--- failedprintf(__FUNCTION__+": error initializing expert");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Creating signal
CExpertSignal *signal=new CExpertSignal;
if(signal==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating signal");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//---
ExtExpert.InitSignal(signal);
signal.ThresholdOpen(Signal_ThresholdOpen);
signal.ThresholdClose(Signal_ThresholdClose);
signal.PriceLevel(Signal_PriceLevel);
signal.StopLevel(Signal_StopLevel);
signal.TakeLevel(Signal_TakeLevel);
signal.Expiration(Signal_Expiration);
//--- Creating filter CSignalITF
CSignalITF *filter0=new CSignalITF;
if(filter0==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating filter0");
ExtExpert.Deinit();
return(INIT_FAILED);
}
signal.AddFilter(filter0);
//--- Set filter parameters
filter0.GoodHourOfDay(Signal_ITF_GoodHourOfDay);
filter0.BadHoursOfDay(Signal_ITF_BadHoursOfDay);
filter0.GoodDayOfWeek(Signal_ITF_GoodDayOfWeek);
filter0.BadDaysOfWeek(Signal_ITF_BadDaysOfWeek);
filter0.Weight(Signal_ITF_Weight);
//--- Creation of trailing object
CTrailingNone *trailing=new CTrailingNone;
if(trailing==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating trailing");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Add trailing to expert (will be deleted automatically))if(!ExtExpert.InitTrailing(trailing))
{
//--- failedprintf(__FUNCTION__+": error initializing trailing");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Set trailing parameters//--- Creation of money object
CMoneyFixedRisk *money=new CMoneyFixedRisk;
if(money==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating money");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Add money to expert (will be deleted automatically))if(!ExtExpert.InitMoney(money))
{
//--- failedprintf(__FUNCTION__+": error initializing money");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Set money parameters
money.Percent(Money_FixRisk_Percent);
//--- Check all trading objects parametersif(!ExtExpert.ValidationSettings())
{
//--- failed
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Tuning of all necessary indicatorsif(!ExtExpert.InitIndicators())
{
//--- failedprintf(__FUNCTION__+": error initializing indicators");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- okreturn(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Deinitialization function of the expert |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
ExtExpert.Deinit();
}
//+------------------------------------------------------------------+//| "Tick" event handler function |//+------------------------------------------------------------------+voidOnTick()
{
ExtExpert.OnTick();
}
//+------------------------------------------------------------------+//| "Trade" event handler function |//+------------------------------------------------------------------+voidOnTrade()
{
ExtExpert.OnTrade();
}
//+------------------------------------------------------------------+//| "Timer" event handler function |//+------------------------------------------------------------------+voidOnTimer()
{
ExtExpert.OnTimer();
}
//+------------------------------------------------------------------+
La mia esperienza in MQL5 è il quarto giorno, ma ne ho già avuto abbastanza!
Riportare la funzione OrderCloseTime(), questa posizione può essere fatta in qualche modo programmaticamente.... - ordine - poi commercio - poi posizione, o è così difficile calcolare la posizione a macchina?
Osservare il comportamento innaturale della piattaforma.
1. ME5 non conserva le impostazioni dell'interfaccia che erano presenti quando è stato spento. In particolare, il pannello delle impostazioni scompare. Può essere ripristinato, ma deve essere fatto ogni volta che si accende.
2. Sto facendo un indicatore. Cambiare le impostazioni dell'indicatore in MT5 di solito porta a un fallimento: la forma delle linee cambia significativamente, il colore non può essere cambiato, ecc. Inoltre, se si cambiano le impostazioni in un indicatore appena installato, tutto funziona come previsto.
Problemi:
1. Sono solo io o è un problema generale? 2. Se c'è qualcosa che mi manca o che sto facendo male, per favore consigliatemi.
Se non è troppo disturbo, per favore correggete il codice MQL4 in modo che funzioni in ML5
Prima di tutto, è necessario scrivere correttamente le funzioni di sistema. Il modo più semplice per farlo è in MetaEditor 5 menu File - Create - Expert Advisor (template). Confronta il tuo codice e il mio:
Funzionerà per gli sviluppatori invece di OrderCloseTime()?
La mia esperienza in MQL5 è il quarto giorno, ma ne ho già avuto abbastanza!
Riportare la funzione OrderCloseTime(), questa posizione può essere fatta in qualche modo programmaticamente.... - ordine - poi commercio - poi posizione, o è così difficile calcolare la posizione a macchina?
Cosa vuoi ottenere esattamente? Avete bisogno del tempo dell'ultimo trade(tipo di trade "market exit")? O volete sapere il tempo di chiusura di una posizione nella storia del trading?
Osservare il comportamento innaturale della piattaforma.
1. ME5 non mantiene le impostazioni dell'interfaccia che erano presenti quando è stato spento. In particolare, il pannello delle impostazioni scompare. Si può ripristinare, ma bisogna farlo ogni volta che si accende.
Chi sono io? Chi è il pannello delle impostazioni?
ME = MetaEditor.
Il pannello delle impostazioni è il mio avvertimento. Intendo la barra degli strumenti con i pulsanti, incluso Compile. (Ho detto "impostazioni" per inerzia - sono io con MT5 che sto lottando anche con il pannello delle impostazioni degli indicatori)
Il pannello delle impostazioni è il mio avvertimento. Intendo la barra degli strumenti, che ha dei pulsanti, tra cui Compile. (Ho detto "impostazioni" per inerzia - sono io con MT5 che sto lottando anche con il pannello delle impostazioni dei parametri dell'indicatore)
Build 2138 del 06.09.2019.
Si prega di specificare su quale attrezzatura questo accade:
Buona giornata a tutti e grandi profitti!
Ho generato un semplice Expert Advisor con VQL5 Wizard, il codice è qui sotto. Per favore, aiutatemi a scoprire perché la funzione "Scadenza degli ordini pendenti (in barre)" non funziona. Ho impostato qualsiasi valore di Signal_Expiration da 1 a 1000, ma l'ordine pendente esiste ancora solo in una barra. Allego anche le impostazioni dei parametri.
Per i test, sto usando un conto demo nel terminale Metatrader 5, build 2136.
Sinceramente, Vladimir.
Funzionerà al posto di OrderCloseTime()?
La mia esperienza in MQL5 è il quarto giorno, ma ne ho già avuto abbastanza!
Riportare la funzione OrderCloseTime(), questa posizione può essere fatta in qualche modo programmaticamente.... - ordine - poi commercio - poi posizione, o è così difficile calcolare la posizione a macchina?
Buon pomeriggio a tutti!
Se non è troppo disturbo, per favore correggete il codice MQL4 in modo che funzioni in ML5
Osservare il comportamento innaturale della piattaforma.
1. ME5 non conserva le impostazioni dell'interfaccia che erano presenti quando è stato spento. In particolare, il pannello delle impostazioni scompare. Può essere ripristinato, ma deve essere fatto ogni volta che si accende.
2. Sto facendo un indicatore. Cambiare le impostazioni dell'indicatore in MT5 di solito porta a un fallimento: la forma delle linee cambia significativamente, il colore non può essere cambiato, ecc.
Inoltre, se si cambiano le impostazioni in un indicatore appena installato, tutto funziona come previsto.
Problemi:
1. Sono solo io o è un problema generale?
2. Se c'è qualcosa che mi manca o che sto facendo male, per favore consigliatemi.
Buon pomeriggio a tutti!
Se non è troppo disturbo, per favore correggete il codice MQL4 in modo che funzioni in ML5
Prima di tutto, è necessario scrivere correttamente le funzioni di sistema. Il modo più semplice per farlo è in MetaEditor 5 menu File - Create - Expert Advisor (template). Confronta il tuo codice e il mio:
Quando l'avrai corretto, andremo avanti...Funzionerà per gli sviluppatori invece di OrderCloseTime()?
La mia esperienza in MQL5 è il quarto giorno, ma ne ho già avuto abbastanza!
Riportare la funzione OrderCloseTime(), questa posizione può essere fatta in qualche modo programmaticamente.... - ordine - poi commercio - poi posizione, o è così difficile calcolare la posizione a macchina?
Cosa vuoi ottenere esattamente? Avete bisogno del tempo dell'ultimo trade(tipo di trade "market exit")? O volete sapere il tempo di chiusura di una posizione nella storia del trading?
Osservare il comportamento innaturale della piattaforma.
1. ME5 non mantiene le impostazioni dell'interfaccia che erano presenti quando è stato spento. In particolare, il pannello delle impostazioni scompare. Si può ripristinare, ma bisogna farlo ogni volta che si accende.
Chi sono io? Chi è il Pannello impostazioni?
Chi sono io? Chi è il pannello delle impostazioni?
ME = MetaEditor.
Il pannello delle impostazioni è il mio avvertimento. Intendo la barra degli strumenti con i pulsanti, incluso Compile.
Build 2138 del 06.09.2019.(Ho detto "impostazioni" per inerzia - sono io con MT5 che sto lottando anche con il pannello delle impostazioni degli indicatori)
ME = MetaEditor.
Il pannello delle impostazioni è il mio avvertimento. Intendo la barra degli strumenti, che ha dei pulsanti, tra cui Compile.
Build 2138 del 06.09.2019.(Ho detto "impostazioni" per inerzia - sono io con MT5 che sto lottando anche con il pannello delle impostazioni dei parametri dell'indicatore)
Si prega di specificare su quale attrezzatura questo accade:
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Bug, bug, domande
Vladimir Karputov, 2019.07.31 12:12
Specificare tali dati:
copiare tre righe dalla scheda "Log" (selezionare tre righe -> clic destro del mouse -> Copia)
e incollarlo nel tuo messaggio. Dovreste ottenere qualcosa del genere: