[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 18

 
artmedia70:

Una domanda simile è stata posta e risolta qui prima (non ricordo chi ha risposto). Per non doverlo cercare, eccolo qui:

-----------------------------------------
Come faccio a calcolare, in base ai fondi disponibili e al lotto, quanti punti (in punti) il prezzo può andare in negativo?
formula del link: Lot=Money/(Staples*Tick)
Denaro - guadagnato/perso
Stoplos - pip del broker
Tick - MarketInfo( MODE_TICKVALUE)
Da qui, girate come volete:
Stopplus=Money/(Lot*Tick)
Soldi=Lotto*Stopp+*Tick
-----------------------------------------
Ora, sulla base delle formule di cui sopra, fate quello che vi serve...




Grazie. Ci penserò su. Più opzioni sarebbero benvenute
 
vovan-gogan:

Grazie. Ci penserò su. Più opzioni sarebbero benvenute

1. Il rischio per ogni trade era il 10% del deposito,

2. Che il 10 per cento rientri nella distanza dello SL

3) Questo 10% dovrebbe essere aumentato del 50% dopo ogni trade perdente.

Per esempio il deposito è di 10.000 USD, il rischio per un trade con un certo SL conosciuto deve essere di 1.000 USD. Se il trade è in perdita, allora il prossimo trade deve rischiare 1500, il prossimo 2000, ecc. E al primo trade redditizio il rischio ritorna immediatamente al livello iniziale del deposito: 10%. Come può essere implementato nel programma?

Conosciamo tutti e tre i componenti di cui avete bisogno. Ora basta fare i conti e verificare l'ammissibilità.

1. Conosciamo il deposito? Si può calcolare il rischio in denaro: Depo/100*Percentuale di rischio. Tick è preso da qui: Tick = MarketInfo(Symbol(), MODE_TICKVALUE); Stop Loss ci è noto.

2) Lotto per aprire la posizione = Rischio in denaro / (Stop Loss in pip * Tick)

3. Se volete aumentare il rischio, ricalcolate il rischio in denaro (terzo punto sopra) per la percentuale di rischio aumentato...

 
DDFedor:

1. Sappiamo che gli esempi si trovano nella codebase.

2. Sappiamo che l'estensione del file libreria è mqh.

3. Combina, fai una ricerca sui motori di ricerca.

4. Otteniamo il primo risultato. https://www.mql5.com/ru/code/10344 - Non ho guardato nell'archivio, ma probabilmente c'è anche un file delle librerie e un file di avvio.

Probabilmente l'estensione di tutti i programmi MQL4 è "*.mq4".

"*.mqh" è un'estensione del file header della libreria, simile al C++. Niente di tutto questo ha importanza, però. Anche "*.mqh" si compila.

 
Buonasera, potete dirmi se un numero di tipo int è inizialmente 0?
 

Potete per favore consigliarmi a un certo punto di abilitare lo stop loss nel mio EA, che si trova nel mezzo tra il prezzo corrente e il prezzo aperto

middleSL=OrderOpenPrice()+(Close[0]-OrderOpenPrice())/MIDDLESL;
Quando il prezzo sale, tira su, ma mai giù

Ho visto che close[0] che finisce su un numero pari e Close[0]-1*Point(odd), nella formula, producono la stessa middleSL, e includono lo stesso comando a OrderModify, cosa devo fare nel codice per evitare che questo accada, grazie.

P.S. MIDDLESL è una variabile, ora è 2, ma con l'aiuto dell'ottimizzatore, troverà un valore più favorevole

 
nadya:
Buonasera, potete dirmi se un numero di tipo int è inizialmente 0?

Sì, quando si definisce una variabile come un intero, inizialmente ha il valore 0
 
Grazie, Denis!
 
nadya:
Buona sera, potete dirmi se un numero di tipo int è inizialmente uguale a 0?

Una strana supposizione e una risposta altrettanto strana.

In generale questo è sempre il caso, ma ci sono momenti dannosi in cui le variabili non vengono azzerate.

aneddoto in tal senso:

Un programmatore va a casa triste e le cose non vanno bene al lavoro. Ha deciso di bere qualcosa in un bar lungo la strada. Sta seduto lì tutto triste, bevendo, pensando al codice che non funziona. Una prostituta locale si siede con lui. Cerca di iniziare una conversazione. È a bocca aperta. Poi le chiede:
- Come ti chiami?
- Chi vuole chiamarti, ti chiama come vuole chiamarti.
Il programmatore (dandosi una pacca sulla fronte):
- Proprio così! Il valore predefinito dovrebbe essere dato!!!
E felicemente corse a casa per finire il codice.

Morale - inizializzate sempre le variabili con un valore!

 
LazarevDenis:

Potete per favore consigliarmi a un certo punto di abilitare lo stop loss nel mio EA, che si trova nel mezzo tra il prezzo corrente e il prezzo aperto

Quando il prezzo sale, tira su, ma mai giù

Ho visto che close[0] che finisce su un numero pari e Close[0]-1*Point(odd), nella formula, producono la stessa middleSL, e includono lo stesso comando a OrderModify, cosa devo fare nel codice per evitare che questo accada, grazie.

P.S. MIDDLESL è una variabile, ora è 2, ma con l'aiuto dell'ottimizzatore, troverà un valore più favorevole

Quando middleSL viene inviato allo stoploss viene normalizzato, cioè viene arrotondato ad un certo segno, quando diviso per 2 questo accadrà, è inevitabile
 
sergeev:

Una strana supposizione e una risposta altrettanto strana.

In generale questo è sempre il caso, ma ci sono momenti dannosi in cui le variabili non vengono azzerate.

Un aneddoto correlato:

Il programmatore va a casa triste, qualcosa non sta andando bene al lavoro. Lungo la strada decise di bere qualcosa in un bar. Sta seduto lì tutto triste, bevendo, pensando al codice che non funziona. Una prostituta locale si siede con lui. Cerca di iniziare una conversazione. Sta prendendo tempo. Poi le chiede:
- Come ti chiami?
- Chi vuole chiamarti, ti chiama come vuole chiamarti.
Programmatore (dandosi una pacca sulla fronte):
- Esatto! Il valore predefinito deve essere dato!!!
E felicemente corse a casa per finire il codice.

Morale - inizializzate sempre le variabili con un valore!

e se lo scrivo come variabile globale, assegno il valore direttamente lì?