Insider 3000 - Forums
Insider 3000 - Forums
Home | Profile | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 Help
 Aiuti, consigli, dubbi ...
 non capisco dove sbaglio
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

mistercris
Nuovo Utente

21 Posts

Posted - 30 March 2006 :  18:32:11  Show Profile  Reply with Quote
Nel mio trading system ho scritto la seguente formula: dove una volta che si verifica la prima condizione si va in acquisto se si verifica la seconda condizione entro le 5 successive dalla prima
____________________
function main()
return ((close<prima condizione)) if (seconda condizione)
If ((CurrentBar - plStartBar) > 5) then
lStartBar = 0
Endif
If (plStartBar <= 0) Then
If .. prima condizione.. Then
plStartBar = CurrentBar
Endif
Else
If .. seconda condizione .. Then
plStartBar = 0
bSignal = True
Endif
Endif
___________________________

SupportoTecnico
Forum Admin

1261 Posts

Posted - 30 March 2006 :  19:30:10  Show Profile  Reply with Quote
Cosa ci fa quel "Return" nella prima riga?

Messo così, le righe di codice dopo il Return non saranno mai eseguite, perchè Return ritorna si il risultato ma anche esce dalla funzione.

Ti consiglio di utilizzare l'Editor e le funzionalità di Debug passo passo.. in questo modo ti puoi accorgere subito se il tuo codice viene eseguito secondo le tue intenzioni oppure no.
Go to Top of Page

mistercris
Nuovo Utente

21 Posts

Posted - 30 March 2006 :  20:39:08  Show Profile  Reply with Quote
quando vado a salvare mi dice: errore di sintassi "I (riga 2 funzione main)" la riga 2 è quella dove ho digitato le 2 condizioni.
non capisco in un altro trading system con and e facendogli eseguire le due condizioni insieme non mi da errore.
dove sbaglio?
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 31 March 2006 :  00:54:50  Show Profile  Reply with Quote
Ovviamente il linguaggio di programmazione ha una sua sintassi rigorosa non è che si può scrivere a caso ciò che si vuole sperando che il compilatore riesca a capirti! magari fosse così! :-)))

La riga:

return ((close<prima condizione)) if (seconda condizione)

non significa assolutamente nulla.

Io stesso non riesco a capire ne a cosa serve messa li, ne cosa dovrebbe fare secondo le tue intenzioni. In particolare la parola chiave IF messa li in mezzo non ha senso. Forse volevi scrivere "AND" e non "IF". Ma anche scrivendo "And" e quindi correggendola sintatticamente continuo a non capire a cosa serve la riga. Non si lega in nessun modo alle righe successive.

Inoltre non mi puoi scrivere la riga di "Return" come prima riga della funzione. Sarebbe come salire su di un Taxi dalla porta di sinistra e scendere dalla porta di destra senza che il taxi sia mai partito! In pratica tutte le righe dopo quella di "Return" non saranno mai eseguite! Sul serio credimi!


Quindi eventualmente scrivi una cosa del genere:

function main()
Dim bSignal As Boolean = False

If ((CurrentBar - plStartBar) > 5) then
plStartBar = 0
Endif
If (plStartBar <= 0) Then
If .. prima condizione.. Then
plStartBar = CurrentBar
Endif
Else
If .. seconda condizione .. Then
plStartBar = 0
bSignal = True
Endif
Endif

Return bSignal

Endfunction


oppure:


function main()
return (close<prima condizione) And (seconda condizione)
Endfunction


Ovviamente i due modi di scrittura non producono lo stesso risultato. solo il primo si avvicina a quello che vorresti fare tu e cioè: "dove una volta che si verifica la prima condizione si va in acquisto se si verifica la seconda condizione entro le 5 successive dalla prima"

Go to Top of Page

mistercris
Nuovo Utente

21 Posts

Posted - 31 March 2006 :  11:38:54  Show Profile  Reply with Quote
ho seguito passo per passo la tua prima soluzione ma non mi riconosce la stringa "plstartbar"
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 31 March 2006 :  11:51:14  Show Profile  Reply with Quote
Certo! è una variabile e la devi dichiarare da qualche parte!

Ma fai riferimento a questo topic visto che di queste cose ne abbiamo già parlato:

http://www.insider3000.com/insider/it/foruma/topic.asp?TOPIC_ID=431

Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
Insider 3000 - Forums © Copyright 2003-2016 Tradersoft s.r.l. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07