0
Что значит: «В автоматическом режиме советник работает dсовсем не по алгоритму...»?
avatar

verta81

  • 9 декабря 2024, 22:02
0
Готово.
avatar

verta81

  • 6 декабря 2024, 20:48
0
Андрей, ты не ты))
avatar

verta81

  • 6 декабря 2024, 15:49
+1
добавил лимит переворотов
avatar

verta81

  • 5 декабря 2024, 18:36
+1
Сделал с выбором серии, после серии убыточных или серии прибыльных
downloads/3245
avatar

verta81

  • 4 декабря 2024, 22:29
0
В рынке только один ордер.
С какого ордера должен включаться кэф-профит? после серии убыточных или серии профитных сделок?
avatar

verta81

  • 4 декабря 2024, 21:37
+2
tradingview
avatar

verta81

  • 4 декабря 2024, 21:22
+1
Пишите, кому интересно.
avatar

verta81

  • 1 декабря 2024, 13:03
0
Декомпил — дорогое удовольствие, умножьте предложенную Вами сумму на 70-80 и подумайте, стоит ли оно того. В сети полно похожих индюков. В файлах здесь поищите похожий стрелочный сигнальщик, и возможно Андрей прикрутил к нему параллельные линии, за 1000 рублей.
avatar

verta81

  • 1 декабря 2024, 12:57
+1

//+------------------------------------------------------------------+
//|                                                      Limitki.mq4 |
//|                                               Copyright 2024, Ve |
//|                                             kupiscript@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, Ve"
#property link      "kupiscript@yandex.ru"
#property version   "1.00"
#property strict

extern double Lots      = 0.1;      // Фикс лоет
extern double Risk      = 0.1;      // % от депо/ 0-выкл.
extern int Delta        = 100;      // Дистанция отступа
extern int TakeProfit   = 100;      // Тейк-профит
extern int StopLoss     = 500;      // Стоп-лосс
extern string StartTime = "16:00";  // Время установки ордеров 
extern int Slip         = 10;       // Проскальзывание
extern int Magic        = 123456;   // Магик
//---------------------
double MINLOT,MAXLOT,ask,bid;
datetime OpenTime;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   MINLOT = MarketInfo(Symbol(),MODE_MINLOT);
   MAXLOT = MarketInfo(Symbol(),MODE_MAXLOT);
   OpenTime=StringToTime(StartTime);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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,"Limitki",Magic,0,clr);
   return;
  } 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   if(Risk>0)
     lot=NormalizeDouble(AccountBalance()*0.01*Risk/MarketInfo(Symbol(),MODE_MARGINREQUIRED),2);
  
   if (lot>MAXLOT) lot=MAXLOT;
   if (lot<MINLOT) lot=MINLOT;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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 && OrderType()>1))
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Удаление отложенных ордеров                                      |
//+------------------------------------------------------------------+
void DelOrder()
  {
   bool del;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()>1)
               del=OrderDelete(OrderTicket());
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   ask=MarketInfo(NULL,MODE_ASK);
   bid=MarketInfo(NULL,MODE_BID);
   
   if(CountOrders()==1)
     DelOrder();
   
   if(TimeCurrent()==OpenTime && CountOrders()<1)
     {
      PutOrder(4,ask+Delta*_Point);
      PutOrder(5,bid-Delta*_Point);
     }
   
  }
//+------------------------------------------------------------------+

avatar

verta81

  • 24 ноября 2024, 15:03
+1
Поправил. Перезалил
avatar

verta81

  • 22 ноября 2024, 21:24
0
что с чем объединить, выделить?
avatar

verta81

  • 19 ноября 2024, 18:15
+1
Сделал как понял
downloads/3925
avatar

verta81

  • 10 ноября 2024, 21:03
0
в базе есть совы с этим индикатором, поищите
avatar

verta81

  • 7 ноября 2024, 23:43
+1
это не индикатор, а просто рисовалка.
Нет буферных данных. Только по меткам или именам объектов можно отслеживать изменения, как выше Андрей писал.
В этом «Индикаторе» используются 5 стандартных терминальных индикаторов на разных таймфреймах. Проще написать сов по этим 5-ти индикаторам. Если конечно будет ТЗ.
avatar

verta81

  • 29 октября 2024, 21:33
+3
//+------------------------------------------------------------------+
//| Создает текстовую метку                                          |
//+------------------------------------------------------------------+
bool LabelCreate(string name,int x,int y,string text,string font,int font_size,color clr)
  {
   long chart_ID=0;               // ID графика
   int sub_window=0;             // номер подокна
   ENUM_BASE_CORNER corner=Corner; // угол графика для привязки
   bool back=false;               // на заднем плане
   bool hidden=true;              // скрыт в списке объектов

   if(ObjectFind(chart_ID,name)<0)
     {
      //--- создадим текстовую метку
      ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0);
      //--- установим координаты метки
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      //--- установим угол графика, относительно которого будут определяться координаты точки
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      //--- установим текст
      ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
      //--- установим шрифт текста
      ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
      //--- установим размер шрифта
      ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
      //--- установим цвет
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      //--- установим цвет фона
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,White);
      //--- отобразим на переднем (false) или заднем (true) плане
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      //--- успешное выполнение
     }
   return(true);
  }
//+------------------------------------------------------------------+
//| Создает прямоугольную метку                                      |
//+------------------------------------------------------------------+
bool RectLabelCreate(string name,int x,int y,int width,int height,color back_clr,color clr)
  {
   long             chart_ID=0;               // ID графика
   int              sub_window=0;             // номер подокна
   ENUM_BORDER_TYPE border=BORDER_SUNKEN;     // тип границы
   ENUM_BASE_CORNER corner=Corner; // угол графика для привязки
   ENUM_LINE_STYLE  style=STYLE_SOLID;        // стиль плоской границы
   int              line_width=1;             // толщина плоской границы
   bool             back=false;               // на заднем плане
   bool             hidden=true;              // скрыт в списке объектов

   if(ObjectFind(chart_ID,name)<0)
     {
      ObjectCreate(chart_ID,name,OBJ_RECTANGLE_LABEL,sub_window,0,0);
      //--- установим координаты метки
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      //--- установим размеры метки
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
      //--- установим цвет фона
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
      //--- установим тип границы
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,border);
      //--- установим угол графика, относительно которого будут определяться координаты точки
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      //--- установим цвет плоской рамки (в режиме Flat)
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      //--- установим стиль линии плоской рамки
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      //--- установим толщину плоской границы
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,line_width);
      //--- отобразим на переднем (false) или заднем (true) плане
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
     }
//--- успешное выполнение
   return(true);
  }
avatar

verta81

  • 26 октября 2024, 01:43