//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수 |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 차트의 창 수(최소 하나 이상의 기본 창이 항상 있음)
int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
//--- 차트 창을 살펴봅니다
for(int w=0;w<windows;w++)
{
//--- 이 창/하위 창의 지표 수
int total=ChartIndicatorsTotal(0,w);
//--- 창의 모든 지표 표시
for(int i=0;i<total;i++)
{
//--- 지표의 짧은 이름을 가져옵니다
string name=ChartIndicatorName(0,w,i);
//--- 지표 핸들 가져오기
int handle=ChartIndicatorGet(0,w,name);
//--- Add to log
PrintFormat("Window=%d, indicator #%d, handle=%d",w,i,handle);
//---
MqlParam parameters[];
ENUM_INDICATOR indicator_type;
int params=IndicatorParameters(handle,indicator_type,parameters);
//--- 메시지의 헤더
string par_info="Short name "+name+", type "
+EnumToString(ENUM_INDICATOR(indicator_type))+"\r\n";
//---
for(int p=0;p<params;p++)
{
par_info+=StringFormat("parameter %d: type=%s, long_value=%d, double_value=%G,string_value=%s\r\n",
p,
EnumToString((ENUM_DATATYPE)parameters[p].type),
parameters[p].integer_value,
parameters[p].double_value,
parameters[p].string_value
);
}
Print(par_info);
}
//--- 창의 모든 지표에 대해 완료
}
//---
}
|