struct SPoint
{
double mAsk;
double mBid;
double mLow;
double mHigh;
double mOpen;
double mClose;
double mPoint;
double mSpread;
double mVolume;
datetime mTime;
};
struct SSymbol
{
string mName;
double mMean;
double mUnit;
double mOrder;
};
struct SSets
{
SSymbol mSymbol;
double mAsk[];
double mBid[];
double mLow[];
double mHigh[];
double mOpen[];
double mClose[];
double mPoint[];
double mSpread[];
double mVolume[];
datetime mTime[];
};
struct SName
{
string mData;
SSets mSeries[];
};
int getCodes(int length) // length - parameter that defines required sequence size
{
SSets iSeries[];
SName iCombinations[];
int order = iSets.getPairs(iSeries, InpSymbols); // split comma-separated string into array of structures iSeriesint bars = iSets.getSourceSets(iSeries, PERIOD_CURRENT, order, InpDepth, InpShift); // convert prices from array of structures MqlRates to iSeriesif (bars < 1)
{
return0;
}
int codes[];
ArrayResize(codes, length);
for (int k = 0; k < order; k++) // loop over all symbols in iSeries
{
ZeroMemory(codes);
ArrayResize(iCombinations, k + 1);
iCombinations[k].mData = iSeries[k].mSymbol.mName;
double point = SymbolInfoDouble(iSeries[k].mSymbol.mName, SYMBOL_POINT);
do
{
string comboChain = NULL;
for (int i = length - 1; i >= 0; i--)
{
comboChain = IntegerToString(codes[i]) + comboChain; // get combination from 000 to 111 on each iteration
}
for (int n = bars - 1; n >= length; n--) // loop over prices for each symbol
{
double pips = 0;
string comboSymbol = NULL;
for (int i = 0; i < length; i++) // comparison of price sequence with generated sequence
{
string symbolUnit = "X";
double range = iSeries[k].mClose[n - i] - iSeries[k].mOpen[n - i];
if (range > 0)
{
symbolUnit = "1";
pips += range;
}
if (range < 0)
{
symbolUnit = "0";
pips -= range;
}
comboSymbol = symbolUnit + comboSymbol; // real prices define combination
}
if (comboChain == comboSymbol) // compare generated sequence and real sequence
{
int index = -1;
int count = ArraySize(iCombinations[k].mSeries);
for (int i = 0; i < count; i++)
{
if (iCombinations[k].mSeries[i].mSymbol.mName == comboChain)
{
index = i;
break;
}
}
if (index < 0)
{
ArrayResize(iCombinations[k].mSeries, count + 1);
ZeroMemory(iCombinations[k].mSeries[count]);
index = count;
}
// count matches, pips, etc
iCombinations[k].mSeries[index].mSymbol.mMean++;
iCombinations[k].mSeries[index].mSymbol.mOrder += iCombinations[k].mSeries[index].mSymbol.mMean + n;
iCombinations[k].mSeries[index].mSymbol.mUnit += MathAbs(pips / point);
iCombinations[k].mSeries[index].mSymbol.mName = comboChain;
}
}
} while (iHelpers.getChain(codes, length)); // generate possible combinations from 000 to 111
}
string res = "\n";
for (int k = 0; k < order; k++)
{
int count = ArraySize(iCombinations[k].mSeries);
res += iCombinations[k].mData + "\n";
for (int n = 0; n < count; n++)
{
res +=
iCombinations[k].mSeries[n].mSymbol.mName + " : " +
DoubleToString(iCombinations[k].mSeries[n].mSymbol.mMean, 1) + " : " +
DoubleToString(iCombinations[k].mSeries[n].mSymbol.mOrder, 1) + " : " +
DoubleToString(iCombinations[k].mSeries[n].mSymbol.mUnit, 1) + "\n";
}
}
iHelpers.debug(res); // print to a file
return1;
}
il codice è macchinoso perché la dimensione della serie può essere impostata nei parametri, così come l'insieme di tutte le coppie, separate da virgole
.. Le combinazioni di sequenze di candele sono enormi. I tentativi di cercare e analizzare i modelli sono un'utopia.
L'analisi delle candele (che è, dopo tutto, un'utopia) non deve essere confusa con il calcolo dei pattern.
La candela stessa è un'utopia - una rappresentazione grezza della natura dei cambiamenti all'interno di un periodo di candela.
E il modello non è costruito sulle candele ma sulla sequenza delle quotazioni. Il modello non è collegato al tempo di apertura della barra, può essere di lunghezza casuale, o può essere basato su dati mediati ecc. I modelli non casuali sono quasi l'unica possibilità per i commercianti "ordinari", e la comprensione della loro essenza è il livello minimo per entrare nel "club dei guadagnatori".
L'analisi delle candele (che è, dopo tutto, un'utopia) non deve essere confusa con il calcolo dei pattern.
La candela stessa è già un'utopia - una rappresentazione approssimativa della natura dei cambiamenti all'interno di un periodo della candela.
E il modello non è costruito sulle candele ma sulla sequenza delle quotazioni. Il modello non è collegato al tempo di apertura della barra, può essere di lunghezza casuale, può essere costruito sui dati mediati ecc. I modelli non casuali sono quasi l'unica possibilità per i commercianti "ordinari", e la comprensione della loro essenza è il livello minimo per entrare nel "club dei guadagnatori".
Wow. Va bene.
Buona fortuna!
PS:
Dato che tutto è così figo, dovremmo definire anche il rapporto proporzionale dei candelieri, il massimo e il minimo delle loro dimensioni per trovare i modelli.
Quindi il codice 0,1,1, si trasformerà in qualcosa come questo: 10,30,33
Ogni modello deve essere eseguito attraverso la storia per impostare i parametri redditizi.
Poi creare un database di modelli
Questo è un grande lavoro che probabilmente porterà un risultato positivo.
Dato che è così figo, dobbiamo definire ulteriormente il rapporto proporzionale delle candele, i massimi e i minimi e le loro dimensioni per trovare i modelli.
Quindi il codice 0,1,1, si trasformerà in qualcosa come questo: 10,30,33
No. Nemmeno i gatti possono nascere in due giri, tre giri.
Ma in linea di principio... In linea di principio, si potrebbe fare il codice Morse, ma con un avvertimento: se non si è interessati al risultato finale.
Ogni modello deve essere eseguito attraverso la storia per impostare i parametri redditizi.
Poi creare un database di modelli
Questo è un lavoro enorme che probabilmente porterà un risultato positivo in seguito.
È possibile essere d'accordo con questo. Proprio in questi termini - 'possibilmente' e 'successivamente'.
Prima ancora, bisogna definire proprio questo 'ogni schema'. E non è redditizio. Il metodo non riguarda il profitto e il trading in generale. Si tratta di ripetere schemi simili. Cioè un modello nel lato destro con il lato sinistro che è simile. La lunghezza, la forma, l'ampiezza, la frequenza ciclica e altri parametri sono tutti soggetti alla ricerca.
Sì. E se facciamo lo stesso sulla base dei candelieri, avremo lo stesso risultato, ma sarà più debole e scomodo. E ci sono meno modelli - semplicemente per la definizione di una candela.
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.
Solo per darvi un'idea:
1. numero di inversioni di X pip in un'area selezionata
2. lo stesso numero ma senza lanci nella dimensione di N * X pips
3. Volumi, almeno in zecche
Sarebbe interessante guardare la parte del codice che fa i calcoli, solo per divertimento ....
Per quanto riguarda le idee, guarderei le candele formate dal delta del volume scambiato,
Karputov e Cybert avevano alcuni buoni indicatori sull'argomento...
Un'idea buona e affascinante.
Almeno dimostra che il mercato non si presta all'analisi tramite l'analisi delle candele.
Il mercato è una risposta alle azioni dei commercianti reali.
Se ci sono 100 commercianti in un dato momento, quante combinazioni di zeri e di uno ci possono essere?
come è collegato il numero di scambi al grafico tempo-prezzo?
La candela si formerà a seconda di - quanti venduti e quanti comprati.
Cioè, la sequenza e la forma delle candele è casuale. Esiste un numero enorme di combinazioni di sequenze di candele.
Cercare di trovare e analizzare i modelli è un'utopia.
Qui, per esempio.Renat Akhtyamov:
.. Le combinazioni di sequenze di candele sono enormi.
I tentativi di cercare e analizzare i modelli sono un'utopia.
L'analisi delle candele (che è, dopo tutto, un'utopia) non deve essere confusa con il calcolo dei pattern.
La candela stessa è un'utopia - una rappresentazione grezza della natura dei cambiamenti all'interno di un periodo di candela.
E il modello non è costruito sulle candele ma sulla sequenza delle quotazioni. Il modello non è collegato al tempo di apertura della barra, può essere di lunghezza casuale, o può essere basato su dati mediati ecc. I modelli non casuali sono quasi l'unica possibilità per i commercianti "ordinari", e la comprensione della loro essenza è il livello minimo per entrare nel "club dei guadagnatori".
L'analisi delle candele (che è, dopo tutto, un'utopia) non deve essere confusa con il calcolo dei pattern.
La candela stessa è già un'utopia - una rappresentazione approssimativa della natura dei cambiamenti all'interno di un periodo della candela.
E il modello non è costruito sulle candele ma sulla sequenza delle quotazioni. Il modello non è collegato al tempo di apertura della barra, può essere di lunghezza casuale, può essere costruito sui dati mediati ecc. I modelli non casuali sono quasi l'unica possibilità per i commercianti "ordinari", e la comprensione della loro essenza è il livello minimo per entrare nel "club dei guadagnatori".
Wow. Va bene.
Buona fortuna!
PS:
Dato che tutto è così figo, dovremmo definire anche il rapporto proporzionale dei candelieri, il massimo e il minimo delle loro dimensioni per trovare i modelli.
Quindi il codice 0,1,1, si trasformerà in qualcosa come questo: 10,30,33
Ogni modello deve essere eseguito attraverso la storia per impostare i parametri redditizi.
Poi creare un database di modelli
Questo è un grande lavoro che probabilmente porterà un risultato positivo.
Oh, wow. Va bene.
Buona fortuna!
PS:
Dato che è così figo, dobbiamo definire ulteriormente il rapporto proporzionale delle candele, i massimi e i minimi e le loro dimensioni per trovare i modelli.
Quindi il codice 0,1,1, si trasformerà in qualcosa come questo: 10,30,33
No. Nemmeno i gatti possono nascere in due giri, tre giri.
Ma in linea di principio... In linea di principio, si potrebbe fare il codice Morse, ma con un avvertimento: se non si è interessati al risultato finale.
Ogni modello deve essere eseguito attraverso la storia per impostare i parametri redditizi.
Poi creare un database di modelli
Questo è un lavoro enorme che probabilmente porterà un risultato positivo in seguito.
È possibile essere d'accordo con questo. Proprio in questi termini - 'possibilmente' e 'successivamente'.
Prima ancora, bisogna definire proprio questo 'ogni schema'. E non è redditizio. Il metodo non riguarda il profitto e il trading in generale. Si tratta di ripetere schemi simili. Cioè un modello nel lato destro con il lato sinistro che è simile. La lunghezza, la forma, l'ampiezza, la frequenza ciclica e altri parametri sono tutti soggetti alla ricerca.
Sì. E se facciamo lo stesso sulla base dei candelieri, avremo lo stesso risultato, ma sarà più debole e scomodo. E ci sono meno modelli - semplicemente per la definizione di una candela.