ну так шо, товарищи программисты? я автор темы и продолжаю спрашивать совет.
значит в шапке объявил структуру
и вот самое интересное, ЧТО ЭТО? в онТИК определил условие, если нет открытых ордеров то: если быстрая машка больше медленной машки, то: открываем ордер
ну так шо, товарищи программисты? я автор темы и продолжаю спрашивать совет.
значит в шапке объявил структуру
и вот самое интересное, ЧТО ЭТО? в онТИК определил условие, если нет открытых ордеров то: если быстрая машка больше медленной машки, то: открываем ордер
Если в условии должно быть пересечение МА, то на первом баре было < меньше, а на нулевом стало > больше. А в вашем условии на нулевом > больше и на первом > больше.
учить программирование (а это на самом деле стиль мышления, а не какой-то язык) по MQL - сплошная нервотрёпка себе и окружению.
пройдитесь по ссылкам - там всё просто, на уровне школы (даже местами начальной), но хоть какое-то введение в алгоритмы и их запись. Иначе вы каждом чихе будете обращаться в форум и ожидать ответа, а это потеря времени, а время-деньги.
PS/ да и всем советую ознакомиться, scratch изнутри вообще шедевр - дедушка современно программирования
ну так шо, товарищи программисты? я автор темы и продолжаю спрашивать совет.
значит в шапке объявил структуру
и вот самое интересное, ЧТО ЭТО? в онТИК определил условие, если нет открытых ордеров то: если быстрая машка больше медленной машки, то: открываем ордер
вопрос. почему открывается ордер на каждом тике?
Ну так шо, товарищ автор темы?
Вот Вам ещё месяц назад подсказывали, а Вы даже внимание не обращаете:
Здравствуйте, столкнулся с такой проблемой. Эксперту нужны данные скользящей средней на нулевом и первом баре для анализа ситуации и для дальнейших расчётов.
Функция он OnCalculate впринципе придумана для написания индюка. А в советнике я вынес эту функцию отдельно но не могу дать ума как обратиться к ней из OnTick
Sergey Lobzankin: Здравствуйте, столкнулся с такой проблемой. Эксперту нужны данные скользящей средней на нулевом и первом баре для анализа ситуации и для дальнейших расчётов.
Функция он OnCalculate впринципе придумана для написания индюка. А в советнике я вынес эту функцию отдельно но не могу дать ума как обратиться к ней из OnTick
Не нужно даже пытаться вынести OnCalculate из индикатора в советник! Просто в советнике необходимо обратится к индикатору (используя хенд индикатора) и получить данные.
Пример работы с iMA и с iStdDev в коде iMA iStdDev - выдержка кода из OnTick, получение данных с индикаторов iMA
Не нужно даже пытаться вынести OnCalculate из индикатора в советник! Просто в советнике необходимо обратится к индикатору (используя хенд индикатора) и получить данные.
Пример работы с iMA и с iStdDev в коде iMA iStdDev - выдержка кода из OnTick, получение данных с индикаторов iMA
подозреваю что вы чертовски правы)))) сейчас попробую поиграю с массивами через ...Array...
а вот ещё... я получил хендлы сразу в шапке експерта
externint zazor = 0;
externdouble Lots = 0.1;
externint TrailingStop = 15;
externint TrailingStep = 2;
externint Magic = 123;
externint Slippage = 5;
intDigits;
int timeprev=0;
int ticket;
double price,TP,SL,lastlot;
string;
int ima1_handle = iMA (Symbol(),0,14,0,MODE_EMA,PRICE_CLOSE); //хендлint ima2_handle = iMA (Symbol(),0,64,0,MODE_EMA,PRICE_CLOSE); //хендлint Stoch_handle = iStochastic (Symbol(),0,20,15,15,MODE_EMA,STO_CLOSECLOSE);//хендлint ATR_handle = iATR (Symbol(),0,21); //хендлdouble ima1_massiv [2]; //статический массив для быстрой машки
а на форумах кто как это делают,... все по разному? ктото в онИнит, ктото в ОнТик, просто дело в том что при моём раскладе в ОнТик я копирую данные в массив и получаю же количество копируемых элементов
voidOnTick()
{
int ima_count1 = CopyBuffer(ima1_handle,0,1,2,ima1_massiv); //скопировал данные из 2х буферов быстрой машкиstring str_ima1 = IntegerToString(ima_count1); //отладочнаяprintf("мой первый хендл = " + str_ima1); //отладочная
}
P.S. кстати, тестер увидел все индикаторы, хендлы которых получены в шапке эксперта и отрисовал всё на графике визуализатора
но, ребята, данные скопированы в массив, не спорю, но мне же нужно получить конкретные цифры, то есть если машка на последнем тике текущего бара равна 1,32456, то я должен получить эту цифру в журнал (чтоб убедиться что цифра получена на самом деле), мне нужно ВЫТАЩИТЬ ЭТУ КОНКРЕТНУЮ ИНФОРМАЦИЮ в тип double,
для того чтоб вычислить количество пунктов типа int между двумя разными машками. как получить ЭТО значение?
В MQL5 существует несколько вариантов вызова индикаторов, и осуществляются они в основном при помощи функций IndicatorCreate() и iCustom(). Причем эти функции лишь возвращают хендл индикатора, и дальнейшая работа с индикаторами ведется именно через него. Так что же такое хендл? Как работать с функциями IndicatorCreate() и iCustom()? И как...
но, ребята, данные скопированы в массив, не спорю, но мне же нужно получить конкретные цифры, то есть если машка на последнем тике текущего бара равна 1,32456, то я должен получить эту цифру в журнал (чтоб убедиться что цифра получена на самом деле), мне нужно ВЫТАЩИТЬ ЭТУ КОНКРЕТНУЮ ИНФОРМАЦИЮ в тип double,
для того чтоб вычислить количество пунктов типа int между двумя разными машками. как получить ЭТО значение?
Вы вообще смотрите и читаете то, что Вам говорят? Я же привёл пример в посте #76. Как раз идёт получение данных с двух iMA:
Здесь два индикатора iMA - "Fast" и "Normal". Данные с этих двух индикаторов получаем в массивы ma_fast и ma_normal соответственно. Запрашиваем от бара #start_pos в количестве count.
А дальше уже обращаемся к полученным данным (в этом примере обращаемся к данным на баре #0 )
ну так шо, товарищи программисты?

я автор темы и продолжаю спрашивать совет.
значит в шапке объявил структуру
и вот самое интересное, ЧТО ЭТО?

в онТИК определил условие, если нет открытых ордеров
то:
если быстрая машка больше медленной машки,
то: открываем ордер
вопрос. почему открывается ордер на каждом тике?
ну так шо, товарищи программисты?
я автор темы и продолжаю спрашивать совет.
значит в шапке объявил структуру
и вот самое интересное, ЧТО ЭТО?
в онТИК определил условие, если нет открытых ордеров
то:
если быстрая машка больше медленной машки,
то: открываем ордер
вопрос. почему открывается ордер на каждом тике?
Значит на каждом тике выполнено условие.
Если в условии должно быть пересечение МА, то на первом баре было < меньше, а на нулевом стало > больше. А в вашем условии на нулевом > больше и на первом > больше.
https://code.org/
https://scratch.mit.edu/
учить программирование (а это на самом деле стиль мышления, а не какой-то язык) по MQL - сплошная нервотрёпка себе и окружению.
пройдитесь по ссылкам - там всё просто, на уровне школы (даже местами начальной), но хоть какое-то введение в алгоритмы и их запись. Иначе вы каждом чихе будете обращаться в форум и ожидать ответа, а это потеря времени, а время-деньги.
PS/ да и всем советую ознакомиться, scratch изнутри вообще шедевр - дедушка современно программирования
ну так шо, товарищи программисты?
я автор темы и продолжаю спрашивать совет.
значит в шапке объявил структуру
и вот самое интересное, ЧТО ЭТО?
в онТИК определил условие, если нет открытых ордеров
то:
если быстрая машка больше медленной машки,
то: открываем ордер
вопрос. почему открывается ордер на каждом тике?
Ну так шо, товарищ автор темы?
Вот Вам ещё месяц назад подсказывали, а Вы даже внимание не обращаете:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Никогда не изучал программирование. но хочу написать советник
Alexey Volchanskiy, 2018.04.10 17:47
Есть такая кнопочка "Код", слева от кнопки с буквами Aa. Вы ей оформите, так как вставлять код картинкой- это ужас ужасный )
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Никогда не изучал программирование. но хочу написать советник
Konstantin Nikitin, 2018.04.10 21:18
Ну что-то сверх естественного у вас там нет. Так что лучший вариант. Выложить его тут, но только через

Кто-то да подскажет что путного.
И до сих пор вставляете код картинкой.
Здравствуйте, столкнулся с такой проблемой. Эксперту нужны данные скользящей средней на нулевом и первом баре для анализа ситуации и для дальнейших расчётов.
Не нужно даже пытаться вынести OnCalculate из индикатора в советник! Просто в советнике необходимо обратится к индикатору (используя хенд индикатора) и получить данные.
Пример работы с iMA и с iStdDev в коде iMA iStdDev - выдержка кода из OnTick, получение данных с индикаторов iMA
Не нужно даже пытаться вынести OnCalculate из индикатора в советник! Просто в советнике необходимо обратится к индикатору (используя хенд индикатора) и получить данные.
Пример работы с iMA и с iStdDev в коде iMA iStdDev - выдержка кода из OnTick, получение данных с индикаторов iMA
подозреваю что вы чертовски правы))))
сейчас попробую поиграю с массивами через ...Array...
а вот ещё...
я получил хендлы сразу в шапке експерта
а на форумах кто как это делают,... все по разному? ктото в онИнит, ктото в ОнТик,
P.S. кстати, тестер увидел все индикаторы, хендлы которых получены в шапке эксперта и отрисовал всё на графике визуализаторапросто дело в том что при моём раскладе в ОнТик я копирую данные в массив и получаю же количество копируемых элементов
вот здесь есть статья, которая понятно объясняет как реализовать доступ к данным индикатора
https://www.mql5.com/ru/articles/43
но, ребята, данные скопированы в массив, не спорю, но мне же нужно получить конкретные цифры, то есть если машка на последнем тике текущего бара равна 1,32456, то я должен получить эту цифру в журнал (чтоб убедиться что цифра получена на самом деле), мне нужно ВЫТАЩИТЬ ЭТУ КОНКРЕТНУЮ ИНФОРМАЦИЮ в тип double,
для того чтоб вычислить количество пунктов типа int между двумя разными машками. как получить ЭТО значение?
вот здесь есть статья, которая понятно объясняет как реализовать доступ к данным индикатора
https://www.mql5.com/ru/articles/43
но, ребята, данные скопированы в массив, не спорю, но мне же нужно получить конкретные цифры, то есть если машка на последнем тике текущего бара равна 1,32456, то я должен получить эту цифру в журнал (чтоб убедиться что цифра получена на самом деле), мне нужно ВЫТАЩИТЬ ЭТУ КОНКРЕТНУЮ ИНФОРМАЦИЮ в тип double,
для того чтоб вычислить количество пунктов типа int между двумя разными машками. как получить ЭТО значение?
Вы вообще смотрите и читаете то, что Вам говорят? Я же привёл пример в посте #76. Как раз идёт получение данных с двух iMA:
Здесь два индикатора iMA - "Fast" и "Normal". Данные с этих двух индикаторов получаем в массивы ma_fast и ma_normal соответственно. Запрашиваем от бара #start_pos в количестве count.
А дальше уже обращаемся к полученным данным (в этом примере обращаемся к данным на баре #0 )