Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1709

 
Andrey I.R.O.V #:
Dites-moi si quelqu'un sait comment connecter MT4 ou MT5 avec PHP ? Le robot de trading doit travailler sur le serveur, demander des cotations à un courtier et créer/annuler/surveiller des ordres. Le courtier ne dispose que de terminaux MT4 et MT5, il n'a pas d'API :) Ou suis-je stupide et cela n'arrive pas du tout ?

peut être fait. Tout peut être fait.

Mais il est garanti qu'il ralentira en php, il n'est pas conçu pour de telles fins.

Et puis la syntaxe MQL est presque la même, en connaissant php vous pouvez maîtriser mql en une semaine.

 
MakarFX #:
vous n'avez pas besoin de tout le code, seulement de OrderSend

donc c'est assez simple

ticket = OrderSend(Symbol(),OP_BUY, Lot*3, Ask, Slippage, SLbuy, 0, "open buy order", Magic, 0, Blue) ;

ou

ticket = OrderSend(Symbol(),OP_SELL, Lot*3, Bid, Slippage, SLsell, 0, "open Sell order", Magic, 0, Red) ;


La situation est que je connecte toujours ces ou ces opérations par le biais de bool. Et j'en ai beaucoup. Je vous l'ai dit, c'est plus facile pour moi d'enlever le superflu.

 
Alexey Viktorov #:

Il est plus facile d'insérer vous-même une impression avec les conditions d'ouverture d'un ordre. Il est fort probable que les conditions d'ouverture de la commande soient enregistrées après l'ouverture de la première commande. Par exemple, le nombre d'ordres ouverts == 0 et après l'ouverture du premier ordre, cette valeur n'a pas changé...

Le sens de votre supposition est compris, c'est probablement comme ça que ça se passe mais pratiquement comment trouver cette "économie". Le code est énorme.

 
Порт-моне тв #:

donc c'est assez simple

ticket = OrderSend(Symbol(),OP_BUY, Lot*3, Ask, Slippage, SLbuy, 0, "open buy order", Magic, 0, Blue) ;

ou

ticket = OrderSend(Symbol(),OP_SELL, Lot*3, Bid, Slippage, SLsell, 0, "open Sell order", Magic, 0, Red) ;


La situation est que je connecte toujours ces ou ces opérations par le biais de bool. Et il y en a beaucoup. Je te le dis, c'est plus facile pour moi d'enlever le superflu.

Une remarque : les lots doivent être alignés. Même si c'est juste une multiplication par un nombre entier.

 
Maxim Kuznetsov #:

juste une note : les lots doivent être alignés. Même si c'est juste pour multiplier par un nombre entier

qu'est-ce que l'"alignement" ? Merci bien sûr, mais ce n'est pas ce qui me dérange.

 
Порт-моне тв #:

Je comprends l'essentiel de votre conjecture, c'est probablement comme ça que ça marche, mais pratiquement comment trouver cette "sauvegarde". Le code est énorme.

Voici les empreintes pour vous aider à les trouver...

 
Alexey Viktorov #:

Les empreintes vous aideront à les trouver...

Eh bien, je peux voir à partir de l'historique dans le testeur où, quand et avec quels paramètres. Qu'est-ce qui se passe ?

 
Maxim Kuznetsov #:

peut être fait. Tout peut être fait.

Mais il est garanti qu'il ralentira en php, il n'est pas conçu pour de telles fins.

Et puis la syntaxe MQL est presque la même, en connaissant php vous pouvez maîtriser mql en une semaine.

Merci pour les conseils, c'est déjà un peu plus clair dans ma tête comment et quoi faire. Je peux aussi le faire en MQL, à condition que ce soit un VPS.
 

Les gars, pas besoin d'être redondant. Il suffit de supprimer deux commandes ayant le même prix, le même lot et la même heure d'ouverture, et le tour est joué ! Cela suffira ! Dans le testeur, sur 100000 commandes, cela s'est produit 4 fois. C'est-à-dire que cela arrive extrêmement rarement, mais à cause d'un tel doublet, la stratégie s'est éloignée.

 
Порт-моне тв heure d'ouverture, et le tour est joué ! Cela suffira ! Dans le testeur, sur 100000 commandes, cela s'est produit 4 fois. C'est-à-dire que cela arrive très rarement, mais un tel doublement s'est produit, et la stratégie s'est éloignée à cause de cela.

Faites cela et il n'y aura pas de doublement.

if(OrderSend(Symbol(),OP_BUY, Lot*3, Ask, Slippage, SLbuy, 0, "открыт ордер на покупку", Magic, 0, Blue))
   {Print("OpenBuy");}
if(OrderSend(Symbol(),OP_SELL, Lot*3, Bid, Slippage, SLsell, 0, "открыт ордер на продажу", Magic, 0, Red))
   {Print("OpenSell");}