Codice Morse - pagina 3

 

Fare due parametri. Uno per l'uomo - stringa, il secondo per la macchina - int. La terza variabile è per la selezione del tipo. In ogni caso, all'avvio dell'indicatore, stampate la seconda opzione di codifica della combinazione. Se la conseguenza è impostata su 100, allora stampa informazioni aggiuntive - da quanti a quanti possono cambiare il parametro int.

Per una candela con apertura e chiusura uguali possiamo assumere che abbia la direzione della candela più vicina con apertura e chiusura disuguali. Se una candela è codificata con tre numeri, 0- per apertura e chiusura uguali, allora ci saranno troppe sequenze rare.

 

L'ottimizzatore ha bisogno di due parametri per funzionare: la lunghezza della combinazione e il contatore. Supponiamo che la lunghezza della nostra combinazione sia 4, allora 2^4 = 16. Significa che il contatore dovrebbe essere da 0 a 15. Passando attraverso di essa nell'ottimizzatore otterremo tutte le combinazioni di modelli a 4 cifre.

Per non confondere l'utente, è necessario aggiungere la struttura ENUM_PATTERN_TYPE, che imposta il tipo di pattern: numerico o stringa. Se selezionate un modello di stringa, non usate i contatori e la lunghezza delle combinazioni. E viceversa, se volete eseguire nell'ottimizzatore, selezionate il tipo di modello numerico.

 

Ho già visto qualcosa di simile, è ricercabile su Yandex per "candlecode"

 
Vasiliy Sokolov:

L'ottimizzatore ha bisogno di due parametri per funzionare: la lunghezza della combinazione e il contatore. Supponiamo che la lunghezza della nostra combinazione sia 4, allora 2^4 = 16. Significa che il contatore dovrebbe essere da 0 a 15. Passando attraverso di essa nell'ottimizzatore otterremo tutte le combinazioni di modelli a 4 cifre.

Per non confondere l'utente, è necessario aggiungere la struttura ENUM_PATTERN_TYPE, che definisce il tipo di pattern: numerico o stringa. Se selezionate un modello di stringa, non usate i contatori e la lunghezza delle combinazioni. E viceversa, se vogliamo eseguire nell'ottimizzatore, selezioniamo il tipo di pattern numerico.


Ho aggiunto la struttura ENUM_PATTERN_TYPE, mentre suggerisco di nascondere all'utente il parametro di tipo "int" che definisce il tipo di combinazione di candele:

  • comunque il tipo "int" è un numero e non è correlato in alcun modo al tipo binario di un parametro stringa
  • Il tipo "int" è necessario solo durante l'ottimizzazione.

ma lasciare solo questi parametri:

CTrade         m_trade;                      // trading object
//+------------------------------------------------------------------+
//| Enum pattern type: numerical or string                           |
//+------------------------------------------------------------------+
enum ENUM_PATTERN_TYPE
  {
   PATTERN_TYPE_NUMERICAL=0,  // numerical
   PATTERN_TYPE_STRING=1,     // string 
  };
//---
input ENUM_PATTERN_TYPE    InpPatternType          = PATTERN_TYPE_STRING;  // pattern type
input string               InpsMorseCode           = "101";                // string Morse code (max 5 characters)
input ENUM_POSITION_TYPE   InpPosType              = POSITION_TYPE_BUY;    // posinion type
input double               InpLot                  = 0.1;                  // lot
sinput ulong               m_magic                 = 88430400;             // magic number
input ulong                m_slippage              = 30;                   // slippage
//---
string sExtMorseCode="";
int max_string_len=5;         // limitation of the length of the pattern "string"
int i_morse_code=0;           // int Morse code (use only if pattern type=numerical)
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(InpPatternType==PATTERN_TYPE_STRING)
     {

Ingressi Codice Morse 1.002

 

Non capisco bene - sono programmatori o babbei?

Perché abbiamo bisogno di tradurre qualcosa in qualcosa?

Se abbiamo bisogno di un codice 101 - questo è il valore normale di 5. Ecco, qual è il problema? Tradurre mentalmente il decimale in binario?

Ho fatto esperimenti simili, solo che la mia candela aveva quattro misure in più, da piccola a grande. Questo fa otto diverse dimensioni di candele. E, di conseguenza, tre bit. Nel modello scriviamo il numero (ulong) - la griglia è più grande che per un modello a venti barre.

Il problema è, secondo me, inverosimile.

 
George Merts:

Non capisco bene - sono programmatori o babbei?

Perché abbiamo bisogno di tradurre qualcosa in qualcosa?

Se abbiamo bisogno di un codice 101 - questo è il valore normale di 5. Ecco, qual è il problema? Tradurre mentalmente il decimale in binario?

Ho fatto esperimenti simili, solo che la mia candela aveva quattro misure in più, da piccola a grande. Questo fa otto diverse dimensioni di candele. E, di conseguenza, tre bit. Nel modello scriviamo il numero (ulong) - la griglia è più grande che per un modello a venti barre.

Il problema è, secondo me, inverosimile.


Gli utenti normali non possono convertire mentalmente il decimale in binario :)
 
George Merts:

Non capisco bene - sono programmatori o babbei?

Perché abbiamo bisogno di tradurre qualcosa in qualcosa?

Se abbiamo bisogno di un codice 101 - questo è il valore normale di 5. Ecco, qual è il problema? Tradurre mentalmente il decimale in binario?

Ho fatto esperimenti simili, solo che la mia candela aveva quattro misure in più, da piccola a grande. Questo fa otto diverse dimensioni di candele. E, di conseguenza, tre bit. Nel modello scriviamo il numero (ulong) - la griglia è più grande che per un modello a venti barre.

Il problema è, secondo me, inverosimile.


Il programma sarà usato da un utente normale, non da un programmatore (è stato già menzionato sopra e più di una volta) - e per lui "101" e "5" sono due numeri diversi, mentre per lui "5" non contiene alcuna informazione sulla posizione relativa delle candele, ma "101" dice chiaramente "bullish, bearish, bullish".

 

Come si codifica la schivata?

Per esempio il modello "evening star" può essere bullish-dodge (o wolf o pin bar)-bear. Se si ignora la schivata (wolf o pin bar) allora il modello non viene identificato correttamente. Penso che 1 bit per codificare una candela non sarà sufficiente 2 bit per 1 candela.

Per esempio la candela toro è 01, la candela orso è 10 e le altre candele sono 11. Allora, la 'stella della sera' sarebbe 01 11 10, la 'stella del mattino' sarebbe 10 11 01.

....

Stavo anche pensando. Come codificare un modello di acquisizione? Una semplice combinazione rialzista-ribassista non ci dice nulla, ma una combinazione rialzista-ribassista ci dice già di una presa di posizione rialzista-ribassista. O in alternativa potremmo sommare queste due candele in una sola e ottenere una pin bar e codificare questa candela sommata come 11.


 
Vitalii Ananev:

Come si codifica la schivata?

Per esempio il modello "evening star" può essere bullish-dodge (o wolf o pin bar)-bear. Se si ignora la schivata (wolf o pin bar) allora il modello non viene identificato correttamente. Penso che 1 bit per codificare una candela non sarà sufficiente 2 bit per 1 candela.

Per esempio la candela toro è 01, la candela orso è 10 e le altre candele sono 11. Allora la "stella della sera" sarà 01 11 10, la "stella del mattino" sarà 10 11 01


Le ombre non sono codificate in alcun modo (almeno in questa fase). Forse più tardi ...
 
Vladimir Karputov:

Le ombre non sono codificate in alcun modo (almeno in questa fase). Forse più tardi...


Dovremmo considerare tutto in una volta per evitare di rifarlo più tardi.

....

Di nuovo, se torniamo al modello "Evening Star", può essere visto come un bullish-small candle-bearish e un bullish-bearish takeover. Significa che abbiamo un modello composito composto da una candela rialzista e un assorbimento ribassista. E se sommiamo tutte e tre le candele del modello, otteniamo di nuovo una pin bar.