double parab(string symb)
{
double parabolic = iSAR(symb,TF_Par,Step,MaxS,0);
if(iClose(symb,TF_Par,0)>parabolic) return(1);
if(iClose(symb,TF_Par,0)<parabolic) return(-1);
return(0);
}
//--- переменная для хранения хэндла индикатора iSAR
int SAR_handle;
/////////////////////
int parab(string symbb)
{
double parabolic = iSARf(symb,TF_Price,Step,MaxS,0);
if(iClose(symbb,TF_Price,0)>parabolic) return(1);
if(iClose(symbb,TF_Price,0)<parabolic) return(-1);
return(0);
}
////////
double iClose( string symbol_name, int timeframe, int start_pos){
double close_array[]; int count=1;
CopyClose(
symbol_name, // имя символа
periodd(timeframe), // период
start_pos, // откуда начнем
count, // сколько копируем
close_array // массив для копирования цен закрытия
);
return(close_array[0]); }
Я же писал. В 4 версии пока только вход по AVG работает+ТП и СЛ.ошибка в журнале советника:
cannot load indicator 'Moving Average' [4302]
cannot load indicator 'Parabolic SAR' [4302]
cannot load indicator 'Accelerator Oscillator' [4302]
но в терминале данные индикаторы есть,как можно исправить?
терминал MT5 от Alpari
Спасибо за объяснение.В MT5 работа с индикаторами организована не так. Тем способом, который выбран в вашем сове, хэндлы можно создавать только в OnInit, а извлекать данные (CopyBuffer) - по ходу пьесы (OnTick). Но поскоку у вас дафига пар и ТФ, и хэндлов будет туева хуча. И ещё - система мультивалютная, а срабатывает по приходу тика одной пары. Не вникал из чего именно извлекаете сигналы, но пока придёт тик этой пары, на др парах может натикать стока, что пролетит мимо сигнала
atr = ATR(symb); par = parab(symb); ACf = AC(symb); Dam = Damiani(symb);
sp = spread(symb); DfMA = Distance_from_MA(symb);
http://forexsystemsru.com/sovetniki/66250-sovetnik-dc-77.html#post512225Хотелось бы попробовать реализовать свою версию. Если не затруднит, дайте ссылку на описание ТС.
Уху! Спасибо!Хай народ.
Пофиксал тут пару ошибок в советнике из первого поста:
1). В функциях 'double CalculateStrengthPairsTF' и всех индикаторных типа 'double iSARf' вызовы SymbolSelect обернуты в 'if (!SymbolSelect(...)) return(0.0);' ибо нефик калькулировать символы, не существующие в конкретном ДЦ.
2). Пофикшен 'double iMAf', а именно - вызов iMA, который и вызывал кучу ошибок 4202. Там в вызове iMA в качестве периода передавалось не обычное int значение period, а оно зачем-то преобразовывалось в timeframe как periodd(period).
Советника приаттачил.
Уху! Спасибо!
Низкий поклон от меня!(только что вклонился)
А для mq4 уже неактуально исправлять ошибки?Как и обещал - новая версия советника.
Пофикшено много чего, из критичного - в первоначальной версии некорректно работало назначение Reverse-переменных. Т.е. как только по одной паре срабатывал реверс - нереверсивные значения перезаписывались реверсивными, т.е. советник начинал использовать только реверсивные переменные.
Кроме того, для каждого вызова индикатора включен вызов IndicatorRelease(). Это не здОрово с точки зрения performance, но для оценки работы советника потянет.
Также пофикшены типы и имена переменных, преобразование типов и т.д. - так что теперь советник компилируется без тыщи варнингов.
Ну и выбор фикс.лот/процент депо работал наоборот.
Было бы неплохо, если бы кто-нить из программеров сравнил эту версию советника с первоначальной на предмет непреднамерянных косяков с моей стороны - а то, может, я чего-то не заметил.
Гы. MQL4 без ошибок. Или ты ветки перепутал?А для mq4 уже неактуально исправлять ошибки?
"Валютные пары"; //валютные пары принимающие участие в торгах
EURUSD
EURJPY
...
Lot //лот
Enter //уровень AVG валюты для открытия ордера(+ и -)
Exit = 30; //уровень AVG валюты для закрытия ордера(+ и -)
Spread_Limit = 6; //лимит величины спреда
Close_Profit_for2orders //общий профит для 2 ордеров
koef_close_profit //коэфициент для общего профита для 2-их ордеров(для сумы 3-их и каждых последующих ордеров)
dop_symb //дополнительный символ для брокеров с нестандартыми названиями валют
TF_Price //ТФ для MA,AC,PAR
"Настройки для реверса"; //настройки если реверс включён
"Damiani indicator"; //настройки индикатора. используется для определения вкл\выкл реверса
"Moving avarage"; //настройки индикатора. используется как фильтр входа
"Parabolic"; //настройки индикатора. используется для закрытия ордера
"ATR"; //настройки индикатора. используется как фильтр входа
"Accelerator Oscillator"; //настройки индикатора. используется как фильтр входа
TP; //тейк профит для 1-го ордера
SL; //стоп лос для 1-го ордера
"Безубыток" //настройки безубытка
BULevel //на сколько пунктов в + должна зайти цена чтобы сработал безубыток
BUsize //на сколько пунктов в + перемистится СЛ после срабатывания безубытка
"Время работы" //со скольки до скольки будет работать советник
StartHour //время начала работы
extStopHour //время конца работы
Friday_close_orders_hour //время закрытия ордеров в пятницу
"Служебное" //настройки ордера
slip=3 //проскальзывание
MaxAttempts=14 //максимальное количество попыток открыть ордер
MAGIC=14446 //меджик намбер ордера
Comment_ //комментарий к ордеру
"Dashboard" //настройки индикатора дашбоард
FontSize //размер индикатора
Period_ //период расчёта МА и ATR
"Настройки цвета данных" //цвет данных выводимых на экран
eurusd
eurjpy
...
"Настройки размера данных" //размер данных выводимых на экран
Это труба. Тести на 1М по ценам открытия.Поясните плизс что за ошибку выдаёт:
NG 0 DC 14_V2 31012013 (AUDJPY,H1) 10:10:47 функции
GL 0 DC 14_V2 31012013 (AUDJPY,H1) 10:10:52 CheckAVGfresh0(1, AVG_eur, AVG_usd)false
JI 0 DC 14_V2 31012013 (AUDUSD,H1) 10:10:52 CheckAVGfresh0(1, AVG_eur, AVG_usd)false
HF 0 DC 14_V2 31012013 (GBPJPY,H1) 10:10:52 CheckAVGfresh0(1, AVG_eur, AVG_usd)false
DR 0 DC 14_V2 31012013 (EURUSD,H1) 10:10:52 CheckAVGfresh0(1, AVG_eur, AVG_usd)false
QH 0 DC 14_V2 31012013 (EURJPY,H1) 10:10:52 CheckAVGfresh0(1, AVG_eur, AVG_usd)false
MF 0 DC 14_V2 31012013 (GBPUSD,H1) 10:10:52 CheckAVGfresh0(1, AVG_eur, AVG_usd)false
CS 0 DC 14_V2 31012013 (AUDUSD,H1) 10:11:15 TERMINAL_DISK_SPACE Объем свободной памяти на диске для папки MQL5, в Mb 20 TERMINAL_MEMORY_PHYSICAL Размер физической памяти в системе, в Mb 14 TERMINAL_MEMORY_TOTAL Размер памяти, доступной процессу терминала (агента), в Mb 15 TERMINAL_MEMORY_AVAILABLE Размер свободной памяти процесса терминала (агента)в Mb 16 TERMINAL_MEMORY_USED Размер памяти, использованной терминалом (агентом), в Mb 17
JE 0 DC 14_V2 31012013 (AUDUSD,H1) 10:11:15 TERMINAL_MEMORY_TOTAL Размер памяти, доступной процессу терминала (агента), в Mb 15 TERMINAL_MEMORY_AVAILABLE Размер свободной памяти процесса терминала (агента)в Mb 16 TERMINAL_MEMORY_USED Размер памяти, использованной терминалом (агентом), в Mb 17
CP 0 DC 14_V2 31012013 (AUDUSD,H1) 10:11:15 TERMINAL_MEMORY_AVAILABLE Размер свободной памяти процесса терминала (агента)в Mb 16 TERMINAL_MEMORY_USED Размер памяти, использованной терминалом (агентом), в Mb 17
RN 0 DC 14_V2 31012013 (AUDUSD,H1) 10:11:15 TERMINAL_MEMORY_USED Размер памяти, использованной терминалом (агентом), в Mb 17