Visual Trader T.S. : Problemi & Soluzioni

Re: Livelli di Ingresso

Scritto da Django
Vorrei riuscire a memorizzare come livelli di ingresso dei prezzi caratterizzati dall' inizio di un evento in particolare:

"quando RSI < 30 per almeno 2 giorni consecutivi considera come valore di ingresso l' Hight del 1° giorno che l' RSI si è portato sotto i 30. "

Chiaramente l'RSI continuando a restare sotto i 30 aggiorna il valore di ingresso col nuovo Hight della giornata.

Vorrei riuscire a memorizzare un valore di prezzo a seguito di un qualsiasi eventi.

Tornando al particolare tra " " come posso tradurlo in Codice ??
:wall:

Rispondo sperando di aver ben interpretato la domanda.


Ho formulato una ipotesi di trading, basata sulla Sua domanda, sperando di aver capito bene.
Il codice che segue rispetta la seguente strategia ipotetica:


Utilizzo il valore 30 dell'RSI come attivatore per il trading, nel senso che quando il valore di RSI supera 30 allora entro in acquisto al valore del prezzo massimo che ha segnato il titolo quando RSI era (per almeno due giorni) sotto 30. Questo valore di ingresso si deve aggiornare continuamente, rimanendo quindi memorizzato, finche' RSI resta sotto 30.


Ecco il codice:


Codice:
// per prima cosa dichiaro le variabili che mi sevono
//
var: valore_rsi(0),
       valore_ingresso(0);


valore_rsi = RSI(C,21, S);   // Calcolo RSI a 21 giorni



// se RSI minore di 30 negli ultimi 2 giorni MEMORIZZO il valore massimo
// del titolo di ieri (cioe' il primo dei due giorni con RSI < 30


if valore_rsi < 30 and valore_rsi[1] < 30 then
     valore_ingresso= H[1];
endif;


SECTION_ENTERLONG:
  // Se RSI sale sopra 30 acquisto "domani" al valore che ho memorizzato
  // l'ultima volta in cui RSI era per due giorni sotto i 30


  if valore_rsi > 30 and  valore_ingresso> 0 then
      enterlong (NextBar,  valore_ingresso);
  endif;
END_SECTION

Questo codice e' fornito per puro esempio....

Cordiali Saluti.

Staff TraderLink.
 
Ultima modifica:
Scritto da TRADERLINK
Grazie per la Segnalazione,
Provvederemo a verificare il problema, sperando di risolverlo in tempi brevi.

Potrebbe esserci utile sapere:
1 - La compressione del grafico utilizzata
2 - Inviare il file TTS ad assistenza@traderlink.it (o la formula) dove avviene l'anomalia.

Cordiali Saluti
Staff Traderlink



Inviata e-mail con file TTS e file MOD col quale aprendo il grafico di San Paolo Imi e applicandoci quel TS si è verificata quest' anomalia.
Grazie resto in attesa
snorio
 
cmq sia noto grossi problemi nell'utilizzare il ts cambiando formati del grafico, o cambiando titolo, o cambiando periodi visualizzati.

i problemi sono:

schiacciamento del grafico, oppure

il ts lo si vede per metà periodo del grafico assiemi ai suoi indicatori interni, oppure

si blocca VT.

quisti sono i problemi che più si presentano.

ora per risolvere, o chiudo il grafico e lo riapro da zero, oppure riavvio VT, in base al problema che succede.


il secondo problema importante ke riscontro ora e ke ho già menzionato le volte scorse, sono le frecce di ingresso, seguendo il tutto in tempo reale spesso scompare o la freccia di ingresso o quella di uscita vedendo ad esempio una posizione chiusa senza ke sia mai stata aperta, per risolvere devo riattivare il ts col tasto M.


questo problema mi si presenta anche con altri ts, quindi nn è un problema di un ts ke usavo prima, per vederlo penso bastino due semplici medie mobili con la funzione crossover e crossunder, nei momenti in cui ci sono i segnali si verificano queste cose.
 
volevo sapere se la funzione PositionValue vale anche per lo short.

mi viene sto dubbio perchè nn riesco a fare un valore di stoploss in caso di prezzo maggiore del prezzo di ingresso di una posizione short, mi sono intrippato li:D

ValStop=AddTick(PositionValue,-4);

SECTION_EXITSHORT:
if C > ValStop then

ho provato varie soluzioni ma da grafico nn mi sembra dia uscite corrette.

in pratica dal punto di ingresso se il titolo sale sopra di 4 tick in C mi dovrebbe stoppare, nn mi sembra stia facendo questo.
 
come prova ho fatto questo:

Var:MedMobMax(0),MedMobMin(0),MedMobLenta(0);

Var:ValGain(0);
Var:ValStop(0);

ValStop=AddTick(PositionValue,-4);
ValGain=AddTick(PositionValue,10);

SECTION_ENTERSHORT:
if CrossUnder(MedMobMax,MedMobMin) then
EnterShort (NextBar,AtClose); // COMPRA

endif;


SECTION_EXITSHORT:
if C > ValGain or C > ValStop then
ExitShort (NextBar,AtOpen);
endif;


dovrebbe entrare short al crossunder della mm dei max su quella dei min, stopparmi se la chiusura è maggiore di 4 tick dal punto di ingresso e chiudere lo short in gain se la chiusura è maggiore di 10 tick dal mio punto di ingresso.


almeno questo è quel che volevo fare.
 
Scritto da TRADERLINK
Grazie per la Segnalazione,
Provvederemo a verificare il problema, sperando di risolverlo in tempi brevi.

Potrebbe esserci utile sapere:
1 - La compressione del grafico utilizzata
2 - Inviare il file TTS ad assistenza@traderlink.it (o la formula) dove avviene l'anomalia.

Cordiali Saluti
Staff Traderlink



leggo ora, la compressione del grafico base parte dal 60 min partenza ore 9:10.


basta che cambio compressione, titolo o numero di giorni che prima o poi mi si pianta, e di solito nn ci vuole molto.
 
Scritto da lele2
i problemi sono:

schiacciamento del grafico, oppure

il ts lo si vede per metà periodo del grafico assiemi ai suoi indicatori interni, oppure

Potrebbe per cortesia controllare che nel caso dello schiacciamento del grafico non stia per caso dicendo al TS di disegnare il grafico di una variabile il cui valore è decisamente lontano da quello del titolo?
Ad esempio il disegno, tramite PlotChart, di un valore spesso a zero sul grafico di un titolo il cui valore sia molto maggiore.

E potrebbe, per il secondo caso, controllare di non avere erroneamente selezionato di applicare il TS ad un preciso periodo temporale?

Se, infine, avesse la possibilità di spedirci uno dei TS che le procura questi problemi le saremmo grati.

Cordiali saluti,
Staff Traderlink
 
Scritto da lele2
volevo sapere se la funzione PositionValue vale anche per lo short.

mi viene sto dubbio perchè nn riesco a fare un valore di stoploss in caso di prezzo maggiore del prezzo di ingresso di una posizione short, mi sono intrippato li:D

ValStop=AddTick(PositionValue,-4);

SECTION_EXITSHORT:
if C > ValStop then

E' molto probabile che il problema da lei riscontrato sia dovuto al segno del parametro passato alla funzione AddTick. Infatti per impostare uno stop loss in una posizione short bisogna aggiungere, e non sottrarre, i tick desiderati al valore di vendita.

Quindi è possibile che scrivendo:
Codice:
ValStop=AddTick(PositionValue, 4);
i valori di stop si piazzino dove lei li aspetta.
Ci faccia sapere se così non fosse.

Cordiali saluti,
Staff Traderlink
 
Siete riusciti a capire perchè salatano le freccine al TS che vi ho spedito ?
Saluti snorio
 
Scritto da lele2
dovrebbe entrare short al crossunder della mm dei max su quella dei min, stopparmi se la chiusura è maggiore di 4 tick dal punto di ingresso e chiudere lo short in gain se la chiusura è maggiore di 10 tick dal mio punto di ingresso.

Premesso che nel TS incollato manca l'effettivo calcolo delle medie senza il quale è ovviamente impossibile che qualcosa funzioni, le vorrei far notare come deve stare bene attento quando scrive un TS che operi short: le condizioni di ingresso ed in uscita per questi TS devono infatti essere "ribaltate" rispetto a quelle che si userebbero in TS long.

Dunque per calcolare il valore di stop deve aggiungere, anzichè sottrarre, 4 tick; per calcolare quello di gain deve invece sottrarre, anzichè aggiungere, 10 tick.
Infine deve chiudere la posizione quando il valore di chiusura e' minore del suo valore di gain oppure è maggiore di quello di stop.
Codice:
if C < ValGain or C > ValStop then
    ExitShort (NextBar,AtOpen);
endif;

Distinti saluti,
Staff Traderlink
 
Re: Re: Livelli di Ingresso

Scritto da TRADERLINK
Rispondo sperando di aver ben interpretato la domanda.


Ho formulato una ipotesi di trading, basata sulla Sua domanda, sperando di aver capito bene.
Il codice che segue rispetta la seguente strategia ipotetica:


Utilizzo il valore 30 dell'RSI come attivatore per il trading, nel senso che quando il valore di RSI supera 30 allora entro in acquisto al valore del prezzo massimo che ha segnato il titolo quando RSI era (per almeno due giorni) sotto 30. Questo valore di ingresso si deve aggiornare continuamente, rimanendo quindi memorizzato, finche' RSI resta sotto 30.


Ecco il codice:


Codice:
// per prima cosa dichiaro le variabili che mi sevono
//
var: valore_rsi(0),
       valore_ingresso(0);


valore_rsi = RSI(C,21, S);   // Calcolo RSI a 21 giorni



// se RSI minore di 30 negli ultimi 2 giorni MEMORIZZO il valore massimo
// del titolo di ieri (cioe' il primo dei due giorni con RSI < 30


if valore_rsi < 30 and valore_rsi[1] < 30 then
     valore_ingresso= H[1];
endif;


SECTION_ENTERLONG:
  // Se RSI sale sopra 30 acquisto "domani" al valore che ho memorizzato
  // l'ultima volta in cui RSI era per due giorni sotto i 30


  if valore_rsi > 30 and  valore_ingresso> 0 then
      enterlong (NextBar,  valore_ingresso);
  endif;
END_SECTION

Questo codice e' fornito per puro esempio....

Cordiali Saluti.

Staff TraderLink.

GRAZIE per la risposta immediata , ma come hai sospettato in realtà mi sono spiegato male, però il senso è stato compreso.
La difficoltà che riscontro è che "valore_ingresso= H[1];" rimanesse tale come riferimento anche quando al posto di 2 candele ne ho 6 consecutive sotto ai 30 dell' RSI.

o meglio se ho 2 candele consecuti sotto 30 allora ho "valore_ingresso= H[1];"

se pero le candele consecutive sotto ai 30 sono 7 come faccio a dirgli "valore_ingresso= H[6];" ovvero questo valore H[x] è dinamico e non sò come inseguirlo.

Spero di avere colmato le lacune della precedente richiesta.
RINGRAZIO NUOVAMENTE
 
Scritto da TRADERLINK
Potrebbe per cortesia controllare che nel caso dello schiacciamento del grafico non stia per caso dicendo al TS di disegnare il grafico di una variabile il cui valore è decisamente lontano da quello del titolo?
Ad esempio il disegno, tramite PlotChart, di un valore spesso a zero sul grafico di un titolo il cui valore sia molto maggiore.

E potrebbe, per il secondo caso, controllare di non avere erroneamente selezionato di applicare il TS ad un preciso periodo temporale?

Se, infine, avesse la possibilità di spedirci uno dei TS che le procura questi problemi le saremmo grati.

Cordiali saluti,
Staff Traderlink

come detto succede col ts attivo e cambiando titolo (drag&drop), oppure cambiando periodo di giorni timeframe delle barre, nn succede questo problema se nn modifico queste cose.

-------------------------------
E potrebbe, per il secondo caso, controllare di non avere erroneamente selezionato di applicare il TS ad un preciso periodo temporale?
---------------------
ho provato a dirgli dal menù opzioni nell'editor di partire dalle ore 10:10 per calcolare il ts, su questo nn ho fatto caso se incide sul problema, se mi ricapita e riesco a filtrare la cosa vi farò sapere.




i plotting usati sono i seguenti:

//Indicatori disegnati sul grafico

plotchart(Stoc_DL,Stoc_Zona,black,Solid,1);
plotchart(Stoc_KV,Stoc_Zona,Red,Solid,1);
plotchart(RSI1,RSIZona,blue,Solid,1); // indicatore
plotchart(MedMobRSI1,RSIZona,Yellow,solid,1);
plotchart(MedMobMedia,0,Blue,solid,1); // indicatore media mobile
plotchart(MedMobVeloce,0,Cream,solid,1); // indicatore media mobile
plotchart(BollUpp,0,Blue,solid,1); // indicatore Boll superiore
plotchart(BollLow,0,Blue,solid,1); // indicatore Boll Inferiore

//Linee disegnate sul grafico o su indicatori

DrawHLine(NEWOGG,RSIZona,70,Blue,1,0); // linee dentro rsi
DrawHLine(NEWOGG,RSIZona,25,Red,1,0); // linee dentro rsi
DrawHLine(NEWOGG,Stoc_Zona,80,Blue,1,0); // linee dentro Stoc
DrawHLine(NEWOGG,Stoc_Zona,20,Red,1,0); // linee dentro Stoc
DrawHLine(NEWOGG,Stoc_Zona,31,Yellow,1,0); // linee dentro Stoc
 
ecco un esempio fresco di indicatori ke nn si completano sul grafico, quì ho capito il problema, una delle mm ha un valora alto, 150 periodi, ma se nn ricordo male sui grafici normali di solito è solo quella mm che nn è completa, le altre risultano complete, invece sul ts risultano tutte incomplete.

oltretutto quella mm nn viene usata per entrare .
 

Allegati

  • esempio di indicatori nn completi.png
    esempio di indicatori nn completi.png
    23,2 KB · Visite: 87
Scritto da TRADERLINK
Premesso che nel TS incollato manca l'effettivo calcolo delle medie senza il quale è ovviamente impossibile che qualcosa funzioni, le vorrei far notare come deve stare bene attento quando scrive un TS che operi short: le condizioni di ingresso ed in uscita per questi TS devono infatti essere "ribaltate" rispetto a quelle che si userebbero in TS long.

Dunque per calcolare il valore di stop deve aggiungere, anzichè sottrarre, 4 tick; per calcolare quello di gain deve invece sottrarre, anzichè aggiungere, 10 tick.
Infine deve chiudere la posizione quando il valore di chiusura e' minore del suo valore di gain oppure è maggiore di quello di stop.
Codice:
if C < ValGain or C > ValStop then
    ExitShort (NextBar,AtOpen);
endif;

Distinti saluti,
Staff Traderlink


ho trovato l'arcano e risolto la logica dello stop.

quando posto il codice invio solo pa parte relativa al problema, il resto date pure per scontato che è presente.
 
Scritto da snorio
Siete riusciti a capire perchè salatano le freccine al TS che vi ho spedito ?
Saluti snorio

Come scritto in precedenza, stiamo verificando l'anomalia.
Essendo un problema non sempre riscontrabile, ci potrebbero volere dei giorni per la soluzione.

Cordiali Saluti
Staff Traderlink
 
Scritto da TRADERLINK
Come scritto in precedenza, stiamo verificando l'anomalia.
Essendo un problema non sempre riscontrabile, ci potrebbero volere dei giorni per la soluzione.

Cordiali Saluti
Staff Traderlink


Grazie
 
Scritto da lele2
ho trovato l'arcano e risolto la logica dello stop.

quando posto il codice invio solo pa parte relativa al problema, il resto date pure per scontato che è presente.

però ho notato una cosa guardando anke un esempio sugli stop, se metto

ValStop=AddTick(PositionValue,4);

ValGain=AddTick(PositionValue,-10);

fuori dalle sezioni enter short e exit short funziona, se lo metto dentro enter short nn funziona correttamente, se lo metto dentro exitshort funziona correttamente.

SECTION_ENTERSHORT:
if CrossUnder(MedMobMax,MedMobMin) then
EnterShort (NextBar,AtClose); // COMPRA

endif;
END_SECTION

SECTION_EXITSHORT:
ValStop=AddTick(PositionValue,4);

ValGain=AddTick(PositionValue,-10);
if C < ValGain or C > ValStop then
ExitShort (NextBar,AtOpen);

endif;
END_SECTION










su un vostro esempio ho trovato:


SECTION_ENTERLONG:
// Acquistiamo se la media veloce sale oltre la media breve
if media1 > media2 then
EnterLong(NextBar, AtOpen); // COMPRA
valstop= AddPerc(C,-2); // Stop-Loss:il close di adesso meno il 3%
endif;

END_SECTION

SECTION_EXITLONG:
newstop= AddPerc(C,-2);
if newstop > valstop then
valstop = newstop;

endif;
if C < valstop or media1 < media2 then
ExitLong(NextBar, AtOpen); // Liquida posizione long
endif;

END_SECTION

-------------------


valstop= AddPerc(C,-2); sta dentro la sezione enter e nn exit.

vedendo queste due diverse opzioni con risultati differenti mi chiedevo il motivo e dove potesse stare l'errore.
 
ecco uno schiacciamento di grafico improvviso senza che facessi nulla, sembra sia accaduto appena si è fatta una barra nuova, dico sembra, nn son sicuro, era sul 30 min.


per risolvere ho chiuso e riaperto il grafico e rimesso il ts.

il ts è questo...


Var:MedMobMax(0),MedMobMin(0),MedMobLenta(0);

Var:ValGain(0);
Var:ValStop(0);
Var:newstop(0);

ValStop=AddTick(PositionValue,4);

ValGain=AddTick(PositionValue,-10);

MedMobMax=Mov(C,5,A);
MedMobMin=Mov(C,30,A);
MedMobLenta=Mov(C,100,A);

plotchart(MedMobLenta,0,Red,solid,1);
plotchart(MedMobMax,0,Yellow,solid,1);
plotchart(MedMobMin,0,Blue,solid,1);

SECTION_ENTERLONG:
END_SECTION
SECTION_EXITLONG:
END_SECTION
SECTION_ENTERSHORT:
if CrossUnder(MedMobMax,MedMobMin) then
EnterShort (NextBar,AtClose); // COMPRA

endif;
END_SECTION


SECTION_EXITSHORT:

if C < ValGain or C > ValStop then
ExitShort (NextBar,AtOpen);

endif;
END_SECTION
 

Allegati

  • schiacciamento improvviso.png
    schiacciamento improvviso.png
    14,1 KB · Visite: 164
Scritto da lele2
ecco un esempio fresco di indicatori ke nn si completano sul grafico, quì ho capito il problema, una delle mm ha un valora alto, 150 periodi, ma se nn ricordo male sui grafici normali di solito è solo quella mm che nn è completa, le altre risultano complete, invece sul ts risultano tutte incomplete.

Sui grafici normali gli indicatori sono, per così dire, slegati fra loro ma in un trading system essi devono comunque essere calcolati dalla stessa base di partenza perchè altrimenti si rischierebbe di di eseguire operazioni su dati non omogenei.
Purtroppo il motore che analizza e calcola i trading system non è ancora così raffinato da poter vedere se il valore di un indicatore viene davvero utilizzato come condizione di entrata sul mercato oppure no, quindi quello che si limita a fare è di vedere fra tutti gli indicatori da calcolare quale ha bisogno del maggior numero di barre ed effettua il vero e proprio calcolo del TS solo quando sono presenti sul grafico almeno quel numero di barre.
E' per questo quindi che gli indicatori sembrano incompleti se confrontati con gli stessi indicatori utilizzati in un grafico su cui non è applicato alcun trading system.

Circa gli altri problemi da lei segnalati, invece, stiamo ancora studiando i TS che ci ha inviato/incollato.

Cordiali saluti,
Staff Traderlink
 
Indietro