Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 112

 
подскажите, как набрать кредиты или каким способом вносить?
 

Есть код советника где используется данный индикатор TrendToTrend_open

код ниже

Вопрос - почему советник выставляет этот индикатор с ценой закрытия?

//--- входные параметры
input int LongTrend=14; // Период LongTrend
input int ShortTrend=7; // Период ShortTrend
input int EA_Magic=0;   // Magic Number советника
input double Lot=0.02; // Количество лотов
input double STR= 0.14;
input double TR= 0.1;
input double TP= 0.55;

//--- глобальные переменные

int TrendToTrend;
int TrendToTrendOpen;

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
  {
  //--- достаточно ли количество баров для работы
   if(Bars(_Symbol,_Period)<60) // общее количество баров на графике меньше 60?
     {
      Alert("На графике меньше 60 баров, советник не будет работать!!");
      return(-1);
     }
TrendToTrend=iCustom(_Symbol,0,"TrendToTrend",LongTrend,ShortTrend);
TrendToTrendOpen=iCustom(_Symbol,0,"TrendToTrend_open",LongTrend,ShortTrend);

if(TrendToTrend<0||TrendToTrendOpen<0)
     {
      Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
      return(-1);
     } 
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- освобождаем хэндлы индикаторов
   IndicatorRelease(TrendToTrend);
   IndicatorRelease(TrendToTrendOpen);
   }
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
  {
   static datetime Old_Time;
   datetime New_Time[1];
   bool IsNewBar=false;

// копируем время текущего бара в элемент New_Time[0]
   int copied=CopyTime(_Symbol,_Period,0,1,New_Time);
   if(copied>0) // ok, успешно скопировано
     {
      if(Old_Time!=New_Time[0]) // если старое время не равно
        {
         IsNewBar=true;   // новый бар
         if(MQL5InfoInteger(MQL5_DEBUGGING)) Print("Новый бар",New_Time[0],"старый бар",Old_Time);
         Old_Time=New_Time[0];   // сохраняем время бара
        }
     }
   else
     {
      Alert("Ошибка копирования времени, номер ошибки =",GetLastError());
      ResetLastError();
      return;
     }
//--- советник должен проверять условия совершения новой торговой операции только при новом баре
   if(IsNewBar==false)
     {
      return;
     }
//--- Имеем ли мы достаточное количество баров на графике для работы
   int Mybars=Bars(_Symbol,_Period);
   if(Mybars<60) // если общее количество баров меньше 60
     {
     Alert("На графике менее 60 баров, советник работать не будет!!");
     return;
     }
return; 
}
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 

Здравствуйте!


Тыкните мне, пожалуйста, где почитать ответ на свой вопрос.

Есть советник, в него зашито две стратегии, которые открывают сделки по разным прицнипам. В итоге формируется общая позиция.

Чуть позднее мне надо понять, какой вклад в позицию внесла каждая стратегия. То есть какой стратегией (или двумя) сформирована позиция.

Как это сделать?


Спасибо!

 
sanderz:

Здравствуйте!


Тыкните мне, пожалуйста, где почитать ответ на свой вопрос.

Есть советник, в него зашито две стратегии, которые открывают сделки по разным прицнипам. В итоге формируется общая позиция.

Чуть позднее мне надо понять, какой вклад в позицию внесла каждая стратегия. То есть какой стратегией (или двумя) сформирована позиция.

Как это сделать?


Спасибо!

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

Спасибо за ответ. Я сделал через статические переменные, которые меняют своё значение, если позиция по стратегии открыта (при закрытии и стоп-лоссе тоже меняются значения). В общем так работает нормально, но я понимаю, что после перезапуска советника он потеряет свои ордера.

Документация по MQL5: Основы языка / Переменные / Статические переменные
Документация по MQL5: Основы языка / Переменные / Статические переменные
  • www.mql5.com
Основы языка / Переменные / Статические переменные - Документация по MQL5
 
почему не тикают бабки?
Файлы:
965pp1ixr4.png  2000 kb
 
sneak:
почему не тикают бабки?
апдейт расчета не часто . раз в сутки наверно.
 

спс друг помог ..буду знать

а то компы в подвале стоят  ....биткойны майнят поц отдыхает.. пусь тож ченить делает

 

Не пойму, почему функция возвращает 0:

int BarsAmountPassed(datetime open_time)
  {
   datetime time_array[];
   int n;
   Print("inpupt time=",TimeToString(open_time));
   CopyTime(_Symbol,_Period,open_time,TimeCurrent(),time_array);
   n=ArraySize(time_array);
   Print("number of elements in array=",n);
   return(n);
  }

Вызываю так например:

int bars;
bars=BarsAmountPassed(1365198000);  
Print(__FUNCTION__+": Баров прошло с этого времени ",bars);
n пишет правильное, а возвращает 0.
 
tor4en:

Не пойму, почему функция возвращает 0:

Вызываю так например:

n пишет правильное, а возвращает 0.
Странно, если меняю тип функции на short или double, то возвращает расчитанное значение (получается 4 в данном примере). А с int 0.
Причина обращения: