[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 579

 

продублирую в этой теме свой вопрос - в другой теме чет никак :(

 

подскажите плиз:

1.как работает советник если был обрыв связи? 

2.Он запустит опять функцию init() ??? 

3.как проконтролировать событие в журнале " Old tick" в советнике. спс
 

 

1. зависит от советника, если предусмотрено его логикой остановка, то прекратит работу, иначе будет долбиться какое-то время.. сами проверьте в понедельник запустите советник и выдерните сетевой шнур все и увидите..

2. нет, инит не сработает, все начнется со старта, так что предусматривайте ситуацию обрыва связи - сохраняйте время последнего запуска советника, и если была задержка по времени между двумя стартами сколь-то там времени, то делайте вызов инита

3. напишите функцию, которая бы читала из лога последние строки на предмет этого события

 
SergNF >>:


Вы заполняете массив, а потом на него натравливаете "стандартный индикатор" (RSIOnArray, CCIOnArray и т.п. - около 7 штук).

Крайнее упоминание на форуме , а вообще F1, учебник и т.п.


//+------------------------------------------------------------------+
//|                                                    onArrayBB.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 SeaGreen
#property indicator_color2 SeaGreen
#property indicator_color3 SeaGreen
#property indicator_color4 SeaGreen

extern int maper = 14;
extern int bbper = 14;

double Buf_0[],Buf_1[],Buf_2[],Buf_3[];
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
SetIndexBuffer(0,Buf_0);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(1,Buf_1);
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(2,Buf_2);
SetIndexStyle (2,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(3,Buf_3);

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   int i,Counted_bars;
   Counted_bars=IndicatorCounted();
   i=Bars-Counted_bars-1;
   while(i>=0)
   {
      Buf_3[i]=iMA(Symbol(),0,maper,0,MODE_SMA,PRICE_CLOSE,i);
      Buf_0[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,0,i);
      Buf_1[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,1,i);
      Buf_2[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,2,i);
      Print(Buf_0[0]);
      i--;
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+


Правильно?, Так только средняя отрисовывается, а верхняя и нижняя линии не отрисовываются.

 
keekkenen >>:


3. напишите функцию, которая бы читала из лога последние строки на предмет этого события


OK

про 3-й пункт плз подробнее, первые два у меня вопросов не возникает

спс 

 
trader_fx >>:

Правильно?, Так только средняя отрисовывается, а верхняя и нижняя линии не отрисовываются.

Вынесите заполнение буфера Buf_3 в отдельный цикл.
 
IgorM >>:


OK

про 3-й пункт плз подробнее, первые два у меня вопросов не возникает

спс

я этого не делал, но решение не должно быть сложным, т.к. родным языком логи не достать, то придется получать файл и читать его используя WinAPI,

может, конечно, есть и боле простое решение..

 
keekkenen >>:

..решение не должно быть сложным, т.к. родным языком логи не достать..


  странно, что возможности mql не позволяют логи терминала читать

со связью вроде проблем нет есть функция, на ней придется блок проверки строить

bool IsConnected(

)

 

 

Добрый день. Пробую разобраться с написанием с советника на mql4. Для начала взял предложенный пример из учебника: Простой эксперт. Вот ссылка на него: https://c.mql4.com/book/mq4/experts/tradingexpert.mq4

При попытке опробовать его на фьючерсе РТС (платформа Броко) через Тестер стратегий, получил интересный результат, положительные сделки считаются "отрицательными" - с чем это связано?

Ниже скрин примера, в коде ничего не менял, только установил SP и TP в OrderSend равными "0", чтобы осуществлялся чистый переворот без фиксации прибыли по стопу и тейку.


 
Не сильна в фьючерсах, но вопрос задам: вы спред учли?
 

А я в форексе не силён. По сути, у акций и фьючерсов в стакане котировок спреда - нет, но как с котированием дело обстоит в МетаТрейдере - не знаю (сейчас посмотрел в Свойствах символа в МТ, спред = 0). В алгоритме ничего не менял, кроме SP = TP = 0, как учитывается спред?