Aleksei Stepanenko #: Если это веб-интерфейс, то можно http-запросами делать, что нужно. Читать, нажимать, выбирать, писать.
Спасибо, в общем нашел как это сделать, управление компьютером из МТ через WinAPI, для одного вэб терминала достаточно горячих клавиш. А если нужно несколько окон, то при помощи какого нибудь доступного кликера можно эмулировать работу мыши, уже с горячих клавиш, как то так...
Подскажите, пожалуйста, каким образом можно реализовать данную задумку: имеется внешний индикатор разворотного бара (по системе Торговый Хаос 2) - каким образом можно реализовать в советнике простую функцию - покупать на пробой максимума разворотного бара (при его нахождении под Аллигатором) и продавать на пробой минимума (при нахождении - над).
Есть участок код советника, который написал по внешнему индикатору (и примитивная попытка решить эту задачу), но никак не могу сообразить как можно в этом случае увязать все это воедино...
Подскажите, пожалуйста, каким образом можно реализовать данную задумку: имеется внешний индикатор разворотного бара (по системе Торговый Хаос 2) - каким образом можно реализовать в советнике простую функцию - покупать на пробой максимума разворотного бара (при его нахождении под Аллигатором) и продавать на пробой минимума (при нахождении - над).
Есть участок код советника, который написал по внешнему индикатору (и примитивная попытка решить эту задачу), но никак не могу сообразить как можно в этом случае увязать все это воедино...
Код индикатора:
Заранее - большое спасибо за помощь!
Для начала поправим индикатор
#property indicator_chart_window#property indicator_buffers2#property indicator_color1clrLime#property indicator_color2clrRed//---- Внешние настройки индикатораexternint BarsToProcess=200; //максимальное колличество баров для расчета (-1 все)externint width=2; //толщина отображения тела развротного бара //---- буферы для отображения индикатораdouble UpBuffer1[],
DnBuffer1[];
//+------------------------------------------------------------------+//| Инциализация индикатора |//+------------------------------------------------------------------+int init()
{
//---- начало инциализации индикатора
IndicatorDigits(Digits);
//---- связываем массив с буфером индикатора SetIndexBuffer(0,UpBuffer1);
SetIndexBuffer(1,DnBuffer1);
//---- Установим стиль отображения линий
SetIndexStyle(0,DRAW_HISTOGRAM,0,width);
SetIndexStyle(1,DRAW_HISTOGRAM,0,width);
//---- установим короткое имя индикатора и каждой линии в отдельности
IndicatorShortName("i-DiverBar");
SetIndexLabel(0,"Hi");
SetIndexLabel(1,"Lo");
//---- Инициализация завершенаreturn(0);
}
//+------------------------------------------------------------------+//| Деинициализация индикатора |//+------------------------------------------------------------------+ int deinit()
{
return(0);
}
//+------------------------------------------------------------------+ //| Расчет индикатора | //+------------------------------------------------------------------+ int start()
{
int i, counted_bars = IndicatorCounted(),limit;
double lips,teeth,jaw,up,dn;
//---- проверка на возможные ошибкиif(counted_bars<0) return(-1);
//---- проверка наличия истории if(iBars(Symbol(),Period())<14)
{
Print("Недостаточно баров для расчета индикатора!");
return(-1);
}
//---- найдем количество баров для расчета индикатора
limit = Bars - counted_bars-1;
if(Bars - counted_bars > 2) limit = Bars-35;
if(limit>BarsToProcess && BarsToProcess>0) limit=BarsToProcess;
//---- отобразим индикатор for(i=limit;i>=0;i--)
{
UpBuffer1[i] =EMPTY_VALUE;
DnBuffer1[i] =EMPTY_VALUE;
lips=iAlligator(Symbol(),Period(),13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORLIPS,i);
teeth=iAlligator(Symbol(),Period(),13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORTEETH,i);
jaw=iAlligator(Symbol(),Period(),13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORJAW,i);
up=MathMax(lips,MathMax(teeth,jaw));
dn=MathMin(lips,MathMin(teeth,jaw));
if(High[i]>High[i+1] && Close[i]<High[i]-0.5*(High[i]-Low[i]) && Low[i]>up)
{
DnBuffer1[i] = Low[i]+(High[i]-Low[i])/2+(High[i]-Low[i])/10;
UpBuffer1[i] = Low[i]+(High[i]-Low[i])/2-(High[i]-Low[i])/10;
}
elseif(Low[i]<Low[i+1] && Close[i]>Low[i]+0.5*(High[i]-Low[i]) && High[i]<dn)
{
UpBuffer1[i] = Low[i]+(High[i]-Low[i])/2+(High[i]-Low[i])/10;
DnBuffer1[i] = Low[i]+(High[i]-Low[i])/2-(High[i]-Low[i])/10;
}
}
return(0);
}
//+------------------------------------------------------------------+
Теперь у Вас будет два буфера обмена для советника
Ростислав, подскажите, пожалуйста, еще такой момент - каким образом можно доработать систему, чтобы не было такой ситуации: когда условие входа в позицию выполняется спустя несколько баров, а не на следующем. Во вложении - ситуация на графике.
То есть, хотел бы реализовать все что было сделано ранее с Вашей помощью (все работает, еще раз спасибо), но добавить условие, при котором вход в позицию должен происходит не позднее следующего бара за разворотным.
Подскажите, пожалуйста, где в коде ошибка по вычислению цены максимального и минимального фрактала из заданного количества баров. По замыслу перед открытием бая идет поиск максимального фрактала из заданного количества и при пробое ценой этого уровня открывается позиция. В реальности работает не стабильно, как говорится раз на раз не приходится.
Подскажите, пожалуйста, где в коде ошибка по вычислению цены максимального и минимального фрактала из заданного количества баров. По замыслу перед открытием бая идет поиск максимального фрактала из заданного количества и при пробое ценой этого уровня открывается позиция. В реальности работает не стабильно, как говорится раз на раз не приходится.
Если это веб-интерфейс, то можно http-запросами делать, что нужно. Читать, нажимать, выбирать, писать.
Спасибо, в общем нашел как это сделать, управление компьютером из МТ через WinAPI, для одного вэб терминала достаточно горячих клавиш. А если нужно несколько окон, то при помощи какого нибудь доступного кликера можно эмулировать работу мыши, уже с горячих клавиш, как то так...
Добрый день!
Подскажите, пожалуйста, каким образом можно реализовать данную задумку: имеется внешний индикатор разворотного бара (по системе Торговый Хаос 2) - каким образом можно реализовать в советнике простую функцию - покупать на пробой максимума разворотного бара (при его нахождении под Аллигатором) и продавать на пробой минимума (при нахождении - над).
Есть участок код советника, который написал по внешнему индикатору (и примитивная попытка решить эту задачу), но никак не могу сообразить как можно в этом случае увязать все это воедино...
Код индикатора:
Заранее - большое спасибо за помощь!
Добрый день!
Подскажите, пожалуйста, каким образом можно реализовать данную задумку: имеется внешний индикатор разворотного бара (по системе Торговый Хаос 2) - каким образом можно реализовать в советнике простую функцию - покупать на пробой максимума разворотного бара (при его нахождении под Аллигатором) и продавать на пробой минимума (при нахождении - над).
Есть участок код советника, который написал по внешнему индикатору (и примитивная попытка решить эту задачу), но никак не могу сообразить как можно в этом случае увязать все это воедино...
Код индикатора:
Заранее - большое спасибо за помощь!
Для начала поправим индикатор
Теперь у Вас будет два буфера обмена для советника
Далее в советнике определяете направление разворотного бара и запоминаете цену для открытия ордера
Ростислав, большое спасибо!
Начну реализовывать Ваши исправления и рекомендации.
Ростислав, подскажите, пожалуйста, еще такой момент - каким образом можно доработать систему, чтобы не было такой ситуации: когда условие входа в позицию выполняется спустя несколько баров, а не на следующем. Во вложении - ситуация на графике.
То есть, хотел бы реализовать все что было сделано ранее с Вашей помощью (все работает, еще раз спасибо), но добавить условие, при котором вход в позицию должен происходит не позднее следующего бара за разворотным.
Код, в нынешнем виде с Вашими рекомендациями:
if(DivergenceBar_1>DivergenceBar_2) { bar_up=true; price_up=High[1]; time_bar_up=Time[0]; } if(DivergenceBar_1<DivergenceBar_2) { bar_dn=true; price_dn=Low[1]; time_bar_dn=Time[0]; } if (CountBuy () == 0 && bar_up==true && time_bar_up==Time[0] && Ask > price_up) {Аналогично для продаж
Большое спасибо!
Все отлично работает
Добрый день!
Воспользуйтесь кнопкой вставки кода
Добрый день!
Подскажите, пожалуйста, где в коде ошибка по вычислению цены максимального и минимального фрактала из заданного количества баров. По замыслу перед открытием бая идет поиск максимального фрактала из заданного количества и при пробое ценой этого уровня открывается позиция. В реальности работает не стабильно, как говорится раз на раз не приходится.
С уважением, Вячеслав.
Добрый день!
Подскажите, пожалуйста, где в коде ошибка по вычислению цены максимального и минимального фрактала из заданного количества баров. По замыслу перед открытием бая идет поиск максимального фрактала из заданного количества и при пробое ценой этого уровня открывается позиция. В реальности работает не стабильно, как говорится раз на раз не приходится.
С уважением, Вячеслав.
А как работает эта функция?