[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 965

 
Vinin:


DC - Dealing Desk

Dans le testeur pour les autres instruments, vous ne pouvez obtenir que le prix d'ouverture sur la barre zéro, les ticks pour les autres instruments ne sont pas modélisés, l'environnement de marché est presque inaccessible.

Les transactions sur d'autres instruments ne sont pas ouvertes.

Si vous devez effectuer correctement une analyse multi-devises, il est préférable d'utiliser MT5. Il y a un testeur multidevises.


Est-il possible d'effectuer des transactions sur des comptes réels via MT5 ? Ou est-ce seulement pour les comptes de démonstration jusqu'à présent ?
 
ViktorF:

Est-il possible d'effectuer des transactions sur des comptes réels via MT5 ? Ou est-ce seulement pour les comptes de démonstration ?

Certaines sociétés de courtage proposent ce service.
 
Aidez-moi, s'il vous plaît. J'ai fait un petit code, mais il y a une erreur avec les parenthèses... qu'est-ce qui ne va pas ?
//+------------------------------------------------------------------+
void line()
{
 ObjectCreate("MILINE", 1, 0, Time[0], Bid-5*Point);
 
 if (Bid<ObjectGet("MILINE", 1) 
 {
 ObjectSet("MILINE", 1, (ObjectGet("MILINE", 1)-1*Point));
 return;
   }
 
 
 if (Bid>ObjectGet("MILINE", 1)
 
 {
  ObjectSet("MILINE", 1, (ObjectGet("MILINE", 1)+1*Point));
 return;
   }
   //+------------------------------------------------------------------+
  }
 
143alex:
Demandez-moi s'il vous plaît. J'ai fait un petit code, une erreur avec des parenthèses apparaît... qu'est-ce qui ne va pas ?


Est-il difficile de calculer soi-même les parenthèses ou est-il impossible de commenter un morceau de code contenant une erreur ?

//+------------------------------------------------------------------+
void line(){
 ObjectCreate("MILINE", 1, 0, Time[0], Bid-5*Point);
 if (Bid<ObjectGet("MILINE", 1)) { ObjectSet("MILINE", 1, ObjectGet("MILINE", 1)-1*Point); return; }
 if (Bid>ObjectGet("MILINE", 1)) { ObjectSet("MILINE", 1, ObjectGet("MILINE", 1)+1*Point); return; }
   //+------------------------------------------------------------------+
  }

ZS : tout cela ne fonctionnera pas - pas de vérification de la création de l'objet, pas de redessin de la fenêtre pour vérifier la création d'un objet.

 
IgorM:


Est-il difficile de calculer soi-même les parenthèses ou est-il impossible de commenter un morceau de code contenant une erreur ?

HH : cela ne fonctionnera pas de toute façon - pas de vérification pour voir si l'objet a été créé, pas de redessin de la fenêtre pour vérifier si l'objet a été créé.

Merci ! Je suis en train d'apprendre... J'arriverai aux inspections un jour.
 
143alex:
Merci ! Je suis en train d'apprendre... J'arriverai aux inspections un jour.
Dans le testeur sur la m-1 cela fonctionne... très intéressant pour les expériences sur les mouvements brusques. Merci encore !
 
 void Send_BUYLIMIT(double Lot,double cena)
{
if ( OrdersTotal()==0  ) OrderSend(Symbol(),OP_BUY,0.01,Ask,10,0,Bid+10*Point);
if (OrderType()==OP_BUY && OrdersTotal()<=4)OrderSend(Symbol(),OP_BUYLIMIT,Lot,cena,10,0,cena+tp*Point,0,123,0,Blue);
 
}
   return(0);


Comment puis-je ouvrir un ordre d'achat et définir 4 ordres bylimit en attente? Un total de 5 ordres, 1 ordre au marché et 4 ordres en attente. Quelle est l'erreur ici ?

 

Bonjour à tous.

Pouvez-vous me dire s'il vous plaît : après avoir effectué des tests sur l'historique, y a-t-il un moyen d'obtenir le commentaire ou le numéro magique de chaque transaction effectuée, ou tout autre moyen d'identifier les transactions ? Laissez-moi essayer d'en expliquer le sens. Supposons que je programme quelques modèles et que j'exécute l'EA sur l'historique, le résultat, comme c'est souvent le cas, est une perte. Il serait intéressant de voir, parmi les modèles et dans quelles conditions de marché , lequel perd de plus en plus souvent et lequel (s'il y en a un) affiche au moins quelques bénéfices.

Merci d'avance pour les réponses.

 
artmedia70:


Artemida70, merci pour le conseil sur la recherche des erreurs lors du débogage du programme.

J'ai encore quelques questions, veuillez y répondre dans la mesure du possible.

Première question. Pendant les tests, j'affiche des informations techniques sur le niveau des dérapages, le taux de croissance de la tendance, etc. à l'aide d'alertes. À la fin des tests, j'examine le journal avec les transactions et les informations techniques au moment de l'ouverture de l'ordre. Je passe en revue toutes les entrées du journal en utilisant le curseur. Il semble que les informations sur les transactions les plus récentes soient visibles, alors que les toutes premières transactions et au milieu de la période testée ne le sont pas. Question : Comment puis-je visualiser toutes les informations pour l'ensemble de la période testée ?

Deuxième question. Sur l'un des forums fermés, j'ai vu une discussion sur l'existence d'un livre plus complet sur le langage MQL4 et aussi au sujet d'un petit manuel ou d'une instruction pour le terminal MT4 avec des opérateurs clés, qui permettent de retirer le conseiller expert du trading, de le mettre en test, etc. de manière programmatique.

QUESTION : pouvez-vous nous aider à obtenir cette information ?

MERCI

 

J'ai créé un indicateur personnalisé avec les données externes suivantes :

//------- Параметры индикатора --------------------------------------+
extern datetime  Zero_Point      = D'2010.10.10 00:00';
extern int       cnt_Bars        = 0;
extern string    Lots            = "0.1";                            // Размеры лотов
extern string    BUY_Pairs       = "AUDJPY;AUDCAD;EURJPY;GBPJPY;GBPUSD;NZDUSD;CADJPY";
extern string    SELL_Pairs      = "AUDUSD;CHFJPY;EURCHF;EURUSD;GBPCHF;NZDJPY;USDJPY";
extern bool      CalculateInPips = False;

Je l'appelle de l'EA :

string List = DSDig (MathMax (Lot, gd_Lot[gi_cur_Basket]));
        Print ("Zero_Point = ", Zero_Point, "; Lot = ", List, "; Basket Long = ", cur_Basket_Long, "; Basket Short = ", cur_Basket_Short);
        iCustom (Symbol(), TF_ind, "i-PSI@EquityBasket", Zero_Point, 0, List, cur_Basket_Long, cur_Basket_Short, False, 0, 0);

Journal de l'EA :

20:13:54 e-PSI@BasketBull_v2.4 EURUSD,H4: Zero_Point = 1288915200; Lot = 0.10; Basket Long = USDJPY;USDCHF;CADJPY;CADCHF; Basket Short = NZDUSD;AUDCAD;EURJPY;EURGBP;AUDUSD;EURCAD;EURCHF;EURUSD

Ici, j'ai que les données sont transmises correctement.

Voyons le journal de l'indicateur :

Basket LONG[8]: 0 - NZDUSD; 1 - AUDCAD; 2 - EURJPY; 3 - EURGBP; 4 - AUDUSD; 5 - EURCAD; 6 - EURCHF; 7 - EURUSD; 
Basket SHORT[7]: 0 - AUDUSD; 1 - CHFJPY; 2 - EURCHF; 3 - EURUSD; 4 - GBPCHF; 5 - NZDJPY; 6 - USDJPY; 
20:13:34 i-PSI@EquityBasket EURUSD,M30: List Lot = USDJPY;USDCHF;CADJPY;CADCHF
20:13:34 i-PSI@EquityBasket EURUSD,M30: Zero_Point = 0; Lot = 0.00

Valeur du point zéro dans l'EA :

extern datetime Zero_Point          = D'2010.10.10 00:00';
Valeur de transmission égale à (du journal EA)
Zero_Point = 1288915200

et nous obtenons 0 dans l'indicateur. Quelqu'un peut-il me dire quel est le problème ?