А когда должен быть сигнал? При изгибе линий или пересечении цены выше ниже?
Так стрелочками на скрине показано - вверх и вниз =)
Для ТС: тут условий несколько может быть, можно просто "закрытие выше/ниже", "хай выше/ниже" ну и ещё можно придумать, но от этого будет зависеть конечный результат качества сигналов.
А когда должен быть сигнал? При изгибе линий или пересечении цены выше ниже?
Можно сделать изгиб средней и пересечение ценой верхней линии и нижней
При изгибе средней много ложных сигналов, а пересечение - вот как раз то!
Спасибо за помощь. Протестирую - отпишусь!
Так стрелочками на скрине показано - вверх и вниз =)
Для ТС: тут условий несколько может быть, можно просто "закрытие выше/ниже", "хай выше/ниже" ну и ещё можно придумать, но от этого будет зависеть конечный результат качества сигналов.
только учтите что изгиб меняется, и индикатор выгибается в другую сторону.
Т.е. он рисует.
//+-----------------------------------------------------------------------------------------------+
//| EA i-Reg.mq4 |
//| 2016 |
//| |
//+-----------------------------------------------------------------------------------------------+
extern double Lot = 0.01;
extern int slip = 3;
extern int TakeProfit = 10;
extern int MagicNumber = 9999;
extern int TrailingStop = 15;
extern int TF = 5;
extern int degree = 3;
extern double kstd = 2.0;
extern int bars = 250;
extern int shift = 0;
//----------------------+
//int Signal_Buy=-1;
//int Signal_Sell=-1;
int cnt,ticket,total;
//----------------------+
int start() {
//--------------------------------------------------------------------------------------------------------------------+
// получение сигнала ________
//double RegrBend1 = iCustom(Symbol(),TF,"i-Regr",degree,kstd,bars,shift, 0,1); // 0 средняя линия
//double RegrBend2 = iCustom(Symbol(),TF,"i-Regr",degree,kstd,bars,shift, 0,2); // 0 средняя линия
// double MA = iMA(Symbol(),TF,3,0,3,0,1); //MA используется как цена, можно так же использовать Bid > линии, Ask < линии
double RegrUp = iCustom(Symbol(),TF,"i-Regr",degree,kstd,bars,shift, 1,1); // 1 верхняя линия
double RegrDown = iCustom(Symbol(),TF,"i-Regr",degree,kstd,bars,shift, 2,1); // 2 нижняя линия
/*int Buy=-1;
if(MA<RegrDown || Ask<RegrDown) Buy=0; //если пересечение МА или Ask нижней линии в низ (перепроданность)
if(Buy==0) {Signal_Buy=0;}
//-------------------------------+
int Sell=-1;
if(MA>RegrUp || Bid>RegrUp) Sell=1; //если пересечение МА или Bid верхней линии вверх (перекупленность)
if(Sell==1) {Signal_Sell=1;}*/
//=====================================================================================================================
total=OrdersTotal();
if(total<1){
if(/*MA<RegrDown ||*/ Ask<RegrDown){
ticket=OrderSend (Symbol(),OP_BUY, Lot,Ask,slip,0,Ask+TakeProfit*Point,0, MagicNumber,0,Blue);
return(0);
}
if(/*MA>RegrUp || */ Bid>RegrUp){
ticket=OrderSend (Symbol(),OP_SELL, Lot,Bid,slip,0,Bid-TakeProfit*Point,0, MagicNumber,0,Red);
return(0);
}
}
if (total>0)
for(cnt=OrdersTotal();cnt>=0;cnt--)
{
if(!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))continue;
if (OrderSymbol() == Symbol()&& OrderMagicNumber() == MagicNumber)
{
if (OrderType()==OP_SELL)
{
if (TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
//--- modify order and exit
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red))
Print("OrderModify error ",GetLastError());
return(0);
}
}
}
}
if (OrderType()==OP_BUY)
{
if (TrailingStop>0)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
//--- modify order and exit
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green))
Print("OrderModify error ",GetLastError());
return(0);
}
}
}
}
}
}
return(0);
}
Вот собственно и сам советник. Может слегка "грязно", есть лишнее, но результат есть! Не существенно, но чуть подправил условие входа. Именно с такими настройками и вводными получил, что хотел!
Индюк перерисовывает, что следовало ожидать. Имеет смысл работать с TF индикатора Н1 и kstd 1.0 на более меньшем временном интервале.
Вместо стопов и трейлинга, думаю, логичнее сделать усреднение из-за существенной просадки. На истории возврат цены и взятие ТР слишком долго.
Пишите мнения - будет интересно!
Artem Ashikhmin, спасибо!
//| EA i-Reg.mq4 |
//+-----------------------------------------------------------------------------------------------+
...
}
Пишите мнения - будет интересно!
Artem Ashikhmin, спасибо!
Мне интересно, именно эту логику храню в архиве более года - никак нет времени написать, но там очень много факторов для выхода со сделки.
Вы бы скрин тестера приложили, ну и картинку со входами в рынок по индикатору, это было-бы в несколько раз эффективнее для обсуждения.
Если не сложно - приложите!
Это надо видеть! Тест длиться ооооччень долго! На видео лучше всего будет видно работу советника. Тест на М1 (настройки сова можна увидеть в видео). Вот минут 10 идет тест - (с января по сегодня) еще январь не весь "прошел")) В 20 числах января ровная линия и +23% ($1000, Lot - 0.1, tp - 10, traling - 3)
Спешу добавить скрин (за январь) :
Отлично!! Так будет по чище))
return(0); //зачем тут выход из старта? условие же есть: если в рынке 1 ордер, то больше открытий не будет вообще!!
...
return(0); // и тут тоже не нужен return(0); Супер!
Не получалось как-то по другому, чтоб не выходить. Бай нормально исполнялся, а когда селл, то вместе с бай! Вот так пришлось их "упорядочить".
К стате, это не страшно и вообще не ERROR)), но...))))
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго времени суток!
Помогите в советнике правильно сформулировать условие if индикатора для открытия на покупку/продажу, с возможностью изменения настроек индикатора. Спасибо!
и