Доработка ботов (советников, индикаторов) vol. 2

SanyaVS

Новичок форума
Доброго дня! есть хороший советник не могли бы умельцы переписать под МТ5. Спасибо
 

Вложения

Crazy_MAX_fx

Новичок форума
и что!? до сих пор никто не сделал? o_O всего лишь пара нехитрых манипуляций, и индюк превращается в Грааль 😁

Fractal AMA BT sw
Fractal AMA BT osc
Бро .. ты можешь сделать в индикаторе Fractal AMA BT sw, как здесь надписи ? Buy и Sell при пересечениях ...
 

Вложения

Crazy_MAX_fx

Новичок форума
это 2 разных типа индюков: в Fractal AMA нет ни объёмов, ни настроений быков/медведей ... это всего лишь Машка...
и в идеале её надо переписать по-нормальному, прежде чем добавлять в неё какой-либо текст ... но сейчас нет времени.
поэтому спросите кого-нибудь ещё: может и помогут!? :unsure: и не забудьте уточнить: что именно должны показывать эти цифры!? [текст]
Спасибо ... как я и написал, просто при пересечении линий ... зачем все усложнять!? ))))
Спасибо еще раз
 

Crazy_MAX_fx

Новичок форума
Синяя линия выше красной - Надпись Бай
Синяя линия ниже красной - Надпись Селл

Сделайте кто-нибудь пожалуйста (мне реально не видно из этого индюка, плохое зрение), а сигналы достойные.
Скрин и индюк прилагаются
 

Вложения

zhserg

Местный знаток
Синяя линия выше красной - Надпись Бай
Синяя линия ниже красной - Надпись Селл

Сделайте кто-нибудь пожалуйста (мне реально не видно из этого индюка, плохое зрение), а сигналы достойные.
Скрин и индюк прилагаются
:)
1697251719978.png
 

Вложения

AlenaS

Гуру форума
Синяя линия выше красной - Надпись Бай
Синяя линия ниже красной - Надпись Селл

Сделайте кто-нибудь пожалуйста (мне реально не видно из этого индюка, плохое зрение), а сигналы достойные.
Скрин и индюк прилагаются
Возьмите лучьше этот индикатор с первым параметром 2.Он правда не подвальный, но хорошо виден на графике и самое главное есть алерт. Сигналы совпадают.
 

Вложения

Ramaz

Элитный участник
Возьмите лучьше этот индикатор с первым параметром 2.Он правда не подвальный, но хорошо виден на графике и самое главное есть алерт. Сигналы совпадают.
есть v2, правда не проверял разницы
 

Вложения

1_Lexa

Активный участник
Код:
Expand Collapse Copy
void TralOverlap()
  {
 

   switch(overlap)
     {
      case 1:
      case 2:
      case 3:
      case 4: {ColOver0=clrDeepSkyBlue; ColOver1=clrAqua; Typetral="Трал частичн. перекрытия!";} break;

      case 5:
      case 6:
      case 7:
      case 8:  {ColOver0=clrGold; ColOver1=clrYellow; Typetral="Трал основн. перекрытия!";} break;
      case 9:
      case 10:
     
      default: break;
     }
   switch(overlap)
     {
      case 10:
      case 8:
      case 6:
      case 4:
      case 2:
        {
         if(!flag)
           {
            PrOver=NormalizeDouble(Ask,Digits);
            flag=true;
            if(Info)
              {
               DrawLine("IOverTP",PrOver,ColOver0,1);
              }
           }
         else if(flag && !flag1 && Ask<PrOver-OverTralStart*Point)
           {
            flag1=true;
            if(Info)
              {
               DrawLine("IOverTP",PrOver,ColOver1,1);
              }
           }
         else if(flag1)
           {
            if(Ask<PrOver-(OverTralStart+OverTralSize)*Point)
              {
               PrOver=Ask+OverTralStart*Point;
               if(Info)
                 {
                  DrawLine("IOverTP",PrOver,ColOver1,1);
                 }
              }
            else if(Ask>=PrOver)
              {
               if(Info)
                 {
                  DeleteSelObj("IOverTP");
                  DeleteSelObj("ItxtOver");
                 }
               switch(overlap)
                 {
                  case 2:
                    {
                     int t=0;
                     if(Cprofit1!=0)
                       {
                        for(int i=0; i<ArraySize(Clot); i++)
                          {
                           double k=0.0;
                           k=Cprofit[i]/Cprofit1;
                           if(Cprofit[i]<0.0 && Clot[i]>k*Lprofit1*Clot[i]/-Cprofit[i])
                              Clot[i]=MathFloor(k*Lprofit1*Clot[i]/-Cprofit[i]/Step)*Step;
                           if(Clot[i]>=minLot)
                             {
                              if(CloseOrder(Cpos[i],-1,Clot[i])) t++;
                             }
                          }
                        if(t>0) {for(int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i]); flag=false;}
                       }
                    }
                  break;
                  case 4:
                    {
                      m=0;
                     if(Cprofit1!=0)
                       {
                        for( int i=0; i<ArraySize(Clot); i++)
                          {
                           double k=0.0;
                           k=Cprofit[i]/Cprofit1;
                           if(Cprofit[i]<0.0 && Clot[i]>k*Lprofit1*Clot[i]/-Cprofit[i])
                              Clot[i]=MathFloor(k*Lprofit1*Clot[i]/-Cprofit[i]/Step)*Step;
                           if(Clot[i]>=minLot)
                             {
                              if(CloseOrder(Cpos[i],OP_SELL,Clot[i])) m++;
                             }
                          }
                        if(m>0) {for( int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i],OP_SELL); flag=false;}
                       }
                    }
                  break;
                  case 6:
                    {
                     if(CloseOrder(Cpos[0]))
                       {
                        for( int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i]); flag=false;
                       }
                    }
                  break;
                  case 8:
                    {
                     if(CloseOrder(Cpos[0],OP_SELL,Clot[0]))
                       {
                        for(int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i],OP_SELL,Llot[i]); flag=false;
                       }
                    }
                  break;
                 
                 }
               if(!flag)
                 {
                  flag1  =false;
                  PrOver =0.0;
                  overlap=0;
                 }
              }
           }
        }
      break;
      case 9:
      case 7:
      case 5:
      case 3:
      case 1:
        {
         if(!flag)
           {
            PrOver=NormalizeDouble(Bid,Digits);
            flag=true;
            if(Info)
              {
               DrawLine("IOverTP",PrOver,ColOver0,1);
              }
           }// запоминаем уровень один раз
         else if(flag && !flag1 && Bid>PrOver+OverTralStart*Point)
           {
            flag1=true;
            if(Info)
              {
               DrawLine("IOverTP",PrOver,ColOver1,1);
              }
           }
         else if(flag1)
           {
            if(Bid>PrOver+(OverTralStart+OverTralSize)*Point)
              {
               PrOver=Bid-OverTralStart*Point;
               if(Info)
                 {
                  DrawLine("IOverTP",PrOver,ColOver1,1);
                 }
              }
            else if(Bid<=PrOver)
              {
               if(Info)
                 {
                  DeleteSelObj("IOverTP");
                  DeleteSelObj("ItxtOver");
                 }
               switch(overlap)
                 {
                  case 1:
                    {
                      int t=0;
                     if(Cprofit1!=0)
                       {
                        for( int i=0; i<ArraySize(Clot); i++)
                          {
                            double k=0.0;
                           k=Cprofit[i]/Cprofit1;
                           if(Cprofit[i]<0.0 && Clot[i]>k*Lprofit1*Clot[i]/-Cprofit[i])
                              Clot[i]=MathFloor(k*Lprofit1*Clot[i]/-Cprofit[i]/Step)*Step;
                           if(Clot[i]>=minLot)
                             {
                              if(CloseOrder(Cpos[i],-1,Clot[i])) t++;
                             }
                          }
                        if(t>0) {for(int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i]); flag=false;}
                       }
                    }
                  break;
                  case 3:
                    {
                       m=0;
                     if(Cprofit1!=0)
                       {
                        for( int i=0; i<ArraySize(Clot); i++)
                          {
                            double k=0.0;
                           k=Cprofit[i]/Cprofit1;
                           if(Cprofit[i]<0.0 && Clot[i]>k*Lprofit1*Clot[i]/-Cprofit[i])
                              Clot[i]=MathFloor(k*Lprofit1*Clot[i]/-Cprofit[i]/Step)*Step;
                           if(Clot[i]>=minLot)
                             {
                              if(CloseOrder(Cpos[i],OP_BUY,Clot[i])) m++;
                             }
                          }
                        if(m>0) {for( int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i],OP_BUY); flag=false;}
                       }
                    }
                  break;
                  case 5:
                    {
                     if(CloseOrder(Cpos[0]))
                       {
                        for( int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i]); flag=false;
                       }
                    }
                  break;
                  case 7:
                    {
                     if(CloseOrder(Cpos[0],OP_BUY,Clot[0]))
                       {
                        for( int i=0; i<ArraySize(Llot); i++) CloseOrder(Lpos[i],OP_BUY,Llot[i]); flag=false;
                       }
                    }
                  break;            
                 }
               if(!flag)
                 {
                  flag1  =false;
                  PrOver =0.0;
                  overlap=0;
                 }
              }
           }
        }
      break;
     }
  }
Здравствуйте уважаемые программисты, не могли бы вы усовершенствовать этот код?
case 4: {ColOver0=clrDeepSkyBlue; ColOver1=clrAqua; Typetral="Трал частичн. перекрытия!";} break;

case 5:
case 6:
case 7:
case 8: {ColOver0=clrGold; ColOver1=clrYellow; Typetral="Трал основн. перекрытия!";} break;
Чтобы эта часть постоянно искала зоны перекрытия и рисовала на графике и линии тралла перерисовывались, обновлялись, например: если их удалить вручную.
Это советник MODULE 3.4
Разобрался с этим куском кода, чтобы линия перерисовывалась
PrOver=NormalizeDouble(Bid,Digits);
flag=true;
if(Info)
{
DrawLine("IOverTP",PrOver,ColOver0,1);
}
}// запоминаем уровень один раз
else if(flag && !flag1 && Bid>PrOver+OverTralStart*Point)
{
flag1=true;
if(Info)
{
DrawLine("IOverTP",PrOver,ColOver1,1);
}
}
нужно было в этой части кода заменить true на false
 

RAZDERBAN

Интересующийся
Добрый день! Буду очень признателен если кто нибудь поможет. Для доработки индикатора мне нужно понять при каком условии происходит перестроение уровней и по какому принципу он высчитывает средний уровень 4/8 может быть кто нибудь сможет взглянуть код и описать простыми словами логику работы индикатора? Индикатор очень простой, много времени не отнимет.
 

Вложения

Последнее редактирование:

el_Venso

Активный участник
Приветствую всех !
Прошу добавить в индюк возможность настройки расстояния стрелок от графика, и их размер.
Спасибо.
 

Вложения

MakarFX

Элитный участник

Вложения

Gliukin

Интересующийся
Здравствуйте господа программисты.
Есть к вам маленькая просьба.
Может может кто нибудь добавить в этот советник функцию трала ?
Буду очень благодарен.
 

Вложения

Gliukin

Интересующийся
Бесплатно вряд ли кто-то возьмется.
Я в программировании ничего не понимаю но не думал что это так будет сложно внедрить в советника тралл для опытных програмистов :(
Ну может кто нибудь поможет, если у кого нибудь будет свободное время.
 

Посмотрели (296) Посмотреть

Отслеживают (1805) Посмотреть

Верх