Ciao a tutti,
vorrei utilizzare l’ istruzione Return per postare a video un interruttore di ingresso / uscita ts e poi piazzarvi un allarme.
Ma qualunque cosa scrivo Return mi da errore.
Sicuramente il mio errore sarà banale, ho semplificato il codice al massimo, ma ho sempre errore.
Grazie a chi vorrà aiutarmi.
sig=0
// Conditions to enter long positions
IF NOT LongOnMarket AND YourConditions THEN
BUY 1 CONTRACTS AT MARKET
sig=1
ENDIF
// Conditions to exit long positions
If LongOnMarket AND YourConditions THEN
SELL AT MARKET
sig=0
ENDIF
// Conditions to enter short positions
IF NOT ShortOnMarket AND YourConditions THEN
SELLSHORT 1 CONTRACTS AT MARKET
sig=-1
ENDIF
// Conditions to exit short positions
IF ShortOnMarket AND YourConditions THEN
EXITSHORT AT MARKET
sig=0
ENDIF
return sig<>sig[1] as "Signal"
Hai mischiato istruzioni per gli indicatori (RETURN) ed istruzioni di una strategia (entrate e uscite dal mercato).
Non è consentito, o crei un indicatore che da dei segnali, oppure crei una strategia che si occupa di entrare e uscire dal mercato.
Roberto,
ho letto – e dimmi se ho capito bene – che l’alarm si può creare solo per un qualcosa di presente nel grafico.
Quindi, se l’alarm lo devo fare su un signal creato sul grafico ma questo non è plottabile all’ interno di un codice con buy/sell , come faccio a creare un alarm che segnali l’entrata e/o l’uscita di posizioni di un trading system?
Grazie del tuo aiuto.
Con un indicatore, ad esempio questo restituisce 1 se c’è un incrocio al rialzo e -1 se è al ribasso (tra due medie):
Segnale = 0
IF Average[10,0](close) CROSSES OVER average[50,0](close) THEN
Segnale = 1
ELSIF Average[10,0](close) CROSSES UNDER average[50,0](close) THEN
Segnale = -1
ENDIF
RETURN Segnale AS "Segnale"
Metti l’indicatore che ho scritto sul grafico che vuoi utilizzare (e chiamalo SEGNALE, va bene qualunque nome, basta che con CALL utilizzi quel nome), questa è la strategia:
Segnale = CALL "Segnale"
IF Segnale = 1 THEN
BUY AT MARKET
ELSIF Segnale = -1 THEN
SELLSHORT AT MARKET
ENDIF
Con un indicatore, ad esempio questo restituisce 1 se c’è un incrocio al rialzo e -1 se è al ribasso (tra due medie):
<!– Crayon Syntax Highlighter v_2.7.2_beta –>
<textarea class=”crayon-plain print-no” style=”tab-size: 4; font-size: 14px !important; line-height: 16px !important; z-index: 0; opacity: 0; overflow: hidden;” readonly=”readonly” wrap=”soft” data-settings=”dblclick”>Segnale = 0
IF Average[10,0](close) CROSSES OVER average[50,0](close) THEN
Segnale = 1
ELSIF Average[10,0](close) CROSSES UNDER average[50,0](close) THEN
Segnale = -1
ENDIF
RETURN Segnale AS “Segnale”</textarea>
<table class=”crayon-table”>
<tbody>
<tr class=”crayon-row”>
<td class=”crayon-nums ” data-settings=”show”>
</td>
<td class=”crayon-code”>
Segnale <span class=”crayon-o”>=</span> <span class=”crayon-cn”>0</span>
<span class=”crayon-st”>IF</span> <span class=”crayon-r”>Average</span><span class=”crayon-o”>[</span><span class=”crayon-cn”>10</span>,<span class=”crayon-cn”>0</span><span class=”crayon-o”>]</span>(<span class=”crayon-st”>close</span>) <span class=”crayon-st”>CROSSES OVER</span> <span class=”crayon-r”>average</span><span class=”crayon-o”>[</span><span class=”crayon-cn”>50</span>,<span class=”crayon-cn”>0</span><span class=”crayon-o”>]</span>(<span class=”crayon-st”>close</span>) <span class=”crayon-st”>THEN</span>
Segnale<span class=”crayon-o”>=</span> <span class=”crayon-cn”>1</span>
<span class=”crayon-st”>ELSIF</span> <span class=”crayon-r”>Average</span><span class=”crayon-o”>[</span><span class=”crayon-cn”>10</span>,<span class=”crayon-cn”>0</span><span class=”crayon-o”>]</span>(<span class=”crayon-st”>close</span>) <span class=”crayon-st”>CROSSES UNDER</span> <span class=”crayon-r”>average</span><span class=”crayon-o”>[</span><span class=”crayon-cn”>50</span>,<span class=”crayon-cn”>0</span><span class=”crayon-o”>]</span>(<span class=”crayon-st”>close</span>) <span class=”crayon-st”>THEN</span>
Segnale<span class=”crayon-o”>=</span> <span class=”crayon-o”>-</span><span class=”crayon-cn”>1</span>
<span class=”crayon-st”>ENDIF</span>
<span class=”crayon-st”>RETURN</span> Segnale <span class=”crayon-st”>AS</span> <span class=”crayon-s”>”Segnale”</span>
</td>
</tr>
</tbody>
</table>
<!– [Format Time: 0.0005 seconds] –>
Roberto, ho fatto copia incolla del tuo codice, ma ho sempre errore. Non ci credo.
Per favore non usare QUOTE quando non strettamente necessario.
Siamo solo io e te, è evidente che ti riferisci a me.
Mi sa che hai copiato l’indicatore in una strategia. Gli indicatori NON possono essere inclusi nella strategia, ma vanno copiati o importati tra gli indicatori.
Se segui le mie istruzioni deve funzionare.
Roberto,
Ho creato l indicatore. E risulta in un panel sotto le candele dei prezzi.
Però quando carico questo codice mi dice che non lo vede.
Grazie per la tua pazienza
Se l’hai chiamato SEGNALE deve vederlo.
Se l’hai chiamato diversamente allora devi mettere quello stesso nome dove c’è l’istruzione CALL.
Ho risolto.
All’ interno del codice la variabile l’avevo chiamata Segnale e veniva anche plottata con questo nome e questo mi aveva effettivamente ingannato.
Ma sono andato a riguardare ed il nome dell’ indicatore creato invece non era “Segnale” e questo determinava l’ errore.
Grazie al tuo aiuto, a poco a poco riesco 🙂