Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Помогите найти советника по времени

Добрый день.
Помогите, плизз, найти советника, выставляющего в определенное время две лимитки неа расстоянии n от цены, с тейком и в случае срабатывания одной из них, вторая должна удаляться. Если можно, с автоматическим расчетом лота
  • 0
  • Просмотров: 318
  • 23 ноября 2024, 12:45
  • walter8319
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Модернизация советника
Следующая запись в группе  
Тянучка
20 ноября 2024
23 ноября 2024

Брокер для ваших роботов, 15 лет на рынке

Комментарии (4)

+
0
делал здесь подобный
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 23 ноября 2024, 14:35
+
0
А вы не помните название? А то искал, не нашел(((
avatar

  4  walter8319 Автор Сообщений: 100

  • 23 ноября 2024, 16:05
+
0
Так и назывался тянулка
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 23 ноября 2024, 20:19
+
+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

  14  verta81 Сообщений: 390

  • 24 ноября 2024, 15:03

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий