Vous n'avez pas besoin d'ajouter quoi que ce soit... C'est déjà dans la ligne.
Je voudrais demander à Igor et à tous ceux qui écrivent régulièrement dans ce fil. J'ai parcouru la branche et je n'ai pas trouvé la fonction qui détermine l'angle de la tendance. Avez-vous une fonction qui détermine l'angle de la tendance sur un graphique de 15 minutes pour 6 chandeliers ou plus ?
mazepa писал(а)>> Je voudrais demander à Igor et à tous ceux qui écrivent régulièrement dans ce fil. J'ai regardé dans la branche et je n'ai pas trouvé la fonction qui détermine l'angle de la tendance. Avez-vous une fonction qui détermine l'angle de la tendance sur une bougie de 15 minutes à 6 bougies ou plus ?
Nous pouvons parler non pas de l'angle, mais du taux de variation du prix
Salutations ! Merci pour votre travail, vous faites un bon travail.
Je suis en train de créer un indicateur mais la fonction EquationDirect calcule parfois le point de passage de manière incorrecte :(
J'ai calculé les points des lignes sur mon graphique et je les ai joints dans un indicateur de test pour plus de clarté. La fonction ne calcule pas correctement l'intersection avec un décalage, c'est-à-dire qu'à un certain angle, la formule de la fonction n'est pas appropriée et doit être corrigée d'une manière ou d'une autre, de sorte que lorsque cela se produit, les calculs seront effectués par une formule différente IMHO.
#define CPR "DECIDE"#define mName "Signal"#property indicator_chart_windowexternint SignalBars=30;// кол-во баров для сигналаexternint TrendBars=300;// кол-во баров для т. линийexterncolor CostMaxColor=FireBrick;// цвет максимальной ценыexterncolor CostMinColor=SteelBlue;// цвет минимальной ценыexterncolor VLineColor=DarkSlateGray;// цвет минимальной ценыexterncolor TrendColor=Gray;// цвет трендовых линийexterncolor OrderColor=Green;// цвет сигнала ордераexterncolor LabelColor=Navy;// цвет меток// Инициализация - функция начальных установокint init(){if(!IsDemo())return(0);if( SignalBars<30) SignalBars=30;}// ДеИнициализация - функция завершения работыint deinit(){ObjectDelete("UpTrend");ObjectDelete("DownTrend");ObjectDelete("MaxCost");ObjectDelete("MinCost");ObjectDelete("SignOrder");ObjectDelete("Trend");ObjectDelete("Volume");}// СТАРТ - основная функция обработкиint start(){int bar;double val, upb, t1, t2, h1, h2;
val=173;
bar=iHighest(NULL,0,MODE_HIGH,100,0);
t1=Time[0]-273600;
h1=High[ bar];
t2= t1-518400;
h2=High[ bar]- val*Point;
SetTLine( TrendColor,"DownTrend", t2, h2, t1, h1, True,STYLE_SOLID,2);
upb= EquationDirect( t1, h1, t2, h2,Time[0]);
SetArrow(6,DarkViolet,"UpBorder",Time[0], upb,2);
SetVLine( VLineColor,"VLine",Time[0],STYLE_SOLID);}// --- ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ---// вертикальная временная линияvoid SetVLine(color cl,string nm="",datetime t1=0,int st=0,int wd=1){// Параметры:// cl - цвет линии// nm - наименование ("" - время открытия текущего бара)// t1 - время (0 - время открытия текущего бара)// st - стиль линии (0 - простая линия)// wd - ширина линии (1 - по умолчанию)if( nm=="") nm=DoubleToStr(Time[0],0);if( t1<=0) t1=Time[0];if(ObjectFind( nm)<0)ObjectCreate( nm,OBJ_VLINE,0,0,0);ObjectSet( nm, OBJPROP_TIME1, t1);ObjectSet( nm, OBJPROP_COLOR, cl);ObjectSet( nm, OBJPROP_STYLE, st);ObjectSet( nm, OBJPROP_WIDTH, wd);}// установка трендовой линииvoid SetTLine(color cl,string nm="",datetime t1=0,double p1=0,datetime t2=0,double p2=0,bool ry= False,int st=0,int wd=1){// Параметры:// cl - цвет линии// nm - наименование ( "" - время открытия текущего бара)// t1 - время открытия бара ( 0 - Time[10]// p1 - ценовой уровень ( 0 - Low[10])// t2 - время открытия бара ( 0 - текущий бар)// p2 - ценовой уровень ( 0 - Bid)// ry - луч (False - по умолчанию)// st - стиль линии ( 0 - простая линия)// wd - ширина линии ( 1 - по умолчанию)if( nm=="") nm=DoubleToStr(Time[0],0);if( t1<=0) t1=Time[10];if( t2<=0) t2=Time[0];if( p1<=0) p1=Low[10];if( p2<=0) p2=Bid;if(ObjectFind( nm)<0)ObjectCreate( nm,OBJ_TREND,0,0,0,0,0);ObjectSet( nm, OBJPROP_TIME1, t1);ObjectSet( nm, OBJPROP_PRICE1, p1);ObjectSet( nm, OBJPROP_TIME2, t2);ObjectSet( nm, OBJPROP_PRICE2, p2);ObjectSet( nm, OBJPROP_COLOR, cl);ObjectSet( nm, OBJPROP_RAY, ry);ObjectSet( nm, OBJPROP_STYLE, st);ObjectSet( nm, OBJPROP_WIDTH, wd);}// вычисление точки пересеченияdouble EquationDirect(double x1,double y1,double x2,double y2,double x){// Параметры:// x1,y1 - координаты первой точки,// x2,y2 - координаты второй точки,// x - значение, для которого вычислить Yif( x2== x1)return( y1);elsereturn(NormalizeDouble(( y2- y1)/( x2- x1)*( x- x1)+ y1,Digits));}// установка значькаvoid SetArrow(int cd,color cl,string nm="",datetime t1=0,double p1=0,int sz=0){// Параметры:// cd - код значка// cl - цвет значка// nm - наименование ("" - время открытия текущего бара)// t1 - время открытия бара (0 - текущий бар)// p1 - ценовой уровень (0 - Bid)// sz - размер значка (0 - по умолчанию)if( nm=="") nm=DoubleToStr(Time[0],0);if( t1<=0) t1=Time[0];if( p1<=0) p1=Bid;if(ObjectFind( nm)<0)ObjectCreate( nm,OBJ_ARROW,0,0,0);ObjectSet( nm, OBJPROP_TIME1, t1);ObjectSet( nm, OBJPROP_PRICE1, p1);ObjectSet( nm, OBJPROP_ARROWCODE, cd);ObjectSet( nm, OBJPROP_COLOR, cl);ObjectSet( nm, OBJPROP_WIDTH, sz);}
ce n'est pas à cause de la fonction EquationDirect, le calcul est correct, c'est à cause d'un bug dans le terminal, la ligne est dessinée avec un décalage
c'est pourquoi j'ai dû d'abord déterminer le point de passage avec Time[0] et ensuite tracer une ligne de tendance du point initial au point de passage avec Time[0], dans ce cas tout fonctionne bien
le moment le plus à droite dans le graphique est nécessaire pour positionner l'icône de commutation du signal de l'indicateur (lorsque l'échelle du graphique est modifiée), c'est-à-dire que si vous déplacez l'icône de commutation au-delà du moment le plus à droite, c'est-à-dire non encore atteint, l'icône commute (le signal pour placer un ordre s'active ou se désactive, ce qui signifie que vous pouvez interdire ou autoriser l'EA à trader en commutant le signal)
Le temps de gauche est déterminé comme suit : on obtient la barre la plus extérieure visible sur le graphique
WindowFirstVisibleBar() et obtenir l'heure Time[WindowFirstVisibleBar()]
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.
Vous n'avez pas besoin d'ajouter quoi que ce soit... C'est déjà dans la ligne.
Merci beaucoup !
Votre fil de discussion est un trésor sur Internet. Je ne peux pas me passer de ce que j'ai trouvé.
Vous n'avez pas besoin d'ajouter quoi que ce soit... C'est déjà dans la ligne.
Je voudrais demander à Igor et à tous ceux qui écrivent régulièrement dans ce fil. J'ai parcouru la branche et je n'ai pas trouvé la fonction qui détermine l'angle de la tendance. Avez-vous une fonction qui détermine l'angle de la tendance sur un graphique de 15 minutes pour 6 chandeliers ou plus ?existe-t-il des fonctions qui vous permettent d'appuyer sur (la gâchette)
profil
modèle
? ??
Je voudrais demander à Igor et à tous ceux qui écrivent régulièrement dans ce fil. J'ai regardé dans la branche et je n'ai pas trouvé la fonction qui détermine l'angle de la tendance. Avez-vous une fonction qui détermine l'angle de la tendance sur une bougie de 15 minutes à 6 bougies ou plus ?
Nous pouvons parler non pas de l'angle, mais du taux de variation du prix
Salutations ! Merci pour votre travail, vous faites un bon travail.
Je suis en train de créer un indicateur mais la fonction EquationDirect calcule parfois le point de passage de manière incorrecte :(
J'ai calculé les points des lignes sur mon graphique et je les ai joints dans un indicateur de test pour plus de clarté. La fonction ne calcule pas correctement l'intersection avec un décalage, c'est-à-dire qu'à un certain angle, la formule de la fonction n'est pas appropriée et doit être corrigée d'une manière ou d'une autre, de sorte que lorsque cela se produit, les calculs seront effectués par une formule différente IMHO.
capture d'écran
ajouté via opera, non ajouté dans l'explorateur
Comment puis-je déterminer l'heure de fin (à partir de la gauche) qui est visible dans le graphique ?
TimeCurrent()
TimeCurrent()
Cela semble être sur la droite.
Je l'ai déjà compris.
ce n'est pas à cause de la fonction EquationDirect, le calcul est correct, c'est à cause d'un bug dans le terminal, la ligne est dessinée avec un décalage
c'est pourquoi j'ai dû d'abord déterminer le point de passage avec Time[0] et ensuite tracer une ligne de tendance du point initial au point de passage avec Time[0], dans ce cas tout fonctionne bien
le moment le plus à droite dans le graphique est nécessaire pour positionner l'icône de commutation du signal de l'indicateur (lorsque l'échelle du graphique est modifiée), c'est-à-dire que si vous déplacez l'icône de commutation au-delà du moment le plus à droite, c'est-à-dire non encore atteint, l'icône commute (le signal pour placer un ordre s'active ou se désactive, ce qui signifie que vous pouvez interdire ou autoriser l'EA à trader en commutant le signal)
Le temps de gauche est déterminé comme suit : on obtient la barre la plus extérieure visible sur le graphique
WindowFirstVisibleBar() et obtenir l'heure Time[WindowFirstVisibleBar()]