Discussione sull’articolo "Aspettative morali nel trading" - pagina 2

 

Un buon slogan, interessante, grazie all'autore. Le formule e gli esempi rendono molto più veloce l'approccio rispetto all'implementazione del codice.

Non ho letto gli articoli precedenti dell'autore. Dovrò leggerli. Grazie ancora.

Aleksej Poljakov
Aleksej Poljakov
  • www.mql5.com
Профиль трейдера
 

Grazie per l'articolo.

Mi sembra di capire che la dimensione del lotto sia fortemente influenzata dalla serie di operazioni redditizie e perdenti ottenute nello storico e utilizzate per calcolare il lotto. Pertanto, è interessante vedere i risultati prendendo a caso l'esito delle operazioni. Presumo che i risultati delle metriche di passaggio saranno molto diversi.

 
Aleksey Vyazmikin #:

Grazie per l'articolo.

Capisco che la dimensione del lotto sarà fortemente influenzata dalla serie di operazioni redditizie e perdenti ottenute nello storico e utilizzate per calcolare il lotto. Pertanto, è interessante vedere i risultati prendendo a caso l'esito delle operazioni. Presumo che i risultati delle metriche di passaggio saranno molto diversi.

Negli script, il risultato delle operazioni viene generato in modo casuale. Allo stesso tempo, lo script stesso non sa quale sia la probabilità inizialmente impostata al momento del calcolo del lotto. La cosa peggiore che può accadere è che si verifichino diversi trade consecutivi perdenti, soprattutto alla fine di una serie. Il modo più semplice è quello di non prendere l'intero deposito, ma una percentuale di esso... al momento del calcolo. Diciamo il 5-10%, così la curva di equilibrio sarà più stabile - non ci saranno grandi perdite, ma anche i profitti diminuiranno.

 
Aleksej Poljakov #:

Negli script, il risultato dei trade viene generato in modo casuale. Allo stesso tempo, lo script stesso non conosce la probabilità inizialmente impostata al momento del calcolo del lotto. La cosa peggiore che può accadere è che si verifichino diversi trade consecutivi perdenti, soprattutto alla fine di una serie. Il modo più semplice è quello di non prendere l'intero deposito, ma una percentuale di esso... al momento del calcolo. Diciamo il 5-10%, così la curva di equilibrio sarà più stabile - non ci saranno grandi perdite, ma anche i profitti diminuiranno.

Sto scrivendo la parte finale dell'articolo:

Vediamo insieme come il rischio può influenzare il trading. Per il test utilizzeremo un semplice Expert Advisor sull'intersezione di due medie mobili. Il test dell'EA si è svolto con i seguenti parametri:

E, ancora una volta, è importante esaminare la finestra per il calcolo dei successi/fallimenti storici, compreso il modo in cui cambia. Non si prenderà la proporzione per 10 anni dopo, ad esempio, la selezione di una strategia nello strategy tester.

 
Eccellente lavoro.
Ben fatto autore, segnalibro l'articolo.
 

È un approccio interessante. Ma è sorta una domanda: l'aspettativa morale ha lo stesso significato fisico dell'aspettativa matematica? Nell'articolo ci sono due interpretazioni dell'aspettativa matematica: attraverso la somma (ad esempio 11 ducati all'inizio dell'articolo) e attraverso i punti (nella formula p*TP - (1-p)*SL). Non ci sono spiegazioni sull'aspettativa morale, ma a giudicare dalla formula di base - l'aspettativa morale è la somma, perché corrisponde al deposito.

Poi la domanda successiva. Vorrei considerare, IMHO, un problema richiesto, che è assente nell'articolo. Si dà un deposito, si dà un'aspettativa morale desiderata come frazione del deposito (Mr = Frazione * Deposito) e un lotto. Per diversi valori della probabilità di vincita, tracciare le curve SL/TP. Apparentemente, per la probabilità 0,5 il compito non è definito.

Ho provato a farlo a braccio, probabilmente con degli errori. Dappertutto, numeri strani o NaN escono dall'area di definizione della radice.

Qui, ad esempio, dal lato dello SL per calcolare il TP:

#property script_show_inputs

input double Amount = 10000;
input double MoralExpectationPercent = 0.01;
input double Lot = 0;
input double WinProbability = 0.75;

void OnStart()
{
   const double pv = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)
      * SymbolInfoDouble(_Symbol, SYMBOL_POINT) / SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
   const double lot = (Lot == 0 ? SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN) : Lot);

   const double sls[] = {10, 100, 1000};

   for(int i = 0; i < ArraySize(sls); ++i)
   {
      const double sl = sls[i];
      const double slp = sl * lot * pv;
      const double y1 = (1 + MoralExpectationPercent) * Amount * MathPow(Amount - slp, WinProbability - 1);
      const double tp = (MathPow(y1, 1 / WinProbability) - Amount) / (lot * pv);
      Print(sl, " ", tp);
   }
}

Output:

10.0 13358.8842517167
100.0 13389.287146464994
1000.0 13693.516911708502
 
Stanislav Korotky #:

È un approccio interessante. Ma è sorta una domanda: l'aspettativa morale ha lo stesso significato fisico dell'aspettativa matematica? Nell'articolo ci sono due interpretazioni dell'aspettativa matematica: attraverso la somma (ad esempio 11 ducati all'inizio dell'articolo) e attraverso i punti (nella formula p*TP - (1-p)*SL). Non ci sono spiegazioni sull'aspettativa morale, ma a giudicare dalla formula di base l'aspettativa morale è la somma, perché corrisponde al deposito.

Poi la domanda successiva. Vorrei considerare, IMHO, un problema richiesto, che è assente nell'articolo. Si dà un deposito, si dà un'aspettativa morale desiderata come frazione del deposito (Mr = Frazione * Deposito) e un lotto. Per diversi valori della probabilità di vincita, tracciare le curve SL/TP. Apparentemente, il problema non è definito per la probabilità 0,5.

Ho provato a farlo a braccio, probabilmente con degli errori. Dappertutto escono numeri strani o NaN - si va oltre l'area di definizione della radice.

Ad esempio, per calcolare il TP dal lato SL:

Output:

string const double y1 = (1 + MoralExpectationPercent) * Amount * MathPow(Amount - slp, WinProbability - 1);

WinProbability - 1 è sempre un valore negativo... e dovrebbe essere rigorosamente non negativo

questo è più corretto

File:
 
Stanislav Korotky #:

È un approccio interessante. Ma è sorta una domanda: l'aspettativa morale ha lo stesso significato fisico dell'aspettativa matematica? Nell'articolo ci sono due interpretazioni dell'aspettativa matematica: attraverso la somma (ad esempio 11 ducati all'inizio dell'articolo) e attraverso i punti (nella formula p*TP - (1-p)*SL). Non ci sono spiegazioni sull'aspettativa morale, ma a giudicare dalla formula di base l'aspettativa morale è la somma, perché corrisponde al deposito.

Poi la domanda successiva. Vorrei considerare, IMHO, un problema richiesto, che è assente nell'articolo. Si dà un deposito, si dà un'aspettativa morale desiderata come frazione del deposito (Mr = Frazione * Deposito) e un lotto. Per diversi valori della probabilità di vincita, tracciare le curve SL/TP. A quanto pare, il problema non è definito per la probabilità 0,5.

Ho provato a farlo a braccio, probabilmente con degli errori. Dappertutto escono numeri strani o NaN - si va oltre l'area di definizione della radice.

Ad esempio, per calcolare il TP dal lato SL:

Output:

Il secondo errore è che non possiamo assegnare alcuna aspettativa morale.....

L'aspettativa morale è sempre inferiore all'aspettativa matematica. Si avvicinano l'una all'altra man mano che il deposito cresce. Pertanto, il problema si riduce strettamente alle seguenti condizioni: se l'aspettativa matematica è positiva, si ottiene un'aspettativa morale positiva.

 
Aleksej Poljakov #:

string const double y1 = (1 + MoralExpectationPercent) * Amount * MathPow(Amount - slp, WinProbability - 1);

WinProbability - 1 è sempre negativo... e deve essere strettamente non negativo

questo è più corretto

Mi sembra di aver seguito le trasformazioni matematiche rigorose - non vedo dove sia l'errore? Per ora, lasciamo il significato del valore in sé dietro le parentesi e guardiamo la formula come un'astrazione.

Quella originale, con la parte sostituita di F deposit D al posto dell'originale Mr: F * D = (D + L * TP * PV)^p * (D - L * SL *PV)^(1-p) - D

Abbiamo ottenuto numeri di aspettativa morale nell'ordine delle decine, perché non possiamo indicare un numero qualsiasi come % del deposito? Possiamo.

Quindi otteniamo:

(1+F)*D = (...)^p * (...)^(1-p)

(1+F)*D / (...)^(1-p) = (...)^p

Si noti che 1 / x^y -> x^-y, quindi possiamo eliminare la frazione, anche se non è fondamentale per il conteggio del computer, ma la formula senza la frazione è più facile da leggere.

(1+F)*D * (...)^(p-1) = (...)^p

[ (1+F)*D * ( D - L * SL *PV )^(p-1) ] ^ (1/p) = ( D + L * TP * PV )

Nel mio codice, ciò che è tra parentesi quadre si trova nella variabile y1.

La vostra versione del codice ha una formula incompleta.

 
Stanislav Korotky #:

Mi sembra di aver seguito trasformazioni matematiche rigorose: non vedo dove sia l'errore? Per ora, lasciamo il significato del valore in sé fuori dalle parentesi e consideriamo la formula come un'astrazione.

Quella originale, con la parte sostituita di F deposit D al posto dell'originale Mr: F * D = (D + L * TP * PV)^p * (D - L * SL *PV)^(1-p) - D

Abbiamo ottenuto numeri di aspettativa morale nell'ordine delle decine, perché non possiamo indicare un numero qualsiasi come % del deposito? Possiamo.

Quindi otteniamo:

(1+F)*D = (...)^p * (...)^(1-p)

(1+F)*D / (...)^(1-p) = (...)^p

Si noti che 1 / x^y -> x^-y, quindi possiamo eliminare la frazione, anche se non è fondamentale per il conteggio del computer, ma la formula senza la frazione è più facile da leggere.

(1+F)*D * (...)^(p-1) = (...)^p

[ (1+F)*D * ( D - L * SL *PV )^(p-1) ] ^ (1/p) = ( D + L * TP * PV )

Nel mio codice, nella variabile y1, ho ciò che è tra parentesi quadre.

La vostra versione del codice ha una formula incompleta.

Se assegniamo una certa aspettativa morale alla transazione, allora (dalla proprietà che l'aspettativa morale è inferiore all'aspettativa matematica) otteniamo questa disuguaglianza:

p* L * TP * PV - (1-p) *L * SL *PV > F*D

cioè, invece di trovare il valore di TP al quale l'aspettativa morale diventa positiva, iniziamo a cercare il valore di TP tale che l'aspettativa matematica diventi maggiore di un determinato valore.