Нужно, чтобы индикатор считал движения машки вверх в отрезке из 50 баров по всему графику, то есть появился новый бар, последний исключаем для поискаи так с каждым новым баром. Пока удалось сделать, чтобы подсчитывалась вся история. Короче застрял я на нем. Может, кто подскажет, как осуществить данную задачу? Применение сглаживания по типу скользящих не подойдет.
#property indicator_separate_window#property indicator_buffers 1#property indicator_color1 Red//--- buffersdouble ExtMapBuffer1[];
externint p=50;//желаемый диапазон баров для поиска double val_plus[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
IndicatorDigits(Digits+1);
return(0);
}
//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit()
{
return(0);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int start()
{
int counted_bars=IndicatorCounted(),i,limit,indicator_plus;
double ma1, ma2;
if(counted_bars>0)
counted_bars--;
limit=Bars-counted_bars-1;
for(i=limit;i>=0;i--)
{
ma2=iMA(NULL,PERIOD_CURRENT,21,0,MODE_EMA,PRICE_CLOSE,i+2);
ma1=iMA(NULL,PERIOD_CURRENT,21,0,MODE_EMA,PRICE_CLOSE,i+1);
ArrayInitialize(val_plus,0);
for(int k=p;k>=0;k--)//в этом цикле ищем и суммируем все растущия движения машки
{
ArrayResize(val_plus,p);
if(ma1 > ma2){val_plus[k]=1;}//получили одно растущее движение if(val_plus[k] > 0){indicator_plus=indicator_plus+val_plus[k];}//прибавили его к общей сумме
}
ExtMapBuffer1[i]=indicator_plus;
}
return(0);
}
//+------------------------------------------------------------------+
001: Еще вопрос. Не пойму как получить, с минимальными затратами, из Time[0] переменную типа int в виде 00:00. Не приходит ничего в голову, кроме как через string, StrToTime, и TimeToStr, преобразовывать. Спасибо!
Нужно, чтобы индикатор считал движения машки вверх в отрезке из 50 баров по всему графику, то есть появился новый бар, последний исключаем для поискаи так с каждым новым баром. Пока удалось сделать, чтобы подсчитывалась вся история. Короче застрял я на нем. Может, кто подскажет, как осуществить данную задачу? Применение сглаживания по типу скользящих не подойдет.
Есть функция SetIndexDrawBegin(). Но там особенность, считает слева направо. Вобщем, в Init поставьте себе строку SetIndexDrawBegin(0, Bars-p), и посмотрите, может это то, что Вам нужно.
Можно ли загружать графики для тех.анализа,- индексов S&P 500 Futures Chart , TA 25 Chart, и S&P 500 Chart если это возможно может подскажете как это сделать,может есть объяснение как загружать!
Не получается найти такого брокера,может посоветуете программу для тех.анализа, которая позволяла загрузку интересующих меня индексов (можно в реальном времени)или же брокера.
Может есть возможность загрузки этих индексов МТ-4 или МТ-5. Я только начинаю пытаться заниматься тех.анализом ,очень бы хотелось услышать совет специалиста,как справится с моей задачей.
Может кто подскажет ,устанавливаю плагин GetTickerHistory в МТ-4,запускается,но загрузка не идёт,наWindows 7 x64,возможно ли загрузить внешние индексы другим способом.
Нужно, чтобы индикатор считал движения машки вверх в отрезке из 50 баров по всему графику, то есть появился новый бар, последний исключаем для поиска и так с каждым новым баром. Пока удалось сделать, чтобы подсчитывалась вся история. Короче застрял я на нем. Может, кто подскажет, как осуществить данную задачу? Применение сглаживания по типу скользящих не подойдет.
Еще вопрос. Не пойму как получить, с минимальными затратами, из Time[0] переменную типа int в виде 00:00. Не приходит ничего в голову, кроме как через string, StrToTime, и TimeToStr, преобразовывать. Спасибо!
TimeHour(Time[0]) и TimeMinute(Time[0])
Нужно, чтобы индикатор считал движения машки вверх в отрезке из 50 баров по всему графику, то есть появился новый бар, последний исключаем для поиска и так с каждым новым баром. Пока удалось сделать, чтобы подсчитывалась вся история. Короче застрял я на нем. Может, кто подскажет, как осуществить данную задачу? Применение сглаживания по типу скользящих не подойдет.
Есть функция SetIndexDrawBegin(). Но там особенность, считает слева направо. Вобщем, в Init поставьте себе строку SetIndexDrawBegin(0, Bars-p), и посмотрите, может это то, что Вам нужно.
Можно ли загружать графики для тех.анализа,- индексов S&P 500 Futures Chart , TA 25 Chart, и S&P 500 Chart если это возможно может подскажете как это сделать,может есть объяснение как загружать!
Не получается найти такого брокера,может посоветуете программу для тех.анализа, которая позволяла загрузку интересующих меня индексов (можно в реальном времени)или же брокера.
Может есть возможность загрузки этих индексов МТ-4 или МТ-5. Я только начинаю пытаться заниматься тех.анализом ,очень бы хотелось услышать совет специалиста,как справится с моей задачей.
Заранее благодарен за оказанную помощь.TimeHour(Time[0]) и TimeMinute(Time[0])
Спасибо!
Позиция закрывается, но выдает по каждой позе OrderClose error 138
11:44:49 2000.01.10 07:00 Time+iLowest_old EURUSD,H1: open #1 sell 0.10 EURUSD at 1.02940 ok
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: close #1 sell 0.10 EURUSD at 1.02940 at price 1.02230
11:44:49 2000.01.11 07:00 Time+iLowest_old EURUSD,H1: open #2 sell 0.10 EURUSD at 1.02660 ok
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: close #2 sell 0.10 EURUSD at 1.02660 at price 1.02890
11:44:49 2000.01.13 07:00 Time+iLowest_old EURUSD,H1: open #3 sell 0.10 EURUSD at 1.02860 ok
11:44:49 2000.01.13 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138 ,
Что это может быть? Самое интересное, что в другом советнике все работает.
Может кто подскажет ,устанавливаю плагин GetTickerHistory в МТ-4,запускается,но загрузка не идёт,наWindows 7 x64,возможно ли загрузить внешние индексы другим способом.
Заранее благодарен.
Есть функция закрытия позы по времени.
Позиция закрывается, но выдает по каждой позе OrderClose error 138
11:44:49 2000.01.10 07:00 Time+iLowest_old EURUSD,H1: open #1 sell 0.10 EURUSD at 1.02940 ok
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: close #1 sell 0.10 EURUSD at 1.02940 at price 1.02230
11:44:49 2000.01.11 07:00 Time+iLowest_old EURUSD,H1: open #2 sell 0.10 EURUSD at 1.02660 ok
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: close #2 sell 0.10 EURUSD at 1.02660 at price 1.02890
11:44:49 2000.01.13 07:00 Time+iLowest_old EURUSD,H1: open #3 sell 0.10 EURUSD at 1.02860 ok
11:44:49 2000.01.13 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138 ,
Что это может быть? Самое интересное, что в другом советнике все работает.
У вас нет обработки кодов возврата торгового сервера. Т.е., реквоту вы не обрабатываете, а проскальзывание всего в 3 пункта не хватает:
Ну и по мелочи:
Закрывать в обратном цикле (иначе пропускать будет):
Проверку нужно сделать на тип ордера, иначе будет пытаться закрывать и отложки: