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

 
John Smith:

Les gars, pourriez-vous me dire comment convertir la date du 29.01.2008 dans un format comme 1201564800 ? Quelle fonction est utilisée pour ce faire ?

J'ai besoin de comparer TimeCurrent () avec une date historique donnée...

C'est bon ?

datetime Начало = D'2015.01.01 00:00';  // Дата задана датой
string   Конец  = "2035.01.01 00:00";   // Дата задана строкой, потом переведем в дату

void start() 
{
  datetime End=StringToTime(Конец);

  if(TimeCurrent()>Начало)  Alert(" Начинаем");
  if(TimeCurrent()>End)     Alert(" Заканчиваем");
                      else  Alert(" Продолжаем");
}
 
John Smith:

Les gars, pouvez-vous me dire comment convertir la date du 29.01.2008 dans un format comme 1201564800 ? Quelle fonction est utilisée pour ce faire ?

J'ai besoin de comparer TimeCurrent () avec une date historique donnée...


Si vous convertissez l'heure actuelle en un second format via iTime : int iTime = TimeCurrent() ;

alors comment peut-on la comparer à d'autres dates qui sont écrites au format 29.01.2008 ?


Ou alors, comparez-les sans les convertir en secondes, si vous pouvez le faire directement...

comme

si TimeCurrent() > 29.01.2008 alors a = 123456

mais cela ne fonctionne pas sous cette forme... ((

datetime est un long

Ainsi, pour représenter une date en tant que long, vous devez effectuer une conversion explicite :

long time_current=(long)TimeCurrent();
 

Bonjour.

Question sur letesteur de stratégie

Je ne peux pas réduire la taille des polices ou des colonnes pour faire tenir les entrées dans la fenêtre de 640 pixels.

comment faire ?

J'ai réduit la taille de la fenêtre, mais les informations sont froissées.

Dossiers :
 
Sergey Musin:

Bonjour.

Question sur letesteur de stratégie

Je ne peux pas réduire la taille des polices ou des colonnes pour faire tenir les entrées dans la fenêtre de 640 pixels.

comment faire ?

J'ai réduit la taille de la fenêtre, mais les informations sont froissées.

Essayez de réduire la taille de la police système dans les paramètres de Windows.
 

Bonjour !

S'il vous plaît, donnez-moi un indice, il y a un morceau de code :

void watch_breakout() {
  if(active != true) return;
    int ticket = get_ticket();
  if(Ask >= NormalizeDouble(channel_top, Digits)) {
    ticket   = OrderSend(Symbol(), OP_BUY, Lots, Ask, SLIPPAGE, NormalizeDouble(Ask-Stoploss*Point,Digits), 0, "LONG", MAGIC, clrNONE); 
       }
  if(Bid <= NormalizeDouble(channel_bottom, Digits)) {
    ticket   = OrderSend(Symbol(), OP_SELL, Lots, Bid, SLIPPAGE, NormalizeDouble(Bid+Stoploss*Point,Digits), 0, "SHORT", MAGIC, clrNONE);
       } 
    }

Je recherche les ruptures du canal de prix, ma tâche est de vérifier si la rupture n'est pas par un chandelier, mais par une barre d'épingle et d'ouvrir un ordre après la formation de la barre d'épingle.

Je suis en train de me débattre avec ce problème depuis trois jours, mais jusqu'à présent, je n'ai vu aucune solution.

 
Snower: J'ai un morceau de code :

Vérifier si la percée ne s'est pas produite par une bougie mais par une pinbar et ouvrir un ordre après la formation de la pinbar. S'il vous plaît, dites-moi comment mettre cela en œuvre, je me bats depuis trois jours et je ne vois pas encore de solution.

Je suis en train de déboguer un conseiller expert qui fonctionne bien dans le testeur de stratégie en un mois. Et c'est bon pour la démo. J'ai été distrait et j'ai regardé ici. Vous avez le dessin ?

 
STARIJ:

Je suis en train de déboguer le conseiller expert que j'ai testé pendant un mois. Et c'est bon pour la démo. J'ai été distrait et j'ai regardé ici. Vous avez le dessin ?


Comme ceci, par exemple. La ligne jaune est le canal de prix que le prix devrait franchir, et l'ordre s'ouvrira avec un smiley, et tous ceux qui étaient là avant seront ignorés.

 
Snower:


Comme ceci, par exemple. La ligne jaune est le canal de prix que le prix devrait franchir, et que l'ordre serait ouvert avec une bougie en forme de smiley, et toutes celles qui précèdent seraient ignorées.

Cela ne fonctionnera pas.
 
Artyom Trishkin:
Ça ne marchera pas.

Réponse

Artyom, vous n'avez pas lu attentivement : le TS ne doit s'ouvrir que lors de la rupture d'une barre d'épingle, respectivement si vous prescrivez une barre d'épingle (petit corps et grandes ombres), la condition peut être remplie.

 

Comment la fonction iCustom est-elle gérée dans MT4 ? Veuillez répondre à ceux qui sont au courant !


Par exemple, dans strategy tester, un EA appelle l'indicateur à chaque tick.

Lorsque la fonction est appelée, l'indicateur est chargé dans la mémoire, recalcule toutes les valeurs de la barre zéro aux barres et renvoie ensuite la valeur au décalage requis.

Si je demande la valeur de la première barre au premier tick et la valeur de la deuxième barre au deuxième tick, alors mon Expert Advisor calculera l'indicateur deux fois sur l'historique complet ?


Si le Conseiller Expert accède à l'indicateur1, et qu'il a iCustom à l'indicateur2. Combien de fois l'indicateur2 sera-t-il recalculé lors de la demande de la valeur de l'indicateur1?


Peut-être que le Strategy Tester et le terminal MT4 stockent les valeurs des indicateurs sur chaque barre, de sorte qu'ils ne les recalculent pas à chaque demande répétée ?