Discussione sull’articolo "Funzioni di Money Management in un Expert Advisor" - pagina 5

 
Karlson:

Un sacco di pezzi da 100. Margine adeguato.

O mi sfugge qualcosa....

Testando IBM, all'inizio non riuscivo a capire perché non permettesse di aprire più di 0,5 lotti. Poi ho capito. 50 frammenti a un prezzo di circa 200 - è l'intero deposito iniziale di 10.000 sul margine.

Che cos'è "sherds"?
 
Urain:
Che cos'è "shers"?

Un clic su un pulsante :)))

1 lotto sul NYSE = 100 azioni.

Pezzi di azioni in un lotto.

 
Karlson:

Un clic su un pulsante :))

1 lotto sul NYSE = 100 azioni.

Pezzi di azioni in un lotto.

Ebbene, questo 1 lotto per #Nome = X azioni è necessario come valore restituito dalla funzione SymbolInfoInteger() di MQL5.
Документация по MQL5: Получение рыночной информации / SymbolInfoInteger
Документация по MQL5: Получение рыночной информации / SymbolInfoInteger
  • www.mql5.com
Получение рыночной информации / SymbolInfoInteger - Документация по MQL5
 

CONTRACT_SIZE è sbagliato?

 
Karlson:

CONTRACT_SIZE è sbagliato?

Questo è il punto, CONTRACT_SIZE è già utilizzato nella formula di calcolo del margine (vedere il secondo post di questa pagina). Per le valute è sufficiente, ma per esempio per #IBM no.
 

Sì. Sono stato stupido ieri, e prima, e forse anche oggi. Non riesco a dormire.

Mi dispiace, il deposito per 1 lotto di IBM (100 azioni) è di 20.000 dollari. È questo che intendo... Nessuna leva... 1:1 per essere precisi.

Io scriverei la formula al contrario, per me ha più senso.

SYMBOL_MARGIN = (SYMBOL_BID*SYMBOL_TRADE_CONTRACT_SIZE ) / ACCOUNT_LEVERAGE

E l'output di 1 lotto di azioni (100 pezzi) dovrebbe essere di 200 $, non di 20 000 $. La formula sarà corretta, ma l'output in realtà non è lo stesso. Come se la leva non fosse conteggiata.

IBM ---- margine= (200 * 100 ) / 100 = 200 $ -- così dovrebbe essere.

EURUSD ---- margine= (1,23936 * 100.000) / 100 = 1.239,36 $ -- tutto corretto.

input double lot=1.0;
double marg1=0,marg2=0;
void OnStart()
    { 
     double bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
     OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,lot,bid,marg1);
     OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,lot,bid,marg2);
     
     Print(_Symbol,"    Buy Margin=",marg1,"     Sell Margin=",marg2);
    }

 
Karlson:

Sì. Sono stato stupido ieri, e prima, e forse anche oggi. Non riesco a dormire.

Mi dispiace, il deposito per 1 lotto di IBM (100 azioni) è di 20.000 dollari. È questo che intendo... Nessuna leva... 1:1 per essere precisi.

Io scriverei la formula al contrario, per me ha più senso.

E l'output di 1 lotto di azioni (100 pezzi) dovrebbe essere di 200 $, non di 20 000 $. La formula sarà corretta, ma l'output in realtà non è lo stesso. Come se la leva non fosse conteggiata.

IBM ---- margine= (200 * 100 ) / 100 = 200 $ -- dovrebbe essere così.

EURUSD ---- margine= (1,23936 * 100.000) / 100 = $1.239,36 -- tutto corretto.

Sembra che il problema non sia la leva, dato che il profitto è molto veloce, concludo che ci sono 100 contratti nel 1° lotto, mentre sul forex ci sono 1 contratto nel 1° lotto.

 
Rosh:

Non parlare per enigmi. Ha scoperto che il metodo di calcolo scritto per il Forex non funziona qui?

Sì, l'ho scoperto, resta da scoprire quale metodo di calcolo funziona, ma senza conoscere la rappresentazione interna vagherò a lungo in congetture.

Ho bisogno di una posizione chiara di MQ su questo argomento, da cui si possa procedere.

A proposito, questo non è un attacco al suo articolo (lei ha sottolineato molto tempo fa che è stato scritto molto tempo fa). Per me è importante chiarire la questione.

 
Urain:

Sembra che il problema non sia nella leva, dato che il profitto sale molto rapidamente, concludo che nel 1° lotto ci sono 100 contratti, mentre nel forex il 1° lotto è di 1 contratto.


Come discusso in un thread vicino, la leva determina la possibilità di aprire un volume maggiore. E il profitto è semplicemente contato in volume per pip. Beh, c'è anche il TickValue, importante se il conto è in euro.

No, il valore del contratto è abbastanza standard ovunque - 100 000 unità divaluta base. 100 unità per le azioni. Tranne che Insta ha una dimensione diversa sul forex.

In ogni caso, attendete una risposta.

Non è logico far pagare 20.000 per un lotto di queste azioni. La matematica è giusta. 200 * 100 =20.000, e senza leva. Dov'è finito?

 
Karlson:

Come discusso in un thread vicino, la leva finanziaria determina la possibilità di aprire un volume maggiore. E il profitto è semplicemente contato nel volume per pip. Beh, c'è anche il TickValue, importante se il conto è in euro.

No, il valore del contratto è abbastanza standard ovunque - 100 000 unità divaluta base. 100 unità per le azioni. Tranne che Insta ha una dimensione diversa sul forex.

In ogni caso, attendete una risposta.

Non è logico far pagare 20.000 per un lotto di queste azioni. La matematica è giusta. 200 * 100 =20.000, e senza leva. Dov'è finito?

Il TickValue sui metalli è diverso, sui fondi e sul forex è di 1 a testa.

Se non ci fosse la leva, il profitto non crescerebbe al crescere del volume, immaginando di aprire 0,2 lotti sul forex di 20.000 dollari e lo stesso volume sul fondo, e sul fondo da un tale deposito il profitto cresce come da 100.000 dollari sul forex. quindi la leva funziona, ma la dimensione del contratto è specificata in modo errato, o meglio qualche coefficiente non è preso in considerazione.

Forse il fondo ha un contratto standard di 100 azioni, ma con un ordine di 1 lotto vengono aperti 100 contratti standard. Non ho altre spiegazioni (anche se si tratta di un'ipotesi).

ZЫ qui senza "pallitra" e "aiuto della sala" è impossibile risolvere.