Ciao a tutti,
con prorealtime è possibile in una strategia per esempio H1 dire al sistema di fare un check ogni 30 minuti e se la condizione si avvera allora esegui X ordine?
Spero di essermi spiegato.
Grazie
Non è possibile attualmente, ma lo sarà entro qualche mese, appena sarà rilasciata la nuova versione MTF (Multi Time Frame) che consentirà, appunto, di usare amche timeframe diversi nella stessa strategia.
Attualmente solo ProScreener lo consente.
E’ in fase di test, a quanto riferisce Nicolas.
Puoi leggere qualcosa nel forun inglese https://www.prorealcode.com/topic/betatesting-multitimeframe-support-automatic-trading/.
Ciao Roberto,
ti ringrazio.
Per risolvere questa cosa potrei contare le candele in determinato timeframe?
Per esempio se avessi timeframe 15 min potrei dire al sistema di contare 4 candele?
Ciao
Dovresti lanciare la strategia nel TF a 15 minuti, però le condizioni sarebbero falsate, perché una Media o un Macd ecc… restituiscono valori diversi su TF diversi, per cui può darsi che sul 5 minuti il Macd superi lo ZERO, ma sull’orario no, quindi rischieresti di entrare a mercato nel momento sbagliato!
In pratica non si può fare, tanto varrebbe fare una strategia per i 15 minuti.
Ciao,
ok ma se io volessi calcolare il minimo e massimo toccato in un dato lasso di tempo potrei contare le 4 candele con time frame a 15m e avrei 1h come conteggio,no?
Ciao
Si, certo, questo si basta che moltiplichi i periodi per il numero di TF piccoli che si sono dentro quello più grande (in 1 ora ce ne sono 4 da 15, oppure 12 da 5 oppure 60 da 1 minuti, ecc…):
Quindi, per vedere i minimi e massimi tra le 9 e le 11 di ogni giorno su uh TF orario dovresti scrivere:
IF time = 110000 THEN
Massimo = highest[2](high)
Minimi = lowest[2](low)
ENDIF
mentre su un TF di 15 minuti
IF time = 110000 THEN
Massimo = highest[8](high)
Minimi = lowest[8](low)
ENDIF
Però gli oscillatori/indicatori NON danno lo stesso risultato moltiplicando i periodi. Una Average[10] su un TF orario non è come Average[40] su un TF a 15 minuti, anche se ogni ora è 4 barre!
Ciao Roberto,
grazie.
Avrei un paio di domande:
- quando ci sono le condizioni di acquisto e successivamente di vendita non riesco a capire come dire al sistema di fare l’operazione solo una volta e non ripeterla N volte finchè ci sono le condizioni nelle barre successive.
- Viste le mie difficoltà nella programmazione cosa devo fare se volessi far sviluppare dei codici? Posso chiedere qui? a te?
Grazie
Per evitare il rientro si può usare
DEFPARAM CumulateOrders = false
all’inizio della strategia. Questo impedisce, anche se ci sono le condizioni, che vengano aperti ulteriori ordini.
In alternativa, quando stabilisci le condizioni per entrare LONG/SHORT puoi aggiungere la verifica se sei già a mercato o meno
IF MieCondizioni AND Not OnMarket THEN
BUY/SELLSHORT........
ENDIF
Per la programmazione puoi cercare qualcosa qui https://www.youtube.com/channel/UCj1ZsVjiKQQH1XzIMENQTyQ
Oppure leggere la documentazione (la trovi in formato PDF), con qualche lacuna, oppure puoi leggere i codici di strategie/indicatori/screeners per vedere di apprendere qualcosa.
Il linguaggio è veramente semplice, se tu riuscissi a farti delle nozioni anche veramente basilari, del linguaggio BASIC saresti in poco tempo in grado di codificare qualcosa.
Per quanto riguarda il forum…. devi tu fare qualche domanda e qualcuno magari ti risponderà.
Certamente se chiederai a cosa serve IF…ENDIF oppure FOR…NEXT, in tal caso non avrai molte risposte, perché sono cose talmente basilari che devi impararle da solo, o con l’aiuto di persone a te vicine (colleghi, amici, parenti).
Ciao Roberto,
grazie per tutte le informazioni.
La strategia che sto testando “a mano” è quella di entrare all’inizio di un nuovo trend con alcune condizioni particolari legate all’RSI.
La cosa per me importante è che per quell’unico trend devo entrare e uscire una volta sola e non continuare in ogni candela.
DEFPARAM CumulateOrders = false lo sto già utilizzando ma permette solo di non accumulare le posizioni mentre io devo fare in modo che per tutto il trend non venga rieseguito l’ordine anche se c’è la condizione.
Grazie
Ciao Roberto,
scusa ma ho fatto una domanda banale che nessuno mi risponde?
Ciao
Non ho notato la domanda, qual’è?
Scusa hai ragione dovevo essere più esplicito.
Mi riferivo al DEFPARAM CumulateOrders = false che lo uso ma non fa al caso mio perchè ho bisogno di eseguire 1 ordine solo per “trend” quindi mi chiedevo quale parametro posso utilizzare.
La strategia che sto iniziando ad implementare prevede l’uso di 2 indicatori:
RSI e SAR
Praticamente ogni volta che l’RSI raggiunge un determinato valore in un trend determinato con il parabolic sar devo entrare in long o short una volta sola ed uscire al raggiungimento di X punti.
Vorrei capire come posso dire al sistema di entrare una volta solo per trend.
Ciao
Questo è un esempio con due medie mobili, dovrai adattarlo alle tue esigenze, il concetto è comunque valido indipendentemente dagli indicatori e dai settaggi che utilizzi tu
ONCE Trading = 1 //inizialmente deve potere tradare
// calcolare le medie
Media1 = average[20](close) //prima media mobile
Media2 = average[100](close) //seconda media mobile
Rialzo = Media1 > Media2 //determinare se la media veloce è al rialzo (sopra la lenta)
Ribasso = Media1 < Media2 //determinare se la media veloce è al ribasso (sotto la lenta)
// verificare c he si possa tradare ancora al cambio di segnale, da RIALZO a RIBASSO o viceversa
IF Rialzo THEN //se le medie sono al RIALZO...
IF Ribasso[1] THEN //...e prima erano al RIBASSO...
Trading = 1 //...si può di nuovo tradare per il cambio di segnale
ENDIF
ELSIF Ribasso THEN //(come sopra, ma invertito per il RIBASSO)
IF Rialzo[1] THEN
Trading = 1
ENDIF
ENDIF
// entrare LONG
IF Rialzo AND Trading AND Not OnMarket THEN //si entra se siamo al RIALZO, non siamo a mercato e non è già stata fata un'altra operazione LONG in precedenza
BUY 1 CONTRACT AT MARKET
Trading = 0 //non tradare ancora fino al prossimo cambio di segnale
ENDIF
// entrare SHORT
IF Ribasso AND Trading AND Not OnMarket THEN //si entra se siamo al RIBASSO, non siamo a mercato e non è già stata fata un'altra operazione SHORT in precedenza
SELLSHORT 1 CONTRACT AT MARKET
Trading = 0 //non tradare ancora fino al prossimo cambio di segnale
ENDIF
// Stop Loss e Target Profit
SET TARGET pPROFIT 20
SET STOP pLOSS 10