+3

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

extern string s1 = "======Muving Average======";
extern int ma_period                    = 50;           // период
extern int ma_shift                     = 0;            // сдвиг средней
extern ENUM_MA_METHOD ma_method         = MODE_SMA;      // метод усреднения
extern ENUM_APPLIED_PRICE applied_price = PRICE_CLOSE;  // тип цены
extern string s2="==============================";
extern ENUM_BASE_CORNER Corner          = CORNER_LEFT_UPPER;   // угол привязки
//------------------------------------
datetime t=0;
int array_size;
string Arr_Sym[]={"EURUSD","GBPUSD","AUDCAD","CADJPY","USDJPY","XAUUSD","DOGECOIN","BITCOIN","CARDANO","AUDNZD",
                  "NZDCAD","AUDCHF","AUDCNH","AUDCZK","AUDDKK","AUDHKD","AUDHUF","AUDJPY","AUDMXN","AUDNOK",
                  "AUDPLN","AUDSEK","AUDSGD","AUDUSD","AUDZAR","CADCHF","CADCNH","CADCZK","CADDKK","CADHKD",
                  "CADHUF","CADMXN","CADNOK","CADPLN","CADSEK","CADSGD","CADZAR","CHFCNH","FCZK","CHFDKK",
                  "CHFHKD","CHFHUF","CHFJPY","CHFMXN","CHFNOK","CHFPLN","CHFSEK","CHFSGD","CHFTRY","CHFZAR",
                  "DKKCZK","DKKHKD","DKKHUF","DKKMXN","DKKNOK","DKKPLN","DKKSEK","DKKSGD","DKKZAR","EURAUD",
                  "EURCAD","EURCHF","EURCNH","EURCZK","EURDKK","EURGBP","EURHKD","EURHUF"};
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   array_size=ArraySize(Arr_Sym);
   Draw();
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(t!=Time[0])
     {
      t=Time[0];
      SetText();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SetText()
  {
   double ma=0,ma1=0,close1=0,close2=0;
   string text="NULL";
   color clr = clrSilver;
//----------------------
   for(int i=0; i<array_size; i++)
     {
      ma=iMA(Arr_Sym[i],0,ma_period,0,ma_method,applied_price,ma_shift);
      ma1=iMA(Arr_Sym[i],0,ma_period,0,ma_method,applied_price,ma_shift+1);
      close1=iClose(Arr_Sym[i],0,1);
      close2=iClose(Arr_Sym[i],0,2);
      if(close2<ma1 && close1>ma)
        {
         text="BUY";
         clr=clrGreen;
         PlaySound("tick.wav");
        }
      if(close2>ma1 && close1<ma)
        {
         text="SELL";
         clr=clrRed;
         PlaySound("oops.wav");
        }
      ObjectSetString(0,Arr_Sym[i]+"sym2",OBJPROP_TEXT,text);
      ObjectSetInteger(0,Arr_Sym[i]+"rec2",OBJPROP_BGCOLOR,clr);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Draw()
  {
   int x=10,x1=0,x2=0,x3=0,y=20,y1=0,yd=0;
   double ma=0,close1=0;
   string text="NULL";
   color clr = clrSilver;
   //-----------------------------
   if(Corner==CORNER_LEFT_UPPER)
     {y1=3;x1=61;x2=5;x3=67;}
   if(Corner==CORNER_RIGHT_UPPER)
     {y1=3;x=120;x1=-59;x2=-5;x3=-67;}
   if(Corner==CORNER_LEFT_LOWER)
     {y=30;y1=-3;x=10;x1=61;x2=5;x3=67;}
   if(Corner==CORNER_RIGHT_LOWER)
     {y=30;y1=-3;x=120;x1=-59;x2=-5;x3=-67;}
   //------------------------
   for(int i=0; i<array_size; i++)
     {
      ma=iMA(Arr_Sym[i],0,ma_period,0,ma_method,applied_price,ma_shift);
      close1=iClose(Arr_Sym[i],0,1);
      if(close1>ma)
        {
         text="BUY";
         clr=clrGreen;
        }
      if(close1<ma)
        {
         text="SELL";
         clr=clrRed;
        }
      RectLabelCreate(Arr_Sym[i]+"rec1",x,y+yd,60,20,clrSilver,clrViolet);
      RectLabelCreate(Arr_Sym[i]+"rec2",x+x1,y+yd,40,20,clr,clrViolet);
      LabelCreate(Arr_Sym[i]+"sym1",x+x2,y+yd+y1,Arr_Sym[i],"Arial",8,clrBlack);
      LabelCreate(Arr_Sym[i]+"sym2",x+x3,y+yd+y1,text,"Arial",8,clrBlack);
      yd+=20;
      if(yd/20==15) {yd=0;x+=105;}
     }
  }

avatar

verta81

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

//+------------------------------------------------------------------+
//| Simple.mq4 |
//| Copyright 2024, AM2 |
//| www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright «Copyright 2024, AM2»
#property link «www.forexsystems.biz»
#property version «1.00»
#property strict

//--- Inputs
extern double Lots = 0.1; // лот
extern double KLot = 1.2; // умножение лота
extern double MaxLot = 5; // максимальный лот

extern int StopLoss = 0; // лось
extern int TakeProfit = 111; // язь

extern int StartHour = 0; // час начала торговли
extern int StartMin = 30; // минута начала торговли
extern int EndHour = 23; // час окончания торговли
extern int EndMin = 30; // минута окончания торговли

extern int Step = 333; // шаг
extern int Count = 20; // число поз
extern int Slip = 30; // реквот

extern int CloseSig = 0; // 1-закрытие по сигналу
extern int Spread = 33; // спред
extern int Magic = 123; // магик

extern string Comm = «Scalp»;

datetime t=0;

int AccNum = 1234567;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
  if(AccountNumber()!=AccNum)
    return return(INIT_FAILED);
Comment("");
//---
return(INIT_SUCCEEDED);
}
avatar

verta81

  • 25 октября 2024, 20:59
0
Есть. Вам что нужно?
avatar

verta81

  • 2 октября 2024, 21:23
0
Знатоки, могут поделиться своим вариантом)
avatar

verta81

  • 27 сентября 2024, 18:16
+2
Второй вариант, с прямоугольником.
координаты кнопки привязаны к прямоугольнику, тащишь прямоугольник — тащится и кнопка.
//+------------------------------------------------------------------+
//|                                                       Button.mq4 |
//|                                               Copyright 2024, Ve |
//|                                             kupiscript@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, Ve"
#property link      "kupiscript@yandex.ru"
#property version   "1.00"
#property strict

int Magic      = 0;
int Slip       = 10;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1);
   RectLabelCreate("Main",20,20,120,100,clrSilver);
   ButtonCreate("ButtonClose",40,50,80,30,"Close All",clrYellowGreen,false);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll();
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(ObjectGetInteger(0,"ButtonClose",OBJPROP_STATE)==1)
     {
      if(MessageBox("Действительно вы хотите закрыть все ордера?",NULL,MB_YESNO)==6)
        {
         CloseAll();
        }
      ObjectSetInteger(0,"ButtonClose",OBJPROP_STATE,false);
     }
   
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+ 
//| Создает кнопку                                                   | 
//+------------------------------------------------------------------+ 
bool ButtonCreate(string name,int x,int y,int width,int height,string text,color back_clr,bool state)
  {
   long chart_ID=0;               // ID графика 
   int sub_window=0;             // номер подокна 
   ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER; // угол графика для привязки 
   string font="Arial";
   int fonts_size=12;             // размер шрифта 
   color clr=clrBlack;             // цвет текста 
   color border_clr=back_clr;       // цвет границы 
   bool back=false;               // на заднем плане 
   bool selection=true;          // выделить для перемещений 
   bool selected =false;
   bool hidden=true;              // скрыт в списке объектов 
   long z_order=0;                // приоритет на нажатие мышью 
   
   if(ObjectFind(name)<0)
    {
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- создадим кнопку 
   ObjectCreate(chart_ID,name,OBJ_BUTTON,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_CORNER,corner); 
//--- установим текст 
   ObjectSetString(chart_ID,name,OBJPROP_TEXT,text); 
//--- установим шрифт текста 
   ObjectSetString(chart_ID,name,OBJPROP_FONT,font); 
//--- установим размер шрифта 
   ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,fonts_size); 
//--- установим цвет текста 
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); 
//--- установим цвет фона 
   ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr); 
//--- установим цвет границы 
   ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr); 
//--- отобразим на переднем (false) или заднем (true) плане 
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); 
//--- переведем кнопку в заданное состояние 
   ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state); 
//--- включим (true) или отключим (false) режим перемещения кнопки мышью 
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); 
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selected); 
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов 
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); 
//--- установим приоритет на получение события нажатия мыши на графике 
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); 
//--- успешное выполнение 
   }
   return(true); 
  } 
//+------------------------------------------------------------------+ 
//| Создает прямоугольную метку                                      | 
//+------------------------------------------------------------------+ 
bool RectLabelCreate(string name,int x,int y,int width,int height,color back_clr)
  {
   long chart_ID=0;               // ID графика 
   int sub_window=0;             // номер подокна 
   ENUM_BORDER_TYPE border=BORDER_SUNKEN;     // тип границы 
   ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER; // угол графика для привязки 
   color clr=clrRed;               // цвет плоской границы (Flat) 
   ENUM_LINE_STYLE  style=STYLE_SOLID;        // стиль плоской границы 
   int line_width=1;             // толщина плоской границы 
   bool back=false;               // на заднем плане 
   bool selection=true;          // выделить для перемещений 
   bool selected =true;
   bool hidden=true;              // скрыт в списке объектов 
   long z_order=0;                // приоритет на нажатие мышью 
   
   if(ObjectFind(name)<0)
    {
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- создадим прямоугольную метку 
   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_SELECTABLE,selection); 
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selected); 
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов 
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); 
//--- установим приоритет на получение события нажатия мыши на графике 
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); 
//--- успешное выполнение 
     }
   return(true); 
  } 
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(id==CHARTEVENT_MOUSE_MOVE && sparam=="1")
     {
      int x=(int)ObjectGetInteger(0,"Main",OBJPROP_XDISTANCE);
      int y=(int)ObjectGetInteger(0,"Main",OBJPROP_YDISTANCE);
      ObjectSetInteger(0,"ButtonClose",OBJPROP_XDISTANCE,x+20);
      ObjectSetInteger(0,"ButtonClose",OBJPROP_YDISTANCE,y+30);
     }
   if(id==CHARTEVENT_OBJECT_CLICK && sparam=="ButtonClose")
     {
      int x=(int)ObjectGetInteger(0,"Main",OBJPROP_XDISTANCE);
      int y=(int)ObjectGetInteger(0,"Main",OBJPROP_YDISTANCE);
      ObjectSetInteger(0,"ButtonClose",OBJPROP_XDISTANCE,x+20);
      ObjectSetInteger(0,"ButtonClose",OBJPROP_YDISTANCE,y+30);
     }
  }
//+------------------------------------------------------------------+
avatar

verta81

  • 27 сентября 2024, 18:15
+2
Первый вариант.
дабл-клик по кнопке и тащи ее куда хочешь.
//+------------------------------------------------------------------+
//|                                                       Button.mq4 |
//|                                               Copyright 2024, Ve |
//|                                             kupiscript@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, Ve"
#property link      "kupiscript@yandex.ru"
#property version   "1.00"
#property strict

int Magic      = 0;
int Slip       = 10;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   ButtonCreate("ButtonClose",40,50,80,30,"Close All",clrYellowGreen,false);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll();
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(ObjectGetInteger(0,"ButtonClose",OBJPROP_STATE)==1)
     {
      if(MessageBox("Действительно вы хотите закрыть все ордера?",NULL,MB_YESNO)==6)
        {
         CloseAll();
        }
      ObjectSetInteger(0,"ButtonClose",OBJPROP_STATE,false);
     }
   
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+ 
//| Создает кнопку                                                   | 
//+------------------------------------------------------------------+ 
bool ButtonCreate(string name,int x,int y,int width,int height,string text,color back_clr,bool state)
  {
   long chart_ID=0;               // ID графика 
   int sub_window=0;             // номер подокна 
   ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER; // угол графика для привязки 
   string font="Arial";
   int fonts_size=12;             // размер шрифта 
   color clr=clrBlack;             // цвет текста 
   color border_clr=back_clr;       // цвет границы 
   bool back=false;               // на заднем плане 
   bool selection=true;          // выделить для перемещений 
   bool selected =false;
   bool hidden=true;              // скрыт в списке объектов 
   long z_order=0;                // приоритет на нажатие мышью 
   
   if(ObjectFind(name)<0)
    {
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- создадим кнопку 
   ObjectCreate(chart_ID,name,OBJ_BUTTON,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_CORNER,corner); 
//--- установим текст 
   ObjectSetString(chart_ID,name,OBJPROP_TEXT,text); 
//--- установим шрифт текста 
   ObjectSetString(chart_ID,name,OBJPROP_FONT,font); 
//--- установим размер шрифта 
   ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,fonts_size); 
//--- установим цвет текста 
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); 
//--- установим цвет фона 
   ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr); 
//--- установим цвет границы 
   ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr); 
//--- отобразим на переднем (false) или заднем (true) плане 
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); 
//--- переведем кнопку в заданное состояние 
   ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state); 
//--- включим (true) или отключим (false) режим перемещения кнопки мышью 
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); 
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selected); 
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов 
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); 
//--- установим приоритет на получение события нажатия мыши на графике 
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); 
//--- успешное выполнение 
   }
   return(true); 
  } 
avatar

verta81

  • 27 сентября 2024, 18:13
0
Какие функции у кнопки должны быть?
avatar

verta81

  • 27 сентября 2024, 01:05
+1
здесь все на пальцах расписано)
комменты из топика тоже будут полезны.
avatar

verta81

  • 21 сентября 2024, 22:38
0
Нашел у себя похожее, подлатал под Ваше ТЗ.
downloads/3870/
avatar

verta81

  • 22 июля 2024, 23:22
0
автор топика выложил. см.выше.
avatar

verta81

  • 16 июля 2024, 23:12
0
перезалил.
Сделал все, как в ТЗ
avatar

verta81

  • 16 июля 2024, 16:46
0
Можно взять в место фикс.тейка ширину канала и по фибе закрывать ордер частями в 3 этапа: 1-й, на уровне 150 фибо; 2-й. на уровне 200; 3-й уже можно тралить.
avatar

verta81

  • 12 июля 2024, 17:34
0
Индикатор прикрепите плиз
avatar

verta81

  • 12 июля 2024, 17:30
+1
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(AllProfit()>Profit && Profit>0)
      CloseAll();

   if(TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()))
     {
      if(CountTrades(0)<1)
        PutOrder(0,Ask);
      if(CountTrades(1)<1)
        PutOrder(1,Bid);
     }

   if(CountTrades(0)>0)
     {
      if(FindLastBuyPrice()-Ask>Steps()*_Point)
        {
         PutOrder(0,Ask);
         ModifyOrders();
        }
      }
   if(CountTrades(1)>0)
      {
      if(Bid-FindLastSellPrice()>Steps()*_Point)
        {
         PutOrder(1,Bid);
         ModifyOrders();
        }
      }
   Comment("\n Buy Lot: ",Lot(0),
           "\n Sell Lot: ",Lot(1),
           "\n Steps: ",Steps(),
           "\n Profit: ",AllProfit());
  }
avatar

verta81

  • 28 июня 2024, 14:53
0
Важно именно календарь инвестинга. Буду благодарен, если сможете такое реализовать.
avatar

verta81

  • 22 июня 2024, 20:33
+1

//+------------------------------------------------------------------+
//|                                                        Venom.mq4 |
//|                                              Copyright 2023, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern string s1="======Buy======";
extern double LotsBuy       = 0.01;     // лот 
extern double KLotBuy       = 1.5;      // умножение лота
extern string s2="======Sell======";
extern double LotsSell       = 0.01;     // лот 
extern double KLotSell       = 1.5;      // умножение лота
extern string s3="===========================================";
extern double MaxLot     = 5;        // максимальный лот

extern double Profit     = 3;        // профит

extern int StopLoss      = 0;        // лось
extern int TakeProfit    = 0;        // язь

extern int Step1         = 100;      // шаг 1
extern int Step2         = 500;      // шаг 2
extern int Step3         = 1000;     // шаг 3
extern int Step4         = 2000;     // шаг 4

extern int Count1        = 5;        // число поз 1
extern int Count2        = 3;        // число поз 2
extern int Count3        = 1;        // число поз 3

extern int StartHour     = 0;        // час начала торговли
extern int StartMin      = 30;       // минута начала торговли
extern int EndHour       = 23;       // час окончания торговли
extern int EndMin        = 30;       // минута окончания торговли

extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

extern string Comm       = "Scalp";


//------------------------------------------------------------//

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot(int type)
  {
   double lot=(type==0?LotsBuy:LotsSell);
   
   if(CountTrades(type)>0)
     {
      lot=NormalizeDouble((type==0?LotsBuy:LotsSell)*MathPow((type==0?KLotBuy:KLotSell),CountTrades(type)),2);
     }

   if(lot>MaxLot)
      lot=(type==0?LotsBuy:LotsSell);

   return(lot);
  }
avatar

verta81

  • 8 июня 2024, 18:07
0
Выкладывайте ТЗ в топик с полным описанием, а не архивом.
Так будет проще найти Вам поручителя.
Да и комменты по теме будут полезны, возможно.
avatar

verta81

  • 6 июня 2024, 14:47