0
Андрей спасибо, отложки выставляет как надо, а вот тп и сл работают как указано в настройках, а как показано на скрине не получается. Посмотри пожалуйста, за ранее спасибо.
avatar

vypchela

  • 5 ноября 2022, 17:49
0
Отлично *good* 
avatar

vypchela

  • 5 ноября 2022, 04:52
0
Андрей можно ли выполнить данный заказ, или делать новый заказ?
avatar

vypchela

  • 3 ноября 2022, 05:22
0
Все хитрые планы на скриншоте.
avatar

vypchela

  • 23 октября 2022, 18:14
0
Вот как раз в этом и фишка. :) 
avatar

vypchela

  • 23 октября 2022, 15:26
0
Пробитие вчерашнего дня только по другой цене, не отработанные ордера если посмотреть код удаляются в указанное время.
avatar

vypchela

  • 23 октября 2022, 08:08
0
Ищу поручителя.
avatar

vypchela

  • 23 октября 2022, 04:21
0
Спасибо всем. Напишу тз Андрею.
avatar

vypchela

  • 22 октября 2022, 07:29
0
Извиняюсь, не правильно сформулировал вопрос в начале задания. Спасибо, но это для D1. Советник пробойный, на часовом графике устанавливаются бай и сел стоп по хай и лов предыдущего дня. Нужно найти середину свечи на H1 как показано на скрине, чтобы сов устанавливал ордера на середине часовой свечи.
avatar

vypchela

  • 22 октября 2022, 04:37
0

//+------------------------------------------------------------------+
//|                                                    ProboyDay.mq5 |
//|                                              Copyright 2020, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"

#include <Trade\Trade.mqh>             // Подключаем торговый класс CTrade

input ulong  Magic   = 1824;  // магик
input double Lots    = 0.01; // лот
input double KLot    = 2;    // увеличение лота
input double MaxLot  = 10;   // максимальный лот
input int    Stop    = 2000;  // стоплосс
input int    Take    = 2000;  // тейкпрофит
input int    StartHour = 8;  // час начала торговли
input int    StartMin = 30;  // минута начала торговли
input int    EndHour = 19;   // час окончания торговли
input int    EndMin  = 30;   // минута окончания торговли

input bool   BuyStop   = 1;   // BuyStop
input bool   SellStop  = 1;   // SellStop

CTrade trade;                // Используем торговый класс CTrade

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   trade.SetExpertMagicNumber(Magic);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool TimeSession(int aStartHour,int aStartMinute,int aStopHour,int aStopMinute,datetime aTimeCur)
  {
//--- время начала сессии
   int StartTime=3600*aStartHour+60*aStartMinute;
//--- время окончания сессии
   int StopTime=3600*aStopHour+60*aStopMinute;
//--- текущее время в секундах от начала дня
   aTimeCur=aTimeCur%86400;
   if(StopTime<StartTime)
     {
      //--- переход через полночь
      if(aTimeCur>=StartTime || aTimeCur<StopTime)
        {
         return(true);
        }
     }
   else
     {
      //--- внутри одного дня
      if(aTimeCur>=StartTime && aTimeCur<StopTime)
        {
         return(true);
        }
     }
   return(false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   HistorySelect(0,TimeCurrent());

   ulong ticket=0;

   for(int i=HistoryDealsTotal()-1; i>=0; i--)
     {
      if((ticket=HistoryDealGetTicket(i))>0)
        {
         if(HistoryDealGetString(ticket,DEAL_SYMBOL)==_Symbol)
           {
            if(HistoryDealGetInteger(ticket,DEAL_MAGIC)==Magic)
              {
               double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
               double LastLot=HistoryDealGetDouble(ticket,DEAL_VOLUME);
               if(profit>0)
                  lot=Lots;
               if(profit<0)
                  lot=LastLot*KLot;
               break;
              }
           }
        }
     }
   if(lot>MaxLot)
      lot=Lots;

   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void DelOrder()
  {
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderGetInteger(ORDER_MAGIC)==Magic)
        {
         ulong ticket=OrderGetTicket(i);
         trade.OrderDelete(ticket);
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountOrders(ENUM_ORDER_TYPE type=-1)
  {
   int count=0;

   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(OrderGetTicket(i)))
        {
         if(OrderGetInteger(ORDER_MAGIC)==Magic)
           {
            if(OrderGetInteger(ORDER_TYPE)==type || type==-1)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double sl=0,tp=0;
   double lo=iLow(NULL,PERIOD_D1,1);
   double hi=iHigh(NULL,PERIOD_D1,1);
   double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   

   if(TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && CountOrders()<1)
     {
      if(Bid<hi)
        {
         if(BuyStop && CountOrders(4)<1)
           {
            sl=NormalizeDouble(hi-Stop*_Point,_Digits);
            tp=NormalizeDouble(hi+Take*_Point,_Digits);
            trade.BuyStop(Lot(),hi,NULL,sl,tp,0,0 ,"");
           }

        }
      if(Bid>lo)
        {
         if(SellStop && CountOrders(5)<1)
           {
            sl=NormalizeDouble(lo+Stop*_Point,_Digits);
            tp=NormalizeDouble(lo-Take*_Point,_Digits);
            trade.SellStop(Lot(),lo,NULL,sl,tp,0,0,"");
           }

        }
     }

   if(!TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()))
      DelOrder();

   Comment("\n Hi: ",hi,
           "\n Lo: ",lo);
  }
//+------------------------------------------------------------------+

avatar

vypchela

  • 21 октября 2022, 18:36
+1
Середина свечи от хая до лоя дня? Нужно чтобы сов устанавливал бай стоп или сел стоп на этом уровне
avatar

vypchela

  • 21 октября 2022, 18:18
0
Спасибо Андрей. *bravo* 
avatar

vypchela

  • 11 октября 2022, 03:15
0
Спасибо, но не по тз или я сам не дописал задание. На скрине указано две свечи (1,2) одного цвета и общий размер этих свечей, только после этих условий открываем позицию. В коде вижу только общий размер 1 свечи.
avatar

vypchela

  • 10 октября 2022, 06:41
0
Спасибо. :) 
avatar

vypchela

  • 9 октября 2022, 03:17
0
Спасибо.*hi* 
avatar

vypchela

  • 2 октября 2022, 14:40
0
По данной ссылке старый код, без реквот.
avatar

vypchela

  • 2 октября 2022, 05:00
0
Спасибо. Андрей возможно ли переписать данный код для мт5. Код твой:
//+------------------------------------------------------------------+
int CountDayDeal()
  {
   int count=0;

   for(int i=0; i<OrdersHistoryTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
           {
            if(TimeDay(OrderCloseTime())==Day() && OrderType()<2)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
avatar

vypchela

  • 2 октября 2022, 04:06
0
Андрей добавьте пожалуйста ограничение по количеству ордеров в день, что бы можно было в настройках выбрать 1 или более ордеров в день.
Спасибо. *uptrend* 
avatar

vypchela

  • 30 сентября 2022, 15:32