vypchela

 
Уровень 12

  Торгую в компаниях:


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

Рейтинг 2146



РЕКОМЕНДУЮ




Лучшее от vypchela



Советник по Фибоначчи Комментариев 8
2020-11-10 16:12:30Рейтинг 0

Советник для МТ5 Комментариев 17
2022-10-22 17:34:39Рейтинг 0

максимум вчерашнего дня

Здравствуйте, вопрос к Андрею или другим знатокам. Подскажите как найти середину свечи максимум или минимум вчерашнего дня?

Очень нужно, за ранее спасибо.
  • 0
  • Просмотров: 1182
  • 21 октября 2022, 16:33
  • vypchela
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
Середина свечи от хая до лоя дня? ) Или от открытия до закрытия свечи (по телу)?
Ну я бы открыл график D1, посмотрел нужные параметры (хай, лой) вычислил ход свечи и поделил на 2 ) первое что пришло на ум…
А в чем трудность? Вижу просто не новичок (рейтинг 9)… либо я не понял суть вопроса…

Вариант 2 ) навести стрелку и тогда будут указаны все параметры свечи (предварительно переключиться на график D1).
Редактирован: 21 октября 2022, 16:47
avatar

  22  poker Сообщений: 849

  • 21 октября 2022, 16:45
+
0
а если на примере какого нибудь кода — можете привести какой нибудь пример и и объяснить весь код?
avatar

  23  igrun Сообщений: 1639 - igrun

  • 21 октября 2022, 17:14
+
0
Фибо сетку на свечу и весь код <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/003.gif' alt=' :D '>&nbsp; 

В вопросе автора есть слово код? ) Хотя да, я должен был догадаться, но не обладаю такими способностями…
Редактирован: 21 октября 2022, 17:24
avatar

  22  poker Сообщений: 849

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

  12  vypchela Автор Сообщений: 112

  • 21 октября 2022, 18:18
+
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

  12  vypchela Автор Сообщений: 112

  • 21 октября 2022, 18:36
+
+1
double lo=iLow(NULL,PERIOD_D1,1);
   double hi=iHigh(NULL,PERIOD_D1,1);

double midl = (hi+lo)/2;

середина.
Редактирован: 21 октября 2022, 19:36
avatar

  16  ssg Сообщений: 817

  • 21 октября 2022, 19:35
+
0
Comment(
"\n Hi: ",hi,
"\n Midl: ",midl,
"\n Lo: ",lo);

Редактирован: 21 октября 2022, 19:38
avatar

  16  ssg Сообщений: 817

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

  12  vypchela Автор Сообщений: 112

  • 22 октября 2022, 04:37
+
0
 double lo=iLow(NULL,PERIOD_H1,1);
   double hi=iHigh(NULL,PERIOD_H1,1);
avatar

  16  ssg Сообщений: 817

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

  12  vypchela Автор Сообщений: 112

  • 22 октября 2022, 07:29

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