Sono partito dalla funzionalit? "Trova" per indiduare i seguenti pattern low() < low( - 1) and low() < Low(1) e high() > high( - 1) and high() > High(1) e fin qu? nessun problema.
Partendo da questa situazione avrei voluto sviluppare un TS (o meglio un allarme da gestire con gli esploratori - il problema non cambia) ma una volta individuata la prima entrata e uscita poi si susseguono una serie ininterrotta di entrate e uscite alternate di una barra.
Il codice usato ? il seguente (la posizione short ? semplicemente invertita) :
OPZIONI COMUNI Dim entra as Numeric
ENTRA IN ACQUISTO Function Main()
If low() < low( - 1) and low() < low(1) Then entra = high(1) + 0.01 EndIf
Return entra EndFunction
Visto il problema ho compilato anche la parte CHIUDI ACQUISTO (o esci per gli allarmi) ponendo come limite il raggiungimento di una certa percentuale ma "nisba"
Stai facendo Ritornare alla funzione "Main" un numero qualsiasi e non un Boolean (True o False) come deve essere in caso di allarme o trading system. In pratica puoi scrivere cos?:
OPZIONI COMUNI Dim entra as Numeric
ENTRA IN ACQUISTO
Function Main() Dim bRes as Boolean
bRes = (low() < low( - 1) and low() < low(1))
If (bRes = True) Then Entra = high(1) + 0.01 Price Entra EndIf
Return bRes
EndFunction
E' stato aggiunta la riga "Price Entra" in caso tu intenda entrare al valore => high(1) + 0.01. Se non era questa la tua intenzione toglila pure
"Return" nel caso dei trading system deve sempre ritornare un'espressione Boolean (True o False). "Chiudi posizioni in acquisto" invece ritorna un numero e non va bene.
Nella risposta poco pi? in su la funzione di "Chiudi posizioni in acquisto" non ? stata corretta, lasciando a JSAMU il compito di farlo