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

 
Grazie. Ci darò un'occhiata.
 

Ciao cari guru di MT4.

Potete dirmi come aggirare la situazione quando OrderSend restituisce -1, ma l'ordine si apre?

 
ftrw:

Potete dirmi come aggirare la situazione in cui OrderSend restituisce -1, ma l'ordine si apre?

Provate a usare questa funzione - OpenPosition() per online.
 
artmedia70:
Per una posizione aperta a 1500, un take a 1570 andrebbe bene (se non consideri lo StopLoss), ma per una posizione aperta a 1600, un take a 1570 causerebbe l'errore 130 - stop sbagliato. Dopo tutto, un Take non può essere inferiore al prezzo di apertura di un Buy. Questo è già uno StopLoss.
Per due posizioni avete definito il vostro punto di pareggio, ma per tre-quattro-cinque?
Dovresti prima definire la formula di pareggio per le posizioni unidirezionali, e poi puoi creare una logica.

Sono d'accordo che dovremmo fare uno StopTLoss su un ordine con un prezzo di 1600

all'apertura dell'ordine la funzione inizia:

ticketBuy = OpenPendingOrderBuy(0, iLots, Ask, slip, Bid, 0, 0, EAName + "-" + NumOfTradesBuy, MagicNumber, 0, Lime)
tutti gli altri ordini avranno la stessa apertura
 
Vinin:

Tutto dipende da quando impostiamo o cambiamo TakeProfit. È calcolato a partire dal prezzo corrente.

conteggio tra ordini: ((Ask - OrderBuy2) - swop - ...) + ((Ask - OrderBuy1) - swop - ...) = Profitto, otteniamo il numero di punti che possiamo perdere in quanto sono sul lato positivo

((Ask - OrderBuy3) -/+ swop -/+ ...) + ((Ask - OrderBuy2) - swop - ...) + ((Ask - OrderBuy1) - swop - ...) = Profitto

Ask = 1620; Ask = 1760; OrderBuy3 = 1700

((1620 - 1500) - 4 - 6) + ((1620 - 1600) - 4 - 6) = 120; per 3 e più si aggiunge ((1760 - 1700) - 4 - 6) + ((1760 - 1500) - 4 - 6) + ((1760 - 1600) - 4 - 6) = 450

LotOrderBuy1 = 0.01; LotsS = 0.01

LotOrderBuy2 = 0.02; LotsS = 0.03

LotOrderBuy3 = 0.03; LotsS = 0.06

Lotto totale LottiS = LotOrderBuy1 + LotOrderBuy2 = 0,03; per 3 o più si aggiunge

E qui dobbiamo capire quanti lotti dobbiamo passare, cosa mangerebbe 120 punti o la somma del profitto in denaro.

Per ottenere StopProfit

Ask - StopProfit * Point = LineTakeProfit per OrderBuy1 e LineStopLoss per OrderBuy2

LottiS = 0,06

Ecco come la vedo io.

 
Roman.:
Provate a usare questa funzione - OpenPosition() per online.

Grazie mille. L'idea è chiara, la proverò.
 
trol222:

Qualcuno può chiarire questo punto. Ecco il link https://www.mql5.com/ru/code/8102. Lo script (Expert Advisor allegato). Perché quando si calcola qualcosa nello stesso file excel (CSV) quando lo si chiude (ovviamente scrive dove salvare - clicco nello stesso file (invece di esso)) e quando si riapre il terminale e il file tutti i calcoli spariscono??

Beh, in primo luogo è CSV, non il miglior formato per salvare i calcoli, e in secondo luogo lo script sovrascrive questo file.
 
PapaYozh:



È lavorare!!!! =))))) davvero non come dovrebbe essere, ma sono molto contento =)) la mia più profonda gratitudine =))))
 
belck:

conteggio tra ordini: ((Ask - OrderBuy2) - swop - ...) + ((Ask - OrderBuy1) - swop - ...) = Profitto, otteniamo il numero di punti che possiamo perdere in quanto sono sul lato positivo

((Ask - OrderBuy3) -/+ swop -/+ ...) + ((Ask - OrderBuy2) - swop - ...) + ((Ask - OrderBuy1) - swop - ...) = Profitto

Ask = 1620; Ask = 1760; OrderBuy3 = 1700

((1620 - 1500) - 4 - 6) + ((1620 - 1600) - 4 - 6) = 120; per 3 o più si aggiunge ((1760 - 1700) - 4 - 6) + ((1760 - 1500) - 4 - 6) + ((1760 - 1600) - 4 - 6) = 450

LotOrderBuy1 = 0.01; LotsS = 0.01

LotOrderBuy2 = 0.02; LotsS = 0.03

LotOrderBuy3 = 0.03; LotsS = 0.06

Lotto totale LottiS = LotOrderBuy1 + LotOrderBuy2 = 0,03; per 3 o più si aggiunge

E qui dobbiamo capire quanti lotti dobbiamo passare, cosa mangerebbe 120 punti o la somma del profitto in denaro.

Per ottenere StopProfit

Ask - StopProfit * Point = LineTakeProfit per OrderBuy1 e LineStopLoss per OrderBuy2

LottiS = 0,06

Ecco come la vedo io

Ho visto una volta la risposta alla tua domanda. Lo troverò anche adesso. Qui:


Come calcolare quanti punti (in punti) il prezzo può scendere in condizioni di mercato negative?


formula del link: Lot=Money/(Stoplos*Tick)
Money - guadagnato/perso
Stoplos - in punti broker
Tick - MarketInfo(Symbol(), MODE_TICKVALUE)
Da qui, gira come vuoi:
Stoplos=Money / (Lot*Tick)
Money=Lot*Stoplos*Tick

Se avete qualche codice, potete usare anche questo:

Calcolo del livello CUE per un set di uno strumento:

lotti totali = posizione totale (SP)

valore di tick = ST

SP profitto = ST

La formula per il calcolo è abbastanza semplice:

KP = PSP / (ST * SP)

In cui troviamo il numero di pips(KP) al livello di CU relativo al prezzo corrente(TP) del simbolo.

E sostituendo KP nella formula CU = TC - KP * Point otteniamo il livello dei prezzi CU.

A seconda della direzione del JV, si sceglie se aggiungere o sottrarre dal TC.
 

Il terminale non vede la storia



240
vitali_yv 04.10.2011 09:47
Buona giornata. Ho due computer con Win 7. Su uno di essi ho il terminale con le virgolette del 2007, tutto funziona bene ma non ho connessione al server. Ho portato questo terminale su un altro computer completamente - non mi sono collegato al server, non ho fatto nessuna manipolazione - per di più, quel terminale viene avviato con 2-3 minuti, e la storia inizia con 2011, i file HST sono di sola lettura. Si prega di consigliare dove scavare.