(H-L)+Open...... TRADESTATION

  • ANNUNCIO: Segui le NewsLetter di Borse.it.

    Al via la Newsletter di Borse, con tutte le notizie quotidiane sui mercati finanziari. Iscriviti per rimanere aggiornato con le ultime News di settore, quotazioni e titoli del momento.
    Per iscriverti visita questo link.

superfib

Nuovo Utente
Registrato
9/11/01
Messaggi
5
Punti reazioni
0
Ho un problema dal quale non riesco ad uscirne ... e per questo mi rivolgo al FOL e spero tanto che i Maghi di Tradestation possano aiutarmi :bow: .

Sto cercando di tradurre in pratica quanto letto in un libro.

L’obiettivo è quello di far scattare un ordine di acquisto una volta che venga superato, durante la giornata borsistica, il valore prodotto dalla somma dell’Open di oggi + (H-L del giorno precedente).

Quindi se, per esempio, il Massimo del giorno precedente è 45, il minimo 40 e l’apertura di oggi è 50, l’ordine di acquisto scatterà, durante la giornata di oggi, a 55.

Qui di seguito ho inserito il Sistema che ho creato, ( ho utilizzato due grafici dello stesso titolo, Data1 a 5 minuti e Data2 daily) soltanto - e qui Vi chiedo gentilmente di aiutarmi, - che c’è qualche cosa che non va... infatti se lo applicate, noterete che il segnale viene inserito solo nel caso in cui nella barra successiva all’apertura venga toccato il valore in questione, che ritornato all’esempio appena presentato era 55.
Solo in questo caso scatta l’ordine di acquisto, mentre se durante la giornata, per esempio alle 12.25 il valore viene superato non accade nulla.
IN CHE COSA HO SBAGLIATO???
Spero tanto di essere stato chiaro e che mi possiate aiutare..... in cambio al primo che mi risolve il problema regalo una colomba :)
GRAZIE ANCORA E CIAO PAOLO

BUONISSIMA PASQUA A TUTTI..........

Vars: OO(0),CC(0),HH1(0),LL1(0),Range1_2(0),HH(0),OpRange(0);

OO= Open of data1;
HH1=High of data2;
LL1=Low of data2;

If Date<>Date[1] then begin
OpRange=AbsValue(HH1-LL1);
buy next bar at (open of data1 + OpRange)
Stop;
end;
if marketposition = 1 then begin
SetExitonClose;
end;
 
regalo 2 colombe a chi mi aiuta......:D
 
Scritto da superfib
Ho un problema dal quale non riesco ad uscirne ... e per questo mi rivolgo al FOL e spero tanto che i Maghi di Tradestation possano aiutarmi :bow: .

Sto cercando di tradurre in pratica quanto letto in un libro.

L’obiettivo è quello di far scattare un ordine di acquisto una volta che venga superato, durante la giornata borsistica, il valore prodotto dalla somma dell’Open di oggi + (H-L del giorno precedente).

Quindi se, per esempio, il Massimo del giorno precedente è 45, il minimo 40 e l’apertura di oggi è 50, l’ordine di acquisto scatterà, durante la giornata di oggi, a 55.

Qui di seguito ho inserito il Sistema che ho creato, ( ho utilizzato due grafici dello stesso titolo, Data1 a 5 minuti e Data2 daily) soltanto - e qui Vi chiedo gentilmente di aiutarmi, - che c’è qualche cosa che non va... infatti se lo applicate, noterete che il segnale viene inserito solo nel caso in cui nella barra successiva all’apertura venga toccato il valore in questione, che ritornato all’esempio appena presentato era 55.
Solo in questo caso scatta l’ordine di acquisto, mentre se durante la giornata, per esempio alle 12.25 il valore viene superato non accade nulla.
IN CHE COSA HO SBAGLIATO???
Spero tanto di essere stato chiaro e che mi possiate aiutare..... in cambio al primo che mi risolve il problema regalo una colomba :)
GRAZIE ANCORA E CIAO PAOLO

BUONISSIMA PASQUA A TUTTI..........

Vars: OO(0),CC(0),HH1(0),LL1(0),Range1_2(0),HH(0),OpRange(0);

OO= Open of data1;
HH1=High of data2;
LL1=Low of data2;

If Date<>Date[1] then begin
OpRange=AbsValue(HH1-LL1);
buy next bar at (open of data1 + OpRange)
Stop;
end;
if marketposition = 1 then begin
SetExitonClose;
end;

Succede che stai mettendo l'ordine di acquisto all'interno della condizione Date<>Date[1] che è valida solo alla prima barra del giorno quindi se il prezzo non viene superato subito nella barra successiva per tutte le barre seguenti non ci sono altri ordini attivi , prova a metterla fuori della If ... Then statement
;-))

Ciao.
 
Prima di tutto ti devo ringraziare per l'immediatezza della tua risposta.

Ho provato a fare quanto da te indicato è ho notato tuttavia che i risultati ottenuti sono diversi dall'obiettivo iniziale.

Infatti, utilizzando la variante da te indicata, il sistema prende in considerazione l'apertura di ogni singola barra di DATA1 e gli somma (H-L) di DATA2 e se il valore così ottenuto viene superato in quella barra, scatta l'acquisto.

Mentre quello che vorrei fare è di prendere in considerazione solo l'apertura della prima barra di DATA1 a cui sommare (H-L)di DATA2 e poi cercare nel corso di tutta la giornata il superamento di questo valore.

Spero che la tua pazienza non finisca qui e che si riesca a risolvere questo problema .... grazie a Tutti... Paolo
 
Scritto da superfib
Mentre quello che vorrei fare è di prendere in considerazione solo l'apertura della prima barra di DATA1 a cui sommare (H-L)di DATA2 e poi cercare nel corso di tutta la giornata il superamento di questo valore.


Vars: OO(0),CC(0),HH1(0),LL1(0),Range1_2(0),HH
(0),OpRange(0);

OO= OpenD(0); { of data1; }
HH1=HighD(1); { of data2; }
LL1=LowD(1); {of data2; }
OpRange=OO + (HH1-LL1);
If Date<>Date[1] then Condition1=True;

If condition1 Then buy next bar at OpRange Stop;
if marketposition = 1 then begin
condition1 = False;
SetExitonClose;
end;

Ciao
 
Ciao Paolo

allora 2 modi di scrivere il sistema :
Primo con due serie di dati prima serie intraday seconda daily:

Vars: OO(999999),HH1(0),LL1(0),OpRange(0);
HH1=High of data2;
LL1=Low of data2;

If Date<>Date[1] then begin
OpRange=(HH1-LL1);
OO= Open of data1;
end;
If T<> Session1EndTime then buy next bar at (OO + OpRange) Stop;

if marketposition = 1 then begin
SetExitonClose;
end;

Cose da notare: primo inizializzo la variabile OO pari a 999999 in modo che finchè non viene cambiata la prima volta che la condizione D<>D[1] è vera il mio ordine di acquisto non sarà attivato ( l'ordine sarà attivo dala prima barra dopo il maxbarsback ), seconda cosa modifico le variabili che mi servono per calcolare il prezzo di entrata solo quando la condizione D<>D[1] è vera quindi solo alla fine della prima barra giornaliera, terza cosa ho inserito la condizione T<>Session1EndTime per impedire che l'ordine di acquisto sia attivo anche per la prima barra del giorno (es . se ci fosse un gap al rialzo>OO+OpRange il sistema comprerebbe all'apertura ).

Secondo modo solo con dati intraday:
Vars:OO(999999),rng(0),idh(0),idl(999999);
If D<>D[1] then begin
OO=O;{immagazzino l'apertura nella variabile OO}
rng=idh-idl;{immmagazzino il range di ieri, le variabili idh e idl non sono state ancora aggiornate quindi hanno i valori alla barra precedente}
idh=H;{aggiorno le variabili per la nuova giornata di borsa}
idl=L;
end;
If H>idh then idh=H;{aggiorno il max intraday se c'è un nuovo max}
Il L<idl then idl=L;{aggiorno il minimo intraday se c'è un nuovo minimo}
If T<>Session1EndTime then Buy at (OO+rng) stop;

if marketposition = 1 then SetExitonClose;


Guarda se ti funzionano che li ho scritti senza testarli e se hai altri problemi chiedi pure.
Ciao e buona Pasqua.

Max
 
Grazie MAX, sei stato grandissimo OK!
Ho applicato quanto mi hai indicato e tutto è perfetto.
I segnali scattano al "momento giusto":) , tuttavia c'è qualche cosa che non riesco a capire. :confused:

Ho notato che il segnale di acquisto viene introdotto, non solo al raggiungimento del valore in questione (OO + OpRange), ma a volte scatta, nella prima barra di apertura ad un valore che non corrisponde a OO + OpRange.

Non riesco a scoprire il motivo, anche per il fatto che questa "anomala" situazione non si verifica ogni giorno, ma ogni tanto ..... quindi ancora più strano .......

Spero di non averti/averVi tediato troppo, ma sta diventando un vero e proprio rompicapo....

Nella speranza che si riesca a risolvere il "giallo" , ti ringrazio ancora tanto e attendo una graditissima risposta :).

Ciao Paolo
 
Scritto da superfib
Grazie MAX, sei stato grandissimo OK!
Ho applicato quanto mi hai indicato e tutto è perfetto.
I segnali scattano al "momento giusto":) , tuttavia c'è qualche cosa che non riesco a capire. :confused:

Ho notato che il segnale di acquisto viene introdotto, non solo al raggiungimento del valore in questione (OO + OpRange), ma a volte scatta, nella prima barra di apertura ad un valore che non corrisponde a OO + OpRange.

Non riesco a scoprire il motivo, anche per il fatto che questa "anomala" situazione non si verifica ogni giorno, ma ogni tanto ..... quindi ancora più strano .......

Spero di non averti/averVi tediato troppo, ma sta diventando un vero e proprio rompicapo....

Nella speranza che si riesca a risolvere il "giallo" , ti ringrazio ancora tanto e attendo una graditissima risposta :).

Ciao Paolo

Se ho ben capito il problema dovrebbe essere che entri in acquisto alla prima barra del giorno per questo avevo inserito la condizione t<>Sess1endtime in modo da non emettere nessun ordine durante l'ultima barra del giorno , forse non hai settato bene nel global server l'orario di chiusura delle contrattazioni o magari se la sessione chiude prima l'ordine viene attivato lo stesso.
Prova a scrivere l'ordine così:

If D=D of tomorrow then Buy at (OO+rng) stop;

così richiedi che anche la barra successiva appartenga alla sessione corrente.
Nel mio TS4 funziona , cioè non ho acquisti all'apertura .

Se hai altri problemi contattami in privato che vediamo di risolvere il tutto alla fine ;)
 
Grazie MAX, ora tutto è perfetto.

CIAO e BUONA PASQUA A TUTTI.......;)




PS. hai un messaggio....
 
Indietro