ChartGetInteger возвращает значение форматаlong или bool. Через (int) происходит перевод ChartGetInteger в значение int.
если int bars, значит и значение должно быть int при присваивании.
1. Непосредственно возвращает значение свойства.
longChartGetInteger(
long chart_id, // идентификатор графика int prop_id, // идентификатор свойства int sub_window=0// номер подокна, если требуется
);
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром
boolChartGetInteger(
long chart_id, // идентификатор графика int prop_id, // идентификатор свойства int sub_window, // номер подокна long& long_var // сюда примем значение свойства
);
Veuillez me donner un code pour MT4 et MT5 Expert Advisor pour mettreun stop loss 2-3 points au-dessus du maximum/minimum de la bougie qui vient d'être fermée.
Ou bien où puis-je voir le tutoriel sur ce sujet. Merci d'avance :-)
Veuillez me donner un code pour MT4 et MT5 Expert Advisor pour mettreun stop loss 2-3 points au-dessus du maximum/minimum de la bougie qui vient d'être fermée.
Ou bien où puis-je voir le tutoriel sur ce sujet. Merci d'avance :-)
Vous déclarez un tableau de type MqlRates. Vous copiez l'OHLC et d'autres paramètres d'un chandelier fermé.
intCopyRates(
string symbol_name, // имя символаENUM_TIMEFRAMES timeframe, // периодint start_pos, // откуда начнем (начнём с 1)int count, // сколько копируем (надо всего 1)MqlRates rates_array[] // массив, куда будут скопированы данные
);
puis prenez les valeurs hautes ou basses à partir desquelles vous êtes décalé de 2-3 points et placez-y des stops.
Déclare un tableau de type MqlRates. Copie de l'OHLC et des autres paramètres du chandelier fermé.
puis prenez les valeurs High ou Low dont vous êtes à 2 ou 3 points et placez-y des stops.
Vous pouvez également utiliser
и
Merci, mais pourrions-nous avoir au moins un exemple objectif ? Une vue d'en haut, pour ainsi dire. Je suis complètement novice et je suis sur le sujet depuis deux jours :-)
WindUP: Merci, mais pourriez-vous me donner au moins un exemple objectif ? Une vue d'en haut, pour ainsi dire. Je suis complètement novice et je suis sur le sujet depuis deux jours :-)
J'essaie d'apprendre aussi - je pense que j'arrive à quelque chose.
//+------------------------------------------------------------------+//| CopyRates.mq5 |//| Copyright 2021, MetaQuotes Ltd. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2021, MetaQuotes Ltd."#property link"https://www.mql5.com"#property version"1.00"#property script_show_inputs//---sinputint Inpcopiedrates = 2; // какой барsinputdouble Inphigh = 100; // отступить от high//---datetime m_right_time = 0,m_left_Ctime = 0;
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---MqlRates rates[];
ArraySetAsSeries(rates,true);
int copied=CopyRates(Symbol(),0,0,Inpcopiedrates,rates);
if(copied>0)
{
Print("Скопировано баров: "+copied);
string format="open = %G, high = %G, low = %G, close = %G, volume = %d";
string out;
int size=fmin(copied,10);
for(int i=0; i<size; i++)
{
out=i+":"+TimeToString(rates[i].time);
out=out+" "+StringFormat(format,
rates[i].open,
rates[i].high,
rates[i].low,
rates[i].close,
rates[i].tick_volume);
Print(out);
ObjectDelete(0,"CopyRateshigh");
m_left_Ctime=rates[i].time;
m_right_time=TimeCurrent();
TrendCreate(0,"CopyRateshigh",clrBlue,STYLE_DASHDOTDOT,1);
TrendPointChange(0,"CopyRateshigh",0,m_left_Ctime,rates[i].high+Inphigh/100);
TrendPointChange(0,"CopyRateshigh",1,m_right_time,rates[i].high+Inphigh/100);
}
}
elsePrint("Не удалось получить исторические данные по символу ",Symbol());
}
//+------------------------------------------------------------------+//| Create a trend line by the given coordinates |//+------------------------------------------------------------------+bool TrendCreate(constlong chart_ID=0, // chart's IDconststring name="TrendLine", // line nameconstcolor clr=clrRed, // line colorconstENUM_LINE_STYLE style=STYLE_SOLID, // line styleconstint width=1, // line widthconstint sub_window=0, // subwindow indexdatetime time1=0, // first point timedouble price1=0, // first point pricedatetime time2=0, // second point timedouble price2=0, // second point priceconstbool back=false, // in the backgroundconstbool selection=false, // highlight to moveconstbool ray_left=false, // line's continuation to the leftconstbool ray_right=true, // line's continuation to the rightconstbool hidden=true, // hidden in the object listconstlong z_order=0) // priority for mouse click
{
//--- set anchor points' coordinates if they are not set
ChangeTrendEmptyPoints(time1,price1,time2,price2);
//--- reset the error valueResetLastError();
//--- create a trend line by the given coordinatesif(!ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,time1,price1,time2,price2))
{
Print(__FUNCTION__,
": failed to create a trend line! Error code = ",GetLastError());
return(false);
}
//--- set line colorObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- set line display styleObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- set line widthObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
//--- display in the foreground (false) or background (true)ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- enable (true) or disable (false) the mode of moving the line by mouse//--- when creating a graphical object using ObjectCreate function, the object cannot be//--- highlighted and moved by default. Inside this method, selection parameter//--- is true by default making it possible to highlight and move the objectObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- enable (true) or disable (false) the mode of continuation of the line's display to the leftObjectSetInteger(chart_ID,name,OBJPROP_RAY_LEFT,ray_left);
//--- enable (true) or disable (false) the mode of continuation of the line's display to the rightObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
//--- hide (true) or display (false) graphical object name in the object listObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- set the priority for receiving the event of a mouse click in the chartObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- set the textObjectSetString(chart_ID,name,OBJPROP_TEXT,name);
//--- successful executionreturn(true);
}
//+------------------------------------------------------------------+//| Move trend line anchor point |//+------------------------------------------------------------------+bool TrendPointChange(constlong chart_ID=0, // chart's IDconststring name="TrendLine", // line nameconstint point_index=0, // anchor point indexdatetime time=0, // anchor point time coordinatedouble price=0) // anchor point price coordinate
{
//--- if point position is not set, move it to the current bar having Bid priceif(!time)
time=TimeCurrent();
if(!price)
price=SymbolInfoDouble(Symbol(),SYMBOL_BID);
//--- reset the error valueResetLastError();
//--- move trend line's anchor pointif(!ObjectMove(chart_ID,name,point_index,time,price))
{
Print(__FUNCTION__,
": failed to move the anchor point! Error code = ",GetLastError());
return(false);
}
//--- successful executionreturn(true);
}
//+------------------------------------------------------------------+//| Check the values of trend line's anchor points and set default |//| values for empty ones |//+------------------------------------------------------------------+void ChangeTrendEmptyPoints(datetime &time1,double &price1,
datetime &time2,double &price2)
{
//--- if the first point's time is not set, it will be on the current barif(!time1)
time1=TimeCurrent();
//--- if the first point's price is not set, it will have Bid valueif(!price1)
price1=SymbolInfoDouble(Symbol(),SYMBOL_BID);
//--- if the second point's time is not set, it is located 9 bars left from the second oneif(!time2)
{
//--- array for receiving the open time of the last 10 barsdatetime temp[10];
CopyTime(Symbol(),Period(),time1,10,temp);
//--- set the second point 9 bars left from the first one
time2=temp[0];
}
//--- if the second point's price is not set, it is equal to the first point's oneif(!price2)
price2=price1;
}
//+------------------------------------------------------------------+
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.
Bonjour, pouvez-vous me dire pourquoi il y a un (int) avant ChartGetInteger entre parenthèses ?
int bars=(int)ChartGetInteger(0,CHART_VISIBLE_BARS) ;
Bonjour. Veuillez me conseiller.
J'ai un indicateur qui doit dessiner les lignes de haut et bas du jour sur chaque barre d'une plus petite échelle de temps.
Lorsque je le place sur le graphique, il trace simplement les lignes au niveau du haut et du bas du jour (dans l'image, comme il se doit).
Bonjour. Veuillez me conseiller.
J'ai un indicateur qui est censé dessiner les lignes de haut et de bas de la journée sur chaque barre d'un cadre temporel plus petit.
Lorsque je le place sur un graphique, il ne fait que tracer des lignes sur le haut et le bas du jour (dans l'image, comme il se doit).
Voici la réponse
Voici la réponse
Bonjour, pourriez-vous me dire quel est l'identifiant de la carte ?
J'ai l'habitude d'aller à l'aide.
Veuillez me donner un code pour MT4 et MT5 Expert Advisor pour mettreun stop loss 2-3 points au-dessus du maximum/minimum de la bougie qui vient d'être fermée.
Ou bien où puis-je voir le tutoriel sur ce sujet. Merci d'avance :-)
Veuillez me donner un code pour MT4 et MT5 Expert Advisor pour mettreun stop loss 2-3 points au-dessus du maximum/minimum de la bougie qui vient d'être fermée.
Ou bien où puis-je voir le tutoriel sur ce sujet. Merci d'avance :-)
Vous déclarez un tableau de type MqlRates. Vous copiez l'OHLC et d'autres paramètres d'un chandelier fermé.
puis prenez les valeurs hautes ou basses à partir desquelles vous êtes décalé de 2-3 points et placez-y des stops.
Vous pouvez également utiliser
и
Déclare un tableau de type MqlRates. Copie de l'OHLC et des autres paramètres du chandelier fermé.
puis prenez les valeurs High ou Low dont vous êtes à 2 ou 3 points et placez-y des stops.
Vous pouvez également utiliser
и
Merci, mais pourriez-vous me donner au moins un exemple objectif ? Une vue d'en haut, pour ainsi dire. Je suis complètement novice et je suis sur le sujet depuis deux jours :-)
J'essaie d'apprendre aussi - je pense que j'arrive à quelque chose.