Chi vuole una strategia? Molto e gratis) - pagina 63

 

Sì, la posta è corretta.

Ti ho mandato un messaggio privato un minuto fa.

 

Oh, mi ero dimenticato della linea privata :))))))

È già ammucchiato lì :). Ragazzi - scusate se non ho risposto in tempo, è solo che di solito spengo i messaggi personali sui forum e non ho nemmeno prestato attenzione qui per abitudine :)...


Miroslav - allora ora preparerò un messaggio (risposta) e lo invierò per posta ...

 

**Ricorda, l'apertura della barra e la chiusura della barra - Punto del problema della posizione non è limitato a, i valori degli indicatori comuni possono essere utilizzati lì. E così una posizione può essere aperta "nel mezzo" di una barra (facile!). (per così dire, sul calcolo dei valori dell'indicatore SOLO all'intersezione delle barre... come ho detto - questa condizione non è "sempre" fattibile ;))**


Se capite bene, pensate che dobbiamo ricalcolare un indicatore su ogni tick se il punto di entrata è nel mezzo della barra (diciamo ad una MA). Mi permetto di non essere d'accordo con te.


Per un back test affidabile (usando MT, FSB o altri tester), tutti gli indicatori inclusi i punti di entrata/uscita devono essere fissati. Questo non limita un EA ad usare l'entrata a mercato durante la barra.

Esempi:


1. Entrata alla media mobile (21, chiusura):

In questo caso non possiamo usare l'attuale MA poiché si sta muovendo su/giù fino a quando il prezzo di chiusura della barra è fissato. Quindi dobbiamo usare la MA della barra precedente. Così facendo non è necessario ricalcolarlo ad ogni tick.


2 Entrata alla media mobile (21, aperta):

Qui possiamo usare l'attuale MA. È fisso perché il prezzo base del MA - Bar Opening è già fisso. Inoltre non abbiamo bisogno di ricalcolarlo ad ogni tick.


--------

Modifica:

Naturalmente questa è la mia opinione personale.

Non ho intenzione di forzare il backtesting in questo modo.

Saluti!


Edit2:

Nel caso in cui mi manchi qualcosa, per favore mostratemi un esempio di una strategia preparata con FSB quando dovete ricalcolare un indicatore su ogni tick.

 

Mmm, Miroslav, ho capito l'idea (molto tempo fa, peraltro)!

Ero solo confuso dalle costruzioni nel codice dell'indicatore, che ho dato sopra:

                    case "The position opens above the MA value":
                        component[0]. PosPriceDependence = PositionPriceDependence. BuyHigherSellLower;
                        component[0]. UsePreviousBar     = iPrvs;
                        component[1]. DataType           = IndComponentType. Other;
                        component[1]. ShowInDynInfo      = false;
                        component[2]. DataType           = IndComponentType. Other;
                        component[2]. ShowInDynInfo      = false;
                        break;

cioè: componente[0].PosPriceDependence = PositionPriceDependence.ComprareSuperioreVendereBasso;

Non è questo il caso, vero? È importante capire che non sto parlando del calcolo dell'indicatore, in quanto tale. Il cui valore, sì, è fermo all'interno di una barra. Ma riguardo al fatto che in questo caso (che ho citato sopra) dobbiamo confrontare il valore dell'ultimo prezzo con esso? Per prendere la decisione di aprire una posizione. Alla FSB, questo è fatto da procedure interne (se ho capito bene). Ma siccome "non ci sono noti" (e, in effetti, per cosa?) - ho suggerito di ricalcolare l'indicatore su ogni tick, in questi casi, per ricevere un SI/NO inequivocabile sulla condizione logica. In altre parole, lasciate che sia l'indicatore stesso a fare questa conclusione, non il codice che è esterno ad esso. Dicevo sul serio!

Voglio dire, ehm, ancora una volta - sono d 'accordo con la tesi che l'indicatore dovrebbe essere calcolato una volta su barre "incrociate". Ma nei casi in cui l'indicatore dà segnali sull'apertura di posizioni, in applicazione al lavoro dei futuri EA in MT - dovremmo basarci solo su questi valori (SI/NO), e non sul confronto dei prezzi attuali con i prezzi dell'indicatore (che sono statici). Lasciamo che sia l'indicatore stesso a confrontarlo per noi. E prenderemo in considerazione solo il suo SI/NO. Questo è tutto... :)


O mi manca qualcosa da qualche parte? :D? ("ha un po' di mammella...")

 

Da qui l'implicazione che ho bisogno di fare un'ulteriore revisione di tali calcoli (sto pensando ora) per confrontare Close[iBar] con il valore attuale o precedente dell'indicatore (che è statico) correttamente (iPrvs dovrebbe essere considerato). Ma nell'idea credo di non sbagliare...!



(di cosa stiamo parlando :))?! Gli indicatori continueranno a tenere conto del lavoro con IndicatorCounted() OVUNQUE!!! Non lo farò in nessun altro modo :). Possono essere utilizzati non solo dagli scrittori di EA, ma anche dagli utenti che avranno bisogno di una parte visiva (e di valori in tempo reale). Il codice originale non cambia di una virgola! Di solito, si aggiunge solo un bit all'inizio, che inizializza i valori "originali" delle variabili auto referenziate. Non più di questo... A volte questo viene dato "poco sangue". A volte non così tanto (come nell'esempio Hourly High Low). Ma in ogni caso, minimo sforzo corporale (ancora?) :))


O è un aspetto globale? Allora non c'è niente da discutere - iPrvs è fantastico!:) Punto e a capo! Ma nessuno lo discute :)!


(Ho mandato una mail... cercherò di rispondere qui di persona)

 
caso "La posizione si apre sopra il valore MA":
componente[0].PosPriceDependence = PositionPriceDependence.BuyHigherSellLower;


Questa logica non può essere gestita dall'indicatore stesso poiché i segnali dipendono dall'indicatore Entry Point.

Questa logica non dà segnali di acquisto/vendita (1, 0) come le altre.

FSB procede come segue:

1. Inizialmente ignora questo indicatore quando prende la decisione per il trading;
2. Se tutte le altre regole logiche sono soddisfatte e FSB conosce il punto di entrata, controlla questo indicatore per permettere o vietare l'entrata appena prima dell'esecuzione effettiva.

Questo è incluso nel backtester.

Ci sono tre opzioni per l'applicazione in un EA:

1. Calcolare prima i punti di ingresso (in una matrice). Dopo di che inviare questo array all'indicatore per calcolare i segnali di acquisto/vendita.

2. avere un metodo base EntryPrice(int iBar) che restituisce il prezzo di apertura della posizione.
La posizione si apre sopra il valore della MA:
per(int iBar ... )
{
SignalLong[iBar] = EntryPrice(iBar) > MA[iBar] ? 1 : 0;
SignalShort[iBar] = EntryPrice(iBar) < MA[iBar] ? 1 : 0;
}

3. Chiamando questo indicatore prima dell'entrata effettiva:
double EntryPrice = ....;
Se(EntryPrice > fsb_MA(...))
OrderSend(...);


----

Ci sono diversi indicatori che non impostano segnali 1:0:
- Tutti gli indicatori con la logica "La posizione si apre sopra / sotto ..."
- Indicatori "Tempo": ora di entrata, ora di entrata, giorno della settimana;
- Conto Percentuale Stop
- ATR Stop
- Limite di stop
- Stop Loss
- Prendere profitto
- Trailing Stop
- Limite di trailing stop
- Limitatore di lotto

Questi "indicatori" danno il permesso di entrata/uscita al momento del trading;










 

Miroslav - 'capito'! Non nel senso di capire finalmente qualcosa :) (l'idea di manipolare l'FSB con la logica degli indicatori,

L 'ho capito molto tempo fa (non prendo in considerazione Stop Limit e altre cose, non le ho ancora guardate).

Finalmente sto ricordando qualcosa, diciamo :)


Stiamo solo parlando nello stesso contesto di applicazioni diverse (intendendo sia le applicazioni stesse (FSB e MT) che "in applicazione a").

Il punto chiave è il calcolo degli indicatori FSB una volta, prima della procedura di back-testing stessa.

FSB semplicemente non può calcolare senza ambiguità 1/0 per tali condizioni ("La posizione si apre sopra / sotto ...") prima del test stesso!

Pertanto, usa esattamente la logica giusta:

1. inizialmente ignora questo indicatore quando prende la decisione per il trading;
2. se tutte le altre regole logiche sono soddisfatte e FSB conosce il punto di entrata, controlla questo indicatore per consentire o vietare l'entrata appena prima dell'esecuzione effettiva.
Ma per il nostro caso (RealTime) QUESTO NON È OBBLIGATORIO. O meglio - calcolando gli indicatori "costantemente e al volo" - avremo in ogni momento
in ogni momento particolare avremo una risposta definitiva 1/0 per questa condizione logica.
Ancora "non possiamo" aprire una posizione all'ultimo prezzo disponibile (Close[0]). Quindi, perché non confrontare l'indicatore con esso?
E perché non emettere un 1/0 logico come in altri casi (scusate, la formattazione è "off", non voglio guardare in HTML (non ha senso "impazzire"):
 caso MA_POS_OPENS_ABOVE:
per (iBar = iFirstBar; iBar >= 0; iBar--) {
LPIndBuffer[iBar] = Close[iBar] > adMA[iBar];
SPIndBuffer[iBar] = Close[iBar] < adMA[iBar];
}
break;

// Che è apparentemente più corretto riscrivere con iPrvs in mente (mi è appena "venuto in mente" oggi come aggirare questo problema in generale)

caso MA_POS_OPENS_ABOVE:
Per (iBar = iFirstBar; iBar >= 0; iBar--) {
LPIndBuffer[iBar] = Close[iBar] > adMA[iBar + iPrvs];
SPIndBuffer[iBar] = Close[iBar] < adMA[iBar + iPrvs];
}
break;

// Considerando che i valori su tutte le barre tranne [0] (tempo reale) saranno "non del tutto giusti" (o meglio, fissati per Close[iBar]), possiamo cambiare il codice in questo modo

caso MA_POS_OPENS_ABOVE:
per (iBar = iFirstBar + 1; iBar >= 0; iBar--) {
se (iBar > 0) {
LPIndBuffer[iBar] = 0.0;
SPIndBuffer[iBar] = 0.0;
} else {
LPIndBuffer[iBar] = Close[iBar] > adMA[iBar + iPrvs];
SPIndBuffer[iBar] = Close[iBar] < adMA[iBar + iPrvs];
}
}
break;

// T.Cioè per tutte le barre, eccetto [0], l'indicatore mostrerà che questa condizione non è soddisfatta (non era soddisfatta) - una questione di estetica, per così dire... niente di più.

 

(off: sto cercando di inserire il codice di nuovo, come un commento separato - "il fiore di pietra non esce" :), poi un commento vuoto, poi va solo alla prima pagina... Forse ci sono alcuni elementi nel testo - "non digeribile"... in generale - quindi leggere (come sopra) :))

 

Signori, Miroslav ha aggiornato FSB alla versione 2.8.3.6 Beta ieri:

http://forexsb.com/forum/post/2446/#p2446


La logica dei segnali è stata unificata. I cambiamenti hanno interessato la maggior parte degli indicatori. Il codice del calcolo degli indicatori non è stato cambiato!

I segnali logici sono diventati un po' meno suscettibili al "rumore". Nel file di configurazione sono stati aggiunti due parametri:

  <SIGMA_MODE_MAIN_CHART> 1</SIGMA_MODE_MAIN_CHART>
  <SIGMA_MODE_SEPARATED_CHART> 5</SIGMA_MODE_SEPARATED_CHART>

I parametri impostano la "soglia" dei segnali che scattano dal livello di variazione del prezzo (per gli indicatori sulla finestra con il grafico e per gli indicatori con finestre proprie).

La corrispondenza dei valori di MODE è data qui:

http://forexsb.com/library/source/Sigma.html


Crediamo che i valori di "default" siano ESATTAMENTE adeguati (nella maggior parte dei casi). Ma... sentitevi liberi di sperimentare :).


Ho aspettato volutamente questo rilascio, per non fare un doppio lavoro. Anch'io sto mettendo le mie opere. Ho 20 indicatori al momento (non considererei 2 di loro come "utili" (Bar Closing / Bar Opening) - saranno utili in futuro ;)):

-FSB- Accelerator Oscillator.ex4
-FSB- Accumulation Distribution.ex4
-FSB- ADX.ex4
-FSB- Bar Closing.ex4
-FSB- Bar Opening.ex4
-FSB- Bar Range.ex4
-FSB- Bollinger Bands.ex4
-FSB- Donchian Channel.ex4
-FSB- Envelopes.ex4
-FSB- Force Index.ex4
-FSB- Heiken Ashi.ex4
-FSB- Hourly High Low.ex4
-FSB- Ichimoku Kinko Hyo.ex4
-FSB- Keltner Channel.ex4
-FSB- Moving Average.ex4
-FSB- Price Oscillator.ex4
-FSB- RSI MA Oscillator.ex4
-FSB- RSI.ex4
-FSB- Starc Bands.ex4
-FSB- Steady Bands.ex4

Gli algoritmi di calcolo e la logica dei segnali sono completamente compatibili con l'FSB (beh... dovrebbero :D)...

COMPRESI I VALORI DEGLI INDICATORI!!! (FSB (applicazione) = -FSB- (conversione) = MT (interno) ) (fino a qualsiasi segno).

L'eccezione è "-FSB- Accumulation Distribution.ex4" - Miroslav ha un codice complicato lì, non l'ho ancora fatto (non corrisponde esattamente a MT, non ho controllato con FSB).


Continuo in ordine alfabetico (beh, quasi). Se qualcuno ha bisogno di qualcosa di più prioritario, scriva... (la persona con Hourly High Low è scomparsa da qualche parte, non ho capito - ha aiutato o no :D?!)


Allo stesso tempo iniziamo a sviluppare EA, che saranno in grado di operare con queste versioni di indicatori. Alla fine dovrebbe esserci una specie di covone:

FSB -> File di strategia esportato -> EA, basato su indicatori convertiti e logica di trading interna, compatibile con FSB...


Buona fortuna! E buone vacanze a tutti!!!

Mi presenterò più vicino all'inizio della settimana lavorativa... rimanete sintonizzati...

File:
 
Stellarator >> :

Signori, Miroslav ha aggiornato FSB alla versione 2.8.3.6 Beta ieri:

http://forexsb.com/forum/post/2446/#p2446


Sto scaricando qualcosa e l'archivio è rotto... :
Motivazione: