Domande su MQL5 Wizard e sulla libreria standard di classi di trading - pagina 14

 
Per esempio, guardiamo i segnali MACD. Un totale di 5 segnali di acquisto e 5 segnali di vendita sono descritti (inversione, incrocio con la linea di segnale, ecc.). C'è un modo per ottenere il valore di questi segnali in un dato momento? Cioè, formare un vettore di 10 elementi per ogni barra, dove ogni elemento corrisponde al segnale, 1 indica la sua presenza, e 0 - assenza? Quale metodo della classe CSignalMACD può essere usato per ottenere i valori corrispondenti?
 
IvanSD:

Per esempio, guardiamo i segnali MACD. Un totale di 5 segnali di acquisto e 5 segnali di vendita sono descritti (inversione, incrocio con la linea di segnale, ecc.). C'è un modo per ottenere il valore di questi segnali in un dato momento? Cioè, formare un vettore di 10 elementi per ogni barra, dove ogni elemento corrisponde al segnale, 1 indica la sua presenza, e 0 - assenza? Quale metodo della classe CSignalMACD può essere usato per ottenere i valori corrispondenti?
Sfortunatamente, non c'è questa funzionalità nella consegna standard.
 
uncleVic:
Sfortunatamente, questa funzionalità non è disponibile come caratteristica standard.
Grazie per la vostra risposta!
 

Ciao, aiutami qui. Ho creato un robot (il mio primo robot). Subito dopo l'avvio si spegne con il messaggio Expert initializing of robot (EURUSD,H1) failed. Non riesco a trovare altre informazioni al riguardo.

Ecco il suo codice:

--------------------------------------

//+------------------------------------------------------------------+

//| robot.mq5 |

//| Copyright 2012, MetaQuotes Software Corp.

//| http://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2012, MetaQuotes Software Corp.

#proprietà link "http://www.mql5.com"

#proprietà versione "1.00"

//+------------------------------------------------------------------+

//| Includi |

//+------------------------------------------------------------------+

#include <Expert\Expert.mqh>

//--- segnali disponibili

#include <Expert\robot\robot.mqh>

//--- disponibile trailing

#include <Expert\Trailing\TrailingNone.mqh>

//--- gestione del denaro disponibile

#include <Expert\Money\MoneyFixedLot.mqh>

//+------------------------------------------------------------------+

//| Ingressi

//+------------------------------------------------------------------+

//--- input per l'esperto

input string Expert_Title ="robot"; // nome del documento

ulong Expert_MagicNumber =24553; //

bool Expert_EveryTick =false; //--- ingressi per il segnale principale

//--- ingressi per il segnale principale

ingresso int Signal_ThresholdOpen =10; // valore di soglia del segnale da aprire [0...100]

input int Signal_ThresholdClose =10; // valore di soglia del segnale per chiudere [0...100]

input double Signal_PriceLevel =0.0; // Livello di prezzo per eseguire un'operazione

input double Signal_StopLevel =50.0; // livello di stop loss (in punti)

input double Signal_TakeLevel =50.0; // livello di Take Profit (in punti)

input int Signal_Expiration =4; // Scadenza degli ordini pendenti (in barre)

input int Signal_MaCross_FastPeriod=13; // My_MA_Cross(13,MODE_SMA,21,...) Periodo della MA veloce

input ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Metodo della MA veloce

input int Signal_MaCross_SlowPeriod=21; // My_MA_Cross(13,MODE_SMA,21,...) Periodo della MA lenta

input ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Metodo del MA lento

input double Signal_MaCross_Weight =1.0; // My_MA_Cross(13,MODE_SMA,21,...) Weight [0...1.0]

//--- input per denaro

input double Money_FixLot_Percent =10.0; // Percentuale

input double Money_FixLot_Lots =0.1; // volume fisso

//+------------------------------------------------------------------+

//| Oggetto esperto globale

//+------------------------------------------------------------------+

CExpert ExtExpert;

//+------------------------------------------------------------------+

//| funzione di inizializzazione dell'esperto ||

//+------------------------------------------------------------------+

int OnInit()

{

//--- Inizializzazione dell'esperto

if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))

{

//--- fallito

printf(__FUNCTION__+": errore di inizializzazione dell'esperto");

ExtExpert.Deinit();

ritorno(-1);

}

//--- Creazione del segnale

CExpertSignal *signal=nuovo CExpertSignal;

se(segnale==NULL)

{

//--- fallito

printf(__FUNCTION__+": errore nella creazione del segnale");

ExtExpert.Deinit();

ritorno(-2);

}

//---

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);

//--- Creazione del filtro MA_Cross

MA_Cross *filter0=nuovo MA_Cross;

se(filter0==NULL)

{

//--- fallito

printf(__FUNCTION__+": errore nella creazione del filtro0");

ExtExpert.Deinit();

ritorno(-3);

}

signal.AddFilter(filter0);

//- Impostare i parametri del filtro

filter0.FastPeriod(Signal_MaCross_FastPeriod);

filter0.FastMethod(Signal_MaCross_FastMethod);

filter0.SlowPeriod(Signal_MaCross_SlowPeriod);

filter0.SlowMethod(Signal_MaCross_SlowMethod);

filter0.Weight(Signal_MaCross_Weight);

//--- Creazione dell'oggetto finale

CTrailingNone *trailing=nuovo CTrailingNone;

se(trailing==NULL)

{

//--- fallito

printf(__FUNCTION__+": errore nella creazione di trailing");

ExtExpert.Deinit();

ritorno(-4);

}

//--- Aggiungere il finale all'esperto (sarà cancellato automaticamente))

if(!ExtExpert.InitTrailing(trailing))

{

//--- fallito

printf(__FUNCTION__+": errore di inizializzazione del trailing");

ExtExpert.Deinit();

ritorno(-5);

}

//--- Imposta i parametri finali

//--- Creazione dell'oggetto denaro

CMoneyFixedLot *money=nuovo CMoneyFixedLot;

se(soldi==NULL)

{

//--- fallito

printf(__FUNCTION__+": errore nella creazione di denaro");

ExtExpert.Deinit();

ritorno(-6);

}

//--- Aggiungere denaro all'esperto (sarà cancellato automaticamente))

if(!ExtExpert.InitMoney(money))

{

//--- fallito

printf(__FUNCTION__+": errore di inizializzazione del denaro");

ExtExpert.Deinit();

ritorno(-7);

}

//--- Imposta i parametri del denaro

money.Percent(Money_FixLot_Percent);

money.Lots(Money_FixLot_Lots);

//- Controlla tutti i parametri degli oggetti di trading

if(!ExtExpert.ValidationSettings())

{

//--- fallito

ExtExpert.Deinit();

ritorno(-8);

}

//--- Messa a punto di tutti gli indicatori necessari

if(!ExtExpert.InitIndicators())

{

//--- fallito

printf(__FUNCTION__+": errore di inizializzazione degli indicatori");

ExtExpert.Deinit();

ritorno(-9);

}

//--- ok

ritorno(0);

}

//+------------------------------------------------------------------+

//| funzione di deinizializzazione dell'esperto

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

{

ExtExpert.Deinit();

}

//+------------------------------------------------------------------+

//| funzione di gestione dell'evento "Tick".

//+------------------------------------------------------------------+

void OnTick()

{

ExtExpert.OnTick();

}

//+------------------------------------------------------------------+

//| funzione di gestione dell'evento "Trade" |

//+------------------------------------------------------------------+

void OnTrade()

{

ExtExpert.OnTrade();

}

//+------------------------------------------------------------------+

//| funzione di gestione dell'evento "Timer".

//+------------------------------------------------------------------+

void OnTimer()

{

ExtExpert.OnTimer();

}

//+------------------------------------------------------------------+

Quale potrebbe essere il problema. Non so nemmeno dove guardare prima.

Grazie in anticipo.

Automated Trading and Strategy Testing
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 
pasha191:

Ciao, aiutami qui. Ho creato un robot (il mio primo robot). Subito dopo l'avvio si spegne con il messaggio Expert initializing of robot (EURUSD,H1) failed. Non riesco a trovare altre informazioni al riguardo.


Non ho abbastanza informazioni.

Bisogno di

#include <Expert\robot\robot.mqh>

Ho bisogno di parametri di avvio (tester/terminale, server, coppia, tempo, ecc.)

PS Il codice sorgente è meglio allegare come file

 

Domande su MQL5 Wizard:

1) //--- input per il denaro
input double Money_FixLot_Percent =10.0; // Percentuale
input double Money_FixLot_Lots =0.1; // volume fisso
Cosa significano questi parametri? E come sono collegati?

2) Posso generare un EA che piazza ordini pendenti? Se sì, come?

3) Cosa significa la variabile Signal_Expiration? Come si usa?

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
evrika:

Domande su MQL5 Wizard:

1) //--- input per il denaro
input double Money_FixLot_Percent =10.0; // Percentuale
input double Money_FixLot_Lots =0.1; // volume fisso
Cosa significano questi parametri? E come sono collegati?

2) Posso generare un EA che piazza ordini pendenti? Se sì, come?

3) Cosa significa la variabile Signal_Expiration? Come usarlo?

1) Il parametro Money_FixLot_Percent è usato per impostare il livello di "arresto forzato". Non toccarlo.

Il parametro Money_FixLot_Lots imposta un volume fisso (lotto) con cui il tuo Expert Advisor entrerà nel mercato.

Questi parametri non sono correlati in alcun modo.

2) Qualsiasi Expert Advisor generato da Wizard può negoziare ordini in sospeso. A questo scopo viene utilizzato il parametro ..._PriceLevel. A seconda del valore di questo parametro, l'Expert Advisor si comporta come segue:

0 - l'entrata nel mercato sarà al prezzo corrente;

>0 - l'entrata nel mercato sarà fatta usando ordini limite pendenti (migliori del prezzo corrente per il valore di questo parametro);

<0 - l'entrata nel mercato sarà fatta usando ordini Stop in sospeso (peggiore del prezzo corrente per il valore del parametro);

3) Il parametro Signal_Expiration imposta la durata di un ordine pendente (in barre del timeframe corrente).

 

Se genero un EA in MQL5 Wizard, quanti ordini può aprire simultaneamente un tale EA? Come è regolato questo?

Собери свой торговый советник в Мастере MQL5
Собери свой торговый советник в Мастере MQL5
  • 2011.01.14
  • MetaQuotes Software Corp.
  • www.mql5.com
Знание языков программирования теперь не является обязательным условием для создания торговых роботов. Если раньше это действительно служило непроходимым препятствием для реализации своих торговых стратегий, то появление Мастера MQL5 в корне изменило ситуацию. Начинающие трейдеры могут перестать тревожиться из-за отсутствия опыта программирования - с новым визардом, позволяющим быстро генерировать код советника, он не понадобится.
 
evrika:

Se genero un EA in MQL5 Wizard, quanti ordini può aprire simultaneamente un tale EA? Come si controlla questo?

1 ordine. Non è regolamentato.

Il Wizard è progettato per testare le strategie. Se vuoi di più, devi "limare" (scrivere a mano).

 
uncleVic:

2) Qualsiasi EA generato dal Wizard può negoziare ordini pendenti. A questo scopo viene utilizzato il parametro ..._PriceLevel. A seconda del valore di questo parametro, l'Expert Advisor si comporta come segue:

0 - l'entrata nel mercato sarà al prezzo corrente;

>0 - l'entrata nel mercato sarà fatta usando ordini limite pendenti (migliori del prezzo corrente per il valore di questo parametro);

<0 - l'entrata nel mercato sarà fatta usando ordini di stop in sospeso (peggiore del prezzo corrente per il valore del parametro);

In quali unità si misura il parametro PriceLevel? In punti? Cioè, se voglio impostare un ordine stop pendente 20 pip più alto del prezzo corrente,

Devo impostare questo parametro PriceLevel =-0.0020 ?