Stima dei requisiti di margine in MQL5 - pagina 7

 
Vladimir:

Capite che non si tratta del codice, tutti quelli che sanno come ricalcolarlo. Ma lei ha aggiunto la volatilità alla lista delle caratteristiche, il cui impatto è stato effettivamente identificato. E se vai più avanti nel bosco, raccoglierai sempre più legna da ardere. Come dovremmo tenerne conto? Il caso sembra abbastanza senza speranza...

Non so assolutamente cosa intendi.

È tutto descritto nelle condizioni di trading, nelle regole di trading vere e proprie.

Il fenomeno è essenzialmente comune.

Il calcolo è diverso di conseguenza.

Ma il problema è risolvibile

Come prendere in considerazione - post precedente.
 
Renat Akhtyamov:

Non so cosa intendiate.

È tutto descritto nelle condizioni di trading, nelle regole di trading vere e proprie.

Il fenomeno è comune in sostanza.

Di conseguenza, il calcolo è diverso

Ma il problema è risolvibile.

Cercherò di spiegare. L'algoritmo è il seguente: osserviamo diverse decine di simboli in diverse decine di società di intermediazione. Le stime si fanno per gradi; le chiamerò per semplicità: la redditività prevista di un affare sul margine preso da esso. È diverso per ogni coppia (simbolo, DC). Compreso non solo al momento dell'apertura della transazione. Per selezionare i simboli e le società di intermediazione, dove apriremo un affare, abbiamo bisogno di confrontare questa cifra. Per questa scelta abbiamo bisogno di stimare la leva finanziaria, in quali limiti sarà in un periodo previsto prima della chiusura della transazione. Dopo tutto, dovremo riservare questo importo.

Questo è il programma massimo. Finora, non so nemmeno se posso prendere OrderCalcMargin() come base per stimare il margine richiesto. Che sia solo il margine per il momento attuale. Hai detto che quando cambia la volatilità, cambia la leva finanziaria. Quindi, dovremo raccogliere statistiche - in quali intervalli cambia in ciascuno dei VC per ogni simbolo. Oppure sarà possibile trovare degli intervalli accettabili di queste fluttuazioni. La cosa peggiore sarebbe se si scoprisse che la leva varia in modi imprevedibili...

La mia domanda " OrderCheck() o OrderCalcMargin() tengono conto delle caratteristiche della leva finanziaria specificate nella specifica" è un punto di partenza in questo approccio.
 
Vladimir:

Lasciatemi provare a spiegare. L'algoritmo è il seguente: diverse decine di simboli in diverse decine di DC sono monitorati. Le stime sono fatte ad un certo passo, le chiamerò per semplicità la redditività prevista di un affare sul margine preso da esso. È diverso per ogni coppia (simbolo, DC). Compreso non solo al momento dell'apertura della transazione. Per selezionare i simboli e le società di intermediazione, dove apriremo un affare, abbiamo bisogno di confrontare questa cifra. Per questa scelta abbiamo bisogno di stimare la leva finanziaria, in quali limiti sarà in un periodo previsto prima della chiusura della transazione. Dopo tutto dovremo riservare questo importo.

Questo è il programma massimo. Finora, non so nemmeno se posso prendere OrderCalcMargin() come base per stimare il margine richiesto. Che sia solo il margine del momento attuale. Hai detto che quando cambia la volatilità, cambia la leva finanziaria. Quindi, dovremo raccogliere statistiche - in quali intervalli cambia in ciascuno dei VC per ogni simbolo. Oppure sarà possibile trovare degli intervalli accettabili di queste fluttuazioni. La cosa peggiore sarebbe se si scoprisse che la leva varia in modi imprevedibili...

Scrivo per l'ultima volta:

Leggete le condizioni di trading di una particolare società di brokeraggio e non avrete bisogno di alcuna statistica.

 
Renat Akhtyamov:

L'ultima volta che scrivo:

Potete cambiare la vostra leva a vostra discrezione e potete ottenere solo poche ore.

//La mia domanda "OrderCheck() o OrderCalcMargin() tiene conto delle caratteristiche della leva finanziaria specificate nella specifica" è un punto di partenza in questo approccio.

Corrente

Non si vede mai quando arriva una mail di riduzione della leva, e ci possono essere molti fattori, non è solo per le elezioni nei paesi. Possono cambiare la leva al "volo" a loro discrezione, si può impostare da 100 a 20, e solo per poche ore.

 
Vitaly Muzichenko:

Avete mai visto una lettera nella posta che vi informa di una riduzione della leva, e ci possono essere molti fattori, non solo nelle elezioni nazionali. Potresti anche non ricevere una lettera - cambiano la leva al volo come meglio credono, possono passare da 100 a 20, e solo per poche ore.

Vitaly, ho già scritto l'algoritmo di tracciamento nella versione precedente, l'ho usato io stesso, perché la leva era 1:2000

Nelle condizioni di trading specificano specificamente i limiti del cambiamento della leva, le condizioni, il tempo, in quali condizioni non la cambiano affatto, ecc.

Puoi anche cambiarlo al volo, è per questo che lo stavo seguendo.

 
Vladimir:.
La mia domanda "OrderCheck() o OrderCalcMargin() tengono conto delle caratteristiche della leva finanziaria specificate nella specifica" è un punto di partenza in questo approccio.

Scusa, con le tue stesse parole:

"Non si tratta del codice, ma di tutti coloro che possono ricalcolare".

È probabile che anche tu ti sia assegnato a tutti.

Fate i conti e tutto sarà
 

O forse il terminale non ha le informazioni giuste?
Ho controllato se il terminale invia una richiesta al server ogni volta, o se controlla se ho abbastanza fondi. Ho trovato solo una società di brokeraggio in MT5 che registra le sue richieste in due righe con due punti se la quantità di denaro è insufficiente. Forse perché su MT5 questo terminale è l'unico collegato a un conto reale, gli altri MT5 sono demo. Log per 6 tentativi di apertura manuale del trade:

2018.07.03 04:59:35.231 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 04:59:35.331 Trades '3038119': market buy 1.26 EURUSD.m [No money]
2018.07.03 05:00:51.667 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 05:00:51.747 Trades '3038119': failed market buy 1.26 EURUSD.m [No money]
2018.07.03 05:00:55.001 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 05:00:55.091 Trades '3038119': market buy 1.26 EURUSD.m [No money]
2018.07.03 05:01:00.008 Compravendite '3038119': mercato vendere 1.26 EURUSD.m
2018.07.03 05:01:00.091 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]
2018.07.03 05:01:02.911 Compravendite '3038119': mercato vendere 1.26 EURUSD.m
2018.07.03 05:01:03.007 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]
2018.07.03 05:01:05.952 Compravendite '3038119': mercato vendere 1.26 EURUSD.m
2018.07.03 05:01:06.035 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]

Intervalli di tempo tra la linea di richiesta e la risposta No money (in millisecondi): 100 80 90 83 96 87.
Inoltre, il ping del server nel terminale è 73,56 ms. Perché il terminale aspetta per 80 ms o più prima di decidere che non ci sono abbastanza soldi? Sembra che invii tutte le richieste al server senza controllare la sufficienza. Perché? Vedo una ragione naturale: il terminale non ha le informazioni necessarie per tale controllo.
E sono sempre stato sicuro che il messaggio "Non ci sono abbastanza soldi..." è dato dal terminale stesso, che non è solo l'invio delle decisioni del server.

Dennis Kirichenko sembra essere la risposta più precisa alla mia domanda https://www.mql5.com/ru/forum/261955/page4#comment_7949343

Renat Akhtyamov, quale metodo hai suggerito in https://www.mql5.com/ru/forum/261955/page2#comment_7945930"Richiedere informazioni sul margine dal server"? Anche se ci vuole un secondo, ok, ma a che tipo di richiesta al server ti riferivi? È solo un tentativo di aprire un trade anticipato per il quale viene fatta una stima preliminare del margine?

 
Vladimir:

O forse non avete le informazioni giuste nel vostro terminale?
Ho iniziato a controllare se il terminale invia la richiesta al server ogni volta, o se controlla la sufficienza dei fondi. Ho trovato solo una società di brokeraggio in MT5 che registra le richieste in due righe mostrando due punti in caso di fondi insufficienti. Forse perché su MT5 questo terminale è l'unico collegato a un conto reale, gli altri MT5 sono demo. Log per 6 tentativi di apertura manuale del trade:

2018.07.03 04:59:35.231 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 04:59:35.331 Trades '3038119': market buy 1.26 EURUSD.m [No money]
2018.07.03 05:00:51.667 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 05:00:51.747 Trades '3038119': failed market buy 1.26 EURUSD.m [No money]
2018.07.03 05:00:55.001 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 05:00:55.091 Trades '3038119': market buy 1.26 EURUSD.m [No money]
2018.07.03 05:01:00.008 Compravendite '3038119': mercato vendere 1.26 EURUSD.m
2018.07.03 05:01:00.091 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]
2018.07.03 05:01:02.911 Compravendite '3038119': mercato vendere 1.26 EURUSD.m
2018.07.03 05:01:03.007 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]
2018.07.03 05:01:05.952 Compravendite '3038119': mercato vendere 1.26 EURUSD.m
2018.07.03 05:01:06.035 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]

Intervalli di tempo tra la linea di richiesta e la risposta No money (in millisecondi): 100 80 90 83 96 87.
Il ping al server mostrato nel terminale è 73,56 ms. Perché il terminale aspetta per 80 ms o più prima di decidere che non ci sono abbastanza soldi? Sembra che invii tutte le richieste al server senza controllare la sufficienza. Perché? Vedo una ragione naturale: il terminale non ha le informazioni necessarie per tale controllo.
E sono sempre stato sicuro che il messaggio "Non ci sono abbastanza soldi..." è dato dal terminale stesso, che non è solo l'invio di decisioni del server.

Dennis Kirichenko sembra aver risposto alla mia domanda con la massima precisione https://www.mql5.com/ru/forum/261955/page4#comment_7949343

Renat Akhtyamov, quale metodo hai suggerito in https://www.mql5.com/ru/forum/261955/page2#comment_7945930"Richiedere informazioni sul margine dal server"? Anche se ci vuole un secondo, ok, ma a che tipo di richiesta al server ti riferivi? È solo un tentativo di aprire un trade anticipato, per il quale viene fatta una stima preliminare del margine?

Ti capisco, naturalmente.

All'inizio non capivo subito le cose semplici

Ancora una volta, ecco il margine per 1 lotto da vendere

OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,1,BID,Mgn)

Ma per comprare

OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1,ASK,Mgn)

Il leverage è il rapporto con esso, non più di

k=100/leva

come questo

E il tuo registro ti dice che non hai soldi e non puoi aprire un ordine gratuito.

Puoi aprire un ordine con denaro demo. Tuttavia, per quanto ho capito, non avete nemmeno soldi per la demo.

Il saldo è zero, vero?
 
Ragazzi, datemi l'indirizzo di una casa di intermediazione dove la leva di un simbolo o la leva di un conto cambia frequentemente. O almeno per alcuni simboli condizioni di leva separate.
 

ForexClub.

Controllato il loro margine relativo a questo lotto usando ::OrderCalcMargin(). Conto reale, leva 1:500.

EURUSDLottoPrezzoValore del volume, $Margine, $Leva teorica
100 0001.001.16716116 716233.43500

11.001.167161 283 8762 567.75500

51.001.167165 952 51611 905.03500

101.00
1.1671611 788 31623 576.63500


Si scopre che la leva non cambia quando il volume di trading aumenta, il che non corrisponde alla Specifica.

Motivazione: