[Logo] Spazio Aperto Banca Sella
[Register] Registrati   [Login] Login    
[Search] Ricerca   [Recent Topics] Argomenti Recenti   [Hottest Topics] Argomenti vivaci  
[Banner Pubblicitario]
TS incrocio medie mobili  XML
Indice dei Forum » SellaExtreme 5
Autore Messaggio
KingOfLosers


Registrato: 09/04/2015 15:21:27
Messaggi: 31
Offline

Graziano wrote:Non c'è modo di fare simulazione in tempo reale? Al cal center mi hanno detto di no. C'è solo il backtest (di cui non mi fido molto, infatti confrontando operazione per operazione trovo differenze) o lanciarlo direttamente in modo dispositivo.
Grazie


Graziano anch'io sto aspettando alcune delucidazioni in merito ai dati in BT perchè non mi tornano alcune cose però per fare una simulazione in realtime io mi sono scritto un codice separato che mi tiene conto delle operazioni entrate/uscite con relativi pseudo gain/loss

ovviamente non c'è modo di sapere se l'ordine virtuale sarebbe stato effettivamente battuto ma andando a prendere nel book quantità/prezzi presumo sia abbastanza affidabile.

spero che finiti gli impegni che stanno affrontando in questi giorni ci sia un chiarimento generale su tutta la serie di punti aperti che sono fondamentali per un corretto(e proficuo) utilizzo della piattaforma
Graziano


Registrato: 06/07/2011 19:52:30
Messaggi: 30
Offline

Kingoflosers, purtroppo non sono così bravo da scrivermi un codice separato come hai fatto Tu. Non è che Vuoi condividerlo qui?
Sempre se Vuoi e Puoi ovviamente.
Ciao e Grazie qualunque sia la Tua decisione.
cinzia.calabretta


Registrato: 18/10/2011 16:10:33
Messaggi: 120
Offline

Graziano wrote:Non c'è modo di fare simulazione in tempo reale? Al cal center mi hanno detto di no. C'è solo il backtest (di cui non mi fido molto, infatti confrontando operazione per operazione trovo differenze) o lanciarlo direttamente in modo dispositivo.
Grazie



Ciao Graziano,
ti confermiamo quanto anticipato telefonicamente, sui trading system creati su Sella Extreme 5 puoi eseguire il backtest e non una simulazione in tempo reale. Se ti va mandaci i dettagli e i parametri del tuo TS così possiamo approfondire. In questi giorni siamo impegnati per l'ITF a Rimini ma la prossima settimana forniremo riscontro anche a KingOfLosers



Cinzia - Team GBS
KingOfLosers


Registrato: 09/04/2015 15:21:27
Messaggi: 31
Offline

Graziano wrote:Kingoflosers, purtroppo non sono così bravo da scrivermi un codice separato come hai fatto Tu. Non è che Vuoi condividerlo qui?
Sempre se Vuoi e Puoi ovviamente.
Ciao e Grazie qualunque sia la Tua decisione.


Ciao Graziano comprendo la difficoltà di alcuni a lavorare con lo script della nuova piattaforma, io sono un programmatore quindi mi ci ritrovo facilmente e non ho problemi a condividere la parte in questione ma tieni conto che è contestualizzata quindi con una semplice estrazione non si capirebbe molto.. appena ho un attimo di tempo posso fare un codice di esempio completo da postare in modo tale da essere più comprensibile ed adattabile a tutti

This message was edited 2 times. Last update was at 22/05/2015 16:22:56

Graziano


Registrato: 06/07/2011 19:52:30
Messaggi: 30
Offline

fabioge


Registrato: 21/08/2014 08:32:27
Messaggi: 67
Offline

io sto usando la versione demo gratuita che non si appoggia a nessun conto quindi credo che abbia a bilancio zero euro, che succede se lancio il mio ts? Gli eventuali ordini che partirebbero dal ts verrebbero annullati? Però ne rimarrebbe traccia in modo da poter vedere come si comporta in real time?
KingOfLosers


Registrato: 09/04/2015 15:21:27
Messaggi: 31
Offline

fabioge wrote:io sto usando la versione demo gratuita che non si appoggia a nessun conto quindi credo che abbia a bilancio zero euro, che succede se lancio il mio ts? Gli eventuali ordini che partirebbero dal ts verrebbero annullati? Però ne rimarrebbe traccia in modo da poter vedere come si comporta in real time?


non te li fa eseguire e ti avvisa che è la versione demo.. e no non rimane traccia bisogna arrangiarsi
Jack


Registrato: 02/02/2015 21:42:56
Messaggi: 178
Offline

KingOfLosers wrote:
fabioge wrote:io sto usando la versione demo gratuita che non si appoggia a nessun conto quindi credo che abbia a bilancio zero euro, che succede se lancio il mio ts? Gli eventuali ordini che partirebbero dal ts verrebbero annullati? Però ne rimarrebbe traccia in modo da poter vedere come si comporta in real time?


non te li fa eseguire e ti avvisa che è la versione demo.. e no non rimane traccia bisogna arrangiarsi


Ciao a tutti, vorrei scrivere del codice in modo che mi esegua delle cose se l'ultimo ordine è un acquisto e delle altre se è una vendita.
Ho provato con UserContext.Order.OperationType ma non sembra funzionare. Qualcuno mi può aiutare?
Grazie.
KingOfLosers


Registrato: 09/04/2015 15:21:27
Messaggi: 31
Offline

Jack wrote:
KingOfLosers wrote:
fabioge wrote:io sto usando la versione demo gratuita che non si appoggia a nessun conto quindi credo che abbia a bilancio zero euro, che succede se lancio il mio ts? Gli eventuali ordini che partirebbero dal ts verrebbero annullati? Però ne rimarrebbe traccia in modo da poter vedere come si comporta in real time?


non te li fa eseguire e ti avvisa che è la versione demo.. e no non rimane traccia bisogna arrangiarsi


Ciao a tutti, vorrei scrivere del codice in modo che mi esegua delle cose se l'ultimo ordine è un acquisto e delle altre se è una vendita.
Ho provato con UserContext.Order.OperationType ma non sembra funzionare. Qualcuno mi può aiutare?
Grazie.


ciao Jack nell'oggetto UserContext puoi creare tutte le variabili che vuoi.. io uso (credo di averlo copiato da qualche parte) UserContext.Position dove assegno i valori 1 per il long e -1 per lo short
Jack


Registrato: 02/02/2015 21:42:56
Messaggi: 178
Offline

KingOfLosers wrote:
Jack wrote:
KingOfLosers wrote:
fabioge wrote:io sto usando la versione demo gratuita che non si appoggia a nessun conto quindi credo che abbia a bilancio zero euro, che succede se lancio il mio ts? Gli eventuali ordini che partirebbero dal ts verrebbero annullati? Però ne rimarrebbe traccia in modo da poter vedere come si comporta in real time?


non te li fa eseguire e ti avvisa che è la versione demo.. e no non rimane traccia bisogna arrangiarsi


Ciao a tutti, vorrei scrivere del codice in modo che mi esegua delle cose se l'ultimo ordine è un acquisto e delle altre se è una vendita.
Ho provato con UserContext.Order.OperationType ma non sembra funzionare. Qualcuno mi può aiutare?
Grazie.


ciao Jack nell'oggetto UserContext puoi creare tutte le variabili che vuoi.. io uso (credo di averlo copiato da qualche parte) UserContext.Position dove assegno i valori 1 per il long e -1 per lo short


ciao KingOfLosers io vorrei proprio il tipo di ordine BUY o SELL per gestire correttamente il mio TS così com'è strutturato senza dover cambiare troppe cose.
hai mai usato la UserContext.Order.OperationType?
KingOfLosers


Registrato: 09/04/2015 15:21:27
Messaggi: 31
Offline

Jack wrote:
KingOfLosers wrote:
Jack wrote:
KingOfLosers wrote:
fabioge wrote:io sto usando la versione demo gratuita che non si appoggia a nessun conto quindi credo che abbia a bilancio zero euro, che succede se lancio il mio ts? Gli eventuali ordini che partirebbero dal ts verrebbero annullati? Però ne rimarrebbe traccia in modo da poter vedere come si comporta in real time?


non te li fa eseguire e ti avvisa che è la versione demo.. e no non rimane traccia bisogna arrangiarsi


Ciao a tutti, vorrei scrivere del codice in modo che mi esegua delle cose se l'ultimo ordine è un acquisto e delle altre se è una vendita.
Ho provato con UserContext.Order.OperationType ma non sembra funzionare. Qualcuno mi può aiutare?
Grazie.


ciao Jack nell'oggetto UserContext puoi creare tutte le variabili che vuoi.. io uso (credo di averlo copiato da qualche parte) UserContext.Position dove assegno i valori 1 per il long e -1 per lo short


ciao KingOfLosers io vorrei proprio il tipo di ordine BUY o SELL per gestire correttamente il mio TS così com'è strutturato senza dover cambiare troppe cose.
hai mai usato la UserContext.Order.OperationType?


essendo improntato su un linguaggio di script io ho fatto l'esempio 1 e -1 ma tu puoi anche assegnargli "BUY" o "SELL"

ad ogni modo avevo visto negli attributi dell'oggetto Order il tipo di operazione ma non gli ho dato più di tanto peso dato che preferisco gestirlo io in altro modo.. comunque anche nel manuale in pdf relativo allo script puoi trovare tutti i dettagli dell'oggetto Order.. riporto:

Oggetto TSOrder
Rappresenta un ordine.
Proprietà
string OrderCode
Restituisce un valore di tipo stringa che è l'order code
TSInstrument Instrument
Restituisce lo strumento dell'ordine
TSOperationType OperationType
Restituisce un valore rappresentante il tipo di operazione

DateTime ValidDate
Restituisce la data di validità dell'ordine
string Status
Restituisce un valore stringa che rappresenta lo stato dell'ordine

string BondAccountCode
Restituisce un valore stringa che rappresenta il conto titoli
numeric PriceLimit
Restituisce un valore numerico che è il prezzo limite
numeric StopPrice
Restituisce un valore numerico che è il prezzo di stop
numeric MedianExecutedPrice
Restituisce un valore numerico che è il prezzo medio di esecuzione
numeric Quantity
Restituisce un valore intero che è la quantità
numeric TotalExecutedQuantity
Restituisce un valore intero che è la quantità totale eseguita

bool CanBeDeleted
Restituisce un valore booleano che vale true se l'ordine può essere cancellato
bool CanBeModified
Restituisce un valore booleano che vale true se l'ordine può essere modificato
bool IsLevaOrder
Restituisce un valore booleano che vale true se l'ordine è in leva
numeric RemainQuantity
Restituisce un valore intero che rappresenta la quantità rimasta

bool IsPending
Restituisce un valore booleano che vale true se l'ordine è ancora pending


ti ho messo in grassetto quelli che credo ti possano servire di più in questo caso.. prova a fare un log in back test per vedere se si comporta come ti aspetti
KingOfLosers


Registrato: 09/04/2015 15:21:27
Messaggi: 31
Offline

Graziano wrote:Kingoflosers, purtroppo non sono così bravo da scrivermi un codice separato come hai fatto Tu. Non è che Vuoi condividerlo qui?
Sempre se Vuoi e Puoi ovviamente.
Ciao e Grazie qualunque sia la Tua decisione.


Ciao Graziano.. cercherò di essere più chiaro e semplice possibile ma non è detto che ci riesca

Io ho strutturato tutto il TS in funzioni da richiamare all'occorrenza come è solito fare nella programmazione "convenzionale" da qui immaginiamo di scrivere una funzione che debba essere richiamata ad ogni evento che abbiamo deciso noi che sia quello che calcoli o ricalcoli il gain/loss.

In questo frangente io sto lavorando ad un TS che faccia stop&reverse quindi il mio calcolo è "parziale" visto che chiudo una posizione e ne apro subito un'altra di cui però ovviamente non conosco il destino ma facciamo il caso più semplice.. apro e chiudo

function buildGainCount( isFromShort, price ){
if( isFromShort ){
UserContext.RealPointCount += ( UserContext.LastOrderPrice - price );
} else {
UserContext.RealPointCount += ( price - UserContext.LastOrderPrice );
}
}


Nel mio caso ho creato un attributo di UserContext che si chiama RealPointCount e terrà il conteggio dei punti di FIB in positivo o negativo che durante la giornata verranno eseguiti.

Dato che io conto i punti in base al valore del FIB saranno ovviamente sempre positivi di conseguenza in base a se ero short o long cambierà il tipo di operazione che dovrò usare per calcolare la differenza tra l'entrata e l'uscita.

Questo viene gestito dal parametro isFromShort

Un altro parametro di UserContext che ho creato è LastOrderPrice che mi tiene il prezzo dell'ultima esecuzione dell'ordine (probabilmente potrei usare anche un attributo dell'oggetto dell'ordine Order ma non mi interessa al momento) e come puoi vedere nel caso provengo da uno short ( isFromShort uguale a true ) per calcolarmi i punti devo sottrarre al LastOrderPrice il valore dell'attributo price della funzione che è il prezzo del nuovo ordine che ho appena eseguito (perchè io faccio il reverse ma nel caso più semplice è il valore di chiusura)

Nel caso di long invece il conteggio è inverso ma segue la stessa logica

Ora per non complicare troppo le cose ho considerato solo un'operazione alla volta con una quantità sempre costante.. tipo compro 1 e vendo 1 altrimenti la formula sarebbe un pochino più complessa perchè si dovrebbe calcolare il "peso" dei punti in base alla quantità ma eviterei se non è necessario

Ora immagina di avere un'altra funzione per eseguire l'ordine long ed una per lo short:


function executeBuy( .. ){
// faccio le operazioni che mi interessano per eseguire il Buy
..
..
// poi mi tengo il prezzo dell'ultima operazione come suddetto
UserContext.LastOrderPrice = price;
}

function executeShort( .. ){
// faccio le operazioni che mi interessano per eseguire il Sell
..
..
// poi mi tengo il prezzo dell'ultima operazione come suddetto
UserContext.LastOrderPrice = price;
}

function closeOrder( .. ){
// faccio le operazioni che mi interessano per chiudere le posizioni
..
..
// e richiamo la funzione per calcolare il gain/loss
buildGainCount( isFromShort, price );
}


Ho cercato di semplificare al massimo ma se hai dubbi chiedi pure cercherò di spiegarmi meglio

Detto questo ovviamente se al posto del FIB si avessero delle azioni la logica non cambierebbe ma bisognerebbe considerare i prezzi e non i punti..
Jack


Registrato: 02/02/2015 21:42:56
Messaggi: 178
Offline

KingOfLosers wrote:
Graziano wrote:Kingoflosers, purtroppo non sono così bravo da scrivermi un codice separato come hai fatto Tu. Non è che Vuoi condividerlo qui?
Sempre se Vuoi e Puoi ovviamente.
Ciao e Grazie qualunque sia la Tua decisione.


Ciao Graziano.. cercherò di essere più chiaro e semplice possibile ma non è detto che ci riesca

Io ho strutturato tutto il TS in funzioni da richiamare all'occorrenza come è solito fare nella programmazione "convenzionale" da qui immaginiamo di scrivere una funzione che debba essere richiamata ad ogni evento che abbiamo deciso noi che sia quello che calcoli o ricalcoli il gain/loss.

In questo frangente io sto lavorando ad un TS che faccia stop&reverse quindi il mio calcolo è "parziale" visto che chiudo una posizione e ne apro subito un'altra di cui però ovviamente non conosco il destino ma facciamo il caso più semplice.. apro e chiudo

function buildGainCount( isFromShort, price ){
if( isFromShort ){
UserContext.RealPointCount += ( UserContext.LastOrderPrice - price );
} else {
UserContext.RealPointCount += ( price - UserContext.LastOrderPrice );
}
}


Nel mio caso ho creato un attributo di UserContext che si chiama RealPointCount e terrà il conteggio dei punti di FIB in positivo o negativo che durante la giornata verranno eseguiti.

Dato che io conto i punti in base al valore del FIB saranno ovviamente sempre positivi di conseguenza in base a se ero short o long cambierà il tipo di operazione che dovrò usare per calcolare la differenza tra l'entrata e l'uscita.

Questo viene gestito dal parametro isFromShort

Un altro parametro di UserContext che ho creato è LastOrderPrice che mi tiene il prezzo dell'ultima esecuzione dell'ordine (probabilmente potrei usare anche un attributo dell'oggetto dell'ordine Order ma non mi interessa al momento) e come puoi vedere nel caso provengo da uno short ( isFromShort uguale a true ) per calcolarmi i punti devo sottrarre al LastOrderPrice il valore dell'attributo price della funzione che è il prezzo del nuovo ordine che ho appena eseguito (perchè io faccio il reverse ma nel caso più semplice è il valore di chiusura)

Nel caso di long invece il conteggio è inverso ma segue la stessa logica

Ora per non complicare troppo le cose ho considerato solo un'operazione alla volta con una quantità sempre costante.. tipo compro 1 e vendo 1 altrimenti la formula sarebbe un pochino più complessa perchè si dovrebbe calcolare il "peso" dei punti in base alla quantità ma eviterei se non è necessario

Ora immagina di avere un'altra funzione per eseguire l'ordine long ed una per lo short:


function executeBuy( .. ){
// faccio le operazioni che mi interessano per eseguire il Buy
..
..
// poi mi tengo il prezzo dell'ultima operazione come suddetto
UserContext.LastOrderPrice = price;
}

function executeShort( .. ){
// faccio le operazioni che mi interessano per eseguire il Sell
..
..
// poi mi tengo il prezzo dell'ultima operazione come suddetto
UserContext.LastOrderPrice = price;
}

function closeOrder( .. ){
// faccio le operazioni che mi interessano per chiudere le posizioni
..
..
// e richiamo la funzione per calcolare il gain/loss
buildGainCount( isFromShort, price );
}


Ho cercato di semplificare al massimo ma se hai dubbi chiedi pure cercherò di spiegarmi meglio

Detto questo ovviamente se al posto del FIB si avessero delle azioni la logica non cambierebbe ma bisognerebbe considerare i prezzi e non i punti..



Ciao KingOfLosers,
scrivo a te che vedo sei "molto sul pezzo" ma anche agli altri utenti se mi vogliono dare una mano ...
vorrei calcolare una variabile che contenga un valore corrispondente al massimo dei massimi delle ultime 5 candele
come potrei fare?
Grazie.
fabioge


Registrato: 21/08/2014 08:32:27
Messaggi: 67
Offline

fabioge wrote:
KingOfLosers wrote:
fabioge wrote:
ok grazie, è utilissimo il confronto anche fra utenti visto che ce ne sono di esperti...ti chiedo solo usando Now().TimeofDay funziona anche per i backtest?


no non funziona con il back test.. infatti io ho fatto due codici separati


ok era per non usare troppi codici..volevo usare anche in real time il sistema "candle" però devo capire come ragiona il ts..ad esempio se in un tf a 10 minuti mi trovo nell'orario 17.25 a cavallo tra 2 candele, una completa (quella delle 17.10) e una in fase di formazione (la 17.20), con il temine "last candle" mi individua quella completa delle 17.10 o quella incompleta delle 17.20? Non so se mi sono spiegato...


King ti nominiamo vice-Diego per la tua preparazione!! A proposito Diego è ancora "latitante" nonostante Rimini sia finita da un pezzo
Io avrei bisogno di togliermi il dubbio sulla definizione" last candle" (come da frase quotata allegata) e non riesco a provare in real time in quanto ho la demo...a questo punto mi serve Diego o King...
Diego.Salgarella


Registrato: 17/02/2011 11:21:07
Messaggi: 1537
Offline

Ogni tanto vado in ferie anche io

Però sono molto contento che finalmente iniziate a collaborare tra di voi

Ciao
Diego Salgarella

Diego Salgarella
Resp IT Trading On Line
 
Indice dei Forum » SellaExtreme 5
Vai a:   
E.t.v.s.p.b WLS11G