0
Спасибо! Все работает!
avatar

alekseifx

  • 18 октября 2021, 11:23
0
Нужно тралить открытые сделки по индикатору, с возможностью задавать всего один параметр индикатора Indicator Period (big=longer trend), если я его вставляю он его не учитывает!
Селл — буфер 1
Бай — буфер 0
тралить только профит
avatar

alekseifx

  • 15 октября 2021, 22:14
0
Решено!

#property version   "1.00"
#property strict

int intBars;

//***********************************************************************************************

int OnInit()
{
//---
   
//---
return(INIT_SUCCEEDED);
}

//***********************************************************************************************

void OnDeinit(const int reason)
{
//---
   
}

//***********************************************************************************************

void OnTick()
{
   // если появился новый бар:
   if(f_IsNewBar()) f_EveryBar();
   
}

//***********************************************************************************************

void f_EveryBar()
{
   // выполняется в начале каждого нового бара   
   Comment("\n", "Новый бар наступил!");
}

//***********************************************************************************************

bool f_IsNewBar()
{
   if(intBars != Bars)
   {
      intBars = Bars;
      return(true);
   }

return(false);
}

//**********************************************
avatar

alekseifx

  • 25 января 2021, 21:14
0
Спасибо большое!
Советник не слабо грузит процессор, можете еще сделать проверку условий только на открытии нового бара.
Спасибо!
avatar

alekseifx

  • 25 января 2021, 20:31
0
индикатор растет или падает — стрелки не нужны, ниже накидал свой код
avatar

alekseifx

  • 23 января 2021, 09:45
0
Вроде так! Но на истории показывает не правильно (при изменении Shift, надо проверять на демо.
<code>
extern string IndName    = "KT-Ichimoku-Alerts";
extern int Tenkan        = 9;        // Tenkan-sen
extern int Kijun         = 26;       // Kijun-sen
extern int Senkou        = 52;       // Senkou Span B

extern string IndName2    = "SSRC";
////////////////////
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double blu = iCustom(NULL,0,IndName,"",Tenkan,Kijun,Senkou,7,Shift);
   double red = iCustom(NULL,0,IndName,"",Tenkan,Kijun,Senkou,8,Shift);
   
   double red15 = iCustom(NULL,15,IndName2,"",0,Shift);
   double red30 = iCustom(NULL,30,IndName2,"",0,Shift);
   double red60 = iCustom(NULL,60,IndName2,"",0,Shift);
   
   double red152 = iCustom(NULL,15,IndName2,"",0,Shift+1);
   double red302 = iCustom(NULL,30,IndName2,"",0,Shift+1);
   double red602 = iCustom(NULL,60,IndName2,"",0,Shift+1);

   if(CountTrades()<1)
     {
      if(blu<1000.00 && red15>red152 && red30>red302 && red60>red602)
        {
         PutOrder(0,Ask);
        }

      if(red<1000.00 && red15<red152 && red30<red302 && red60<red602)
        {
         PutOrder(1,Bid);
        }
     }
     
   if(CloseSig>0)
     {
      if(red<1000.00 && red15<red152 && red30<red302 && red60<red602)
        {
         CloseAll(0);
        }

      if(blu<1000.00 && red15>red152 && red30>red302 && red60>red602)
        {
         CloseAll(1);
        }
     }

   Comment("\n blu: ",blu,
           "\n red: ",red,
           "\n red15: ",red15,
           "\n red152: ",red152,
           "\n red30: ",red30,
           "\n red302: ",red302,           
           "\n red60: ",red60,
           "\n red602: ",red602);
  }

</code>
avatar

alekseifx

  • 23 января 2021, 09:42
0
Shift+1 не подходит, нужно сравнивать текущий бар и «х» минут назад, минуты таймфрейма SSRC Mtf.
Идеальные входы когда все индикаторы смотрят вверх или вниз, у меня на скринах в подвале 3 индикатора, сделайте условия хотя бы для одного, дальше, я сам.
Сейчас у меня так, но это не правильно.
P.S. Советник будет стоять на графиках ренко, поэтому «х» баров назад не подходит, нужно именно минуты, или может брать значение непосредственно с нужного TF.
<code>double blu = iCustom(NULL,0,IndName,"",Tenkan,Kijun,Senkou,7,Shift);
   double red = iCustom(NULL,0,IndName,"",Tenkan,Kijun,Senkou,8,Shift);
   
   double red15 = iCustom(NULL,0,IndName2,"",0,Shift);
   double red30 = iCustom(NULL,0,IndName3,"",0,Shift);
   double red60 = iCustom(NULL,0,IndName4,"",0,Shift);

   if(CountTrades()<1)
     {
      if(blu<1000 && red15>red30 && red30>red60)
        {
         PutOrder(0,Ask);
        }

      if(red<1000 && red15<red30 && red30<red60)
        {
         PutOrder(1,Bid);
        }
     }</code>

avatar

alekseifx

  • 23 января 2021, 07:57
0
Здравствуйте, у меня стрелки в комент не выводятся, точней только при появлении, а на следующей свече пропадают.
Можете сделать открытие-переворот, по этому ТЗ.
Так как индикатор SSRC MTF будет использоваться с таймфрейма выше того на котором будет стоять советник, он будет выглядеть ступеньками вверх или вниз.
Покупка — ступеньки вверх на SSRC Mtf, после появления стрелки вверх на KT-Ichimoku-Alerts вход в Buy.
Продажа — ступеньки вниз на SSRC Mtf, после появления стрелки вниз на KT-Ichimoku-Alerts вход в Sell.
Индикатор SSRC Mtf не работает без индикатора SSRC (есть в архиве).
В рынке только одна сделка.
После убыточной сделки вкл. мартингейл.
Настройки облака индикатора KT-Ichimoku-Alerts вынести в настройки.
Стандартные настройки советника.
Спасибо!
yadi.sk/d/BXbfLO-2wtbSbQ
avatar

alekseifx

  • 16 января 2021, 11:57
0
Спасибо! Ждёмс…
avatar

alekseifx

  • 13 января 2021, 20:30
0
Не тот индикатор MTF, вот правильный. И при появлении стреки по индикатору SSRC MTF в противоположную сторону закрытие.
yadi.sk/d/Ld7bct3o-wsdDQ
avatar

alekseifx

  • 13 января 2021, 15:52
0
И почему Вы все время забываете про спред. Вот нашел, просто меняете на нужный индикатор! Вопрос снят! Извиняюсь за потраченное Ваше время!
<code>extern int DistancePoints     =1;
extern bool AllowLoss         =true;

input int AccuracyPoints      =1;
input double SARstep          =0.02;
input double SARmaximum       =0.2;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   Print("SAR Trail v.4 Copyright © 2009, Maxim Markov  marmax@mail.ru");
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   double Distance            =DistancePoints*Point;
   double Accuracy            =AccuracyPoints*Point;
   double StopCurrent         =0;
   double StopRequired        =0;
   double StopAllowed         =0;
   double StopSet             =0;
   double Spread              =MarketInfo(Symbol(), MODE_SPREAD)*Point;
   double Minimum_Distance    =MarketInfo(Symbol(), MODE_STOPLEVEL)*Point;

   bool m=1;

   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==FALSE) break;
      if(OrderSymbol()==Symbol())
        {
         StopCurrent=OrderStopLoss();
         if((OrderType()==OP_BUY) && (Close[0]>iSAR(NULL,0,SARstep,SARmaximum,0)))
           {
            StopRequired=iSAR(NULL,0,SARstep,SARmaximum,0)-Distance;
            StopAllowed=Close[0]-Minimum_Distance;
            StopSet=MathMin(StopAllowed,StopRequired);
            if((StopSet>StopCurrent+Accuracy) && (StopRequired>=OrderOpenPrice() || AllowLoss))
               m=OrderModify(OrderTicket(),OrderOpenPrice(),StopSet,OrderTakeProfit(),0);
           }
         if((OrderType()==OP_SELL) && (Close[0]<iSAR(NULL,0,SARstep,SARmaximum,0)))
           {
            StopRequired=iSAR(NULL,0,SARstep,SARmaximum,0)+Spread+Distance;
            StopAllowed=Close[0]+Spread+Minimum_Distance;
            StopSet=MathMax(StopAllowed,StopRequired);
            if(((StopSet<StopCurrent-Accuracy) || (StopCurrent==0)) && (StopRequired<=OrderOpenPrice() || AllowLoss))
               m=OrderModify(OrderTicket(),OrderOpenPrice(),StopSet,OrderTakeProfit(),0);
           }
        }
     }
   return(0);
  }</code>
avatar

alekseifx

  • 11 октября 2020, 10:58
0
Извините, показалось!
Это границы облака перепутаны!
avatar

alekseifx

  • 11 октября 2020, 10:47
0
Извините, показалось!
Это границы облака перепутаны!
avatar

alekseifx

  • 11 октября 2020, 10:47
0
Спасибо! Но я просил трал только профита! И не привязывать к Magic!
avatar

alekseifx

  • 11 октября 2020, 09:57
0
Спасибо! Подождём!
avatar

alekseifx

  • 8 октября 2020, 20:28
0
Кому интересно вот индикатор с нормальным алертом, ставится дополнительно на график.
yadi.sk/d/nyxcQG5I19hnSg
avatar

alekseifx

  • 28 августа 2020, 18:57
0
Сам написал, не без помощи интернета!
avatar

alekseifx

  • 27 августа 2020, 22:05
0
Покупка — зеленая стрелка выше облака и выше линии (не зависимо от цвета линии), стрелка на открытой свече может рисовать,
но если поступил алерт от стрелочного индикатора она уже не рисует.
Продажа — красная стрелка ниже облака и ниже линии (не зависимо от цвета линии), стрелка на открытой свече может рисовать,
но если поступил алерт от стрелочного индикатора она уже не рисует.
В рынке только одна сделка, при обратном сигнале разворот.
Настройки индикаторов можно не выносить, скомпилирую как мне нужно!
Нужны только настройки облака.
Стандартные настройки + время торговли.

+индикатор
yadi.sk/d/i-fw7LXnFVSo4A
avatar

alekseifx

  • 25 августа 2020, 21:17
0
У меня не получилось! Хотел здесь zakaz.opentraders.ru/46202.html
поменять индюк, ози на этот!
Комментарий не меняется!

 double blu = iCustom(NULL,0,IndName,5,Shift);
 double red = iCustom(NULL,0,IndName,6,Shift);

   Comment("\n blu: ",blu,
           "\n red: ",red,);
avatar

alekseifx

  • 25 августа 2020, 20:47
Начать торговлю с Альпари