[Logo] Spazio Aperto Banca Sella
[Register] Registrati   [Login] Login    
[Search] Ricerca   [Recent Topics] Argomenti Recenti   [Hottest Topics] Argomenti vivaci  
[Banner Pubblicitario]
Inserimento Ordini e Ricezione Messaggi Ordini  XML
Indice dei Forum » Sella Trading Bridge
Autore Messaggio
cinzia.calabretta


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

tiozzo wrote:Salve,
ho l'esigenza di calcolare una media mobile su più titoli (su 10 azioni) e ho scritto il seguente codice che però non funziona:

inizio ciclo sui 10 titoli azionari

instruments.Add(new InstrumentKey(bond.instrumentid, dr["MarketId"].ToString(), bond.pushCode));

AdditionalSubscriptionParameters add = new AdditionalSubscriptionParameters();

add.MinutesFrame = 2;
//add.MinutesFrame = 15;
add.SeriesStartDate = DateTime.Now.AddDays(-2);
add.SeriesEndDate = DateTime.Now;
add.SeriesStartDailyRangeTime = new TimeSpan(08, 00, 0);
add.SeriesEndDailyRangeTime = new TimeSpan(18, 0, 0);
add.SeriesMaxCandleSticks = 60;
add.SerieType = SeriesType.Minutes;
add.SeriesIncludeAfterHour = true;
//add.SeriesIncludeAfterHour = false;
add.SeriesInterpoled = true;

// qui richiedo la serie di sopra
Serie serie = Session.GetSerie(instruments[0], add, SubscribeUpdateModes.SnapshotAndRefresh);

simpleMovingAverage = new SimpleMovingAverage(50, CalculationField.Close);
serie.AddIndicator(simpleMovingAverage);

serie.FrameAdded += serie_FrameAdded;
serie.FrameUpdated += serie_FrameUpdated;

serie.StartDequeue();

fine ciclo sui 10 titoli azionari

Poi ho implementato un'unica funzione serie_FrameAdded

void serie_FrameAdded(Serie sender, Frame frameAdded, int frameIndex)
{
...
}

Ho però un problema con l'indice ovvero ricevo:
Eccezione in serie_FrameAdded: Message:Index was out of range. Must be non-negative and less than the size of the collection.

Ho visto che con un solo titolo funziona, ma quando ne ho più di uno si impiccia con gli indici..

Credo che l'implementazione vada fatta in un altro modo, è chiaro però che non posso fare 10 funzioni serie_FrameAdded, una per ogni titolo.
Se infatti volessi calcolare la media mobile su 100 titoli la cosa sarebbe non fattibile.

Mi potreste dare una mano?

Grazie.
Matteo.


Buongiorno tiozzo, per verificare ci sarebbe utile avere il file contenente il codice che va in errore.
Puoi inoltrarcelo all'indirizzo mail assistenza_trading@sella.it


Cinzia - Team GBS
fuego


Registrato: 09/04/2011 18:18:29
Messaggi: 92
Offline

Salve, scusate ma perchè non rispondete al mio ultimo post sul presente trhead e ai messaggi privati che ho inviato a RATTONE, SALGARELLA E FABBRO OLTRE A DUE TELEFONATE A SELLA????????????????? il problema che denuncio si verifica anche con l'ultima versione CHE AVETE rilasciata da pochissimo e che io non ho modificato...

HO ASSOLUTA NECESSITà DI AGGANCIARE LA MIA APPLICAZIONE IN C# ALLA MODALITà ORDINI VIRTUALIi, ma se non mi funziona come faccio a modificarla per poi agganciarla!! me lo volete spiegare???

Non è un buon comportamento il vostro, in quanto, all'utente tiozzo che ha scritto dopo di me sul thread, avete risposto subito, senza nulla togliere ovviamente all'utente tiozzo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Grazie

GIUSEPPE
graziella.maita


Registrato: 28/11/2013 11:49:17
Messaggi: 35
Offline

Ciao fuego,

ci dispiace per le tempistiche, come anticipato telefonicamente ieri, non abbiamo dato precedenza ad altre risposte ma semplicemente la tua segnalazione, che avevamo preso in carico e che stavamo verificando con gli sviluppatori, richiedeva più tempo a differenza di altre per le quali abbiamo già dato riscontro.
Ti ringraziamo per la tua pazienza e collaborazione, siamo finalmente riusciti ad individuare la causa dell'errore che si genera e in privato ti abbiamo mandato i dettagli su come risolvere; in linea generale, segnaliamo a tutti che per utilizzare Sella Trading Bridge in versione "informativa + dispositiva" e inviare ordini al mercato è necessario soddisfare i seguenti requisiti:

- avere profilo di investitore non inferiore al Profilo "Audace”;
- non avere attivo la prestazione del servizio di consulenza in materia di investimenti tramite il canale internet;
- essere in possesso dei requisiti di conoscenza ed esperienza sugli strumenti finanziari sui quali si intende inviare gli ordini al mercato.

Ci teniamo inoltre ricordare al Forum che "Spazio Aperto" è una community che ha come obiettivo la condivisione di informazioni e il supporto reciproco anche su temi molto tecnici e complessi come quelli affrontati in questo thread; per segnalazioni bloccanti o particolarmente urgenti, l'invito è quello di far riferimento sempre e comunque al nostro servizio di assistenza telefonica al numero 800050202, disponibile dal lunedi al venerdi dalle ore 8 alle ore 22. Grazie a tutti per la collaborazione

Graziella - Team GBS
fuego


Registrato: 09/04/2011 18:18:29
Messaggi: 92
Offline

Salve, volevo porre alcune domande:

1) nell'ipotesi di inserimento ordini non LIMIT, ma del tipo MARKET e in MODALITA VIRTUALE, ho la necessità di inserire ordini stop loss dopo che conosco il price dell'eseguito, in quanto il livello dello stop loss lo calcolo in base al valore del price dell'eseguito; in altre parole, una volta che si verifica la condizione "order.ErrorLevel == ErrorLevelType.Executed" e cioè che l'ordine di ENTRY long o short sia stato eseguito, voglio utilizzare la classe prepare order per preparare ordini di SOLO stop loss, è possibile farlo indicando solo l'order.Quantity, il livello dell'order.StopPrice e senza indicare quindi l'order.Price, successivamente accettare il Waring e infine dare l'ExecuteOrder(order)?

2) ho necessità di sapere, prima di scatenare la routine all'interno della classe prepare order, se su un determinato strumento finanziario ci siano posizioni aperte, per cui nella classe message, quale messaggio dovrei intercettare e potreste farmi un esempio di codice ?

3) orderStopPrice si può solo utilizzare per inserire ordini di STOP LOSS o lo si può utilizzare anche per ordini TAKE PROFIT?

Ciao

Giuseppe

This message was edited 4 times. Last update was at 16/08/2015 13:14:50

fuego


Registrato: 09/04/2011 18:18:29
Messaggi: 92
Offline

Altre domande....senza modificare nulla del codice del form compravendita della ultima relase della wintestapllication, chiedo:

1) usando in modalità virtuale il form compravendita se inserisco un ordine con il prezzo stop mi da il messaggio "An unhandled order reqeust in virtual exxecution mode" dal quale sembrerebbe di capire che in virtual mode non è possibile inserire lo stop price, è così?

2) sempre usando in modalità virtuale il form compravendita della ultima relase della wintestapllication, nella lista messaggi mi compare "ordine virtuale inserito correttamente...." e poi subito dopo il messaggio "ordine virtuale rifiutato..."; faccio presente che ho messo un ordine su unicredito alle 12:31:56 (come da messaggio) scegliendo la fase continua e ad un prezzo leggermente superiore a quello corrente; come mai mi compare il messaggio rifiutato visto che il prezzo limite inserito è congruo con il mercato in quel momento e la fase scelta è corretta?

3) con riferimento alla domanda n° 2 quando dice che l'ordine è stato inserito correttamente, a questo punto significa che l'ordine è nel book ma non ancora eseguito, mi confermate?


Se provo a modificare il codice della form compravendita della ultima relase della wintestapllication inserendo il codice per inserire ordini a mercato (al meglio) usano orderMarketPrice, mi dice che l'ordine è stato inserito correttamente e giustamente al meglio ma il prezzo è zero, chiedo: mi dice prezzo zero, perchè ancora una volta essendo che mi da subito dopo il messaggio "ordine virtuale rifiutato..." e quindi non avendolo eseguito non conosce il prezzo?

Ciao
Gisueppe

This message was edited 2 times. Last update was at 20/08/2015 13:18:40

sara.fabbro


Registrato: 15/04/2010 19:13:00
Messaggi: 485
Offline

Ciao fuego,
stiamo approfondendo tutti i punti, appena possibile ti rispondiamo.

Sara - Team Sella

tiozzo


Registrato: 05/10/2012 19:38:00
Messaggi: 90
Offline

Ciao,
volevo chiedervi se ultimamente è stata inserita una limitazione sul numero di modifche che si possono effettuare nell'arco di un minuto.
Prima questa limitazione non c'era però qualche settimana fa ho ricevuto un errore relativo al superamento della massima frequenza al minuto
a seguito di una modifica di un ordine.

Grazie.
Matteo.
Davide Monte


Registrato: 18/10/2011 14:41:22
Messaggi: 248
Offline

tiozzo wrote:Ciao,
volevo chiedervi se ultimamente è stata inserita una limitazione sul numero di modifche che si possono effettuare nell'arco di un minuto.
Prima questa limitazione non c'era però qualche settimana fa ho ricevuto un errore relativo al superamento della massima frequenza al minuto
a seguito di una modifica di un ordine.

Grazie.
Matteo.


Ciao Matteo, verifichiamo e ti facciamo sapere!

Buona giornata
Davide - Staff GBS
fuego


Registrato: 09/04/2011 18:18:29
Messaggi: 92
Offline

Con la presente mi rivolgo a Sara fabbro
Scrivo anche qui facendo seguito a quanto inviato in privato a Sara Fabbro perché in privato non ho potuto inviare un allegato e cioè un printscreen di quello che succede inviando un ordine di ACQUISTO ad un prezzo su lettera...
 Nome del File Cattura.PNG [Disk] Download
 Descrizione Nessuna descrizione fornita
 Dimensione del File 400 Kbytes
 Scaricato:  6 tempo(i)

This message was edited 5 times. Last update was at 02/09/2015 15:45:31

fuego


Registrato: 09/04/2011 18:18:29
Messaggi: 92
Offline

.

This message was edited 4 times. Last update was at 02/09/2015 16:03:56

sara.fabbro


Registrato: 15/04/2010 19:13:00
Messaggi: 485
Offline

tiozzo wrote:Ciao,
volevo chiedervi se ultimamente è stata inserita una limitazione sul numero di modifche che si possono effettuare nell'arco di un minuto.
Prima questa limitazione non c'era però qualche settimana fa ho ricevuto un errore relativo al superamento della massima frequenza al minuto
a seguito di una modifica di un ordine.

Grazie.
Matteo.


Ciao Matteo,
il rispetto delle normative del mercato, che richiedono agli intermediari il presidio delle transazioni dei propri clienti per il corretto funzionamento del mercato, comporta l'inserimento di filtri di frequenza, analogamente a quanto accade per quantità e prezzi.
Recentemente non sono state apportate modifiche.

Sara - Team Sella

sara.fabbro


Registrato: 15/04/2010 19:13:00
Messaggi: 485
Offline

fuego wrote:Salve, volevo porre alcune domande:

1) nell'ipotesi di inserimento ordini non LIMIT, ma del tipo MARKET e in MODALITA VIRTUALE, ho la necessità di inserire ordini stop loss dopo che conosco il price dell'eseguito, in quanto il livello dello stop loss lo calcolo in base al valore del price dell'eseguito; in altre parole, una volta che si verifica la condizione "order.ErrorLevel == ErrorLevelType.Executed" e cioè che l'ordine di ENTRY long o short sia stato eseguito, voglio utilizzare la classe prepare order per preparare ordini di SOLO stop loss, è possibile farlo indicando solo l'order.Quantity, il livello dell'order.StopPrice e senza indicare quindi l'order.Price, successivamente accettare il Waring e infine dare l'ExecuteOrder(order)?

2) ho necessità di sapere, prima di scatenare la routine all'interno della classe prepare order, se su un determinato strumento finanziario ci siano posizioni aperte, per cui nella classe message, quale messaggio dovrei intercettare e potreste farmi un esempio di codice ?

3) orderStopPrice si può solo utilizzare per inserire ordini di STOP LOSS o lo si può utilizzare anche per ordini TAKE PROFIT?

Ciao

Giuseppe


Ciao fuego,
ti rispondiamo di seguito per punti:

1) L'ordine in modalità virtuale viene solamente simulato, non viene inserito veramente, gli ordini stop rientrano nelle strategie ed in modalità virtuale non è possibile inserire strategie. Anche in modalità reale, non sarebbe comunque possibile inserire un'ordine stop loss con solo lo StopPrice e la Quantity.

2) Questa informazione si può ricavare dal messaggio della richiesta "Portfolio".
Esempio di codice:

private ManageMessageCallback portfolioMessageDelegate;
private InstrumentKey searchInstrument = new InstrumentKey("ENI", "MTA"; // Strumento da cercare

// Effetuo una richiesta Portfolio per verificare se c'è una posizione aperta su searchInstrument
private void btnPosition_Click(object sender, EventArgs e)
{
try
{
Subscription _portfolioSubscription;
OrdersFilter _portfolioFilter = new OrdersFilter();
portfolioMessageDelegate = new ManageMessageCallback(receivePortfolioMessage);

_portfolioFilter.ValorizationMode = "0";
_portfolioFilter.ValorizationCurrency = "0";
_portfolioFilter.ValorizationAfterHour = "0";

_portfolioSubscription = Session.SubscribeInfo(SubscriptionType.Portfolio,
SubscribeUpdateModes.Snapshot,
Session.CreateAutoDispatchQueue(receivePortfolioMessage),
_portfolioFilter);
}
catch (XRemotingServerException ex)
{
MessageBox.Show(ex.Message, "Errore", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
catch (ApplicationException ex)
{
MessageBox.Show(ex.Message, "Errore", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Errore Sistema", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void receivePortfolioMessage(XRemoting.Data.Message message)
{
if (this.InvokeRequired)
{
try
{
this.Invoke(portfolioMessageDelegate, new object[] { message });
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
else
{
// Gestisco i messaggi ricevuti, man mano che li ricevo, controllo se è lo strumento che sto cercando
switch (message.MessageType)
{
case MessageTypes.SnapshotStart:
break;
case MessageTypes.SnapshotEnd:
break;
case MessageTypes.SnapshotUpdate:
if (string.Equals(message.Fields["StockCode"].Content.ToString(), searchInstrument.StockCode)
&& string.Equals(message.Fields["MarketCode"].Content.ToString(), searchInstrument.MarketCode))
{
// Strumento presente nel portafoglio, si può controllare se la posizione è aperta
if (message.Fields["N_AVAILABLE_QTY"].Content.ToString() != "0"
// Posizione aperta
lblPosition.Text = string.Format("Posizione aperta su {0}_{1}", searchInstrument.MarketCode, searchInstrument.StockCode);
else
// Quantità disponibile = 0
lblPosition.Text = "Strumento presente in portafoglio, quantità disponibile = 0";
}
break;
}
}
}

3) Non è possibile inserire ordini Take Profit utilizzando l'OrderStopPrice.



Sara - Team Sella

sara.fabbro


Registrato: 15/04/2010 19:13:00
Messaggi: 485
Offline

fuego wrote:Altre domande....senza modificare nulla del codice del form compravendita della ultima relase della wintestapllication, chiedo:

1) usando in modalità virtuale il form compravendita se inserisco un ordine con il prezzo stop mi da il messaggio "An unhandled order reqeust in virtual exxecution mode" dal quale sembrerebbe di capire che in virtual mode non è possibile inserire lo stop price, è così?

2) sempre usando in modalità virtuale il form compravendita della ultima relase della wintestapllication, nella lista messaggi mi compare "ordine virtuale inserito correttamente...." e poi subito dopo il messaggio "ordine virtuale rifiutato..."; faccio presente che ho messo un ordine su unicredito alle 12:31:56 (come da messaggio) scegliendo la fase continua e ad un prezzo leggermente superiore a quello corrente; come mai mi compare il messaggio rifiutato visto che il prezzo limite inserito è congruo con il mercato in quel momento e la fase scelta è corretta?

3) con riferimento alla domanda n° 2 quando dice che l'ordine è stato inserito correttamente, a questo punto significa che l'ordine è nel book ma non ancora eseguito, mi confermate?


Se provo a modificare il codice della form compravendita della ultima relase della wintestapllication inserendo il codice per inserire ordini a mercato (al meglio) usano orderMarketPrice, mi dice che l'ordine è stato inserito correttamente e giustamente al meglio ma il prezzo è zero, chiedo: mi dice prezzo zero, perchè ancora una volta essendo che mi da subito dopo il messaggio "ordine virtuale rifiutato..." e quindi non avendolo eseguito non conosce il prezzo?

Ciao
Gisueppe


Ciao fuego, rispondiamo di seguito agli altri punti e alle immagini
1) Non è possibile inserire o cancellare strategie in modalità virtuale
2 - 3) Gli ordini virtuali vengono solamente simulati. Quindi:
- Non vengono inseriti effettivamente nel book
- servono a simulare varie situazioni di mercato in modo tale da poter testare l'applicazione nelle varie condizioni di mercato
In base alla lettera del simbolo dello strumento abbiamo 3 condizioni diverse
A -> F Ricevo i messaggi: Inserito -> Accettato -> Eseguito (Condizione Normale)
G -> O Ricevo i messaggi: Inserito -> Accettato (Condizione di ordine in attesa di esecuzione)
P -> Z Ricevo i messaggi: Inserito -> Accettato -> Rifiutato dal mercato(Condizione di ordine rifiutato)

Per gli ordini per cui hai postato le immagini hai ricevuto il rifiuto dal mercato per quello relativo ad Unicredit proprio relativamente alla lettera del simbolo del titolo. Mentre per l'altro hai ricevuto un errore sui filtri di prezzo perchè l'ordine si riferiva ad A2A mentre il prezzo era relativo ad Unicredit.

Sara - Team Sella

fuego


Registrato: 09/04/2011 18:18:29
Messaggi: 92
Offline

Faccio una proposta agli sviluppatori di STB!! personalmente mi appare non logico aver dato la possibilità di inserire ordini stop loss e contemporaneamente non dare la possibilità d inserire un ordine di take profit, per cui sarebbe opportuno che nella prossima relase di STB si tenga presente la cosa e non solo per STB, ma anche per sella Xtrading (su sella extreme 5 non so se c'è questa possibilità)

Ciao

Giuseppe

This message was edited 2 times. Last update was at 02/09/2015 17:58:11

Davide Monte


Registrato: 18/10/2011 14:41:22
Messaggi: 248
Offline

fuego wrote:Faccio una proposta agli sviluppatori di STB!! personalmente mi appare non logico aver dato la possibilità di inserire ordini stop loss e contemporaneamente non dare la possibilità d inserire un ordine di take profit, per cui sarebbe opportuno che nella prossima relase di STB si tenga presente la cosa e non solo per STB, ma anche per sella Xtrading (su sella extreme 5 non so se c'è questa possibilità)

Ciao

Giuseppe


Ciao fuego,
grazie per il suggerimento! lo raccogliamo e lo valutiamo per future implementazioni. Direttamente con le nostre piattaforme SellaXtrading e SellaExtreme, invece, hai la possibilità di inserire varie tipologie di strategie tra cui la TakeProfit+StopLoss.

Buona giornata
Davide - Staff GBS
 
Indice dei Forum » Sella Trading Bridge
Vai a:   
E.t.v.s.p.b WLS11G