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
Загрузка...