Я имею в виду прописать какой то код в моем индюке/советнике, которой при включении сразу бы подключал какие то другие индикаторы Что и как дописать?
Что-то мне кажется что это нужно для тестера. Это решается в пол-пинка без программирования. Создаёшь шаблон со всеми нужными индикаторами и даёшь ему имя "Tester" или имя советника. и тогда при запуске советника в тестере будет открываться график с уже установленными индикаторами.
Я имею в виду прописать какой то код в моем индюке/советнике, которой при включении сразу бы подключал какие то другие индикаторы Что и как дописать?
Вариантов много. Например 1) ChartApplyTemplate - Применяет к графику указанный шаблон (в шаблоне указан индикатор). 2) дописать в индикатор код включаемого индикатора. 3) в советнике отображать индикатор графическими объектами. 4) ...
Добрый день! Подскажите пожалуйста, необходимо индикатор Vinini_HMA интегрировать в советник, подключить и получить данные через resource и iCustom мне удалось, но тестирование стало очень медленным. Посоветуйте пожалуйста как можно сделать чтобы значения индикатора рассчитывались в самом советнике, нужен всего один параметр за 3 последние свечи.
Вот код индикатора:
#property indicator_chart_window#property indicator_buffers3#property indicator_color1 Yellow
#property indicator_color2 Green
#property indicator_color3 Red
#property indicator_width12#property indicator_width22#property indicator_width32//---- input parameters externint period=15;
externint method=3; // MODE_SMA externint price=0; // PRICE_CLOSE externint sdvig=0;
//---- buffers double Uptrend[];
double Dntrend[];
double ExtMapBuffer[];
double vect[];
//+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() {
IndicatorBuffers(4);
SetIndexBuffer(0, ExtMapBuffer);
SetIndexBuffer(1, Uptrend);
SetIndexBuffer(2, Dntrend);
SetIndexBuffer(3, vect);
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_LINE);
SetIndexDrawBegin(0,1*period);
SetIndexDrawBegin(1,2*period);
SetIndexDrawBegin(2,3*period);
IndicatorShortName("Signal Line("+period+")");
SetIndexLabel(1,"UP");
SetIndexLabel(2,"DN");
return(0);
}
//+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); }
//+------------------------------------------------------------------+ //| ?????????? ??????? | //+------------------------------------------------------------------+ double WMA(int x, int p) { return(iMA(NULL, 0, p, 0, method, price, x+sdvig)); }
//+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() {
int counted_bars = IndicatorCounted();
if (counted_bars < 0) return(-1);
if (counted_bars > 0) counted_bars--;
int p = MathSqrt(period);
int i, limit0,limit1,limit2;
limit2=Bars - counted_bars;
limit1=limit2;
limit0=limit1;
if (counted_bars==0){
limit1-=(period);
limit2-=(2*period);
}
for(i = limit0; i >= 0; i--) vect[i] = 2*WMA(i, period/2) - WMA(i, period);
for(i = limit1; i >= 0; i--) ExtMapBuffer[i] = iMAOnArray(vect, 0, p, 0, method, i);
for(i = limit2; i >= 0; i--) {
Uptrend[i] = EMPTY_VALUE; if (ExtMapBuffer[i]> ExtMapBuffer[i+1]) Uptrend[i] = ExtMapBuffer[i]; ` AZ4
Dntrend[i] = EMPTY_VALUE; if (ExtMapBuffer[i]< ExtMapBuffer[i+1]) Dntrend[i] = ExtMapBuffer[i];
}
return(0);
}
Необходимо рассчитать 3 последних значения которые находятся в буфере ExtMapBuffer[i]. Я новичок, строго не судите. Попытался вставить в советник вот эти куски кода, но значения рассчитываются неверно
externint period1=14;
externint method1=3;
externint price1=0;
externint sdvig1=0;
-----------------------------------------------------
.
int p = MathSqrt(period1);
int z = 3;
double vect[];
ArrayResize(vect,z);
for(int i = 2; i >= 0; i--) vect[i] = 2*WMA(i, period1/2) - WMA(i, period1);
int y = 3;;
double HMA[];
ArrayResize(HMA,y);
for(i = 2; i >= 0; i--) HMA[i] = iMAOnArray(vect, 0, p, 0, method, i);
-------------------------------------------------------
double WMA(int x, int p) { return(iMA(NULL, 0, p, 0, method1, price1, x+sdvig1)); }
Очень нужно! Спасибо! Заранее благодарен! И извините за длинное сообщение.
Добрый день! Подскажите пожалуйста, необходимо индикатор Vinini_HMA интегрировать в советник, подключить и получить данные через resource и iCustom мне удалось, но тестирование стало очень медленным. Посоветуйте пожалуйста как можно сделать чтобы значения индикатора рассчитывались в самом советнике, нужен всего один параметр за 3 последние свечи.
Вот код индикатора:
Необходимо рассчитать 3 последних значения которые находятся в буфере ExtMapBuffer[i]. Я новичок, строго не судите. Попытался вставить в советник вот эти куски кода, но значения рассчитываются неверно
Очень нужно! Спасибо! Заранее благодарен! И извините за длинное сообщение.
Для тестера не подключайте ресурсом - тормозит (не относится к именно этому индикатору, а вообще ко всем - из ресурсов тормозят в тестере).
Подключайте просто посредством iCustom() из расположения файла в его папке (не из ресурса)
Там немного другой вопрос, там получают значения с индикатора, а я хотел чтоб значения рассчитывались прям в советнике. Формулы вроде простые, но где-то я допускаю ошибку. К автору нет, не обращался. Спасибо за совет, попробую написать ему.
Здравствуйте. Строю гистограмму по размерам свечей. Помогите узнать, что размер первой свечи самый большой из последних десяти свечей. Столбик гистограммы нужно как-то пометить, шириной или цветом выделить. Наверное, нужно ещё буфер добавить.
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 = Bars-1;
//--- counting from 0 to rates_total//--- the main loop of calculationsfor(i = limit; i >= 0; i--)
{
if (hl) ExtATRBuffer[i] = (iHigh(Symbol(),Period(),i) - iLow(Symbol(),Period(),i));
else ExtATRBuffer[i] = MathAbs(iOpen(Symbol(),Period(),i) - iClose(Symbol(),Period(),i));
if (ExtATRBuffer[i] < x) ExtATRBuffer[i] = 0;
//
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
Я имею в виду прописать какой то код в моем индюке/советнике, которой при включении сразу бы подключал какие то другие индикаторы
Что и как дописать?
Что-то мне кажется что это нужно для тестера. Это решается в пол-пинка без программирования. Создаёшь шаблон со всеми нужными индикаторами и даёшь ему имя "Tester" или имя советника. и тогда при запуске советника в тестере будет открываться график с уже установленными индикаторами.
Я имею в виду прописать какой то код в моем индюке/советнике, которой при включении сразу бы подключал какие то другие индикаторы
Что и как дописать?
Добрый день! Подскажите пожалуйста, необходимо индикатор Vinini_HMA интегрировать в советник, подключить и получить данные через resource и iCustom мне удалось, но тестирование стало очень медленным. Посоветуйте пожалуйста как можно сделать чтобы значения индикатора рассчитывались в самом советнике, нужен всего один параметр за 3 последние свечи.
Вот код индикатора:
Необходимо рассчитать 3 последних значения которые находятся в буфере ExtMapBuffer[i]. Я новичок, строго не судите. Попытался вставить в советник вот эти куски кода, но значения рассчитываются неверно
Очень нужно! Спасибо! Заранее благодарен! И извините за длинное сообщение.
В итоге получаю 3 значения vect[0], vect[1], vect[2]. Но мне нужны значения HMA. HMA[0] рассчитывается, но не верно. HMA[1] и HMA[2] равны нулю.
В итоге получаю 3 значения vect[0], vect[1], vect[2]. Но мне нужны значения HMA. HMA[0] рассчитывается, но не верно. HMA[1] и HMA[2] равны нулю.
Добрый день! Подскажите пожалуйста, необходимо индикатор Vinini_HMA интегрировать в советник, подключить и получить данные через resource и iCustom мне удалось, но тестирование стало очень медленным. Посоветуйте пожалуйста как можно сделать чтобы значения индикатора рассчитывались в самом советнике, нужен всего один параметр за 3 последние свечи.
Вот код индикатора:
Необходимо рассчитать 3 последних значения которые находятся в буфере ExtMapBuffer[i]. Я новичок, строго не судите. Попытался вставить в советник вот эти куски кода, но значения рассчитываются неверно
Очень нужно! Спасибо! Заранее благодарен! И извините за длинное сообщение.
Для тестера не подключайте ресурсом - тормозит (не относится к именно этому индикатору, а вообще ко всем - из ресурсов тормозят в тестере).
Подключайте просто посредством iCustom() из расположения файла в его папке (не из ресурса)
Кажется на этой странице это уже обсуждалось... А пробовали обратиться к автору?
Витя очень редко появляется здесь.
Кажется на этой странице это уже обсуждалось... А пробовали обратиться к автору?
Там немного другой вопрос, там получают значения с индикатора, а я хотел чтоб значения рассчитывались прям в советнике. Формулы вроде простые, но где-то я допускаю ошибку. К автору нет, не обращался. Спасибо за совет, попробую написать ему.
Для тестера не подключайте ресурсом - тормозит (не относится к именно этому индикатору, а вообще ко всем - из ресурсов тормозят в тестере).
Подключайте просто посредством iCustom() из расположения файла в его папке (не из ресурса)
Спасибо! Не знал об этом, попробую так.
Здравствуйте. Строю гистограмму по размерам свечей. Помогите узнать, что размер первой свечи самый большой из последних десяти свечей. Столбик гистограммы нужно как-то пометить, шириной или цветом выделить. Наверное, нужно ещё буфер добавить.
п