Je ne sais même pas quoi ajouter... J'ai essentiellement donné les exemples de base. Voici le code. C'est pourquoi vous pouvez vous demander ce qui n'est pas clair.
Salutations ! Igor un exemple clair de comment obtenir une valeur . J'ai une ligne Low_D1_Level qui trouve la barre la plus proche dans l'historique dont la valeur sera inférieure à Low_D1_Level.
Si je travaille avec Structure sans tableau, j'obtiens le même résultat que dans le dernier code.
Donnez un exemple et, si vous le voulez bien, une description.
//+------------------------------------------------------------------+//| Dark_Level.mq4 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2020, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"#property strict
double Low_D1_Level;
struct BarData
{
datetime time; // время начала периода double open; // цена открытия double high; // наивысшая цена за период double low; // наименьшая цена за период double close; // цена закрытия long tick_volume; // тиковый объем
};
BarData Bar_data_D1[]; // обьявляем массив структуры в памяти //+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
Low_D1_Level = iLow (_Symbol,PERIOD_D1,1); // Возвращает значение минимальной цены бара D1// Bar_data_D1.low [i]; //Минимум свечи// Bar_data_D1.low [i]= iLow (_Symbol,PERIOD_D1,1);
}
One Click Close The script allows users to easily close positions if their profit/loss reaches or exceeds a value specified in pips. Please set slippage value first. Sometimes some positions do not close due to high volatility of the market. Please set larger slippage or restart the script. The free demo version is: ...
Si Low_D1_Level est le niveau du jour précédent, alors Min_D_Level est recherché à partir deLow_D1_Level et il est égal à i=1 , ou est-ce que je me trompe ?
Désolé, je ne suis pas entré dans le code, j'ai demandé à être sûr que vous le faisiez consciemment.
Pouvez-vous me dire ce que vous voulez obtenir comme résultat. Des niveaux quotidiens ou quoi ? En regardant la première ligne, le fait de copier constamment un tableau dans ArrayCopyRates et de le parcourir ensuite en boucle n'est pas l'option la plus économique. Vous pourriez trouver une solution plus élégante.
Je m'excuse, je n'ai pas approfondi le code, j'ai demandé de m'assurer que vous le faites consciemment.
Vous pouvez dire ce que vous voulez obtenir à la fin. Des niveaux quotidiens ou quoi? En regardant la première ligne, copier constamment le tableau dans ArrayCopyRates, puis le parcourir en boucle n'est pas l'option la plus économique. Vous pouvez trouver une solution plus élégante.
Je suis en bourse depuis plus de 5 ans, et en ce moment je vis complètement ( vous le faites consciemment ). Il y a un an, alors que la compréhension du trading en bourse était déjà plus ou moins renforcée,
Il a été décidé d'automatiser leurs connaissances dans le métier, envie de faire un bon bricolage.
C'est ainsi que MQL4 m'est consciemment venu, pour le moment l'EA a plus de 6000 lignes.
voici un exemple de code lors du calcul du lot il y a 1 an.
// Примитивно но работало //+-------------------------------------------------------------------------+// Функция расчета лота от прибыли + +//+-------------------------------------------------------------------------+// double Lots; //string lots; double FloatingLots()
{
double Lots1= 1200 ,Lots2= 2200 ,Lots3= 3200 ,Lots4= 4200 ,Lots5= 5200 ,Lots6= 6200 ,Lots7= 7200 ,Lots8= 8200 ,Lots9= 9200 ,Lots10= 10200 ;
if (AccountBalance()<=Lots1){Lots= 0.1 ;}
if (AccountBalance()>=Lots1 && AccountBalance()<=Lots2){Lots= 0.2 ;}
if (AccountBalance()>=Lots2 && AccountBalance()<=Lots3){Lots= 0.3 ;}
if (AccountBalance()>=Lots3 && AccountBalance()<=Lots4){Lots= 0.4 ;}
if (AccountBalance()>=Lots4 && AccountBalance()<=Lots5){Lots= 0.5 ;}
if (AccountBalance()>=Lots5 && AccountBalance()<=Lots6){Lots= 0.6 ;}
if (AccountBalance()>=Lots6 && AccountBalance()<=Lots7){Lots= 0.7 ;}
if (AccountBalance()>=Lots7 && AccountBalance()<=Lots8){Lots= 0.8 ;}
if (AccountBalance()>=Lots8 && AccountBalance()<=Lots9){Lots= 0.9 ;}
if (AccountBalance()>=Lots9){Lots= 1 ;}
return (Lots);
}
Et voici la même fonction après six mois
//+-------------------------------------------------------------------------+// Функция расчета лота от прибыли V 1.1 +//+-------------------------------------------------------------------------+//double Lots; // переменная для расчёта лота и вывода в кнопке double FloatingLots()
{
double S_lots = 0.1 ;
double i;
for ( i = 1000 ; i <= AccountBalance();i+= 1000 )
{
if (i > (AccountBalance())- 1000 )
{
Lots = S_lots; break ;
}
else S_lots+= 0.1 ;
}
return (S_lots);
Voici la raison de la création de ce fil.
J'ai remarqué purement par hasard et visuellement lorsque j'ai commencé à exécuter le conseiller sur de longues périodes, si la deuxième condition était supprimée dans le cycle, une erreur se produisait (hors du tableau) et la deuxième condition masquait simplement l'erreur réelle.
Voici la fonction qui doit être déboguée, et il est temps d'étudier les structures, les classes.
Ne jugez pas strictement pour l'écriture de code - :)
Vous me demandez pourquoi cela ne fonctionne pas et j'essaie d'en saisir l'essentiel en mots, car il existe peut-être une meilleure solution à votre problème, ce que j'essaie de découvrir.
Vous me demandez pourquoi cela ne fonctionne pas, et j'essaie d'en saisir l'essentiel en mots, car il existe peut-être une meilleure solution à votre problème, ce que j'essaie de découvrir.
Oui, c'est ainsi que fonctionne la perception humaine. Moi aussi, lorsque je suis vraiment passionné par une idée, je peux à peine entendre les arguments de l'autre personne. Oh, eh bien...
Il y a un niveauLow_D1_Level , alors nous devons obtenir la valeur du niveau suivant Min_D_Level, qui sera le niveau le plus bas suivant dans l'histoire et sera inférieur à Low_D1_Level.
Je ne sais pas comment expliquer davantage. Si vous exécutez le code dans le testeur avec la visualisation à mon avis tout est visible.
Et de manière générale, si vous venez sur le poste, ayez la gentillesse d'en lire au moins l'essentiel.
C'est tout à fait hors sujet :
C'est quoi le "problème XY" ?
C'est une erreur qui fait souvent perdre du temps à la fois à la personne qui demande de l'aide et à celle qui tente d'y répondre. On l'appelle aussi le "problème du marteau". En bref, les gens ont tendance à poser des questions sur leurs tentatives infructueuses de résoudre le problème, plutôt que sur le problème lui-même. Ça finit par donner quelque chose comme ça :
Une personne veut faire X.
Il ne sait pas comment faire X, mais devine que faire Y pourrait mener au succès.
Cependant, la personne ne sait pas non plus comment faire Y.
C'est alors qu'il décide de demander de l'aide à d'autres personnes.
Tout le monde essaie d'aider la personne qui a le problème Y, en s'interrogeant parce qu'on ne voit pas bien pourquoi quelqu'un aurait même besoin d'une telle chose.
Après beaucoup de questions et beaucoup de temps perdu, il apparaît finalement que la personne voulait vraiment résoudre X, et que Y ne peut pas du tout l'aider.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Je ne sais même pas quoi ajouter... J'ai essentiellement donné les exemples de base. Voici le code. C'est pourquoi vous pouvez vous demander ce qui n'est pas clair.
Salutations ! Igor un exemple clair de comment obtenir une valeur . J'ai une ligne Low_D1_Level qui trouve la barre la plus proche dans l'historique dont la valeur sera inférieure à Low_D1_Level.
Si je travaille avec Structure sans tableau, j'obtiens le même résultat que dans le dernier code.
Donnez un exemple et, si vous le voulez bien, une description.
Si Low_D1_Level est le niveau du jour précédent, alors Min_D_Level est recherché à partir deLow_D1_Level et il est égal à i=1 , ou est-ce que je me trompe ?
Désolé, je ne suis pas entré dans le code, j'ai demandé à être sûr que vous le faisiez consciemment.
Pouvez-vous me dire ce que vous voulez obtenir comme résultat. Des niveaux quotidiens ou quoi ? En regardant la première ligne, le fait de copier constamment un tableau dans ArrayCopyRates et de le parcourir ensuite en boucle n'est pas l'option la plus économique. Vous pourriez trouver une solution plus élégante.
Je m'excuse, je n'ai pas approfondi le code, j'ai demandé de m'assurer que vous le faites consciemment.
Vous pouvez dire ce que vous voulez obtenir à la fin. Des niveaux quotidiens ou quoi? En regardant la première ligne, copier constamment le tableau dans ArrayCopyRates, puis le parcourir en boucle n'est pas l'option la plus économique. Vous pouvez trouver une solution plus élégante.
Je suis en bourse depuis plus de 5 ans, et en ce moment je vis complètement ( vous le faites consciemment ). Il y a un an, alors que la compréhension du trading en bourse était déjà plus ou moins renforcée,
Il a été décidé d'automatiser leurs connaissances dans le métier, envie de faire un bon bricolage.
C'est ainsi que MQL4 m'est consciemment venu, pour le moment l'EA a plus de 6000 lignes.
voici un exemple de code lors du calcul du lot il y a 1 an.
Et voici la même fonction après six mois
Voici la raison de la création de ce fil.
J'ai remarqué purement par hasard et visuellement lorsque j'ai commencé à exécuter le conseiller sur de longues périodes, si la deuxième condition était supprimée dans le cycle, une erreur se produisait (hors du tableau) et la deuxième condition masquait simplement l'erreur réelle.
Voici la fonction qui doit être déboguée, et il est temps d'étudier les structures, les classes.
Ne jugez pas strictement pour l'écriture de code - :)
Voici la fonction à déboguer.
OK, et peux-tu me dire avec quoi tu veux finir ?
Ok, peux-tu me dire avec quoi tu veux finir ?
Voici la version abrégée exécutée sur AUDUSD 2020
Pourquoi ne va-t-il pas plus loin dans le tableau ?
Vous me demandez pourquoi cela ne fonctionne pas et j'essaie d'en saisir l'essentiel en mots, car il existe peut-être une meilleure solution à votre problème, ce que j'essaie de découvrir.
Expliquez ce que vous essayez d'obtenir.Vous me demandez pourquoi cela ne fonctionne pas, et j'essaie d'en saisir l'essentiel en mots, car il existe peut-être une meilleure solution à votre problème, ce que j'essaie de découvrir.
Expliquez ce que vous voulez obtenir.Jusqu'à présent, je vois ...
Jusqu'à présent, je ne vois que ça.
Oui, c'est ainsi que fonctionne la perception humaine. Moi aussi, lorsque je suis vraiment passionné par une idée, je peux à peine entendre les arguments de l'autre personne. Oh, eh bien...
Jusqu'à présent, je ne vois que ça.
Il y a un niveauLow_D1_Level , alors nous devons obtenir la valeur du niveau suivant Min_D_Level, qui sera le niveau le plus bas suivant dans l'histoire et sera inférieur à Low_D1_Level.
Je ne sais pas comment expliquer davantage. Si vous exécutez le code dans le testeur avec la visualisation à mon avis tout est visible.
Et de manière générale, si vous venez sur le poste, ayez la gentillesse d'en lire au moins l'essentiel.
C'est tout à fait hors sujet :
C'est quoi le "problème XY" ?
C'est une erreur qui fait souvent perdre du temps à la fois à la personne qui demande de l'aide et à celle qui tente d'y répondre. On l'appelle aussi le "problème du marteau". En bref, les gens ont tendance à poser des questions sur leurs tentatives infructueuses de résoudre le problème, plutôt que sur le problème lui-même. Ça finit par donner quelque chose comme ça :
Jusqu'à présent, c'est ce que je vois.
Alors je suppose que tu n'as toujours pas trouvé tes X et Y ! !!