Insider 3000 - Forums
Insider 3000 - Forums
Home | Profile | Active Topics | Members | Search | FAQ
 All Forums
 Problemi con "Insider 3000 versione 3"
 Problemi col linguaggio di programmazione
 BarSince

Note: You must be registered in order to post a reply.

Screensize:
UserName:
Password:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert Email Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

   
   

T O P I C    R E V I E W
VpV Posted - 27 April 2016 : 01:03:12
Salve,

in merito all'oggetto, volevo sapere se l'utilizzo dello stesso per inibire ad un TS l'operatività per qualche giorno, sia una funzione corretta oppure no.

Nello specifico intendo vietare ad un TS di operare per qualche giorno a seguito di un segnale di chiusura normale o di stoploss verificato.
L'aiuto in locale non mi ha fornito ulteriori spunti e quello sul sito non esiste più, la pagina è quella di Over.
Ho guardato anche su Over ma per adesso non trovo una descrizione delle funzioni in generale.

Se non ho capito male BarSince mi dovrebbe fornire il numero di periodi in cui una condizione risulta verificata, vera.

Grazie.
8   L A T E S T    R E P L I E S    (Newest First)
SupportoTecnico Posted - 03 May 2016 : 16:05:09
L'utilizzo di DbExp è assolutamente consigliato, primo per la versatilità rispetto a DbValue e poi per la velocità.
In Overcharts, per esempio, DbValue non esiste più.
VpV Posted - 03 May 2016 : 14:33:03
Confermo, problema risolto con CurrentBar. Processo inverso per quanto riguarda lo stop che viene indicato, come valore, nel modulo acquisto/vendita.

Qui è il modulo "chiudi posizione" che comanda e quindi il modulo
acquisto/vendita richiamerà dal primo il valore della barra e la condizione verificata.

Risolto questo problema, volevo sapere la differenza tra le funzioni "DbValue" e "DbExp"; io uso solo DbValue ma ho letto che è una funzione obsoleta e che DbExp è un sostituto.
Visto che di calcoli ne faccio tanti e quindi la velocità non è mai troppa, volevo sapere se potevo sostituire tutte le funzioni DbValue con DbExp e quindi se vi è certezza che nei risultati non cambierà nulla.

Grazie
SupportoTecnico Posted - 02 May 2016 : 20:03:41
L'uso di CurrentBar potrebbe essere una buona idea!
Memorizzando la barra al momento giusto e poi andando di differenza tra CurrentBar e la barra memorizzata potresti di fatto risolvere.
VpV Posted - 02 May 2016 : 17:18:30
Forse ho risolto con CurrentBar.

Vi faccioa sapere.
VpV Posted - 02 May 2016 : 16:34:13
Allora, allo stato attuale ancora non sono riuscito a creare la giusta procedura.

1)Ho provato nuovamente BarSince ma ho notato che lo stesso produce sempre la somma dei periodi da dove è partito l'evento. Ho provato ad azzerare ma non ho ottenuto risultati, nel senso che mi dà errore.

2)Ho provato con la vostra contaperiodi, VaribileComune + 1 ecc...ma il TS non entra proprio in posizione.

3)Ho provato con un ciclo for...next, dicendogli in pratica "se si verifica questo evento, rimani fermo x giorni"..ma ho ottenuto lo stesso risultato del caso 2.

Credo che il problema sia che una volta che scatta la condizione, il TS lo legge "per sempre"; se quindi ho uno stop esplicito, devo trovare il modo di scrivere :

-se STOP vero allora aspetta x periodi-

-se x > y allora procedi-

-se x > y allora azzera tutto-

Non posso farla semplice perchè le uscite dai vari moduli, come gli ingressi, hanno molteplici casistiche e variabili.

Spero di essere stato chiaro.

Grazie
SupportoTecnico Posted - 27 April 2016 : 21:53:12
Probabilmente bisogna gestire meglio l'azzeramento della VariabileComune. Forse va fatto solo quando la funzione Main ritorna True e quindi entra o long o short.
Insomma dovresti scrivere una cosa del tipo:

dim bSignal as Boolean
bSignal = (a < b)

if (bSignal = True) then
VariabileComune = 0
EndIf

Return bSignal



La logica con cui l'interprete esegue i vari moduli è:

Se la posizione è "Out":
Cerca ingresso Long
Se non trovato ingresso long allora cerca Ingresso Short

Se la posizione è "Long"
Cerca uscita long
Cerca segnale Short

Se la posizione è "Short"
Cerca uscita short
Cerca segnale Long



Detto questo ti invito a utilizzare Overcharts per mettere a punto il tuo trading system.
Il motivo è che tra le altre cose Overcharts ti mette a disposizione un vero debugger.
In pratica, contrariamente ad Insider 3000, Developer di Overcharts ti consente di eseguire passo passo il tuo trading system esattamente come verrà poi eseguito nella realtà, con la possibilità di controllare il valore delle varie variabili ecc..
Insomma un aiuto in più non indifferente. Con Insider 3000 invece puoi eseguire il debug di un solo modulo per volta, con tutte le limitazioni del caso.
VpV Posted - 27 April 2016 : 18:28:36
Buonasera,

allora ho provato più volte la funzione BarSince per evitare ulteriore righe di programma, ma allo stato attuale, implementandola nel modulo di ingresso, ho ottenuto solo strani risultati, direi poco logici nel funzionamento.

Allora ho fatto quanto scritto da voi, ovvero ho creato una variabile nel modulo comune e poi ho proceduto come segue (esempio) :

MOD.Comune
Dim VariabileComune as numeric

MOD.EntraInVendita

Function main ()

Dim a as numeric
Dim b as numeric

if close > stoploss then
VariabileComune = VariabileComune + 1
endif

if VariabileComune < 2 then
return false
endif

VariabileComune = 0

stoploss=close+close*0,03

return a < b

endfunction

Ovviamente è solo un esempio per farvi capire, l'algortimo del TS è altra cosa.
Ho provato a spostare tutto, dagli IF allo stoploss, sopra, sotto e altro ancora ma quello che ottengo è niente ovvero il TS non produce segnali di vendita.

A parte la logica difficile da capire, ovvero come funziona l'interprete, un pò come avviene per lo stop che occorre dichiararlo nel modulo di ingresso per poi utilizzarlo in quello in uscita, qui posso solo ipotizzare il fatto che il problema si trovi nello stoploss dello stesso modulo e che magari non venga letto.

In questo specifico caso non riesco a capire "come ragiona" l'interprete.

SupportoTecnico Posted - 27 April 2016 : 11:18:55
Teoricamente si, BarSince dovrebbe essere la funzione giusta, anche se io sinceramente opterei per un controllo più manuale della cosa, e cioè creerei una variabile comune a tutti i moduli (cioè dichiarata nel modulo comune), per tenere conto del conteggio dei giorni, e poi inserirei la mia condizione sia nel modulo di entrata long che entrata short:

If (condizione di incremento giorni) Then
VariabileComune = VariabileComune + 1
EndIf

If (VariabileComune < NumeroGiorni) Then
Return False
EndIf

VariabileComune = 0


Le due If vanno messe ovviamente all'inizio della funzione Main dei rispettivi moduli. Se la condizione è superata è necessario azzerare la variabile comune.

Insider 3000 - Forums © Copyright 2003-2016 Tradersoft s.r.l. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07