Discussione sull’articolo "L'implementazione di una modalità multivaluta su MetaTrader 5" - pagina 2

 
Lizar:

Ma il fatto che l'esperto nel tester non riesca a caricare la spia è strano. Funziona nella demo?

Riceve un errore

ERR_INDICATOR_CANNOT_CREATE

4802

L'indicatore non può essere creato

Vedere perché l'indicatore non può essere creato.
 
Yedelkin:
Riceve un errore

ERR_INDICATOR_CANNOT_CREATE

4802

L'indicatore non può essere creato

Vedere perché l'indicatore non può essere creato.

Non riesco ancora a capirlo. Sulla demo funziona, ma nel tester non si carica (non si crea). Provato anche questo:

#property tester_indicator "iSpy.ex5"
Non aiuta.
 
Lizar:

Non riesco ancora a trovare un indizio. Sulla demo funziona, ma nel tester non si carica (non crea). Provato anche questo:

Non aiuta.

Con il metodo del pungolo scientifico, ha funzionato nel tester:

   if(iCustom("GBPUSD",PERIOD_M1,"iSpy.ex5",ChartID(),0)==INVALID_HANDLE) 

Ed è stato sufficiente inserire solo la prima condizione, per "GBPUSD". Ora la domanda: perché proprio così?

 
Yedelkin:

Secondo il metodo scientifico, ecco come funzionava nel tester:

Ed è stato sufficiente inserirlo solo nella prima condizione, per "GBPUSD". Ora la domanda è: perché proprio così?

Wow, il "poking scientifico" è una grande cosa nel nostro settore. Perché sia così è una domanda per gli sviluppatori, secondo me.

Grazie per avermi aiutato a capirlo.

 
Lizar:

C'è una riga nella funzione OnCalculate() del pannello di controllo MCM della spia:

Per impostazione predefinita, il prezzo[rates_total-1] è uguale al prezzo di chiusura dell'ultima barra non conclusa, che a sua volta è uguale all'ultimo prezzo d'acquisto.

Se volete ottenere forzatamente il prezzo ask, sostituite questa riga, per esempio, con....

Grazie, ma è un po' sbagliato, cioè si può ottenere sia il bid che l'ask. Ma ho bisogno di ottenere entrambi i prezzi, ask e bid, per analizzare situazioni come questa.

2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 prezzo=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 prezzo=1.35778
tre ticks e l'offerta non cambia, quindi (forse) l'offerta è cambiata. vorrei ottenere informazioni più complete.

E' possibile?

 
Trolls:

Grazie, ma è un po' sbagliato, cioè si può ottenere sia il bid che l'ask. Ma per ottenere entrambi i prezzi contemporaneamente, sia bid che ask, è necessario analizzare situazioni come questa.

2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 prezzo=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 prezzo=1.35778
tre ticks e l'offerta non cambia, quindi (forse) l'offerta è cambiata. vorrei ricevere informazioni più complete.

È possibile?

È possibile, ci sono diversi modi:

1. avere due spie sullo stesso simbolo con id diversi. Uno invierà bid e l'altro ask.

2. avere una spia sullo stesso simbolo, ma farle inviare due eventi bid e ask in sequenza con id diversi.

3. Ci sono altre opzioni, ma sono già associate a modifiche significative dello schema di passaggio dei parametri a OnChartEvent: non le consiglio.

Документация по MQL5: Основы языка / Функции / Передача параметров
Документация по MQL5: Основы языка / Функции / Передача параметров
  • www.mql5.com
Основы языка / Функции / Передача параметров - Документация по MQL5
 
Utilizzare la spia come "semaforo dell'arrivo di un nuovo tick" e nell'Expert Advisor ottenere informazioni complete sul tick utilizzando SymbolInfoTick.
 
Kos:
Utilizzate la spia come "semaforo dell'arrivo di un nuovo tick" e nell'Expert Advisor ottenete informazioni complete sul tick utilizzando SymbolInfoTick.

Ottima soluzione.
 

Datemi un suggerimento, se non vi dispiace. L'articolo contiene un esempio di enumerazione

enum ENUM_CHART_EVENT_SYMBOL
  {
   CHARTEVENT_INIT      =0,          // Evento "Inizializzazione"
   CHARTEVENT_NO        =0,          // Eventi scollegati

   CHARTEVENT_NEWBAR_M1 =0x00000001, // Evento "nuova barra" sul grafico a 1 minuto
   CHARTEVENT_NEWBAR_M2 =0x00000002, // Evento "nuova barra" sul grafico a 2 minuti
   CHARTEVENT_NEWBAR_M3 =0x00000004, // Evento "nuova barra" sul grafico a 3 minuti
   CHARTEVENT_NEWBAR_M4 =0x00000008, // Evento "nuova barra" sul grafico a 4 minuti
   
   ...
   
   CHARTEVENT_ALL       =0xFFFFFFFF, // Tutti gli eventi sono abilitati
  };

e un esempio di lavoro con i valori di questa enumerazione:

if((flag_event & CHARTEVENT_NEWBAR_M1)!=0) EventCustom(CHARTEVENT_NEWBAR_M1,price_current

Costruzioni simili sono presenti nella libreria standard. Per quanto ho capito, stiamo parlando di numeri esadecimali e di operazioni bitwise, ma un paio di articoli generali trovati in Internet non hanno aiutato a chiarire il significato e lo scopo del loro uso in MQL5. Potreste indicarmi dove è possibile familiarizzare in modo chiaro e netto con le peculiarità della logica esadecimale utilizzata in MQL5?

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Yedelkin:

Datemi un suggerimento, se non vi dispiace. L'articolo contiene un esempio di enumerazione

e un esempio di lavoro con i valori di questa enumerazione:

Costruzioni simili sono presenti nella libreria standard. Per quanto ho capito, stiamo parlando di numeri esadecimali e di operazioni bitwise, ma un paio di articoli generali trovati in Internet non hanno aiutato a chiarire il significato e lo scopo del loro uso in MQL5. Potreste indicarmi dove è possibile familiarizzare in modo chiaro e netto con le peculiarità della logica esadecimale utilizzata in MQL5?

La logica esadecimale è la stessa ovunque. È possibile leggere i sistemi numerici qui. Qui è possibile leggere dei sistemi numerici posizionali e vedere i riferimenti ai 16 e ai binari. Ci sono anche esempi di conversione da sistema a sistema.

Tutte le operazioni bitwise sono destinate al sistema binario. Informazioni sulle operazioni bitwise in MQL5 qui.