[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 233

 
Merci. Je vais m'en occuper.
 

Bonjour, chers gourous de MT4.

Pouvez-vous me dire comment contourner la situation où OrderSend renvoie -1, mais où l'ordre s'ouvre ?

 
ftrw:

Pouvez-vous me dire comment contourner la situation où OrderSend renvoie -1, mais où l'ordre s'ouvre ?

Essayez d'utiliser cette fonction - la fonction OpenPosition() en ligne.
 
artmedia70:
Pour une position ouverte à 1500, une prise à 1570 serait correcte (si vous ne tenez pas compte du StopLoss), mais pour une position ouverte à 1600, une prise à 1570 entraînerait l'erreur 130 - des stops incorrects. Après tout, un Take ne peut pas être inférieur au prix d'ouverture d'un Buy. Il s'agit déjà d'un StopLoss.
Pour deux postes, vous avez défini votre seuil de rentabilité, mais pour trois-quatre-cinq ?
Vous devez d'abord déterminer la formule du seuil de rentabilité pour les positions unidirectionnelles, puis vous pouvez créer une logique.

Je suis d'accord pour que nous fassions un StopTLoss sur un ordre avec un prix de 1600

à l'ouverture de la commande, la fonction commence :

ticketBuy = OpenPendingOrderBuy(0, iLots, Ask, slip, Bid, 0, 0, EAName + "-" + NumOfTradesBuy, MagicNumber, 0, Lime)
toutes les autres commandes auront la même ouverture
 
Vinin:

Tout dépend du moment où l'on fixe ou modifie le TakeProfit. Il est calculé à partir du prix actuel.

compte entre les ordres : ((Ask - OrderBuy2) - swop - ...) + ((Ask - OrderBuy1) - swop - ...) = Profit, on obtient le nombre de points que l'on peut perdre car ils sont du côté positif

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

Ask = 1620 ; Ask = 1760 ; OrderBuy3 = 1700

((1620 - 1500) - 4 - 6) + ((1620 - 1600) - 4 - 6) = 120 ; pour 3 et plus nous ajoutons ((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

Total LotsS = LotOrderBuy1 + LotOrderBuy2 = 0.03 ; pour 3 ou plus nous ajoutons

Et ici nous devons comprendre combien de lots nous devons passer, ce qui mangerait 120 points ou la somme du profit en argent.

Pour obtenir le StopProfit

Ask - StopProfit * Point = LigneTakeProfit pour l'ordreBuy1 et LigneStopLoss pour l'ordreBuy2

LotsS = 0,06

C'est comme ça que je le vois.

 
Roman.:
Essayez d'utiliser cette fonction - la fonction OpenPosition() en ligne.

Merci beaucoup. L'idée est claire, je vais l'essayer.
 
trol222:

Quelqu'un peut-il clarifier ce point ? Voici le lien https://www.mql5.com/ru/code/8102. Le script (conseiller expert joint) . Pourquoi lorsque vous calculez quoi que ce soit dans le même fichier excel (CSV) lorsque vous le fermez (bien sûr écrit où sauvegarder - je clique dans le même fichier (au lieu de lui)) et lorsque vous rouvrez le terminal et le fichier tous les calculs disparaissent ???

Premièrement, il s'agit d'un fichier CSV, qui n'est pas le meilleur format pour sauvegarder des calculs, et deuxièmement, le script écrase ce fichier.
 
PapaYozh:



C'est du travail !!!! =))))) vraiment pas comme il devrait être, mais je suis très heureux =))) ma plus profonde gratitude =))))
 
belck:

compte entre les ordres : ((Ask - OrderBuy2) - swop - ...) + ((Ask - OrderBuy1) - swop - ...) = Profit, on obtient le nombre de points que l'on peut perdre car ils sont du côté positif

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

Ask = 1620 ; Ask = 1760 ; OrderBuy3 = 1700

((1620 - 1500) - 4 - 6) + ((1620 - 1600) - 4 - 6) = 120 ; pour 3 ou plus nous ajoutons ((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

Total LotsS = LotOrderBuy1 + LotOrderBuy2 = 0.03 ; pour 3 ou plus nous ajoutons

Et ici nous devons comprendre combien de lots nous devons passer, ce qui mangerait 120 points ou la somme du profit en argent.

Pour obtenir le StopProfit

Ask - StopProfit * Point = LigneTakeProfit pour l'ordreBuy1 et LigneStopLoss pour l'ordreBuy2

LotsS = 0,06

Voici comment je vois les choses

J'ai vu la réponse à votre question une fois. Je vais même le trouver maintenant. Ici :


Comment calculer combien de points (en points) le prix peut baisser dans des conditions de marché négatives ?


formule de liaison : Lot=Argent/(Stoplos*Tick)
Argent - gagné/perdu
Stoplos - en points de courtier
Tick - MarketInfo(Symbol(), MODE_TICKVALUE)
A partir de là, tournez comme vous voulez :
Stoplos=Argent / (Lot*Tick)
Argent=Lot*Stoplos*Tick

Si vous avez un code, vous pouvez aussi utiliser celui-ci :

Calcul du niveau de CUE pour un ensemble d'un instrument :

total des lots = position totale (SP)

valeur du tick = ST

Bénéfice du PS = ST

La formule de calcul est assez simple :

KP = PSP / (ST * SP)

Dans lequel nous découvrons le nombre de pips(KP) vers le niveau CU par rapport au prix actuel(TP) du symbole.

Et en substituant KP dans la formule CU = TC - KP * Point, on obtient le niveau de prix CU.

En fonction de la direction du PJ, vous choisissez d'ajouter ou de soustraire du CT.
 

Le terminal ne voit pas l'historique



240
vitali_yv 04.10.2011 09:47
Bonne journée. J'ai deux ordinateurs équipés de Win 7. Sur l'un d'eux, j'ai le terminal avec les guillemets de 2007, tout fonctionne bien mais je n'ai pas de connexion au serveur. J'ai complètement porté ce terminal sur un autre ordinateur - je ne me suis pas connecté au serveur, je n'ai fait aucune manipulation - de plus, ce terminal est démarré au bout de 2-3 minutes, et l'historique commence en 2011, les fichiers HST sont en lecture seule. Veuillez indiquer où creuser.
Raison: