Citazione Originariamente Scritto da Marco Bosco Visualizza Messaggio
ciao Marco,


certo....lancio solo l'idea però non ho provato..... come sai i nostri script lanciano gli ordini quando l'espressione dello script diventa vera (in termini booleani)

Quindi se l'espressione è TRUE (1) .... l'ordine viene eseguito...se è FALSE (0) l'ordine non viene eseguito...

prendiamo come esempio lo script che sta circolando adesso sul forum (il WilliamsPctR per capirsi)...

L'espressione finale è :

CROSSOVER( DecisionConst, @lowlevel)

che sarà vera se incrocia o non vera se non incrocia.


Quindi se scriviamo:

CROSSOVER( DecisionConst, @lowlevel) and 1
AND 1 sarà neutro...

se scriviamo :

CROSSOVER( DecisionConst, @lowlevel) and 0
sara sempre FALSA

Lo scopo qua quindi è di scrivere invece di subito 0 o 1 ... un qualcosa che scriva 0 o 1 in base a delle condizione.

Quindi va creata una funzione definita dall'utente... che chiameremo MyMatchCalendar()

CROSSOVER( DecisionConst, @lowlevel) and MyMatchCalendar()
dentro MyMatchCalendar() ci dovra essere scritto un qualcosa che : "se oggi parla draghi allora 0 se oggi NON parla Draghi allora 1"....

OK, allora ecco il codice per un'ipotetica funzione definita dall'utente MyMatchCalendar():


# Date in cui parla Draghi
SET A = DATE = 20140528
SET B = DATE = 20140627
SET C = DATE = 20140728
SET D = DATE = 20140828
SET E = DATE = 20140929
SET F = DATE = 20141028
SET G = DATE = 20141128


SET Riep = A OR B OR C OR D OR E OR F OR G


SET MyMatchCalendar = NOT Riep

Per creare la UserFunction bisogna creare una nuova funzione

Clicca sull'immagine per ingrandirla

Nome: 0.png
Visite: 5
Dimensione: 69.6 KB
ID: 17111

quindi inserirci un codice tipo quello di cui sopra, e salvare il file con il nome "MyMatchCalendar".


Per verificarne il funzionamento basta aprire un grafico daily ed aggiungere un indicatore di tipo Custom 1 Line come segue:

Clicca sull'immagine per ingrandirla

Nome: 1.png
Visite: 10
Dimensione: 18.8 KB
ID: 17112

ottenendo un risultato di questo tipo:

Clicca sull'immagine per ingrandirla

Nome: 2.jpg
Visite: 14
Dimensione: 103.7 KB
ID: 17113

Si noti come la funzione restituisca sempre 1, ad eccezione delle date in cui parla Draghi (avevo ovviamente inserito delle date a caso!) per le quali la funzione invece restituisce zero; in questo modo la funzione può essere utilizzata in un trading system tipo quello che avevi indicato:

CROSSOVER( DecisionConst, @lowlevel) and MyMatchCalendar()