inputint InpMA_ma_period = 25; // Параметры МА inputint InpMA_ma_shift = 0; // MA PRICE_HIGH and PRICE_LOW: horizontal shift inputENUM_MA_METHOD InpMA_ma_method = MODE_SMA; // MA PRICE_HIGH: smoothing type int handle_MA;
intOnInit()
{
handle_MA=iCustom(m_symbol.Name(),Period(),"MA",InpMA_ma_period,InpMA_ma_shift,InpMA_ma_method,PRICE_CLOSE);
}
voidOnTick()
{
double MA_price=0.0;
MA_price=iCustomGet(handle_MA,0,0);
Print("MA_price",MA_price);
}
//Получаем данные кастом МАdouble iCustomGet(int handle,constint buffer,constint index)
{
double Custom[1];
//--- reset error code ResetLastError();
//--- fill a part of the iCustom array with values from the indicator buffer that has 0 index if(CopyBuffer(handle,buffer,index,1,Custom)<0)
{
//--- if the copying fails, tell the error code PrintFormat("Failed to copy data from the iCustom indicator, error code %d",GetLastError());
//--- quit with zero result - it means that the indicator is considered as not calculated return(0.0);
}
return(Custom[0]);
}
intiMA(
string symbol, // имя символа ENUM_TIMEFRAMES period, // период int ma_period, // период усреднения int ma_shift, // смещение индикатора по горизонтали ENUM_MA_METHOD ma_method, // тип сглаживания ENUM_APPLIED_PRICE applied_price // тип цены или handle
);
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
你应该放一个标志来检查值是否发生了变化,这样你就不必在每次打勾 时都去检查OnInit 了。
像这样。
谢谢你,它起作用了。
根据我的理解,我需要做的是IndicatorRelease
因为旧的计算方法还挂在图表上?至少在测试器中是这样。
那么代码是这样的?
谢谢你,它正在工作。
根据我的理解,我还需要进行指标释放
因为旧的计算方法还挂在图表上?至少在测试器中是这样。
那么代码是这样的?
并添加到代码中。
如何使我的自定义MA从RSI指标而不是价格中提取?
我通过iCustomGet 接收自定义MA的数据。
我想做一个复合指标(指标的指标)。
mt4的例子
https://www.mql5.com/ru/forum/110186
https://www.mql5.com/ru/code/22638
如何使我的自定义MA从RSI指标而不是价格中提取?
我通过iCustomGet 接收自定义MA的数据。
我想做一个复合指标(指标的指标)。
mt4的例子
https://www.mql5.com/ru/forum/110186
https://www.mql5.com/ru/code/22638
这个 怎么样:iMA
这个 怎么样:iMA
谢谢你,这正是我所需要的
对这一点。
编译器响应:由于类型转换可能导致数据丢失
问题:什么是正确的方法?(这样编译器就不会骂人了)
对这一点。
编译器响应:由于类型转换可能导致数据丢失
问题:什么是正确的方法?(这样编译器就不会骂人了)
编译器没有骂人,但警告你,你试图把double放进int。
对这一点。
编译器响应:由于类型转换可能导致数据丢失
问题:什么是正确的方法?(这样编译器就不会骂人了)
编译器没有骂人,但警告说你试图把double放进int。
我只是对几乎同样的事情感到疑惑。
这是因为在这个过程中,我们发现了一些问题。我记得SymbolInfoInteger过去是返回int类型的,现在它突然返回long类型 的
我只是对几乎相同的事情感到困惑。
这是因为在这一过程中...我记得SymbolInfoInteger过去是返回int类型的,现在它突然返回long类型 的
它总是返回长的--看看SymbolInfoInteger()属性标识符