Discussione: Aiuto per un signal
-
14-10-16, 18:56 #11
- Data Registrazione
- May 2010
- Messaggi
- 47
-
24-10-16, 17:19 #12
- Data Registrazione
- May 2010
- Messaggi
- 47
Buongiorno, ho trovato che potrebbe funzionare meglio se il LOW fosse contemporaneo alla barra verde. E anche in questo caso (strano ma vero XD) non mi raccapezzo col codice. Perchè mi serve contare ogni volta un nuovo LOW che sia verde sulla barra stessa e non sulla successiva (o meglio, ANCHE sulla successiva).
Posso chiedere ancora un aiuto?
E poi non capisco come mai il mio tentativo di usare questo tuo codice abbia risultati strani : con trailing stop attivato spara 250 ordini su 1200 barre orarie e senza, solo controllato con lo stop fa solo 17 ordini alle prime barre caricate e stop. Dopo luglio non va più avanti e non capisco proprio il perchè.
# Calcola condizione sul prezzo minimo
SET condizioneLow = (LOW = TODAYLOW())
# Numero di barre trascorse dall'ultimo prezzo minimo di giornata
SET barreDaLowGiornata = LASTIF(condizioneLow)
# Calcola condizione sul "colore" della barra attuale
SET condizioneBarraVerde = (HACLOSE > HAOPEN)
# Calcola combinazione delle 2 condizioni precedenti
SET combinazioneVerde = (condizioneBarraVerde) AND (barreDaLowGiornata >= 0)
# Calcola quante volte la combinazione delle condizioni e' avvenuta dall'ultimo low di giornata
#SET somma = SUM(combinazioneVerde, barreDaLowGiornata)
# Prende in considerazione solo la prima volta delle precedenti
#SET condizionePrimaCombinazione = (somma = 1)
# Calcola la condizione finale
SET condizioneFinaleVerde = combinazioneVerde
condizioneFinaleVerde
-
25-10-16, 00:23 #13
Salve,
Le modifiche da apportare al codice in questo caso sono minime.
La riga infatti contempla già adesso il fatto che il Low di giornata corrisponda alla barra verde. L'unica riga da modificare è pertanto la 10, dove vengono contate le occorrenze. Se il Low di giornata corrisponde alla barra attuale, barreDaLowGiornata vale zero. Se barreDaLowGiornata vale zero, allora la somma eseguita alla riga 10 su zero periodi vale sempre e comunque zero. Pertanto bisogna modificare il numero di periodi utilizzati nella somma, includendo anche questa condizione, modificando quindi il codice in questo modo:
# Calcola condizione sul prezzo minimo SET condizioneLow = (LOW = TODAYLOW()) # Numero di barre trascorse dall'ultimo prezzo minimo di giornata SET barreDaLowGiornata = LASTIF(condizioneLow) # Calcola condizione sul "colore" della barra attuale SET condizioneBarraVerde = (CLOSE > OPEN) # Calcola combinazione delle 2 condizioni precedenti SET combinazione = (condizioneBarraVerde) AND (barreDaLowGiornata >= 0) # Calcola quante volte la combinazione delle condizioni e' avvenuta dall'ultimo low di giornata SET somma = SUM(combinazione, barreDaLowGiornata + 1) # Prende in considerazione solo la prima volta delle precedenti SET condizionePrimaCombinazione = (somma = 1) # Calcola la condizione finale SET condizioneFinale = (condizionePrimaCombinazione AND combinazione) SET PLOT1 = condizioneFinale
La modifica è presente sulla riga 10.
Con l'uscita Trailing Stop è abbastanza normale ottenere nei backtest un numero molto più elevato del normale di trades: una volta raggiunto il valore di prezzo corrispondente al Trigger del Trailing Stop, da quel punto in avanti qualsiasi ritracciamento potrebbe portare ad eseguire l'uscita dal trade corrente, riabilitando quindi la valutazione del codice di Buy / Sell. Se nel trading system è presente solo lo Stop Loss, senza uscite Trailing Stop e Take Profit, è possibile che un trade rimanga aperto molto a lungo. In particolare, se non c'è uno script di entrata di segno opposto (Sell), il trade potrebbe rimanere aperto all'infinito, finché non tornerà in perdita.
Max Francario
-
25-10-16, 17:46 #14
- Data Registrazione
- May 2010
- Messaggi
- 47
Grazie per la risposta. Ho provato il codice ma non mi sembra funzioni. Io vorrei che a ogni low verde entri buy (usando le Haikin Ashi) ma fatto così non capisco proprio il perchè entri. So che è una condizione rara ma comunque non me la da, quel codice. La cosa più simile che sono riuscito a fare funziona solo all'apertura; non funziona neanche male ma funziona in maniera ignorante perchè all'apertura i Low e High sono farlocchi.
Provo ad allegare il report e un'immagine a campione del grafico per far intendere meglio quello che scrivo.
Scusate se insisto ma a sto punto non trovando il codice adatto non so se non funziona l'idea logica di base, perchè non ho risposte corrette dal trading system.
Grazie della pazienza
Francesco
-
26-10-16, 10:40 #15
- Data Registrazione
- May 2010
- Messaggi
- 47
Salve,
Sono al lavoro quindi non posso provare il codice(e scrivo dal telefono) ma ho fatto un ragionamento e vorrei capire quanto è scritto correttamente:
La condizione di mio esclusivo interesse è:
Al low di giornata contemporaneo alla barra Haikin Ashi verde, compro, dove
SET barraVerde = HACLOSE>HAOPEN
SET condizioneLow = (LOW = TODAYLOW())
SET compro = (condizioneLow AND barraVerde)
Partendo da questo presupposto, a me interessa pormi la domanda: è giá successo? La risposta puó essere si o no. Per entrambe le domande, la risposta dev'essere: ok, che succeda ancora.
Quindi
#conto se esiste la condizione al passato
SET conteggioVolte = lastif(compro)
Meglio Lastif o Countif?
#se è successa (>=1) compro, se non è successa e il conto mi da 0 probabilmente siamo a inizio giornata o in una condizione similare, quindi compro.
If(conteggioVolte>=1, compro, compro)
Quindi
SET finaleVerde = If(conteggioVolte>=1, compro, compro)
finaleVerde
Quindi, visto che sto rompendo da giorni, per sta roba, chiedo: cosa ne pensate? Gira bene? Qualcuno vuole provarlo?Ultima modifica di framzero; 26-10-16 alle 11:15
-
26-10-16, 11:21 #16
-
26-10-16, 11:48 #17
Ciao caro,
questa parte:
SET barraVerde = HACLOSE>HAOPEN SET condizioneLow = (LOW = TODAYLOW()) SET compro = (condizioneLow AND barraVerde)
è corretta.
Nella seconda parte ci pare di capire che lo scopo sia quello di evitare un ingresso ad inizio giornata (se non è così porta pazienza e rispiega with details ).
In questo caso la soluzione più semplice è utilizzare una condizione del tipo
TIME > 930
In quest'esempio la condizione è vera solo a partire dalle 9.31
Può andare?
Ciao Ciao
-
26-10-16, 13:15 #18
-
26-10-16, 18:55 #19
- Data Registrazione
- May 2010
- Messaggi
- 47
Grazie per le risposte.
Purtroppo non riesco a cliccare quell'icona perchè non mi compare proprio la riga di formattazione... sorry.
No con l'orario non risolvo perchè la condizione che mi serve è Low barra verde ogni volta che c'è la condizione, a partire dalla prima barra di giornata.
Il codice fatto così dovrebbe andare, forse. L'ho fatto partire sul 10 min e appena ho un responso pubblico i risultati.
Qualcuno mi da un feedback?
Apo hai ragione, è un escamotage per avere la condizione sempre, dalla prima barra di giornata in poi. Non trovavo altri modi per far avvenire la condizione di sincronia tra il LOW e la condizione VERDE ogni volta che si presenta. I codici di Tiziano e Max per ora non mi hanno dato il responso che mi aspettavo, anche perchŕ effettivamente è una condizione particolare (e perchè probabilmente faccio fatica a spiegarmi).
Il senso è che ho notato che questo tipo di condizione spesso è un buon segnale, fin dalla prima barra. Speravo quindi di farla avvenire ogni volta che si presentava.
Non so, se hai suggerimenti io sono pronto ad accoglierli. C'è sempre da considerare che non sono capace a programmare e ogni passo è una fatica.
Grazie mille per le risposte e l'attenzione. Spero di essere stato più chiaro.
PS: il ragionamento parte da questo codice fatto abbastanza a caso che, appunto, agiva sulla prima barra e basta:
Low=todaylow AND barraverde.
Francesco
-
27-10-16, 16:06 #20
Ciao caro,
allora l'idea non è male assolutamente perciò vediamo di lavorarci su un po.
Affinchè le condizioni
barraVerde
e
condizioneLow
entrino sempre è corretto usare l'operatore AND come hai fatto.
Non è per caso che intendi fare più entrate consecutive nella stessa direzione? Ovvero usare il Pyramiding? In questo caso negli Advanced Settings trovi la casella da spuntare con la possibilità di assegnare il numero massimo di contratti che vuoi a mercato contemporaneamente.
Ciao Ciao