Rustam Bikbulatov: Второе. Команда на открытия ордера
Ничего не понятно. Рыночный приказ-то тут при чём? Может вызов индикатора? Тогда переделывайте индикатор и вызывайте его с помощью iCustom вместо iMACD.
Может и переделывать ничего не надо, в кодобазе этого добра - хоть заешься.
Ничего не понятно. Рыночный приказ-то тут при чём? Может вызов индикатора? Тогда переделывайте индикатор и вызывайте его с помощью iCustom вместо iMACD.
Может и переделывать ничего не надо, в кодобазе этого добра - хоть заешься.
Через iCustom пробовал но медленно работает. задержка большая. Пробовал через iMAOnArray но с массивами проблема. Не мог пару дней связать все в едино. Проще сделать iMACD но как вот в чем вопрос
Через iCustom пробовал но медленно работает. задержка большая. Пробовал через iMAOnArray но с массивами проблема. Не мог пару дней связать все в едино. Проще сделать iMACD но как вот в чем вопрос
Никак, стандартный iMACD вычисляет сигнальную линию по формуле SMA, только кастом поможет.
все, я понял что невозможно это сделать. спасибо большое за инфо
Вот код стандартного MACD
//+------------------------------------------------------------------+//| Custom MACD.mq4 |//| Copyright 2005-2014, MetaQuotes Software Corp. |//| http://www.mql4.com |//+------------------------------------------------------------------+#property copyright"2005-2014, MetaQuotes Software Corp."#property link"http://www.mql4.com"#property description"Moving Averages Convergence/Divergence"#property strict#include <MovingAverages.mqh>
//--- indicator settings#property indicator_separate_window#property indicator_buffers2#property indicator_color1 Silver
#property indicator_color2 Red
#property indicator_width1 2//--- indicator parametersinputint InpFastEMA=12; // Fast EMA Periodinputint InpSlowEMA=26; // Slow EMA Periodinputint InpSignalSMA=9; // Signal SMA Period//--- indicator buffersdouble ExtMacdBuffer[];
double ExtSignalBuffer[];
//--- right input parameters flagbool ExtParameters=false;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit(void)
{
IndicatorDigits(Digits+1);
//--- drawing settingsSetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,InpSignalSMA);
//--- indicator buffers mappingSetIndexBuffer(0,ExtMacdBuffer);
SetIndexBuffer(1,ExtSignalBuffer);
//--- name for DataWindow and indicator subwindow labelIndicatorShortName("MACD("+IntegerToString(InpFastEMA)+","+IntegerToString(InpSlowEMA)+","+IntegerToString(InpSignalSMA)+")");
SetIndexLabel(0,"MACD");
SetIndexLabel(1,"Signal");
//--- check for input parametersif(InpFastEMA<=1 || InpSlowEMA<=1 || InpSignalSMA<=1 || InpFastEMA>=InpSlowEMA)
{
Print("Wrong input parameters");
ExtParameters=false;
return(INIT_FAILED);
}
else
ExtParameters=true;
//--- initialization donereturn(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Moving Averages Convergence/Divergence |//+------------------------------------------------------------------+intOnCalculate (constint rates_total,
constint prev_calculated,
constdatetime& time[],
constdouble& open[],
constdouble& high[],
constdouble& low[],
constdouble& close[],
constlong& tick_volume[],
constlong& volume[],
constint& spread[])
{
int i,limit;
//---if(rates_total<=InpSignalSMA || !ExtParameters)
return(0);
//--- last counted bar will be recounted
limit=rates_total-prev_calculated;
if(prev_calculated>0)
limit++;
//--- macd counted in the 1-st bufferfor(i=0; i<limit; i++)
ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//--- signal line counted in the 2-nd bufferSimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);//ExponentialMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);//--- donereturn(rates_total);
}
//+------------------------------------------------------------------+
Строку, помеченную розовым, я добавил.
Если раскомментировать строку, помеченную розовым, и закомментировать строку, помеченную зелёным, то MACD должен рассчитываться весь по экспоненциальным МАшкам.
Если раскомментировать строку, помеченную розовым, и закомментировать строку, помеченную зелёным, то MACD должен рассчитываться весь по экспоненциальным МАшкам.
Вопрос был как это сделать в советнике. В советнике вычисляет по формуле SMA автоматически
Второе. Команда на открытия ордера
Ничего не понятно. Рыночный приказ-то тут при чём? Может вызов индикатора? Тогда переделывайте индикатор и вызывайте его с помощью iCustom вместо iMACD.
Может и переделывать ничего не надо, в кодобазе этого добра - хоть заешься.
Ничего не понятно. Рыночный приказ-то тут при чём? Может вызов индикатора? Тогда переделывайте индикатор и вызывайте его с помощью iCustom вместо iMACD.
Может и переделывать ничего не надо, в кодобазе этого добра - хоть заешься.
Через iCustom пробовал но медленно работает. задержка большая. Пробовал через iMAOnArray но с массивами проблема. Не мог пару дней связать все в едино. Проще сделать iMACD но как вот в чем вопрос
Через iCustom пробовал но медленно работает. задержка большая. Пробовал через iMAOnArray но с массивами проблема. Не мог пару дней связать все в едино. Проще сделать iMACD но как вот в чем вопрос
Никак, стандартный iMACD вычисляет сигнальную линию по формуле SMA, только кастом поможет.
Никак, стандартный iMACD вычисляет сигнальную линию по формуле SMA, только кастом поможет.
все, я понял что невозможно это сделать. спасибо большое за инфо
все, я понял что невозможно это сделать. спасибо большое за инфо
Да ничего невозможного, просто надо рамки раздвинуть немного )))
все, я понял что невозможно это сделать. спасибо большое за инфо
Вот код стандартного MACD
Строку, помеченную розовым, я добавил.
Если раскомментировать строку, помеченную розовым, и закомментировать строку, помеченную зелёным, то MACD должен рассчитываться весь по экспоненциальным МАшкам.
Вот код стандартного MACD
Строку, помеченную розовым, я добавил.
Если раскомментировать строку, помеченную розовым, и закомментировать строку, помеченную зелёным, то MACD должен рассчитываться весь по экспоненциальным МАшкам.
Вопрос был как это сделать в советнике. В советнике вычисляет по формуле SMA автоматически
Вопрос был как это сделать в советнике. В советнике вычисляет по формуле SMA автоматически
Я вам показал как сделать кастомный MACD.
Вот его и берите в советник через iCustom()
Я вам показал как сделать кастомный MACD.
Вот его и берите в советник через iCustom()
У меня много данных и кустом затормаживает. Я уже пробовал. Сказывается на результатах. Спасибо все равно.
У меня много данных и кустом затормаживает. Я уже пробовал. Сказывается на результатах. Спасибо все равно.