0
скрины надо или ссылку где идею взяли
avatar

AM2

  • 12 января 2022, 17:43
0
помню делал с подобным индикатором. ерунда получилась
avatar

AM2

  • 11 января 2022, 21:52
0
Не думал что такие добрые люди есть ещё в этом мире


а недобрые сколько просили? :D 
avatar

AM2

  • 11 января 2022, 21:50
0
посмотрю завтра если других заказов не будет
avatar

AM2

  • 11 января 2022, 19:30
0
перевел в бу, закрыл ордер, осталось отладить отключение автоторговли:

avatar

AM2

  • 11 января 2022, 17:52
+1
Да от него и не должно быть никакого сигнала.
Он только показывает время новостей.Всё.
А что от него ещё надо?


там есть индикаторный буфер. в зависимости от его значения и торгует советник
avatar

AM2

  • 11 января 2022, 17:25
0
индикатор скачивает новости рисует линии, но сигнала от него нет
avatar

AM2

  • 10 января 2022, 21:43
0
проверял отлаживал на новостях, нет сигнала

avatar

AM2

  • 10 января 2022, 21:19
0
по отдельности все функции работают, но индикатор не выдает сигнал чек ньюс:


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

#include <WinUser32.mqh>

#define PAUSE      10
#define VK_CONTROL 0x11 //CTRL key
#define KEY_CODE   'E'

extern int   MinDo          = 30;         // Срабатывание минут до новости
extern int   MinPosle       = 30;         // Срабатывание минут после новости
extern int   offset         = 3;          // Часовой пояс сервера
extern bool  Vhigh          = true;       // Показывать важные новости
extern bool  Vmedium        = false;      // Показывать средние новости
extern bool  Vlow           = false;      // Показывать слабые новости
extern bool  RisovatLini    = true;       // Рисовать линии на графике

extern bool  CloseOrders    = true;       // Закрывать все ордера
extern bool  BUMoving       = true;       // Перевести в БУ все ордера

extern int BULevel          = 20;         // Уровень БУ
extern int BUPoint          = 3;          // Пункты БУ

extern int Slip             = 111;        // Проскальзывание
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   
  }
//+------------------------------------------------------------------+
//| Закрытие позиции по типу ордера                                  |
//+------------------------------------------------------------------+
void CloseAllMulti(int ot=-1)
  {
   int dg=0;
   bool cl=1;
   double ask=0,bid=0;

   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         ask=SymbolInfoDouble(OrderSymbol(),SYMBOL_ASK);
         bid=SymbolInfoDouble(OrderSymbol(),SYMBOL_BID);
         dg=(int)SymbolInfoInteger(OrderSymbol(),SYMBOL_DIGITS);

         if(OrderType()==0 && (ot==0 || ot==-1))
           {
            RefreshRates();
            cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(bid,dg),Slip,White);
           }
         if(OrderType()==1 && (ot==1 || ot==-1))
           {
            RefreshRates();
            cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(ask,dg),Slip,White);
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|  Безубыток ордеров                                               |
//+------------------------------------------------------------------+
void BUMulti()
  {
   int dg=0;
   bool m=1;
   double ask=0,bid=0,pp=0;

   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         ask=SymbolInfoDouble(OrderSymbol(),SYMBOL_ASK);
         bid=SymbolInfoDouble(OrderSymbol(),SYMBOL_BID);
         dg=(int)SymbolInfoInteger(OrderSymbol(),SYMBOL_DIGITS);

         if(OrderType()==OP_BUY)
           {
            if(OrderOpenPrice()<=(bid-(BULevel+BUPoint)*pp) && OrderOpenPrice()>OrderStopLoss())
              {
               m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+BUPoint*pp,OrderTakeProfit(),0,Yellow);
               return;
              }
           }

         if(OrderType()==OP_SELL)
           {
            if(OrderOpenPrice()>=(ask+(BULevel+BUPoint)*pp) && (OrderOpenPrice()<OrderStopLoss() || OrderStopLoss()==0))
              {
               m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-BUPoint*pp,OrderTakeProfit(),0,Yellow);
               return;
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Key()
  {
   keybd_event(VK_CONTROL,0,0,0);
   Sleep(PAUSE);
   keybd_event(KEY_CODE,0,0,0);
   Sleep(PAUSE);
   keybd_event(KEY_CODE,0,2,0);
   Sleep(PAUSE);
   keybd_event(VK_CONTROL,0,2,0);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double CheckNews = iCustom(NULL,0,"UrdalaNews",MinDo,MinPosle,offset,Vhigh,Vmedium,Vlow,"",RisovatLini,0,0);

   if(CheckNews==0)
     {
      return;
     }

   if(CheckNews==1)
     {
      if(CloseOrders)
        {
         Key();
         CloseAllMulti();
        }

      if(BUMoving)
        {
         Key();
         BUMulti();
        }
     }
     
   Comment(CheckNews);
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 10 января 2022, 21:15
0
попробую сегодня все в одно собрать. новость по календарю определять будем или в настройках можно время ввести? например задали 3 временных промежутка когда нельзя торговать с утра. так проще намного. с календарем чуть подольше придется возиться
avatar

AM2

  • 10 января 2022, 18:05
0
перед важными новостями
за определенное время до них?

как определять будем это время?
avatar

AM2

  • 9 января 2022, 22:55
0
можно. на базе эфира или трона например. можешь написанием смарт контрактов заняться ;) 

youtu.be/PGa9BLZd-VE
avatar

AM2

  • 8 января 2022, 23:15
0
можно ли добавить параметр History — количества истории на графике?
добавил: www.opentraders.ru/downloads/3215/



стрела в тестере появляется на закрытии бара для входа, а нужно на открытии бара


на открытии. см. код:


   if(t!=time[0])
     {
      ...

      t=time[0];
     }

avatar

AM2

  • 8 января 2022, 19:21