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 // сюда примем значение свойства
);
MT4 및 MT5 전문가용 코드를 알려주세요. 그는 무엇을 설정할까요? 손절하다 방금 닫은 양초의 고점/저점 위 2-3핍.
또는 이 주제에 대한 자습서를 어디에서 볼 수 있습니까? 미리 감사드립니다 :-)
MqlRates 유형의 배열을 선언합니다. OHLC 및 기타 닫힌 양초 매개변수 복사
intCopyRates (
string symbol_name, // имя символаENUM_TIMEFRAMES timeframe, // периодint start_pos, // откуда начнем (начнём с 1)int count, // сколько копируем (надо всего 1)MqlRates rates_array[] // массив, куда будут скопированы данные
);
WindUP : 감사합니다. 하지만 적어도 하나의 객관적인 예를 들어줄 수 있습니다. 말하자면 탑뷰. 그리고 나는 완전히 멍청하고 주제에서와 같이 2 일입니다 :-)
여기에서도 배우려고 노력하고 있습니다. 무언가가 잘되고있는 것 같습니다.
//+------------------------------------------------------------------+//| 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;
}
//+------------------------------------------------------------------+
안녕하세요! ChartGetInteger 앞에 괄호 안에 (int)가 있는 이유를 알려주세요.
int bar=(int)ChartGetInteger(0, CHART_VISIBLE_BARS );
안녕하세요. 조언 부탁드립니다.
더 작은 시간대의 각 막대에 오늘의 고가 및 저가 선을 그려야 하는 표시기가 있습니다.
차트에 걸면 그 날의 최대값과 최소값의 현재 값에 따라 단순히 선을 그립니다.
안녕하세요. 조언 부탁드립니다.
더 작은 시간대의 각 막대에 오늘의 고가 및 저가 선을 그려야 하는 표시기가 있습니다.
차트에 걸면 그 날의 최대값과 최소값의 현재 값에 따라 단순히 선을 그립니다.
여기 답이 있습니다
여기 답이 있습니다
안녕하세요 차트의 아이디를 알려주세요.
그들은 일반적으로 도움을 발굴합니다.
MT4 및 MT5 전문가용 코드를 알려주세요. 그는 무엇을 설정할까요? 손절하다 방금 닫은 양초의 고점/저점 위 2-3핍.
또는 이 주제에 대한 자습서를 어디에서 볼 수 있습니까? 미리 감사드립니다 :-)
MT4 및 MT5 전문가용 코드를 알려주세요. 그는 무엇을 설정할까요? 손절하다 방금 닫은 양초의 고점/저점 위 2-3핍.
또는 이 주제에 대한 자습서를 어디에서 볼 수 있습니까? 미리 감사드립니다 :-)
MqlRates 유형의 배열을 선언합니다. OHLC 및 기타 닫힌 양초 매개변수 복사
그런 다음 2-3 포인트를 벗어나서 거기에서 멈추는 높음 또는 낮음 값을 가져옵니다.
당신은 또한 사용할 수 있습니다
그리고
MqlRates 유형의 배열을 선언합니다. OHLC 및 기타 닫힌 양초 매개변수 복사
그런 다음 2-3 포인트를 벗어나서 거기에서 멈추는 높음 또는 낮음 값을 가져옵니다.
당신은 또한 사용할 수 있습니다
그리고
감사합니다. 하지만 적어도 하나의 객관적인 예를 들어줄 수 있습니다. 말하자면 탑뷰. 그리고 나는 완전히 멍청하고 주제에서와 같이 2 일입니다 :-)
여기에서도 배우려고 노력하고 있습니다. 무언가가 잘되고있는 것 같습니다.