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
 Ritracciamento

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
Pingu Posted - 22 May 2007 : 10:06:48
Il codice seguente è un semplice TS che fa entrare quando la chiusura è la più alta di tot periodi (Opt1) e fa uscire quando la chiusura è la più bassa di tot periodi (Opt2) oppure se scatta uno stop loss del 3%.

Option Opt1(3, 30, 1)
Option Opt2(3, 30, 1)
Dim StopLoss As Numeric = 0

Function main()
Dim Signal As Boolean

StopLoss = 0
Signal = Close >= Max(Close, Opt1)
If (Signal = True) Then
StopLoss = Close - Close * 0.03
EndIf

Return Signal
Endfunction

Function main()
Return (Close <= Min(Close, Opt2)) Or (Close <= StopLoss)
Endfunction

Quello che vorrei fare è modificarlo in modo che l'entrata si abbia solo su un ritracciamento del prezzo successivo alla chiusura più alta (ad es. entrata al prezzo corrispondente alla metà della barra che ha la chiusura più alta). Ho provato in vari modi, fra cui con la seguente modifica, ma ottengo sempre errori di vario genere...mi potete aiutare?

Option Opt1(3, 30, 1)
Option Opt2(3, 30, 1)
Dim StopLoss As Numeric = 0

Function main()
Dim Signal As Boolean
Dim Signal2 As Boolean

StopLoss = 0
Signal = Close >= Max(Close, Opt1)
If (Signal = True) Then
StopLoss = Close - Close * 0.03
Signal2 = Low-((High-Low)/2)
If (Signal2 = True) Then
Price = Low-((High-Low)/2)
EndIf
EndIf

Return Signal2
Endfunction

Function main()
Return (Close <= Min(Close, Opt2)) Or (Close <= StopLoss)
Endfunction

Grazie e buona giornata.
3   L A T E S T    R E P L I E S    (Newest First)
SupportoTecnico Posted - 22 May 2007 : 13:28:24
Il codice così scritto non tiene però conto del fatto che se il titolo continua a salire e quindi a segnare nuovi massimi il punto di ingresso rimane sempre lo stesso.
Quindi se vuoi spostare dinamicamente il punto di ingresso ogni nuovo massimo successivo al primo devi scrivere:



Option Opt1(3, 30, 1)
Option Opt2(3, 30, 1)
Dim StopLoss As Numeric = 0
Dim pbSignal1 as boolean
Dim pdRet as numeric


Function main()
Dim bTmpNewMax as boolean = False

StopLoss = 0

bTmpNewMax = Close >= Max(Close, Opt1)
if bTmpNewMax = True then
pdRet = Low + (High-Low)/2
pbSignal1 = False
endif

if pbSignal1 = True then
if Low <= pdRet then
Price pdRet
StopLoss = pdRet - pdRet * 0.03
Return True
endif
else
if bTmpNewMax = True then
pbSignal1 = True
endif
EndIf

Return False
Endfunction


Function main()
dim bSignal as boolean = false

bSignal = (Close <= Min(Close, Opt2)) Or (Close <= StopLoss)
If bSignal = True then
pbSignal1 = false
pdRet = 0
endif

Return bSignal
Endfunction

Pingu Posted - 22 May 2007 : 11:52:49
Supporto tecnico eccezionale, come sempre!!!
Grazie.
Purtroppo non sono ancora entrato nel modo di pensare di I3000...grazie di nuovo anche per la celerità.
SupportoTecnico Posted - 22 May 2007 : 11:33:37
Ci sono un paio di errori gravi.

1) Signal2 = Low-((High-Low)/2)
Questa riga non significa nulla. Infatti eguagliare un'espressione come questa ad una variabile booleana non ha nessun senso.

2) Price = Low-((High-Low)/2)
L'uguale non va messo.

Detto questo la logica dell'intera funzione è comunque completamente sbagliata.


Il segnale di ingresso deve avvenire in due tempi:


Option Opt1(3, 30, 1)
Option Opt2(3, 30, 1)
Dim StopLoss As Numeric = 0
Dim pbSignal1 as boolean
Dim pdRet as numeric



Function main()

StopLoss = 0
if pbSignal1 = True then
if Low <= pdRet then
Price pdRet
StopLoss = pdRet - pdRet * 0.03
Return True
endif
else
pbSignal1 = Close >= Max(Close, Opt1)
if pbSignal1 = True then
pdRet = Low + (High-Low)/2
endif
EndIf

Return False
Endfunction



Function main()
dim bSignal as boolean = false

bSignal = (Close <= Min(Close, Opt2)) Or (Close <= StopLoss)
If bSignal = True then
pbSignal1 = false
pdRet = 0
endif

Return bSignal
Endfunction



Con questo codice l'entrata è al prezzo da te richiesto se raggiunto in una delle barre successive alla barra del massimo



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