Raccolta di T.S. per Visual Trader

  • Ecco la 67° Edizione del settimanale "Le opportunità di Borsa" dedicato ai consulenti finanziari ed esperti di borsa.

    Nell’ultima settimana borsistica, i principali indici globali hanno messo a segno performance positive. In assenza di dati macro di rilievo, gli operatori si sono focalizzati sugli utili societari e sulle banche centrali. La stagione delle trimestrali è infatti entrata nel vivo in Europa e a Piazza Affari con oltre la metà dei 40 titoli che compongono il Ftse Mib ad alzare il velo sui conti. Per quanto riguarda le banche centrali, la Reserve Bank of Australia ha lasciato i tassi di interesse invariati, come previsto. Anche la Bank of England ha lasciato fermi i tassi, con due voti a favore di un taglio immediato sui nove totali. La Riksbank svedese ha invece tagliato i tassi per la prima volta in otto anni, riducendo il costo del denaro di 25 punti base al 3,75%, evidenziando la divergenza dell’Europa dalla linea dura della Fed. Per continuare a leggere visita il link

ciao. ho trovato questo mio vecchio TS......se può servirti......

{******************************************************************************
CCI_D_S_V1

REV______: 30_dic_2010
PERIODO__: 2 Giorni
TF_______: 5 minuti

MODELLO__: variazione del CCI_Index rispetto lo ZERO
D________: progressivo studio
E________: con ingressi Enter / Exit
V1_______: - variante parametri del CCI da (20) a CCI_ = CCI (C, 35);
e media che passa da (5) a CCI_indx = mov(cci_,3,s);
- eliminate variabili e grafici non utilizzati

*******************************************************************************}

Var: colore_p, zona_2, k_pos(0.030), valore, stato;
Var: cci_, cci_indx;

//--- oggetti zone
Var: ogg1, ogg2, ogg3,zona_1;
Var: miavar(0),Mio0,MioSWINGCHART1,LINEA;

// ----------------------------------------------------------------------------
// BLOCCO CALCOLO INDICATORI
// ----------------------------------------------------------------------------
//--- inizio giornata & Linea verticale ultimo giorno
if isfirstbarday then
DrawVLine (NEWOGG, 0, GetDate, red, 2, 2);
endif;
if t = 1530 then
DrawVLine (NEWOGG, 0, GetDate, blue, 2, 2);
endif;

//--- colore delle zone
//Ogg3 = DrawZone(ogg2, 0, 0900, 0930, green, 50, SETINTRADAYTIME + VIEWALLTIMES);
//Ogg3 = DrawZone(ogg2, 0, 1530, 1645, blue, 50, SETINTRADAYTIME + VIEWALLTIMES);
//Ogg3 = DrawZone(ogg2, 0, 1645, 1800, red, 50, SETINTRADAYTIME + VIEWALLTIMES);

//--- calcola CCI_Index
CCI_ = CCI (C, 35);
CCI_indx = mov(cci_,3,s);

Mio0 = (0);
MioSWINGCHART1 = SWINGCHART(C);


//--- Enter Long
if CCI_indx > 0 then
valore = C;colore_p = green;
EnterLong(nextbar, atopen);
if stato = 1 then
PlaySound ("c:\suoni\acquisto.wav");
DrawText(NEWOGG, 0, D, (valore - k_pos), " Ln", valore, black, 11, 1+4, 1);
DrawVLine(NEWOGG, 0, GetDate, black, 1, 0);
stato = 0;
endif;
endif;
//--- Enter Short
if CCI_indx < 0 then
valore = C;colore_p = red;
EnterShort(nextbar, atopen);
if stato = 0 then
PlaySound ("c:\suoni\vendita.wav");
DrawText(NEWOGG, 0, D, (valore + k_pos), " Sh", valore, black, 11, 1+4, 1);
DrawVLine(NEWOGG, 0, GetDate, red, 1, 0);
stato = 1;
endif;
endif;

colorbar(colore_p);

//--- plottaggio trend
zona_1 = CreateViewport(300,0,true);
DrawText(NEWOGG, zona_1, D, cci_indx, " ", cci_indx, black, 9, 1+4, 1);
PlotChart( 100 , zona_1, blue, solid, 1) ;
PlotChart( -100 , zona_1, red , solid, 1) ;
PlotChart(cci_indx , zona_1, blue, solid, 1) ;
PlotChart(cci_indx , zona_1, colore_p, istogramma, 2) ;
LINEA = MioSWINGCHART1;
PlotChart( LINEA, 0, red, solid, 2) ;
//------------------------------------ END

Buongiorno, funziona tutto a dovere. grazie.

Ne approfitto per chiederti se per sbaglio hai anche il istato per il supertrend sempre per visualtrader, mi apsettavo di trovarlo ma purtropop nella versioen base non e incluso.

Vi ringrazio in anticipo per l'aiuto che riuscirete a darmi.

buon gain !
 
Supertrend
prova se funziona questo
Codice:
//SuperTrend.
Var:super,flag,flagh,mioatr,miocci,mrange,st(0),molt(3),trendup,trenddown,indzona1,trend(1),changetrend;
Var:previousH,previousL,ggini,indperiodo,numper,lin8,lin9;

////////////////////////////////////////////////////////////////////////////////////////////////////////
mioatr=atr(c,10);
trendup=avgprice+(molt*mioatr);
trenddown=avgprice-(molt*mioatr);

/////////////////////////////////////////////////////////////////////////////

previousH=EoD.H;
previousL=EoD.L;
ggini=getdate;
indperiodo=0;
indperiodo=indperiodo+1;
numper=indperiodo;

lin8=drawhlineper(0,0,ggini,previousH ,numper,green,1,0,showval,"High");
lin9=drawhlineper(1,0,ggini,previousL ,numper,red,1,0,showval,"Low");

/////////////////////////////////////////////
if c>trendup[1] then trend=1;
   else
   if c<trenddown[1] then  trend=-1;
   endif;endif;

if trend<0 and trend[1]>0 then flag=1;
           else flag=0;
endif;
if trend>0 and trend[1]<0 then flagh=1;
           else flagh=0;
endif;

if trend>0 and trenddown<trenddown[1] then trenddown=trenddown[1];
endif;

if trend<0 and trendup>trendup[1] then trendup=trendup[1];
endif;

if flag=1 then trendup=avgprice+(molt*mioatr);
endif;

if flagh=1 then trenddown=avgprice-(molt*mioatr);
endif;

if trend=1 then super=trenddown;
           else super=trendup;
endif;
////////////////////////////////////////////////////////////////////////////////////////////////////
PlotChart(super, 0, green, solid, 3);
 
Supertrend
prova se funziona questo
Codice:
//SuperTrend.
Var:super,flag,flagh,mioatr,miocci,mrange,st(0),molt(3),trendup,trenddown,indzona1,trend(1),changetrend;
Var:previousH,previousL,ggini,indperiodo,numper,lin8,lin9;

////////////////////////////////////////////////////////////////////////////////////////////////////////
mioatr=atr(c,10);
trendup=avgprice+(molt*mioatr);
trenddown=avgprice-(molt*mioatr);

/////////////////////////////////////////////////////////////////////////////

previousH=EoD.H;
previousL=EoD.L;
ggini=getdate;
indperiodo=0;
indperiodo=indperiodo+1;
numper=indperiodo;

lin8=drawhlineper(0,0,ggini,previousH ,numper,green,1,0,showval,"High");
lin9=drawhlineper(1,0,ggini,previousL ,numper,red,1,0,showval,"Low");

/////////////////////////////////////////////
if c>trendup[1] then trend=1;
   else
   if c<trenddown[1] then  trend=-1;
   endif;endif;

if trend<0 and trend[1]>0 then flag=1;
           else flag=0;
endif;
if trend>0 and trend[1]<0 then flagh=1;
           else flagh=0;
endif;

if trend>0 and trenddown<trenddown[1] then trenddown=trenddown[1];
endif;

if trend<0 and trendup>trendup[1] then trendup=trendup[1];
endif;

if flag=1 then trendup=avgprice+(molt*mioatr);
endif;

if flagh=1 then trenddown=avgprice-(molt*mioatr);
endif;

if trend=1 then super=trenddown;
           else super=trendup;
endif;
////////////////////////////////////////////////////////////////////////////////////////////////////
PlotChart(super, 0, green, solid, 3);

Ciao, vista la tua grande preparazione tecnica in materia, volevo chiederti se conosci qualche testo aggiornato o sito sul quale imparare il linguaggio di VT. Sto comunque imparando Python ma avendo VT non sarebbe male usare anche questo, visto che è una piattaforma dedicata. Grazie.
 
Salve a tutti!

Grazie @xavier sardá e a tutti gli altri per il contributo didattico e sussidiario alle troppo scarne, altre risorse (manuale, assistenza, video, forum e pagine relative).
Mi è stato di grande aiuto leggere tutti i messaggi (sono quasi arrivato ad oggi). Siete l'unica ragione per cui ancora sto provando a programmare sulla VT.
Per questo vi chiedo un consiglio su come poter apprendere meglio e più velocemente il linguaggio?
Detto questo vi mostro uno dei miei ts di studio che più mi sta dando problemi, nella speranza che mi possiate aiutare a risolvere i miei dubbi.
Nel dettaglio:
1. Non riesco a capire se si possa mettere nelle funzioni di installtakeprofit e stoploss una variabile numerica invece del semplice numero. (perché non riesco ad atto pratico ad utilizzarlo in questo modo)
2. Sapreste un metodo per dare un input alle variabili prima dell'avvio del ts, per poterne operare un'ottimizzazione? se si come mi consigliate di procedere?
Codice:
 {******************************************************************************
Entra nel gap se è compreso nei parametri,
TP=ST = al valore di chiusura del gap. studiato per barre TF<=5 min
******************************************************************************}
Var: prova(0), chiusura, apertura, differenza, value,Par,ParM;  		// Agggiungere qui le variabili che vi servono
Par=40;
ParM=200;
SECTION_ENTERLONG:
if IsFirstBarDay then
   If IsDownGap then
    chiusura=H[1];
    differenza=C[1]-O[0];
    if (differenza>=Par)and (differenza<=ParM)then
        buy(this,nextbar,atOpen,1);	
   endif;
   endif;
endif;	
END_SECTION
SECTION_EXITLONG:
value=varperc(differenza,chiusura);
InstalltakeProfit(INPERC, value, "take");
InstalltakeProfit(INPERC, value, "st");
if T > 1715 then
   sell(this,nextbar,atOpen,1);
endif;

END_SECTION
SECTION_ENTERSHORT:
if IsFirstBarDay then
    If IsUpGap then
    chiusura=H[1];
    differenza=O[0]-C[1];
    if (differenza>=Par)and(differenza<=ParM)then
       sell(this,nextbar,atOpen,1);  	
    endif;
    endif;
endif;
END_SECTION
SECTION_EXITSHORT:
value=varperc(differenza,chiusura);
InstalltakeProfit(INPERC,value, "take");
InstalltakeProfit(INPERC,value, "st");
if T > 1715 then
   buy(this,nextbar,atOpen,1);
endif;
END_SECTION
Grazie ancora a tutti coloro che mi dedicheranno un po' del loro tempo :bow:
 
Dopo un po' di lavoro, prove su prove ho risolto il problema:
Codice:
{******************************************************************************
Entra nel gap se è maggiore del parametro la sua differenza
chiusura alla chiusura del gap.
******************************************************************************}
Var: prova(0), chiusura, apertura, differenza, value,Par,ParM,apertura,val1,val2;  		// Agggiungere qui le variabili che vi servono
input: Par;
input: ParM;
if IsFirstBarDay then
   If IsDownGap then
    chiusura=L[1];
    differenza=C[1]-O[0];
    apertura=O[0];
      if (differenza>=Par)and (differenza<=ParM)then
      val1=apertura+differenza;
      val2=apertura-differenza;
        InstalltakeProfit(inval, val1, "take");
        Installstoploss(inval, val2, "st");
        buy(this,nextbar,atOpen,1);
        endif;
    endif;
    If IsUpGap then
    chiusura=H[1];
    differenza=O[0]-C[1];
    apertura=O[0];
    if (differenza>=Par)and(differenza<=ParM)then
       //sell(this, bar, atClose, 1);
       val1=apertura+differenza;
       val2=apertura-differenza;
       InstalltakeProfit(inval, chiusura, "take");
       Installstoploss(inval, val1, "st");
       sell(this,nextbar,atOpen,1);  	
    endif;
    endif;
endif;
if positiondir<>0 then
  if T > 1710 then
  if positiondir>0 then
  sell(this,nextbar,atOpen,1);
  endif;
  if positiondir<0 then
  buy(this,nextbar,atOpen,1);
  endif;	
  endif;	
endif;
tuttavia ancora non capisco come mai se il take profit e lo stop lo metto fuori dal ciclo in cui entro, mi chiude sempre le posizioni.
qualche buon anima può aiutarmi a risolvere questo ennesimo enigma?
Risento veramente di un manuale più esplicativo e di maggiori esempi su tutte le funzioni dello stesso.
 
Salve, qualcuno dispone dell'Oscillatore Prezzo/Price Oscillator per VT?
 
E' già inserito.
Vai in Editor TS, poi sul punto di domanda e scorri tutti gli indicatori

Cattura.JPG
 
Buongiorno a tutti,

non sono riuscito a trovare un T.S di ichimoku completo, con la kumo ben visibile.

Esiste qualcosa ?
Grazie
Christian
 
Buongiorno a tutti,

non sono riuscito a trovare un T.S di ichimoku completo, con la kumo ben visibile.

Esiste qualcosa ?
Grazie
Christian

non lo uso...non so se va bene

Codice:
Var: TeLine,KiLine,ChSpan,SeA,SeB,KumoL(false),KumoS(false);
var: P1(9),P2(26),P3(52),P4(3),indzona1;

TeLine=wilder(op(op(hhv(h,P1),llv(l,P1),add),constval(2),divis),3);
KiLine=wilder(op(op(hhv(h,P2),llv(l,P2),add),constval(2),divis),3);
ChSpan=wilder(ref(c,P2),P4);

SeA=wilder(op(op(ref(TeLine,P2),ref(KiLine,P2),add),constval(2),divis),3);
SeB=wilder(op(op(ref(hhv(h,P3),P2),ref(llv(l,P3),P2),add),constval(2),divis),3);
if TeLine>KiLine and TeLine>SeA and TeLine>SeB then KumoL=True;else KumoL=false;endif;
if TeLine<KiLine and TeLine<SeA and TeLine<SeB then KumoS=True;else KumoS=false;endif;

plotchart(teline, 0, black, solid, 2);
plotchart(kiline, 0, red, solid, 2);
plotchart(chspan, 0, green, dot, 1);
plotchart(sea, 0, blue, dot, 1);
plotchart(seb, 0, gray, dot, 1);

indzona1 = Createviewport(250);
plotchart(kumoL, indzona1, yellow, solid, 1);
plotchart(kumoS, indzona1, gray, solid, 1);
 
non lo uso...non so se va bene

Codice:
Var: TeLine,KiLine,ChSpan,SeA,SeB,KumoL(false),KumoS(false);
var: P1(9),P2(26),P3(52),P4(3),indzona1;

TeLine=wilder(op(op(hhv(h,P1),llv(l,P1),add),constval(2),divis),3);
KiLine=wilder(op(op(hhv(h,P2),llv(l,P2),add),constval(2),divis),3);
ChSpan=wilder(ref(c,P2),P4);

SeA=wilder(op(op(ref(TeLine,P2),ref(KiLine,P2),add),constval(2),divis),3);
SeB=wilder(op(op(ref(hhv(h,P3),P2),ref(llv(l,P3),P2),add),constval(2),divis),3);
if TeLine>KiLine and TeLine>SeA and TeLine>SeB then KumoL=True;else KumoL=false;endif;
if TeLine<KiLine and TeLine<SeA and TeLine<SeB then KumoS=True;else KumoS=false;endif;

plotchart(teline, 0, black, solid, 2);
plotchart(kiline, 0, red, solid, 2);
plotchart(chspan, 0, green, dot, 1);
plotchart(sea, 0, blue, dot, 1);
plotchart(seb, 0, gray, dot, 1);

indzona1 = Createviewport(250);
plotchart(kumoL, indzona1, yellow, solid, 1);
plotchart(kumoS, indzona1, gray, solid, 1);

Ho scritto sta roba, tipo 10 anni fa :eek:
Il tempo vola.

Come stai, Bruno?
 
ciao Stefano...sto meglio..giusto oggi check control dal cardiologo..vediamo che dice
spero tu tutto ok ?!;)

Tutto bene, grazie.
Dimenticavo di dire che, facilmente, il ts di sopra, sintatticamente ritornerà errori. La sintassi di VT negli anni è cambiata.
Verificate, ciao.
 
ciao a tutti ,
volevo chiedere un piccolo aiuto su un problemino che non riesco a risolvere .
Buongiorno , volevo avere un aiuto su una riga di codice che non riesco a fare .

Volevo prelevare i dati dall'indice FTSE MIB della chiusura e portarli su un altro grafico e quello l'ho risolto utilizzando questo blocco

ftsemib = LoadStock("FTSEMIB", intraday, 60 * 30);// Carico il ftsemib a 30 min
ftsemibc = GetValByStock(ftsemib, "c", 0); // ottengo la chiusura del ftsemib

non riesco a trasportare un indicatore il " supertrend"

Seconda possibile opzione è calcolare il valore del supertrend sul FTSE MIB e vedere dove si trova rispetto alla chiusura del FTSE MIB , a me basta solo sapere se si trova sotto=1 o sopra =0 .

Terza opzione , ho scoperto che si può avere su un grafico ( TELECOM ad esempio ) avere anche un secondo grafico FTSE MIB con scala a sx e si riesce adirittura a calcolare il supertrend sul FTSE MIB , purtroppo non riesco ad avere una variabile che abbia il valore del supertrend del FTSE sul grafico di Telecom , qualche idea di come fare ??

supertrend1 = SUPERTREND(C, 10,3); /// questo lo vorrei del FTSE
if (supertrend1 > ftsemibc) then variabile=0;endif;
if (supertrend1 < ftsemibc) then variabile=1;endif;

Ragazzi grazie se potete darmi una mano
 
Q u e s i t o :

Sono un ex programmatore COBOL (computer Honeywell anni 90) che vorrebbe sfruttare quella esperienza nel trading automatico. Pongo alcuni quesiti:

1) qual'è il linguaggio per scrivere T. S. (se esiste) che si avvicina di più alla struttura Cobol?
2) qual'è un linguaggio abbastanza potente ma semplice e, (possibilmente) gratuito?
3) io vivo in Basilicata (Potenza): c'è qualche principiante come me che sia interessato a condividere l'investimento in hardware, basi dati per i test e ricerca delle strategie?

Ringrazio Xavier Sardà per aver creato questo raro e utilissimo "salotto" dove si possono condividere esperienze e opinioni sul trading automatico.
 
Indietro