Страницы: 1
Ответить

Вопрос по языку программирования экспертов в Metatrader'е

 
А именно: простейшие функции High, Low и др. возвращают, соответственно, минимум, максимум (и т.д.) цены i периодов назад.

Вопрос: как величину этого самого периода можно изменять? Т.е. сейчас у меня (видимо, по умолчанию) High возвращает макс. цену за прошлую минуту, а мне надо, чтобы эта функция возвращала макс. цену, скажем, за прошлый пятиминутный интервал. Как это сделать, подскажите, плз?

И еще, может кто-то знает где в онлайне есть достаточно подробный учебник или справочник по языку скриптов для Metatrader? Можно на английском.
 
Попробуйте это: www.metaquotes.ru/advisors/mql.htm.
 
Там я нашел только вот это:


Highest
- возвращает смещение относительно текущего бара наибольшего значения Open, Low, High, Close или Volume (в зависимости от параметра type) за определённое число периодов.
Синтаксис: Highest( type, beginbar, periods )
Параметры:
type - возвращаемая переменная, может принимать одно из значений: MODE_OPEN, MODE_LOW, MODE_HIGH, MODE_CLOSE, MODE_VOLUME
beginbar - смещение, показывающее, начиная с какого бара от текущего надо брать данные. Указанный бар является самым левым в диапазоне, так как расчёт производится слева направо.
periods - число периодов, на которых производится расчёт.

Не уверен, что именно эта функция мне нужна. Да и как-то путано объясняется, как она работает и что возвращает.
 
а мне надо, чтобы эта функция возвращала макс. цену, скажем, за прошлый пятиминутный интервал. Как это сделать, подскажите, плз?

Подсказываю: Напишите сообственную функцию для нахождения максимума - минимума за предыдущий период = н ;)

Можете перевести на макроязык метатрейдера следующие функции на С++ :


(*v - указатель на массив данных (соответственно максимумов или минимумов баров))

// TRAPSINDS.C - Indicator library.
// Copyright © 1999. All Rights Reserved.
// Jeffrey Owen Katz, Ph.D.
// Scientific Consultant Services, Inc.

float Highest (float *v, int n, int cb) {
// Highest bar in the n-bar period ending at bar cb
float ans; int i;
if((i=cb-n+1)<1) FatalError("Highest: Insufficient lookback");
for(ans=v; i<cb; i++) { if(v>ans) ans=v; }
return(ans);
}

float Lowest (float *v, int n, int cb) {
// Lowest bar in the n-bar period ending at bar cb
float ans; int i;
if((i=cb-n+1)<1) FatalError("Lowest: Insufficient lookback");
for(ans=v; i<cb; i++) { if(v<ans) ans=v; }
return(ans);
}.
 
Цитата
ClownМожете перевести на макроязык метатрейдера следующие функции на С++ :


А что это за программа, в которой С++ используется для написания экспертов?.
 
Нет никакой специальной оболочки для трейдеров (программы) которая компилирует С++.
Существуют ANSI C++ совместимые библиотеки для трейдеров (Индикаторы, оптимизаторы, функции отчетов, торговый симулятор).
А Вы соответственно используя любой доступный Вам компилятор (Я работаю в Microsoft Visual C++) комбинируете их, пишите систему и тестируете ее..
Страницы: 1
Ответить
Читают тему (гостей: 1)

Вход