Programmazione Prorealtime Prorealtime:formule, indicatori, oscillatori, tsi ... (19 lettori)

al-fx

Nuovo forumer
Ciao al-fx secondo me ( ma magari già lo hai fatto ) dovresti girare la domanda sullo stile grafico kagi in sezione Informazioni e Didattica o in Piazza Affari magari lì qualcuno ti saprà fornire un po' di materiale da studio.Che io sappia in italiano c'e' un libro di S. Calamita su tale tecniche ( non l'ho letto e so che esiste solo per le simpatiche scaramuccie che si aprono in altri lidi ogni volta che lo si nomina :D).

Ciao e buon WE

grazie dell'informazione, provvedo
 

Quarter Horse

Nuovo forumer
Per Tetsuo

Grande !! ;)
In effetti sono stato ripagato per un tanta testardaggine e ore di "lavoro" misti a tanta ignoranza di codici di programmazione ... Se il DSS può interessare a qualcuno lo posto senza problemi e con molto piacere.
Per quanto riguarda il codice di Trade Station ti allego un file di word perchè l'ho trovato su un blog americano e non sono buono di fare un misero copia incolla poichè tale testo è dentro a una tabella formattata in maniera "strana" :wall:
Per quanto riguarda le ferie mi sa che siamo sulla stessa barca allora :titanic:

OLA
 

Allegati

  • Codici Trade Station per BLine Bressert.doc
    30 KB · Visite: 880

meursault

lo straniero

luigileo

Forumer storico
Grande !! ;)
In effetti sono stato ripagato per un tanta testardaggine e ore di "lavoro" misti a tanta ignoranza di codici di programmazione ... Se il DSS può interessare a qualcuno lo posto senza problemi e con molto piacere.
Per quanto riguarda il codice di Trade Station ti allego un file di word perchè l'ho trovato su un blog americano e non sono buono di fare un misero copia incolla poichè tale testo è dentro a una tabella formattata in maniera "strana" :wall:
Per quanto riguarda le ferie mi sa che siamo sulla stessa barca allora :titanic:

OLA

Si, grazie interesserebbe anche a me.

Ciao
 

Quarter Horse

Nuovo forumer
Dss bressert

Bene. Mi fa piacere che il DSS abbia suscitato interesse.:-o
Eccolo nella foma classica:

lo=lowest[10](low)
hi=highest[10](high)
uno=(close-lo)/(hi-lo)
xx=exponentialaverage[3](uno)*100
loo=lowest[10](xx)
hih=highest[10](xx)
due=(xx-loo)/(hih-loo)
dss=exponentialaverage[3](due)*100
if dss[1]<40 and dss[1]<=dss[2] and dss>dss[1] then
r=-10
else
r=-20
endif
if dss[1]>70 and dss[1]>=dss[2] and dss<dss[1] then
rr=-20
else
rr=-10
endif
return dss,10,40,70,90,r,rr

Alcune dritte:
- I settaggi dei segnali che genera il listato di cui sopra sono quelli stabiliti dallo stesso Bressert, ma io, per la poca esperienza che ho, consiglio di aggiungere anche altri segnali poichè a volte (spesso) capita che il "movimento" avviene quando il DSS inverte a rialzo e DSS[1] è sopra a 40 e e quindi non si genererebbe il segnale LONG. Stesso discorso per lo short sotto 70. iceversa per lo short sotto 70 e i segnali così come impostati sopra non li colgono.
Quindi per ovviare a ciò io uso il DSS con questo plottaggio per capire meglio "dove sono";):

lo=lowest[10](low)
hi=highest[10](high)

uno=(close-lo)/(hi-lo)
xx=exponentialaverage[3](uno)*100

loo=lowest[10](xx)
hih=highest[10](xx)

due=(xx-loo)/(hih-loo)
dss=exponentialaverage[3](due)*100

if dss[1]<40 and dss[1]<=dss[2] and dss>dss[1] then
r=-10
else
r=-20
endif

if dss[1]>70 and dss[1]>=dss[2] and dss<dss[1] then
rr=-20
else
rr=-10
endif

if dss<dss[1] then
t=-3
elsif dss>dss[1] then
t=3
else
t=0
endif

// R e RR plottati come linea mentre t plottato come istogramma (settando verde per rialzo e rosso per ribasso)
return dss,10,40,70,90,r coloured(0,255,0),rr coloured(255,0,0),t


- Per chi ama i cicli, in pura teoria, quando il DSS va sotto 40 e inverte al rialzo genera un segnale diciamo buy. Bene se alla successiva candela dopo quella di set up viene superato il max della candela appunto di set up allora si avrebbe la conferma della partenza di T+1 su TF daily, intermedio su TF weekly ... ecc. Dico in teoria perchè il sottoscritto con i cicli è una SCARPA, quindi non può esprimersi oltre.

P.S. (Per Tets): Per onestà, questo codice non l'ho ricavato dalla traduzione di quello di Metatrader postato da me qualche giorno fa (non ne sarei stato capace), ma da un altro codice trovato sul web in un linguaggio che sinceramnet non conosco, ma che è stato più "interpretabile.

- Ultima cosa:
Visto che coi cicli ho litigato da piccolo:lol: ho trovato utile su TF daily (da un po' uso quasi solo quello per le mie analisi) integrare i segnali del DSS con un mio piccolo sistema artigianale costruito sui volumi ed un altro su un CCI un po' modificato sempre dal sottoscritto che funzionano da filtri e sembrano dare discrete indicazioni, almeno dai tests per adesso effettuati. Questo perchè alla fine ognuno credo si debba ritagliare un proprio metodo "personale" dopo sacrifici, studio, prove (sicuramente preceduti da molti loss iniziali che prima arrivano e meglio è ....:D).

Ho già scritto anche troppo, adesso saluto e attendo il listato della BLINE di Trade Station da Tets con fiducia e poi potrò ampliare il discorso anche con essa per chi sarà interessato.
:ciao:
 

Quarter Horse

Nuovo forumer
Tutti in ferie ????
Chiederei un'altra cosetta (che metto in coda alle altre ...)
Una domanda che forse avrà trovato risposta in vecchi post (ma non ce l’ho trovata).
Vorrei fare il ProbackTest di un mio TS in gestazione, ma mi sono dovuto FERMARE già dall’inizio.
Il problema in soldoni è questo: Grafico Daily + indicatore (ad es media mobile exp a 5 periodi che chiameremo MA per semplicità).
Vorrei generage questo codice (per partire):
Se MA di ieri > MA di 2 gg fa allora oggi compra alla rottura del massimo della barra di prezzo di ieri. E ho scritto:
c1 = (MA[1] > MA[2])
buymax=high[1]
IF c1 then
BUY 1 SHARES AT buymax stop
ENDIF
Ma questo grande strunz di ProbackTest non mi acquista oggi sul max di ieri, bensi mi acquista domani in apertura. Ho provato anche altre soluzioni, ma non ne vengo a capo.
 

tetsuo

Guest
così magari non aspettiamo il fresco di settembre :D


alla fine non è arrivato settembre ma ci siamo andati molto vivini ....:)


...non mi ero mai imbattuto in un codice scritto in EL prima quindi non è stato proprio semplice e sopratutto non sono certo del risultato non avendo a disposizione TS2000i o multichart per fare dei confronti, mi dirai tu se il risultato è soddisfacente o se ci dobbiamo rimettere mano.


Allora metto subito il codice che ho scritto per PRT e poi magari lo commento un pochino ....


Codice:
//VARIABILI DI INPUT Questi i valori base
//Se si vogliono cambiare si devono creare a parte nella sezione apposita
//e cancellare queste prime righe
CXover=0
len1=3
len2=2
len3=3

//OBOS
Op=open[len3]
HstH=highest[len3](high)
LstL=lowest[len3](low)
PPr=(Op+HstH+LstL+Close)/4



if barindex=6 then
    MRng=Len1
    USm=0
    Dsm=0
    for Cntr=0 to (MRng-1) do
        UAmt=PPr[Cntr]-PPr[Cntr+1]
        
        if UAmt>=0 then
            Damt=0
        else
            DAmt=-1*UAmt
            UAmt=0
        endif
        
        USm=USm+UAmt
        DSm=DSm+DAmt
    next
    UAvg=USm/MRng
    DAvg=DSm/MRng
    
elsif barindex>6 then
    UAmt=PPr-PPr[1]
    
    if UAmt>0 then
        DAmt=0
    else
        DAmt=-1*UAmt
        UAmt=0
    endif
    
    UAvg=(UAvg[1]*(MRng-1)+UAmt)/MRng
    DAvg=(DAvg[1]*(MRng-1)+DAmt)/MRng
endif

IF (UAvg+DAvg)<>0 then
    OBOS=100*UAvg/(UAvg+DAvg)
Else
    OBOS=0
endif

//SECONDA PARTE
Sum=0
For Cnt=0 to (Len2-1) do
    Sum=Sum+OBOS[Cnt]
next


If Len2>0 then
    OBOSMY=Sum/Len2
Else
    OBOSMY=0
    Sum=0
endif

[COLOR=Red][B]Sum2=0[/B][/COLOR]
If CXOver>0 then
    For Cnt=0 to (CXOver-1) do
        
        [B][COLOR=Red]Sum2[/COLOR][/B]=[B][COLOR=Red]Sum2[/COLOR][/B]+OBOSMY[Cnt]
    next
    OBOSMYC=[B][COLOR=Red]Sum2[/COLOR][/B]/CXOver
Else
    OBOSMYC=undefined
endif



return OBOS, OBOSMY, OBOSMYC
Come dicevo non conosco assolutamente EasyLanguage quindi alcune parti più che tradurle le ho "interpretate" :D in particolar modo mi ha lasciato interdetto l'uso della funzione "CurrentBar" che non ho capito ed ancora non riesco a scaricare un manuale per poter fare un controllo migliore

Adesso metto l'analisi passo passo del codice originale tanto per fare qualcosa in questo super caldo pomeriggio.
Il programma si compone di due parti, la prima il motore principale (main) che contiene una "chiamata" alla seconda parte che è la funzione per il calcolo dell'oscillatore base (OBOS).

Partiamo dall'analisi di questa funzione. Vengono dichiarate all'inizio le operazioni da effettuare sui dati di base in modo da ottenere un prezzo medio (PPr) dato dalla somma diviso 4 di:
-open di 3 giorni prima (len3 di default è 3)
-massimo dei 3 giorni
-minimo dei 3 giorni
-chiusura attuale


Codice:
{OB/OS}
Op=O[Len3];
HstH=_Hst(H,Len3);
LstL=_Lst(L,Len3);
PPr=(Op+HstH+LstL+C)/4;


A questo punto entra in gioco "CurrentBar=1" che io ho interpretato come operazioni da fare al primo ciclo utile. In PRT l'ho tradotto con "barindex=6" (sono andato a tentativi :lol:). Si calcola in pratica la diff tra PPr attuale e precedente su tre barre, secondo se tale differenza è positiva o negativa si destina a due contenitori e infine se ne calcola la media semplice


Codice:
If CurrentBar=1 then begin
   MRng=Len1;
   USm=0;
   DSm=0;
     For Cntr=0 to MRng-1 begin
       UAmt=PPr[Cntr]-PPr[Cntr+1];
       If (UAmt>=0) then
          DAmt=0
       Else begin
          DAmt=-UAmt;
          UAmt=0;
       End;
        USm=USm+UAmt;
       DSm=DSm+DAmt;
   End;
    UAvg=USm/MRng;
   DAvg=DSm/MRng;
End
Nella restante parte si ripete il calcolo per tutte le barre a seguire aggiungendo di volta in volta alle medie precedentemente ottenute la solita diff tra PPr attuale e PPr del giorno prima e si ricalcola la media.

Codice:
    [COLOR=black]Else

[/COLOR][COLOR=black]   If CurrentBar>1 then begin
         UAmt=PPr[0]-PPr[1];
[/COLOR][COLOR=black]      IF UAmt>=0 then[/COLOR][COLOR=black]
         DAmt=0[/COLOR][COLOR=black]
      Else begin
[/COLOR][COLOR=black]         DAmt=-UAmt;
[/COLOR][COLOR=black]         UAmt=0;
[/COLOR][COLOR=black]      End;
[/COLOR][COLOR=black]      UAvg=(UAvg[1]*(MRng-1)+UAmt)/MRng;
[/COLOR][COLOR=black]      DAvg=(DAvg[1]*(MRng-1)+DAmt)/MRng;
[/COLOR][COLOR=black]   End;[/COLOR]
Si normalizza il risultato ottenuto e si ottiene così l'indicatore base che viene richiamato nella parte principale del programma.


In questa sessione non si fa altro che operare una prima lisciatura dell'indicatore OBOS

Codice:
    [COLOR=black]{OBOS}[/COLOR][COLOR=black]
Sum=0;
[/COLOR][COLOR=black]For Cnt=0 to Len2-1 begin[/COLOR][COLOR=black]
    Sum=Sum+_OBOS(CXOver)[Cnt];
[/COLOR][COLOR=black]End;
[/COLOR][COLOR=black]If Len2>0 then
[/COLOR][COLOR=black]   OBOSMY=Sum/Len2[/COLOR][COLOR=black]
Else
[/COLOR][COLOR=black]   OBOSMY=0;[/COLOR]
ottenendo così OBOSMY, quindi opera una seconda lisciatura sempre che il valore di CXOver sia superiore a 0 (altra mia interpretazione)

Codice:
   [COLOR=black]Sum=0;
[/COLOR][COLOR=black]For Cnt=0 to CXOver-1 begin
[/COLOR][COLOR=black]    Sum=Sum+OBOSMY[Cnt];
[/COLOR][COLOR=black]End;
[/COLOR][COLOR=black]If CXOver>0 then[/COLOR][COLOR=black]
   OBOSMYC=Sum/CXOver
[/COLOR][COLOR=black]Else[/COLOR][COLOR=black] 
  OBOSMYC=0;

[/COLOR]
ed otteniamo così l'ultimo valore OBOSMYC.

La restante parte è per un alert che scatta al di sopra di 70 o al di sotto di 30 e le istruzioni di plot

:titanic:

ho caldo

:ciao:
 
Ultima modifica di un moderatore:

cammello

Forumer storico
buondì,

non vedo più i valori EOD continuous per i vari Futures dell'eurex (stoxx, bund, bobl ecc), ne i dati sull'indice DAX (tra inidici stranieri): succede pure a voi?

grazie

C
 

tetsuo

Guest
....: succede pure a voi?


si

ed a quanto pare hanno proprio modificato l'offerta del pacchetto futures EUREX, i contratti continui non sono più presenti nell'elenco...:rolleyes:

dddddd.png
 

Users who are viewing this thread

Alto