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

 
Alekseu Fedotov:

Il ne disparaîtra pas.

lire

Modifié

if(Bid == PriceLine)

à

if(NormalizeDouble(Bid,4) == NormalizeDouble(PriceLine,4))

Les transactions ne s'ouvrent toujours pas à l'intersection

 
Fib0 RU:

Modifié

à

Les transactions ne s'ouvrent toujours pas sur le croisement.

Le prix entre ticks n'est pas égal à 1 point, cette égalité est rare. Si de dessous le prix alors attrape le prix est supérieur ou égal. Si sans contrôler d'où vient le prix. c'est plus compliqué. comme était moins, est devenu plus ou égal et symétrique. Il y a deux contrôles. Soit vous vérifiez la plage de niveau de la ligne plus 5 pips et moins 5 pips.

 
Est-il possible pour la bibliothèque de sortir des informations vers un fichier (simuler la fonction Print()) pour vérifier quelles sont les valeurs à l'intérieur de la fonction de la bibliothèque, j'ai essayé la manière habituelle de sortir vers un fichier en utilisant les moyens C++ n'a pas aidé, j'ai donné des exemples plus tôt, qui peut donner des conseils ?
 
Valeriy Yastremskiy:

le prix entre ticks n'est pas égal à 1 point, cette égalité est rare. si de dessous le prix alors attrape le prix est supérieur ou égal. Si sans contrôler d'où vient le prix. C'est plus compliqué. C'est comme si c'était plus bas et devenait plus haut ou égal et symétrique. Il y a deux contrôles. Soit vous vérifiez la plage de niveau de la ligne plus 5 pips et moins 5 pips.

Mais en fixant les lignes manuellement sans l'indicateur, les marchés sont ouverts, même si ce n'est pas toujours le cas. Les lignes de l'indicateur ne sont pas vues par le conseiller expert.
 
Seric29:
Est-il possible, du côté de la bibliothèque, d'envoyer des informations vers un fichier (simuler la fonction Print()) pour vérifier quelles valeurs se trouvent dans la fonction de la bibliothèque ? La méthode habituelle d'envoi vers un fichier par des moyens C++ n'a pas aidé, j'ai donné des exemples plus tôt, qui peut donner des conseils ?
std::fstream, CreateFile. Ce que vous préférez, les deux fonctionnent.
 
Vladimir Simakov:
std::fstream, CreateFile. Ce que je préfère, c'est que les deux fonctionnent.

Avez-vous vérifié vos propres conseils ?

Essayez ceci et aucun fichier n'est créé ou écrit. J'ai essayé manuellement et cela ne fonctionne pas non plus.

#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <fstream>
#include <string>


/*using std::cout;
using std::endl;
using std::cin;*/

using namespace std;


#define _DLLAPI extern "C" __declspec(dllexport)

/*_DLLAPI int __stdcall Funkt(int qa){//"C:\\Program Files(x86)\\Forex4you\\MQL4\\Experts\\Moyperviyzapisfiles.txt\\Moyperviyzapisfiles.txt"
        ofstream file;//"C:\\Users\\123\\Documents\\Visual Studio 2012\\Projects\\ConsoleApplication8\\ConsoleApplication8\\Moyperviyzapisfiles.txt"
        //"C:\\Users\\123\\documents\\visual studio 2012\\Projects\\ConsoleApplication8\\Debug\\ConsoleApplication8.dll\\Moyperviyzapisfiles.txt"
        file.open("C:\\Program Files(x86)\\Forex4you\\MQL4\\Experts\\Moyperviyzapisfiles.txt");//,ios::out
        file<<"Moyperviyzapisfiles";//(string)qa
        file.close();   
        return 12;}*/
La fonction se connecte et renvoie 12 mais ne fait aucun travail sur le fichier.
 

Quelqu'un peut-il m'aider à trouver l'erreur ?


/////////////////////////////////////////////////

// Fermer l'ordre mais seulement s'il est en profit //

/////////////////////////////////////////////////


void CloseIfInProfit(string symb , int index)

{

for (int i = 0;i <= OrdersTotal();i++)

{

if( OrderSelect(i,SELECT_BY_POS,MODE_TRADES) )

{

si( OrderSymbol() == symb )

{

double profit = ( OrderProfit() - OrderCommission () - OrderSwap() ) ;

si ( ( OrderType() == OP_BUY || OrderType() == OP_SELL) && ( profit >= 0 ) && (OrderMagicNumber() == MAGIC) )

{

OrderClose(OrderTicket(),OrderLots(),MarketInfo(symb,MODE_BID),100,Red) ; // Ferme tous les ordres ouverts

ObjectSetText("Text2"+symb,"",TextSize, "Arial") ; // Se débarrasse du message relatif aux critères d'entrée.

}

si (OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)

{

OrderDelete(OrderTicket()) ; // Supprimez tous les ordres en attente

ObjectSetText("Text2"+symb,"",TextSize, "Arial") ; // Se débarrasse du message relatif aux critères d'entrée.

}

}

}

}

partial[index] = false ;

}


 

Bonjour à tous !

Veuillez m'aider à résoudre un problème.

J'ai écrit un robot en mql4. Je veux réécrire ce robot dans un langage mql proche pour pouvoir travailler sur la bourse, comme binance, bimex qui ont un terminal de trading différent.

 
Seric29:

Avez-vous vérifié vos propres conseils ?

Essayez ceci et aucun fichier n'est créé ou écrit. J'ai essayé manuellement et cela ne fonctionne pas non plus.

La fonction se connecte et renvoie 12 mais ne fonctionne pas avec les fichiers.
Essayez de créer un fichier où vous avez des droits d'accès)))
 
Fib0 RU:
Mais en fixant les lignes manuellement sans indicateur, les transactions s'ouvrent, même si ce n'est pas toujours le cas. Le conseiller expert ne voit pas les lignes de l'indicateur.
if((fabs( round((Bid - PriceLine}/Point))<=10)Print (Bid,"  ",PriceLine);

Essayez de regarder le journal de bord pour voir ce qu'il imprime. Il s'agit du modulus de la différence arrondie à l'entier divisé par le point.