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

 
Aleksandr Slavskii #:
double TTVV = m_symbol.TickValue();

Спасибо большое!

 

Я правильно понимаю, что у экспертов нет доступа к буферу обмена Windows (без использования dll)?

Если есть, то каким образом можно из буфера обмена задать значение в переменную эксперта?

 
HarDoX #:

Я правильно понимаю, что у экспертов нет доступа к буферу обмена Windows (без использования dll)?

Если есть, то каким образом можно из буфера обмена задать значение в переменную эксперта?

Нет конечно такого доступа.

 
HarDoX #:

Я правильно понимаю, что у экспертов нет доступа к буферу обмена Windows (без использования dll)?

Если есть, то каким образом можно из буфера обмена задать значение в переменную эксперта?

С использованием dll есть готовые варианты.

 

День добрый, коллеги!

Начал изучать массивы, но пока не могу совладать с ними.

Идея такова:

1. У нас есть МА200

2. Я хочу занести в массив максимальные отклонения от МА200. Проматываем назад с 1-й свечи 200 баров, и записываем все 200 отклонений, которые выше МА200. 

3. Выбираем из них 50 самых больших.

Ну, пока хватит, остальное я, думаю, что доделаю.


Я написал код функции, но журнал пуст (там были принты), ничего не работает)


//+------------------------------------------------------------------+
//|      Калькуляция отклонений                                      |
//+------------------------------------------------------------------+
void PricePeaks()
  {
   
   
   //1. Создать массив для МА
   int totalBars = 200;
   double MAValue[];
   ArraySetAsSeries(MAValue,true);
   double bufferMA = CopyBuffer(SlowHandle,0,1,totalBars,MAValue);
   
   //2. Создать массив для цен High
   
   int nemberBars = 200;
   double highPrices[];
   
   int cpoied = CopyHigh(_Symbol,PERIOD_D1,1,totalBars,highPrices);
   //3. Создать массив для хранения отклонений
   
  // 4. Запустить цикл, в котором я переберу последние 500 баров, и когда хай будет > МА, я буду записывать такой Хай в массив Dev
   
  // 5. После цикла У меня будет массив, заполненный значениями. Делаю сортировку ArraySort (от меньшего к большему)
   
  // 6. Нахожу 50 самых последних записей и сохраняю их в файл, например. 
   
   


 }
 
Sergey Izhutov #:


Я написал код функции, но журнал пуст (там были принты), ничего не работает)

Во вкладке Эксперты, что-нибудь отображается?

С уважением, Владимир.

 
MrBrooklin #:

Во вкладке Эксперты, что-нибудь отображается?

С уважением, Владимир.

Теперь да, журнал заполняется. Я пока принт сделал:

 Print("bufferMA ",bufferMA);
   Print("copied = ",copied);

Принтует значение 500 в оба буфера

 
Sergey Izhutov #:

Теперь да, журнал заполняется. Я пока принт сделал:

Принтует значение 500 в оба буфера

Значения MA у вас попадают в массив MAValue. А переменная bufferMA должна быть типа int, и в неё возвращается количество скопированных значений. Не понятно, почему у вас туда попадает 500, а не 200.
 
Yuriy Bykov #:
Значения MA у вас попадают в массив MAValue. А переменная bufferMA должна быть типа int, и в неё возвращается количество скопированных значений. Не понятно, почему у вас туда попадает 500, а не 200.

Это я по ходу пьесы изменил totalBars на 500. Большое спасибо за помощь!


Теперь я хочу

//3. Создать массив для хранения отклонений

Я не понимаю, как лучше сделать. У меня есть два массива с ценами теперь (значения МА и хаи).Таким образом, мне надо перебрать "totalBars" баров циклом? И когда хай будет  был больше МА200, и записать это отклонение в массив?

 
Sergey Izhutov #:

Теперь я хочу

3. Создать массив для хранения отклонений

Я не понимаю, как лучше сделать. У меня есть два массива с ценами теперь (значения МА и хаи).Таким образом, мне надо перебрать "totalBars" баров циклом? И когда хай будет  был больше МА200, и записать это отклонение в массив?

Почти всё правильно. Объявляете новый массив. Устанавливаете его размер через вызов ArrayResize(totalBars). Затем в цикле каждому элементу нового массива просто присваиваете соответствующую разницу элементов из хай и МА. Ну а потом уже делайте с ними всё остальное - сортируйте и проходите по первым 50 элементам с сохранением в файл.