Лента последних комментариев


0
я просто скопировал твой код полностью и вставил, в коде может ты что-то не так, у версии андрея тоже по 3 сделки открывает
avatar

Najj

  • 18 апреля 2021, 15:36
0
Индикатор свою функцию выполняет. Правда заметил некоторые ложные сигналы когда:
1. Одна полоса раскрывается, а вторая стоит на месте.
2. Обе полосы идут в одном направлении.
Настройки ставил: count =1, procent=30.
Не понял в коде, какую величину сравниваем, похоже что расстояние между полосами. Вероятно, если бы сравнивались значения каждой из полос в отдельности, то можно было бы исключить ложные срабатывания.
Ложные срабатывания:




avatar

USDPump

  • 18 апреля 2021, 15:35
0
Ну и год, как всегда, не говорю *ninja* 
avatar

Bishop

  • 18 апреля 2021, 15:11
0
Ну, конечно, курбан. Разве есть еще праздники другие
avatar

Bishop

  • 18 апреля 2021, 15:10
0
12-го мая? Я угадал? Как раз Курбан Байрам.
avatar

ShamanHand

  • 18 апреля 2021, 15:09
0
Биш мог бы только на Курбан Байрам провести, он давно пару баранов хотел бы зарезать, но он в принципе не верующий.
А День Победы — праздник весомый, но ни к ресурсу, ни к спекуляциям отношения не имеет.
avatar

ShamanHand

  • 18 апреля 2021, 15:07
0
Да, возможно, на майских будет
avatar

Bishop

  • 18 апреля 2021, 15:05
0
if(CountOrders()<1)
Вот это условие для открытия в коде есть. И это не даёт открывать ордер, если есть хотя бы один открытый.
По глюкам каталогов не создано, может, это у тебя с терминалом что-то не так.
Согласно скрину открытия у тебя идут в один и тот же момент. Три пачкой, в одну и ту же секунду.
avatar

ShamanHand

  • 18 апреля 2021, 14:45
0
… да он вроде не открывает, не замечал в тесте во всяком случае, надо понаблюдать…
avatar

mishelbb

  • 18 апреля 2021, 14:26
0
и еще добавь пожалуйста чтоб, открывал только одну сделку пока не закроется по tp или sl, если открыта сделка другие сигналы игнорировать пока не закроется, открывает 3 сделки подряд почему так ??
avatar

Najj

  • 18 апреля 2021, 14:20
0
Будет ли батл к Пасхе или ко Дню Победы?
avatar

Lenovo264

  • 18 апреля 2021, 12:21
0
… большое спасибо, оперативность зашкаливает!!!
avatar

mishelbb

  • 18 апреля 2021, 09:49
0
Добавлен реверс:
//+------------------------------------------------------------------+
//|                                                      Supply2.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;        // лот
extern double KLot       = 1;          // умножение лота
extern double MaxLot     = 5;          // максимальный лот
extern int StopLoss      = 200;        // лось
extern int TakeProfit    = 300;        // язь
extern int Slip          = 30;         // реквот
extern int Magic         = 123;        // магик
extern bool Revers       = false;      // false - нет реверса, true - реверс

extern string ZoneType   = "Untested"; // Untested, Weak

extern string IndName    = "shved_supply_and_demand"; //
extern string IndName2   = "TS-1#2"; //

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)
         sl=NormalizeDouble(price+StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price-TakeProfit*_Point,_Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)
         sl=NormalizeDouble(price-StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price+TakeProfit*_Point,_Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,_Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type=-1)
  {
   int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type || type==-1)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderProfit()>0)
               break;
            if(OrderProfit()<0)
              {
               lot=OrderLots()*KLot;
               break;
              }
           }
        }
     }
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Sup()
  {
   double max=0;
   for(int i=ObjectsTotal()-1; i>=0; i--)
     {
      if(ObjectType(ObjectName(i))==OBJ_RECTANGLE)
        {
         if(StringFind(ObjectName(i),"SSSR#S",0)>=0)
           {
            double p1=ObjectGetDouble(0,ObjectName(i),OBJPROP_PRICE1);
            if(p1>max)
              {
               max=p1;
              }
           }
        }
     }
   return(max);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Res()
  {
// 1. берем 1-е значение
// 2. оно минимальное
// 3. берем следующее
// 4. сравниваем
// 5. если меньше то оно минимальное

   double min=0;
   for(int i=ObjectsTotal()-1; i>=0; i--)
     {
      if(ObjectType(ObjectName(i))==OBJ_RECTANGLE)
        {
         if(StringFind(ObjectName(i),"SSSR#R",0)>=0)
           {
            double p2=ObjectGetDouble(0,ObjectName(i),OBJPROP_PRICE2);

            if(min==0)
              {
               min=p2;
              }

            if(p2<min)
              {
               min=p2;
              }
           }
        }
     }
   return(min);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   bool buy=1,sell=1;
   double gre=iCustom(NULL,0,IndName2,1,0);
   double red=iCustom(NULL,0,IndName2,2,0);


   buy=Open[1]<Sup() && Close[1]>Sup() && red<111;
   sell=Open[1]>Res() && Close[1]<Res() && gre<111;

   if(CountOrders()<1)
     {
      for(int i=ObjectsTotal()-1; i>=0; i--)
        {
         if(ObjectType(ObjectName(i))==OBJ_RECTANGLE)
           {
            if(buy)
              {
                     if (!Revers)
                       {
                         PutOrder(0, Ask);
                       }
                     else if (Revers)
                       {
                          PutOrder(1,Bid);
                       }
              }
            if(sell)
              {
                     if (!Revers)
                       {
                         PutOrder(1, Bid);
                       }
                      else if (Revers)
                       {
                         PutOrder(0,Ask);
                       }
              }
           }
        }
     }

   double ind = iCustom(NULL,0,IndName,0,0);

   Comment("\n Support: ",Sup(),
           "\n Resist: ",Res());

  }
//+------------------------------------------------------------------+
avatar

ShamanHand

  • 18 апреля 2021, 09:29
0
Всем моё почтение, вот прогнал в тесте, результаты прилагаю, исходя из этого логично попробовать в другую сторону, при таком же раскладе.., Андрей прикрутите пожалуйста реверс к Вашему наброску выше...
avatar

mishelbb

  • 18 апреля 2021, 05:44
0
Было бы хорошо, если бы я понимал что это и с чем его едят))) Что с этим нужно сделать? Простите если что не так*wall* 
avatar

drona007

  • 17 апреля 2021, 16:20
0
вот мой набросок. виноватить никого не буду :) 


//+------------------------------------------------------------------+
//|                                                      Supply2.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;        // лот
extern double KLot       = 1;          // умножение лота
extern double MaxLot     = 5;          // максимальный лот
extern int StopLoss      = 200;        // лось
extern int TakeProfit    = 300;        // язь
extern int Slip          = 30;         // реквот
extern int Magic         = 123;        // магик

extern string ZoneType   = "Untested"; // Untested, Weak

extern string IndName    = "shved_supply_and_demand"; //
extern string IndName2   = "TS-1#2"; //

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)
         sl=NormalizeDouble(price+StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price-TakeProfit*_Point,_Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)
         sl=NormalizeDouble(price-StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price+TakeProfit*_Point,_Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,_Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type=-1)
  {
   int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type || type==-1)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderProfit()>0)
               break;
            if(OrderProfit()<0)
              {
               lot=OrderLots()*KLot;
               break;
              }
           }
        }
     }
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Sup()
  {
   double max=0;
   for(int i=ObjectsTotal()-1; i>=0; i--)
     {
      if(ObjectType(ObjectName(i))==OBJ_RECTANGLE)
        {
         if(StringFind(ObjectName(i),"SSSR#S",0)>=0)
           {
            double p1=ObjectGetDouble(0,ObjectName(i),OBJPROP_PRICE1);
            if(p1>max)
              {
               max=p1;
              }
           }
        }
     }
   return(max);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Res()
  {
// 1. берем 1-е значение
// 2. оно минимальное
// 3. берем следующее
// 4. сравниваем
// 5. если меньше то оно минимальное

   double min=0;
   for(int i=ObjectsTotal()-1; i>=0; i--)
     {
      if(ObjectType(ObjectName(i))==OBJ_RECTANGLE)
        {
         if(StringFind(ObjectName(i),"SSSR#R",0)>=0)
           {
            double p2=ObjectGetDouble(0,ObjectName(i),OBJPROP_PRICE2);

            if(min==0)
              {
               min=p2;
              }

            if(p2<min)
              {
               min=p2;
              }
           }
        }
     }
   return(min);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   bool buy=1,sell=1;
   double gre=iCustom(NULL,0,IndName2,1,0);
   double red=iCustom(NULL,0,IndName2,2,0);


   buy=Open[1]<Sup() && Close[1]>Sup() && red<111;
   sell=Open[1]>Res() && Close[1]<Res() && gre<111;

   if(CountOrders()<1)
     {
      for(int i=ObjectsTotal()-1; i>=0; i--)
        {
         if(ObjectType(ObjectName(i))==OBJ_RECTANGLE)
           {
            if(buy)
              {
               PutOrder(0,Ask);
              }
            if(sell)
              {
               PutOrder(1,Bid);
              }
           }
        }
     }

   double ind = iCustom(NULL,0,IndName,0,0);

   Comment("\n Support: ",Sup(),
           "\n Resist: ",Res());

  }
//+------------------------------------------------------------------+

avatar

AM2

  • 17 апреля 2021, 15:33
0
А ведро… Ну не в ведро бы выкинул, но хотя бы пробухал.
Не лучшее применение, но хотя бы на себя потратил, всё лучше, чем в БО-шное казино вкидывать.
avatar

ShamanHand

  • 17 апреля 2021, 15:29
0
Андрей, ну а твоё мнение. Вина идеи или индикатора(ов)?
Ну понимаю, несколько странный вопрос, но всё же.
avatar

ShamanHand

  • 17 апреля 2021, 15:18
Начать торговлю с Альпари