COSTRUZIONE INDICATORE PER ANALISI CICLICA CON VISUAL TRADER

Ho tolto la parte di listato postata sopra.
Ho tolto la variabile miavel.
Ho messo C > C[1] per il LONG.
Ho messo C < C[1] per lo short.
installtrailingprofit(inperc,0.8,0.1,trailing);
Sotto posto il risultato. Grazie Robom.
Il report parla da solo, specialmente la percentuale di operazioni positive.

ScreenHunter_22 Jan. 02 20.38.gif


ScreenHunter_23 Jan. 02 20.39.gif


ScreenHunter_24 Jan. 02 20.39.gif
 
Magnifico, solospread.

Per piacere, posti l'ultimo listato?

Eccolo
Codice:
Var: miavar(0), Miacondizione1,Miacondizione2,miacondizione3,Miacondizione4,Miacondizione5,Miacondizione6;
Var: Miacondizione7,Miacondizione8, Miacondizione9,Miacondizione10, Miacondizione11,Miacondizione12, Miacondizione13,Miacondizione14;
Var: Miacondizione15,Miacondizione16,Miacondizione17,miacondizione18,STOP;
Var: Semaforo0910(0), semaforo1010(0), semaforo1110(0), Semaforo1210(0), semaforo1310(0), semaforo1410(0),Semaforo1510(0), semaforo1610(0), semaforo1710(0);
Var: ultimaposizione(0), indzona1(0), valoreritracciamento(0), valore(0), ultimoprezzo(0), barra(0), ope1(0), min1(0), max1(0), clo1(0);
Var: miavel, mio10, vettorestop(0), pippo(0);


//****************************************************************************************************************

if T = 0910 then Miacondizione1 = C+30; Miacondizione2 = C-30; endif;
if T = 1010 then Miacondizione3 = C+30; Miacondizione4 = C-30; endif;
if T = 1110 then Miacondizione5 = C+30; Miacondizione6 = C-30; endif;
if T = 1210 then Miacondizione7 = C+30; Miacondizione8 = C-30; endif;
if T = 1310 then Miacondizione9 = C+30; Miacondizione10= C-30; endif;
if T = 1410 then Miacondizione11= C+30; Miacondizione12= C-30; endif;
if T = 1510 then Miacondizione13 =C+30; Miacondizione14= C-30; endif;
if T = 1610 then Miacondizione15 =C+30; Miacondizione16= C-30; endif;
if T = 1710 then Miacondizione17 =C+30; Miacondizione18= C-30; endif;
//*************************************************************************************************************************

//Non si riesce a capire perche ma se metto il controllo in T = non lo prende, probabilmente perche delle barre potrebbero mancare
//in assenza di contrattazione
if T >=0910 and T <= 1009 then if positiondir =  1 then semaforo0910 = 1; endif; if positiondir = - 1 then semaforo0910 = - 1; endif; endif;
if T >=1010 and T <= 1109 then if positiondir =  1 then semaforo1010 = 1; endif; if positiondir = - 1 then semaforo1010 = - 1; endif; endif;
if T >=1110 and T <= 1209 then if positiondir =  1 then semaforo1110 = 1; endif; if positiondir = - 1 then semaforo1110 = - 1; endif; endif;
if T >=1210 and T <= 1309 then if positiondir =  1 then semaforo1210 = 1; endif; if positiondir = - 1 then semaforo1210 = - 1; endif; endif;
if T >=1310 and T <= 1409 then if positiondir =  1 then semaforo1310 = 1; endif; if positiondir = - 1 then semaforo1310 = - 1; endif; endif;
if T >=1410 and T <= 1509 then if positiondir =  1 then semaforo1410 = 1; endif; if positiondir = - 1 then semaforo1410 = - 1; endif; endif;
if T >=1510 and T <= 1609 then if positiondir =  1 then semaforo1510 = 1; endif; if positiondir = - 1 then semaforo1510 = - 1; endif; endif;
if T >=1610 and T <= 1709 then if positiondir =  1 then semaforo1610 = 1; endif; if positiondir = - 1 then semaforo1610 = - 1; endif; endif;
if T >=1710 and T <= 1730 then if positiondir =  1 then semaforo1710 = 1; endif; if positiondir = - 1 then semaforo1710 = - 1; endif; endif;
//*******************************************************************************************************************************************
//Identifica il livello del ritracciamento
if lastopisstop = false then vettorestop = 0; colorbar(lime); endif;
if lastopisstop = true  then vettorestop = 1; colorbar(red); endif;
if vettorestop[1] <> vettorestop and vettorestop = 1 then
if ultimaposizione = 1 then valoreritracciamento = H[1];
       if (CompareTime(09, 10, 0) > 0) and (CompareTime(10,09, 0) < 0) then Miacondizione1 = H[1] + 30; semaforo0910 = 0; endif;
       if (CompareTime(10, 10, 0) > 0) and (CompareTime(11,09, 0) < 0) then Miacondizione3 = H[1] + 30; semaforo1010 = 0; endif;
       if (CompareTime(11, 10, 0) > 0) and (CompareTime(12,09, 0) < 0) then Miacondizione5 = H[1] + 30; semaforo1110 = 0; endif;
       if (CompareTime(12, 10, 0) > 0) and (CompareTime(13,09, 0) < 0) then Miacondizione7 = H[1] + 30; semaforo1210 = 0; endif;
       if (CompareTime(13, 10, 0) > 0) and (CompareTime(14,09, 0) < 0) then Miacondizione9 = H[1] + 30; semaforo1310 = 0; endif;
       if (CompareTime(14, 10, 0) > 0) and (CompareTime(15,09, 0) < 0) then Miacondizione11= H[1] + 30; semaforo1410 = 0; endif;
       if (CompareTime(15, 10, 0) > 0) and (CompareTime(16,09, 0) < 0) then Miacondizione13= H[1] + 30; semaforo1510 = 0; endif;
       if (CompareTime(16, 10, 0) > 0) and (CompareTime(17,09, 0) < 0) then Miacondizione15= H[1] + 30; semaforo1610 = 0; endif;
       if (CompareTime(17, 10, 0) > 0) and (CompareTime(17,30, 0) < 0) then Miacondizione17= H[1] + 30; semaforo1710 = 0; endif;
    endif;
    if ultimaposizione = -1 then valoreritracciamento = L[1];
       if (CompareTime(09, 10, 0) > 0) and (CompareTime(10,09, 0) < 0) then Miacondizione2 = L[1] - 30; semaforo0910 = 0; endif;
       if (CompareTime(10, 10, 0) > 0) and (CompareTime(11,09, 0) < 0) then Miacondizione4 = L[1] - 30; semaforo1010 = 0; endif;
       if (CompareTime(11, 10, 0) > 0) and (CompareTime(12,09, 0) < 0) then Miacondizione6 = L[1] - 30; semaforo1110 = 0; endif;
       if (CompareTime(12, 10, 0) > 0) and (CompareTime(13,09, 0) < 0) then Miacondizione8 = L[1] - 30; semaforo1210 = 0; endif;
       if (CompareTime(13, 10, 0) > 0) and (CompareTime(14,09, 0) < 0) then Miacondizione10= L[1] - 30; semaforo1310 = 0; endif;
       if (CompareTime(14, 10, 0) > 0) and (CompareTime(15,09, 0) < 0) then Miacondizione12= L[1] - 30; semaforo1410 = 0; endif;
       if (CompareTime(15, 10, 0) > 0) and (CompareTime(16,09, 0) < 0) then Miacondizione14= L[1] - 30; semaforo1510 = 0; endif;
       if (CompareTime(16, 10, 0) > 0) and (CompareTime(17,09, 0) < 0) then Miacondizione16= L[1] - 30; semaforo1610 = 0; endif;
       if (CompareTime(17, 10, 0) > 0) and (CompareTime(17,30, 0) < 0) then Miacondizione18= L[1] - 30; semaforo1710 = 0; endif;
    endif;
endif;
//**************************************************************************************************************************************************

if (CompareTime(09, 10, 0) > 0) and (CompareTime(10,09, 0) < 0) then
       if C > Miacondizione1  and semaforo0910 <>  1  and C > C[1] then EnterLong(NextBar, AtOpen); semaforo0910 =  1; ultimaposizione =  1; endif;
       if C < Miacondizione2  and semaforo0910 <> -1 and C < C[1]then EnterShort(NextBar,AtOpen); semaforo0910 = -1; ultimaposizione = -1; endif;
endif;
if (CompareTime(10, 10, 0) > 0) and(CompareTime(11,09, 0) < 0) then
       if C > Miacondizione3  and semaforo1010 <>  1   and C > C[1]then EnterLong(NextBar, AtOpen); semaforo1010 =  1; ultimaposizione =  1; endif;
       if C < Miacondizione4  and semaforo1010 <> -1  and C < C[1]then EnterShort(NextBar,AtOpen); semaforo1010 = -1; ultimaposizione = -1; endif;
endif;
if (CompareTime(11, 10, 0) > 0) and (CompareTime(12,09, 0) < 0) then
       if C > Miacondizione5  and semaforo1110 <>  1   and C > C[1]then EnterLong(NextBar, AtOpen); semaforo1110 =  1; ultimaposizione =  1; endif;
       if C < Miacondizione6  and semaforo1110 <> -1   and C < C[1]then EnterShort(NextBar,AtOpen); semaforo1110 = -1; ultimaposizione = -1; endif;
endif;
if (CompareTime(12, 10, 0) > 0) and (CompareTime(13,09, 0) < 0) then
       if C > Miacondizione7  and semaforo1210 <>  1   and C > C[1]then EnterLong(NextBar, AtOpen); semaforo1210 =  1; ultimaposizione =  1; endif;
       if C < Miacondizione8  and semaforo1210 <> -1   and C < C[1]then EnterShort(NextBar,AtOpen); semaforo1210 = -1; ultimaposizione = -1; endif;
endif;
if (CompareTime(13, 10, 0) > 0) and (CompareTime(14,09, 0) < 0) then
       if C > Miacondizione9  and semaforo1310 <>  1   and C > C[1]then EnterLong(NextBar, AtOpen); semaforo1310 =  1; ultimaposizione =  1; endif;
       if C < Miacondizione10 and semaforo1310 <> -1   and C < C[1]then EnterShort(NextBar,AtOpen); semaforo1310 = -1; ultimaposizione = -1; endif;
endif;
if (CompareTime(14, 10, 0) > 0) and (CompareTime(15,09, 0) < 0) then
       if C > Miacondizione11 and semaforo1410 <>  1 and C > C[1]then EnterLong(NextBar, AtOpen); semaforo1410 =  1; ultimaposizione =  1; endif;
       if C < Miacondizione12 and semaforo1410 <> -1   and C < C[1]then EnterShort(NextBar,AtOpen); semaforo1410 = -1; ultimaposizione = -1; endif;
endif;
if (CompareTime(15, 10, 0) > 0) and (CompareTime(16,09, 0) < 0) then
       if C > Miacondizione13 and semaforo1510 <>  1   and C > C[1]then EnterLong(NextBar, AtOpen); semaforo1510 =  1; ultimaposizione =  1; endif;
       if C < Miacondizione14 and semaforo1510 <> -1   and C < C[1]then EnterShort(NextBar,AtOpen); semaforo1510 = -1; ultimaposizione = -1; endif;
endif;
if (CompareTime(16, 10, 0) > 0) and (CompareTime(17,09, 0) < 0) then
       if C > Miacondizione15 and semaforo1610 <>  1   and C > C[1]then EnterLong(NextBar, AtOpen); semaforo1610 =  1; ultimaposizione =  1; endif;
       if C < Miacondizione16 and semaforo1610 <> -1  and C < C[1]then EnterShort(NextBar,AtOpen); semaforo1610 = -1; ultimaposizione = -1; endif;
endif;
if (CompareTime(17, 10, 0) > 0) and (CompareTime(17,30, 0) < 0) then
       if C > Miacondizione17 and semaforo1710 <>  1  and C > C[1]then EnterLong(NextBar, AtOpen); semaforo1710 =  1; ultimaposizione =  1; endif;
       if C < Miacondizione18 and semaforo1710 <> -1   and C < C[1]then EnterShort(NextBar, AtOpen);semaforo1710 = -1; ultimaposizione = -1; endif;
endif;

//******************************************************************************************************************************************************
if t>=1732 then
if positiondir=1 then
exitlong(bar,atclose);
endif;
if positiondir=-1 then
exitshort(bar,atclose);
endif;
endif;
if lastbar = true then
Semaforo0910 = 0;
Semaforo1010 = 0;
semaforo1110 = 0;
Semaforo1210 = 0;
semaforo1310 = 0;
semaforo1410 = 0;
Semaforo1510 = 0;
semaforo1610 = 0;
semaforo1710 = 0;
endif;

installtrailingprofit (inperc,0.8,0.1,trailing);
/CODE]
 
vorrei provare questo listato con la tradestation
il problema è che non ho i tick
quale sarà il minuto che più si avvicina al tuo grafico solospread?

stavo conteggiandolo ora...forse un 7 minuti?

inoltre io ho la versione VT che da gratuitamente Intesatrade. Sapete se è possibile avere la versione con i tick?
 
inoltre io ho la versione VT che da gratuitamente Intesatrade. Sapete se è possibile avere la versione con i tick?[/quote]

no ho chiamato traderlink, mi hanno detto che per ora intesatrade non supporta ntick, ci vuole directa.
 
Il problema di distorsione di cui ti parlavo prima è nella prima parte del listato.
Non mettendo un orario preciso, ma un intervallo di tempo entro cui pescare, VT non sà piu' che pesci prendere. Togliendo questa parte di listato funziona egregiamente con 2450 punti di resa in 10 gg e oltre il 70% di operazioni positive. L'entrata dopo il trailing però , a volte, togliendo questa parte del listato non si comporta come dovrebbe.

***
Diciamo che questa parte l'avevo messa perche in quella con TF 1 minuto delle volte quando prendeva l'orario mancava proprio la barra e quindi lui non formava il pivot. Non formando il pivot quindi si verificava il caso che
quindi invece di andare short manteneva il long del pivot dell'ora precedente.
Quindi in sostanza lui prendeva quello delle barre precedenti se poi dopo la barra alle 11.10 c'era ed esisteva mette il suo valore C altrimenti comunque un valore esiste e lo puo' confrontare (un valore ad esempio di due o tre barre prima).

Ora pero' con il TS a ntick non riesco a capire il perche quelle istruzioni non gli vanno bene ed anzi vorrei capire l'ntick che livelli pivot va a prendere. Infatti c'è un giorno in cui alle 11 lui dovrebbe andare short invece continua il long tranquillamente, ma questo vuole dire che il pivot non l'ha fatto bene neanche con l'ntick.

Ora, se con la versione a ntick quando si richiede un orario a questo punto lui quale va a prendere se la barra ancora non è chiusa? se la barra ancora non è in formazione (dico quella da 75 ticks) dove li prende questi valori?
A mio avviso il discorso di aggiungere il C maggiore del precedente e viceversa per lo short è corretto nella versione ntick perche essendo ogni barra da 75 ticks in realtà si opera per rottura e quindi facendo c maggiore del precedente è una rottura

Ora le domande sono molte che riguardano le modalità di funzionamento della ntick inoltre sarebbe anche il caso di verificare dal vivo i segnali generati.
 
in allegato..ho preso un movimento laterale, a caso....11/11
:eek::eek::eek:

cmq una buona strategia....
mettendo 25€ di commissioni ( eventuale slippage ), la resa si dimezza !!
applicato ai parametri del mini......att,ne equity line negativa !!!!!!

tick.jpg
 

Users who are viewing this thread

Back
Alto