Funzione Money Mgmt

 

Publi

Funzione Money Mgmt

 

Publi

Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 10 di 12

Discussione: Funzione Money Mgmt

  1. #1
    Come si codifica una funzionalità di gestione del denaro in un EA ...

    per esempio:

    Se il saldo è di $ 500 o meno, scambia 0.1 lotti
    Se il saldo è di $ 1000 o più scambia 0,2 lotti
    Se il saldo è $ 1500 o più scambi 0,3 lotti
    Se il saldo è $ 2000 o più scambi 0,4 lotti
    Se il saldo è di $ 2500 o più scambi 0,5 lotti
    Se il saldo è $ 3000 o più scambi 0,6 lotti
    Se il saldo è di $ 3500 o più scambi di 0,7 lotti
    Se il saldo è di $ 4000 o più scambi 0,8 lotti
    Se il saldo è di $ 4500 o più scambi 0,9 lotti
    Se il saldo è di $ 5000 o più lotti commerciali 1.0
    Se il saldo è $ 5500 o più scambi 1.1 lotti
    ecc. per ogni incremento di $ 500 in saldo aggiungere 0,1 lotti

  2. #2
    Se si allega il proprio EA, molto probabilmente lo codificherà. I migliori saluti

  3. #3
    ?? sufficiente dividere il saldo per 5000 e salvarlo come un valore.

  4. #4
    Io uso solo ibfx, ma dopo aver condiviso EA e ogni 1 utilizzando diversi intermediari ho avuto bisogno di una gestione del denaro che funzionasse su tutti i broker senza cambiare a funziona su 4 5 cifre la mia gestione del denaro è stata testata su 3 diversi intermediari, incluso varieuse odl, ibfx , sparren. questo è un semplice script per aprire una posizione di acquisto wrather il tuo utilizzando la funzione sl o no, la sl è i pips, il rischio è la% di account per pips Codice inserito #property show_inputs double risk = 3.5; extern int stop_loss = 25; bool use_sl = false; double my_point, digit, sl; int start () {if (Punto == 0,0001) my_point = 0,0001; se (Punto == 0,00001) mio_point = 0,0001; se (Punto == 0,01) mio_point = 0,01; se (Punto == 0,001) mio_point = 0,01; if (use_sl) sl = Ask-stop_loss * my_point; if (! use_sl) sl = NULL; if (MarketInfo (Symbol (), MODE_LOTSTEP) == 0,001) cifre = 3; if (MarketInfo (Symbol (), MODE_LOTSTEP) == 0,01) cifre = 2; if (MarketInfo (Symbol (), MODE_LOTSTEP) == 0.1) cifre = 1; if (MarketInfo (Symbol (), MODE_LOTSTEP) == 1) cifre = 0; double lots = (AccountFreeMargin ()MarketInfo (Symbol (), MODE_MARGINREQUIRED)AccountLeverage ()) * risk(100 * my_point)stop_loss; if (lotslt; MarketInfo (Symbol (), MODE_MINLOT)) {lots = MarketInfo (Symbol (), MODE_MINLOT);} if (lotsgt; MarketInfo (Symbol (), MODE_MAXLOT)) {lots = MarketInfo (Symbol (), MODE_MAXLOT) ;} lotti = NormalizeDouble (lotti, cifre); OrderSend (Simbolo (), OP_BUY, lotti, Chiedi, 3, sl, NULL, sceneggiatura, NULL, 0, CLR_NONE); ritorno; } questa è la linea con il doppio codice lotti matematici = (AccountFreeMargin ()MarketInfo (Symbol (), MODE_MARGINREQUIRED)AccountLeverage ()) * risk(100 * my_point)stop_loss; ecco la ripartizione del margine libero matematico diviso per l'importo richiesto per aprire 1 lotto diviso per leva questo ritorna l'1% del conto in 100 pips ho aggiunto questo, per modificare il rischio e pips * rischio(100 * mio_point)stop_loss ;

  5. #5

    Citazione Originariamente Scritto da ;
    ?? sufficiente dividere il saldo per 5000 e salvarlo come un valore.
    TJ, sarebbe troppo semplice. Quello che sto cercando di fare è aumentare in modo incrementale la dimensione del lotto in base al saldo attuale prima di ogni operazione. All'aumentare dell'equity, di un importo fisso, in questo caso $ 500 ogni trade incrementa di 0,1 volte la dimensione del lotto. SeQuando il saldo supera $ 5000, allora scambierebbe da 1,0 a 1,1 incrementi e così via. A 10k scambierebbe a 2,0 lotti a 10,500 in azioni equivarrebbe a scambiare 2,5 lotti, ecc. Questo codice dovrebbe essere elaborato in tempo reale, quindi quando gli scambi venivano sparati mentre dormivo il numero massimo di lotti o mini lotti sarebbe scambiati in base al capitale richiesto per incremento.

  6. #6
    1 allegato (s) Trendchaser, grazie per la condivisione. Io uso ibfx e mi chiedevo come sarebbe stato implementato in un esempio simile a quello allegato qui sotto che è stato creato da Metatrader e pubblio su un altro thread pochi giorni fa. Mi piacerebbe essere in grado di definire la quantità necessaria per ciascuna dimensione del lotto di 0,1 in dollari. Per ora è $ 500 per 0,1 o mini lotto per operazione. Quindi, ad esempio, un margine gratuito di $ 2450 spenderebbe un acquisto o una vendita con una dimensione di lotto di 0,4 e $ 2650 sparerebbero su un commercio di dimensioni pari a 0,5. Il margine libero sarebbe calcolato in tempo reale prima di ogni operazione. Lo scopo principale è ovviamente quello di permettere a questa funzione di gestione del denaro di scambiare il massimo importo che io leggo anche mentre i trade vengono sparati mentre dormo
    .
    Citazione Originariamente Scritto da ;
    Io uso solo ibfx, ma dopo aver condiviso EA e ogni 1 utilizzando diversi intermediari ho avuto bisogno di una gestione del denaro che funzionasse su tutti i broker senza cambiare a funziona su 4 5 cifre la mia gestione del denaro è stata testata su 3 diversi intermediari, incluso varieuse odl, ibfx , sparren. questo è un semplice script per aprire una posizione di acquisto wrather usando la funzione sl o meno, la sl è i pip, il rischio è la% dell'account per pip [codice] #property show_inputs double risk = 3.5; extern int stop_loss = 25; bool use_sl = false; double my_point, digit, sl; Int ...
    https://www.forexmad.com/attachments...6329438060.mq4

  7. #7
    inserire questo nella parte superiore del codice Codice inserito extern double risk = 3.5; extern int stop_loss = 25; bool use_sl = false; double my_point, digit, sl; inserire questo dopo start () Codice inserito se (Punto == 0,0001) my_point = 0,0001; se (Punto == 0,00001) mio_point = 0,0001; se (Punto == 0,01) mio_point = 0,01; se (Punto == 0,001) mio_point = 0,01; if (use_sl) sl = Ask-stop_loss * my_point; if (! use_sl) sl = NULL; if (MarketInfo (Symbol (), MODE_LOTSTEP) == 0,001) cifre = 3; if (MarketInfo (Symbol (), MODE_LOTSTEP) == 0,01) cifre = 2; if (MarketInfo (Symbol (), MODE_LOTSTEP) == 0.1) cifre = 1; if (MarketInfo (Symbol (), MODE_LOTSTEP) == 1) cifre = 0; double lots = (AccountFreeMargin ()MarketInfo (Symbol (), MODE_MARGINREQUIRED)AccountLeverage ()) * risk(100 * my_point)stop_loss; if (lotslt; MarketInfo (Symbol (), MODE_MINLOT)) {lots = MarketInfo (Symbol (), MODE_MINLOT);} if (lotsgt; MarketInfo (Symbol (), MODE_MAXLOT)) {lots = MarketInfo (Symbol (), MODE_MAXLOT) ;} lotti = NormalizeDouble (lotti, cifre); ora, in tutte le funzioni di orderend, mettere lotti e sl (sl è opzionale) Inserisci codice OrderSend (Symbol (), OP_BUY, # 91; b # 93; lots # 91;b # 93;, Ask, 3, # 91; b # 93; sl # 91;b # 93;, NULL, sceneggiatura, NULL, 0, CLR_NONE); ovunque tu abbia usato Point sostituiscilo con my_point, se lasci bool use_sl = false; non c'è sl se lo si cambia in bool use_sl = true; tu puoi giocare con l'impostazione del rischio fino a quando non ottieni l'incremento di lotti desiderato. AccountFreeMargin () può essere sostituito con accountequity o accountbalance anche se non farebbe molta differenza

  8. #8

  9. #9
    1 Attachment (s) Questo è come avrei fatto. Ho scritto una piccola funzione, questa è la logica e poi l'ho inserita in un indior che la chiama così puoi vedere come viene usata. Codice PHP: <code> <span style = ???color: # 000000???> <span style = ???color: # 0000BB???> </span> <span style = ???color: # FF8000???>/Functiontoreturnaincremtedlotamountforagivenbalanc ebydollarincrements. <Br> </span> <span style = ???color: # 0000BB???> doubleLotsize </span> <span style = ???color: # 007700???> (</span> <span style = ???color: # 0000BB???> doubleacctbalance <span> <span style = ???color: # 007700???>, </span> <span style = ???color: # 0000BB???> doubleincrement </span> <span style = ???color: # 007700???>, </span > <span style = ???color: # 0000BB???> doublebaselot </span> <span style = ???color: # 007700???>)
    {</span> <span style = ???color: # FF8000???>/AccountBalanceevery$5000.01forevery$500

    </span> <span style = ???color: # 0000BB???> intlotmultiple </span> <span style = ???color: # 007700???> = </span> < span style = ???color: # 0000BB???> acctbalance </span> <span style = ???color: # 007700???></span> <span style = ???color: # 0000BB???> incremento </span> <span style = ???Color: # 007700???>;
    </span> <span style = ???color: # 0 000BB ???> doublelots </span> <span style =??? color: # 007700 ???> = </span> <span style =??? color: # 0000BB ???> baselot </span> <span style =??? color: # 007700 ??? > * </span> <span style = ???color: # 0000BB???> lotmultiple </span> <span style = ???color: # 007700???>;
    return (</span> <span style = ???color : # 0000BB ???> lotti </span> <span style =??? color: # 007700 ???>);
    }
    </span> <span style =??? color: # 0000BB ???> </span > </span> </code>
    https://www.forexmad.com/attachments...1132090665.mq4

  10. #10

    Citazione Originariamente Scritto da ;
    Questo è come l'avrei fatto. Ho scritto una piccola funzione, questa è la logica e poi l'ho inserita in un indior che la chiama così puoi vedere come viene usata. Codice PHP: <code> <span style = ???color: # 000000???> <span style = ???color: # 0000BB???> </span> <span style = ???color: # FF8000???>/Functiontoreturnaincremtedlotamountforagivenbalanc ebydollarincrements. <Br> </span> <span style = ???color: # 0000BB???> doubleLotsize </span> <span style = ???color: # 007700???> (</span> <span style = ???color: # 0000BB???> doubleacctbalance <span> <span style = ???color: # 007700???>, </span> <span style = ???color: # 0000BB???> doubleincrement </span> <span style = ???color: # 007700???>, </span > <span style = ???color: # 0000BB???> doublebaselot </span> <span style = ???color: # 007700???>)
    {</span> <span style = ???color: # FF8000???>/AccountBalanceevery$5000.01forevery$500

    </span> <span style = ???color: # 0000BB???> intlotmultiple </span> <span style = ???color: # 007700???> = </span> < span style = ???color: # 0000BB???> acctbalance </span> <span style = ???color: # 007700???></span> <span style = ???color: # 0000BB???> incremento </span> <span style = ???Color: # 007700???>;
    </span> <span style = ???color: # 0 000BB ???> doublelots </span> <span style =??? color: # 007700 ???> = </span> <span style =??? color: # 0000BB ???> baselot </span> <span style =??? color: # 007700 ??? > * </span> <span style = ???color: # 0000BB???> lotmultiple </span> <span style = ???color: # 007700???>;
    return (</span> <span style = ???color : # 0000BB ???> lotti </span> <span style =??? color: # 007700 ???>);
    }
    </span> <span style =??? color: # 0000BB ???> </span > </span> </code>
    Grazie Signore.

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Il sito di forexmad utilizza cookie
Il sito di forexmad utilizza cookie, alcuni dei quali già installati. Per avere maggiori informazioni sui nostri cookie ti preghiamo di cliccare qui. Ti preghiamo di cliccare sul bottone a destra per accettare i nostri cookie. Se continui a navigare sul sito di forexmad assumeremo che sei d'accordo ad utilizzarli.