Sur une fractale ! J'ai essayé avec un stop-loss - ça craint, j'aimerais essayer avec des stops sur des fractales, mais je ne sais pas comment l'écrire dans la condition. Ou comment l'écrire dans un EA, j'ai écrit une condition d'entrée, quelque chose comme ceci
Sur une fractale ! J'ai essayé avec un stop loss - c'est perdant, j'aimerais l'essayer avec des stops sur les fractales, mais je ne sais pas comment l'écrire dans la condition. Ou comment l'écrire dans un EA, j'ai écrit une condition d'entrée, quelque chose comme ceci
Pour tester la stratégie, il est plus facile pour vous de trouver une fonction de trailing stop par fractales et de l'inclure dans votre EA. Ou vous pouvez l'écrire vous-même.
La fonction déplacera l'arrêt de chaque position ouverte vers la fractale nécessaire définie dans les paramètres. Et ensuite, sur la base des résultats du test, nous pouvons déjà réfléchir à l'opportunité d'utiliser soit ce chalut, soit la fermeture des positions sur le marché lorsque le prix atteint le niveau fractal. Ni l'un ni l'autre n'est une chose facile à faire.
La fonction standard iFractals() vous aidera. Elle renvoie le prix auquel la fractale est trouvée, tel que spécifié dans les paramètres de la fonction.
aidez moi s'il vous plait, mon indicateur mesure le mouvement maximum par minute pour l'heure en cours sur une échelle de temps d'une heure, les 6 premières heures (barres) il mesure tout de manière adéquate, et ensuite commence quelques valeurs illégales qui apparaissent sous le code lui-même et l'indicateur, conseillez moi où je me suis trompé, bien que je ne me soucie pas des valeurs au delà de 3 barres, mais je crains que des erreurs puissent se produire sur la première barre
#property indicator_separate_window#property indicator_buffers 1// Количество буферов#property indicator_color1 Blue // Цвет первой линии#property indicator_minimum 0#property indicator_maximum 25double Buf_0[]; // Объявление массивов (под буферы индикатора)//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init()
{
//---- indicatorsSetIndexBuffer(0,Buf_0); // Назначение массива буферу SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии //----return(0);
}
//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----//----return(0);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int start()
{
//----int i; // Индекс бара int Counted_bars; // Количество просчитанных баровint m;
int MaxSpeed;
int Speed;
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars-1; // Индекс первого непосчитанного while(i>=0) // Цикл по непосчитанным барам
{
MaxSpeed=0;
if (Period()==PERIOD_H1)
{
m=59;
while (m>=0)
{
Speed=(iOpen(Symbol(),PERIOD_M1,m+60*i)-iClose(Symbol(),PERIOD_M1,m+60*i))/Point;
if (MaxSpeed<Speed)
{
MaxSpeed=Speed;
}
m--;
}
}
if (Period()==PERIOD_M1)
{
m=0;
while (m>=0)
{
Speed=(iOpen(Symbol(),PERIOD_M1,m+i)-iClose(Symbol(),PERIOD_M1,m+i))/Point;
if (MaxSpeed<Speed)
{
MaxSpeed=Speed;
}
m--;
}
}
Buf_0[i]=MaxSpeed; // Значение 0 буфера на i-ом баре
i--; // Расчёт индекса следующего бара
}
//----return(0);
}
//+------------------------------------------------------------------+
Je pense que j'ai peut-être des erreurs sur la première mesure.
aidez moi s'il vous plait, mon indicateur mesure le mouvement maximum par minute pour l'heure en cours sur une échelle de temps d'une heure, les 6 premières heures (barres) il mesure tout de manière adéquate, et ensuite commence quelques valeurs illégales qui apparaissent sous le code lui-même et l'indicateur, conseillez moi où je me suis trompé, bien que je ne me soucie pas des valeurs au delà de 3 barres, mais je crains que des erreurs puissent se produire sur la première barre
J'avais à l'origine un indicateur différent, je l'ai démonté et j'ai "soudé" mon code.
Je veux que l'indicateur montre la valeur maximale de iOpen-iClose parmi les barres de minutes, mais pour l'HEURE, par exemple pour une heure de 59 barres de minutes iOpen-iClose = 3 (par exemple) et une barre de minutes iOpen-iClose = 10 et sur un timeframe d'une heure, il doit montrer 10 sans aucune déviation et j'ai besoin que l'indicateur ferme les ordres, si un taux de minute va trop vite dans la mauvaise direction, alors le conseiller sera un signal de fermeture
Il s'agit de la première version de ce système. Plus tard, je veux qu'il soit capable de détecter la direction dans laquelle le prix évolue.
Le compte initial est de 59 barres, ce qui est incorrect. Il peut y avoir des trous dans les minutes, et la dernière barre d'heure peut contenir moins de minutes.
Vous devez prendre l'heure d'ouverture et de fermeture de la barre des heures (Time[i]). Utilisez cette heure pour calculer les décalages des minutes iBarShift, puis calculez le maximum dans cette plage de décalages.
D'ailleurs, que doit afficher l'indicateur sur une période d'une minute ?
Si le nombre est positif, le prix monte, s'il est négatif, il descend. Le retour du nombre modulo indique la force du mouvement.
Sur une fractale ! J'ai essayé avec un stop-loss - ça craint, j'aimerais essayer avec des stops sur des fractales, mais je ne sais pas comment l'écrire dans la condition. Ou comment l'écrire dans un EA, j'ai écrit une condition d'entrée, quelque chose comme ceci
if(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&
iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&
iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&
iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)
{... ???
}
Je doute d'après votre code que la conversation porte sur une fractale. quelques prix d'ouverture et de fermeture sur 4 périodes.
Sur une fractale ! J'ai essayé avec un stop loss - c'est perdant, j'aimerais l'essayer avec des stops sur les fractales, mais je ne sais pas comment l'écrire dans la condition. Ou comment l'écrire dans un EA, j'ai écrit une condition d'entrée, quelque chose comme ceci
if(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&
iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&
iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&
iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)
{... ???
}
Pour tester la stratégie, il est plus facile pour vous de trouver une fonction de trailing stop par fractales et de l'inclure dans votre EA. Ou vous pouvez l'écrire vous-même.
La fonction déplacera l'arrêt de chaque position ouverte vers la fractale nécessaire définie dans les paramètres. Et ensuite, sur la base des résultats du test, nous pouvons déjà réfléchir à l'opportunité d'utiliser soit ce chalut, soit la fermeture des positions sur le marché lorsque le prix atteint le niveau fractal. Ni l'un ni l'autre n'est une chose facile à faire.
La fonction standard iFractals() vous aidera. Elle renvoie le prix auquel la fractale est trouvée, tel que spécifié dans les paramètres de la fonction.
aidez moi s'il vous plait, mon indicateur mesure le mouvement maximum par minute pour l'heure en cours sur une échelle de temps d'une heure, les 6 premières heures (barres) il mesure tout de manière adéquate, et ensuite commence quelques valeurs illégales qui apparaissent sous le code lui-même et l'indicateur, conseillez moi où je me suis trompé, bien que je ne me soucie pas des valeurs au delà de 3 barres, mais je crains que des erreurs puissent se produire sur la première barre
Je pense que j'ai peut-être des erreurs sur la première mesure.aidez moi s'il vous plait, mon indicateur mesure le mouvement maximum par minute pour l'heure en cours sur une échelle de temps d'une heure, les 6 premières heures (barres) il mesure tout de manière adéquate, et ensuite commence quelques valeurs illégales qui apparaissent sous le code lui-même et l'indicateur, conseillez moi où je me suis trompé, bien que je ne me soucie pas des valeurs au delà de 3 barres, mais je crains que des erreurs puissent se produire sur la première barre
J'avais à l'origine un indicateur différent, je l'ai démonté et j'ai "soudé" mon code.Que voulais-tu obtenir ?
Vinin:
Qu'est-ce que tu voulais obtenir ?
Je veux que l'indicateur montre la valeur maximale de iOpen-iClose parmi les barres de minutes, mais pour l'HEURE, par exemple pour une heure de 59 barres de minutes iOpen-iClose = 3 (par exemple) et une barre de minutes iOpen-iClose = 10 et sur un timeframe d'une heure, il doit montrer 10 sans aucune déviation et j'ai besoin que l'indicateur ferme les ordres, si un taux de minute va trop vite dans la mauvaise direction, alors le conseiller sera un signal de fermeture
Il s'agit de la première version de ce système. Plus tard, je veux qu'il soit capable de détecter la direction dans laquelle le prix évolue.
Si vous cliquez sur un objet graphique, par exemple une Ligne Horizontale, vous pouvez voir une "Description" dans la fenêtre qui s'ouvre.
- Est-il possible d'ajouter une "Description" à partir du code ?
Merci !
Si vous cliquez sur un objet graphique, par exemple une Ligne Horizontale, vous pouvez voir une "Description" dans la fenêtre qui s'ouvre.
- Est-il possible d'ajouter une "Description" à partir du code ?
Merci !
h ttps://docs.mql4.com/ru/objects/ObjectSetText
Juste ce dont j'avais besoin ! Merci !
LazarevDenis
Le compte initial est de 59 barres, ce qui est incorrect. Il peut y avoir des trous dans les minutes, et la dernière barre d'heure peut contenir moins de minutes.
Vous devez prendre l'heure d'ouverture et de fermeture de la barre des heures (Time[i]). Utilisez cette heure pour calculer les décalages des minutes iBarShift, puis calculez le maximum dans cette plage de décalages.
D'ailleurs, que doit afficher l'indicateur sur une période d'une minute ?
Si le nombre est positif, le prix monte, s'il est négatif, il descend. Le retour du nombre modulo indique la force du mouvement.