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

 
new-rena:

Встречный вопрос.

Как Вы думаете - движение по любой валютной паре: график, цены бид и аск и прочее, зависят от набора Ваших переменных?

Движение курса от переменных не зависит, но трейдер пытается найти закономерности в движении, и исходя из этого выбирает переменные (входные данные) для открытия, ведения и закрытия позиции. Ведь торговая система - набор неких правил, которые по задумке автора предназначены для прибыльной работы. Возможно распределение прибыли и убытков случайное, но их пропорция разная и поэтому получаются прибыльные торговые системы. Наверно так.
 
Евгений:
Движение курса от переменных не зависит, но трейдер пытается найти закономерности в движении, и исходя из этого выбирает переменные (входные данные) для открытия, ведения и закрытия позиции. Ведь торговая система - набор неких правил, которые по задумке автора предназначены для прибыльной работы. Возможно распределение прибыли и убытков случайное, но их пропорция разная и поэтому получаются прибыльные торговые системы. Наверно так.
В принципе Вы сами ответили на свой вопрос. То есть на одном и том же движении цены можно получить следующее; прибыль-убыток = CONST
 
подскажите функцию на ограничение, в эксперт хочу засунуть запрет на продажу или покупку от скользящей средней
 
KoltRU:
подскажите функцию на ограничение, в эксперт хочу засунуть запрет на продажу или покупку от скользящей средней
сделал проще, добавил условие на открытие
 

Заколдобило. Не передается  ссылка на массив в функцию.

void GetIndValue(int IndNo, int Vol, double *out[]){;};

 с этим double *out[] - хоть как его не пиши - все ошибки.

 'BatIndicators.mqh' BatIndicators.mqh 1 1

'*' - pointer cannot be used BatIndicators.mqh 18 45

'out' - arrays are passed by reference only BatIndicators.mqh 18 46

2 error(s), 0 warning(s) 3 1

либо одна либо другая, либо вместе. Помнится раньше без проблем было, или это в С. ) 


 
Yuriy Asaulenko:

Заколдобило. Не передается  ссылка на массив в функцию.

 с этим double *out[] - хоть как его не пиши - все ошибки.

 'BatIndicators.mqh' BatIndicators.mqh 1 1

'*' - pointer cannot be used BatIndicators.mqh 18 45

'out' - arrays are passed by reference only BatIndicators.mqh 18 46

2 error(s), 0 warning(s) 3 1

либо одна либо другая, либо вместе. Помнится раньше без проблем было, или это в С. ) 


Попробуйте так

void GetIndValue(int IndNo, int Vol, double &out[]){}
 
Andrey Barinov:

Попробуйте так

Спасибо. 
 

//--- получим номер нового подокна, в которое попытаемся добавить индикатор

         int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);

Вот этот код смотрю https://www.mql5.com/ru/docs/chart_operations/chartindicatoradd 

В примере показывают как в подокно уставить индикатор, а если не нужно подокно, просто на примере мувига как сделать?  

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Antoshkin:

//--- получим номер нового подокна, в которое попытаемся добавить индикатор

         int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);

Вот этот код смотрю https://www.mql5.com/ru/docs/chart_operations/chartindicatoradd 

В примере показывают как в подокно уставить индикатор, а если не нужно подокно, просто на примере мувига как сделать?  

Если нужно добавить индикатор в главное окно, то:

sub_window

[in]  Номер подокна графика. 0 означает главное окно графика. Чтобы добавить индикатор в новое окно, параметр должен быть на единицу больше, чем индекс последнего существующего окна, то есть равен CHART_WINDOWS_TOTAL. Если значение параметра превышает значение CHART_WINDOWS_TOTAL, то новое окно создано не будет, индикатор не будет добавлен.

 
Karputov Vladimir:

Если нужно добавить индикатор в главное окно, то:

//+------------------------------------------------------------------+
//|                                                         0000.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

input int MA_Period=21; 
input int MA_Shift=0; 
input ENUM_MA_METHOD MA_Method=MODE_SMA;

int MA_handle=INVALID_HANDLE; 
//+------------------------------------------------------------------+ 
//| Expert initialization function                                   | 
//+------------------------------------------------------------------+ 
int OnInit() 
  { 
  
   MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );
//--- попробуем добавить индикатор на график 
AddIndicator();

   return(INIT_SUCCEEDED); 
  } 

//+------------------------------------------------------------------+ 
//| Функция проверки и добавления индикатора на график               | 
//+------------------------------------------------------------------+ 
bool AddIndicator() { if(MA_handle==INVALID_HANDLE) 
{ Print(__FUNCTION__,"  Создаем индикатор ");

 MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );
if(MA_handle==INVALID_HANDLE) 
{ 
 Print("Не удалось создать индикатор . Код ошибки ",GetLastError()); 
 } 
  }     
//--- сбросим код ошибки 
   ResetLastError(); 
//--- накладываем индикатор на график 
  
   Print("Mа построен "); 
//--- получим номер нового подокна, в которое добавим индикатор  
   int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); 
   PrintFormat("Добавляем индикатор на окно %d графика",subwindow); 
   if(!ChartIndicatorAdd(0,subwindow,MA_handle)) 
     { 
      PrintFormat("Не удалось добавить индикатор  на окно %d графика. Код ошибки  %d", 
                  subwindow,GetLastError()); 
     } 
   return(true); 
  } 
void OnDeinit(const int reason)
{
MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );

 Здравствуйте Владимир

Видимо я неправильно сформулировал вопрос ,Вы не поняли ..

мне подокно не нужно , индикатор надо поставить на график цены  так как ставится  стандартная машка 

это я рассматриваю как пример, и пытаюсь понять . 

 

А конечный результат  хочу чтобы  индикатор установленный  на график имел свой номер , чтобы можно было созданной на графике копкой "Добавить" набрать  необходимое количество копий .... и удалить так же  один ,выбранный  кнопкой  крестика ........ ну там  много всяких еще фантазий   пока  не хочу   о них писать))

Причина обращения: