E cosa ha a che fare il tuo codice conENUM_SYMBOL_CALC_MODE?
Si controlla immediatamente il modo in cui viene riempito il valore del margine per i futures. Ma perché diversi modi di riempimento sono impostati per diversi futures sul server di trading è una domanda per il broker. Tutto (per i futures) dovrebbe essere lo stesso.
Karputov Vladimir: Ho controllato subito come vengono compilati i futures per calcolare l'importo della garanzia. Ma perché diversi modi di riempimento sono impostati per diversi futures sul server di trading è una domanda per il broker. Tutto (per i futures) dovrebbe essere lo stesso.
Gli stessi tipi di contratto devono avere le stesse proprietà. Ed ecco la risposta al perché alcuni simboli hanno tipi di riempimento diversi da altri:
//+------------------------------------------------------------------+//| Test.mq5 |//| Copyright 2012, CompanyName |//| http://www.companyname.net |//+------------------------------------------------------------------+voidOnStart()
{
for(int i=0;i<SymbolsTotal(false);i++)
{
//ENUM_SYMBOL_CALC_MODE calc_mode=(ENUM_SYMBOL_CALC_MODE)SymbolInfoInteger(Symbol(),SYMBOL_TRADE_CALC_MODE);string name=SymbolName(i,false);
//--- получим значение свойства, описывающего режим заполнения int filling=(int)SymbolInfoInteger(name,SYMBOL_FILLING_MODE);
if(IsFillingTypeAllowed(name,SYMBOL_FILLING_FOK) && IsFillingTypeAllowed(name,SYMBOL_FILLING_IOC) &&
IsFillingTypeAllowed(name,NULL))
{
//---
}
else
{
//Print(name,": ",// ", filling: ",filling,// ", SYMBOL_FILLING_FOK: ",IsFillingTypeAllowed(name,SYMBOL_FILLING_FOK),// ", SYMBOL_FILLING_IOC: ",IsFillingTypeAllowed(name,SYMBOL_FILLING_IOC),// ", Идентификатор отсутствует: ",IsFillingTypeAllowed(name,NULL));SymbolSelect(name,true);
}
}
}
//+------------------------------------------------------------------+ //| проверяет разрешенность указанного режима заполнения | //+------------------------------------------------------------------+ bool IsFillingTypeAllowed(string symbol,int fill_type)
{
//--- получим значение свойства, описывающего режим заполнения int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
//--- вернем true, если режим fill_type разрешен return((filling&fill_type)==fill_type);
}
//+------------------------------------------------------------------+
Viene generata una lista nella finestra di Market Watch con i simboli "rotti". Si scopre che tutti questi "simboli rotti" hanno il commercio disattivato.
Per esempio, se si invia un ordine con il comando OrderSend(...), si ottiene una risposta vera e un biglietto,
e poi chiamare il comando OrderSelect(ticket), restituirà false in risposta
(nel qual caso l'ordine apparirà poi, esattamente tra gli ordini attivi).
La mia domanda è: avevo un ordine attivo. Ho ricevuto una risposta falsa con il comando OrderSelect(ticket),
Poi ho eseguito il comando HistoryOrderSelect(ticket), e di nuovo ho ricevuto una risposta falsa (cioè, l'ordine non è riuscito ad apparire nella storia).
Per esempio, se si invia un ordine con il comando OrderSend(...), si ottiene una risposta vera e un biglietto,
e poi chiamare il comando OrderSelect(ticket), restituirà false in risposta
(nel qual caso l'ordine apparirà poi, esattamente tra gli ordini attivi).
La mia domanda è: avevo un ordine attivo. Ho ricevuto una risposta falsa con il comando OrderSelect(ticket),
Poi ho eseguito il comando HistoryOrderSelect(ticket), e di nuovo ho ricevuto una risposta falsa (cioè, l'ordine non è riuscito ad apparire nella storia).
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Il buy-stop non è in uscita alla borsa, ma "in servizio" sul server MT5, quindi,
Se c'è un forte movimento nel mercato delle scommesse, ci può essere uno slippage.
solo gli ordini limite vengono eseguiti al prezzo indicato?
Sì, a un prezzo non peggiore di quello indicato nel mandato, se non in tempo, allora
niente viene comprato (venduto).
In questo caso, il metodo di riempimento dell'ordine dovrebbe essere applicato IOC (per quanto tempo ha a disposizione)
request.type_filling=ORDER_FILLING_IOC;Sì, a un prezzo non peggiore di quello indicato nel mandato, se non in tempo, allora
niente viene comprato (venduto).
In questo caso, il metodo di riempimento dell'ordine vale l'applicazione di IOC (tanto quanto ha tempo di prendere)
Questo approccio non è corretto perché diversi personaggi possono avere diversi tipi di riempimento.
Questo approccio è sbagliato, perché diversi personaggi possono avere diversi tipi di riempimento.
Quindi?
Sui personaggi ad alto riempimento, FOK non funzionerà affatto (semplicemente non avrà tempo).
E cosa c'entraENUM_SYMBOL_CALC_MODE con il vostro codice?
Dovete solo controllare:
Il risultato:
...
E cosa ha a che fare il tuo codice conENUM_SYMBOL_CALC_MODE?
Ho controllato subito come vengono compilati i futures per calcolare l'importo della garanzia. Ma perché diversi modi di riempimento sono impostati per diversi futures sul server di trading è una domanda per il broker. Tutto (per i futures) dovrebbe essere lo stesso.
Perché?
Gli stessi tipi di contratto devono avere le stesse proprietà. Ed ecco la risposta al perché alcuni simboli hanno tipi di riempimento diversi da altri:
Viene generata una lista nella finestra di Market Watch con i simboli "rotti". Si scopre che tutti questi "simboli rotti" hanno il commercio disattivato.
Salve,
Ho una domanda sul dispositivo terminale.
Per esempio, se si invia un ordine con il comando OrderSend(...), si ottiene una risposta vera e un biglietto,
e poi chiamare il comando OrderSelect(ticket), restituirà false in risposta
(nel qual caso l'ordine apparirà poi, esattamente tra gli ordini attivi).
La mia domanda è: avevo un ordine attivo. Ho ricevuto una risposta falsa con il comando OrderSelect(ticket),
Poi ho eseguito il comando HistoryOrderSelect(ticket), e di nuovo ho ricevuto una risposta falsa (cioè, l'ordine non è riuscito ad apparire nella storia).
Salve,
Ho una domanda sul dispositivo terminale.
Per esempio, se si invia un ordine con il comando OrderSend(...), si ottiene una risposta vera e un biglietto,
e poi chiamare il comando OrderSelect(ticket), restituirà false in risposta
(nel qual caso l'ordine apparirà poi, esattamente tra gli ordini attivi).
La mia domanda è: avevo un ordine attivo. Ho ricevuto una risposta falsa con il comando OrderSelect(ticket),
Poi ho eseguito il comando HistoryOrderSelect(ticket), e di nuovo ho ricevuto una risposta falsa (cioè, l'ordine non è riuscito ad apparire nella storia).