Ответить
14.01.2016, 23:07
Аватар для fsfs
fsfs fsfs на форуме Новичок форума
Регистрация: 18.01.2013 / Сообщений: 95
Поблагодарили 10 раз(а) / Репутация: 12
Привет.Подскажите пожалуйста!Есть индикатор стрелочник,ставиш индикатор на график,стрелки есть но при первом тике тике удаляет стрелки.В чем может быть проблема?
15.01.2016, 06:14
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Привет.Подскажите пожалуйста!Есть индикатор стрелочник,ставиш индикатор на график,стрелки есть но при первом тике тике удаляет стрелки.В чем может быть проблема?
Может какой-то другой индикатор стоит на графике и удаляет все объекты. Может так код написан и ещё ХХХ вариантов.
fsfs 
20.01.2016, 10:18
Аватар для HUDSON
HUDSON HUDSON вне форума Новичок форума
Регистрация: 09.01.2016 / Сообщений: 92
Поблагодарили 8 раз(а) / Репутация: 9

По умолчанию MT4 ( тестер стратегий )

Тестирую на демо счете советников . После каждого теста в отчете указывается спред . Проблема в том что судя по моему опыту он кое где округляется до пунктов . Хотя спреды и в долях пунктов есть много у кого .

MarketInfo(Symbol(),MODE_SPREAD) вот этим высчитываю текущий спред на данный момент . эта функция выводит тот же результат округляя до целых . Но если посмотреть на график и найти сделки которые закрылись по той же котировке что и открылись , то если посчитать спред то он кое где больше чем заявленный на десятые доли пункта . ВОПРОС ТАКОЙ : я чего то не понимаю ? или у разрабов библиотеки кривоваты ? Либо тестер кривоват ? Мне очень важно высчитывать текущий спред с максимальной точностью . Просветите кто нибудь пожалуйста...
20.01.2016, 12:20
Аватар для ansol
ansol ansol на форуме
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
HUDSON
За время прохождения команды на открытие ордера спред легко может поменяться, да вообще, у них введено понятие "проскальзывание" - т.е. сделка откроется вовсе не по тому, что вы видите в терминале, так что, высокая точность просто недостижима в принципе, условия такие ловкие
HUDSON 
20.01.2016, 14:05
Аватар для HUDSON
HUDSON HUDSON вне форума Новичок форума
Регистрация: 09.01.2016 / Сообщений: 92
Поблагодарили 8 раз(а) / Репутация: 9
Согласен что спред может поменяться за время открытия ордера но поголовно все сделки закрываются с одним и тем же минусом . открытие по одной цене и закрытие по той же . все поголовно . И такое возможно только на реальном счете где спред плавающий . Да и к тому же ордер на сервер пролетает за милисекунды какие то . там вероятность проскальзывания ничтожно мала . Тут проблема в чем то другом . Не спрашивал бы иначе .

ВСЯ СОЛЬ В ТОМ ЧТО ПЕРЕСЧИТАННЫЙ СПРЕД ВРУЧНУЮ НЕ СОВПАДАЕТ С ЗАЯВЛЕННЫМ В ОТЧЕТЕ ПОСЛЕ ТЕСТА СОВЕТНИКА . Разница в десятые доли пункта . Это вроде бы мало . Но для меня важно . ПОВТОРЮ ЕЩЕ РАЗ ! А Считать я умею .

Последний раз редактировалось HUDSON; 20.01.2016 в 14:12.
20.01.2016, 14:49
Аватар для ansol
ansol ansol на форуме
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
А комиссии нет? Комиссия бывает как раз в пунктах. Ну, т.е. если что-то фиксированное набрасывается, то явно комиссия, ИМХО.
А своп не влияет, т.е. сделки быстрые?
20.01.2016, 15:45
Аватар для HUDSON
HUDSON HUDSON вне форума Новичок форума
Регистрация: 09.01.2016 / Сообщений: 92
Поблагодарили 8 раз(а) / Репутация: 9
Своп ? Не знаком с понятием . Да сделки очень коротие , сверхкороткие позиции в 2-4 свечи . Стратегия такая . Матожидание мизер зато сделок туча . Вот поэтому и нужно спред считать очень точно до десятых долей . Чем больше сделок тем меньше матожидание в любом случае . Но вот например по евро доллару тестирую там нет этой накидки . спред верно выдает и в пересчете все верно . а вот пара AUDCAD к примеру вот с этой накидкой выходит .. возможно она действительно не от спреда ... раз на евродолларе все верно .

Последний раз редактировалось HUDSON; 20.01.2016 в 15:48.
20.01.2016, 17:21
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Тестирую на демо счете советников . После каждого теста в отчете указывается спред . Проблема в том что судя по моему опыту он кое где округляется до пунктов . Хотя спреды и в долях пунктов есть много у кого .

MarketInfo(Symbol(),MODE_SPREAD) вот этим высчитываю текущий спред на данный момент . эта функция выводит тот же результат округляя до целых . Но если посмотреть на график и найти сделки которые закрылись по той же котировке что и открылись , то если посчитать спред то он кое где больше чем заявленный на десятые доли пункта . ВОПРОС ТАКОЙ : я чего то не понимаю ? или у разрабов библиотеки кривоваты ? Либо тестер кривоват ? Мне очень важно высчитывать текущий спред с максимальной точностью . Просветите кто нибудь пожалуйста...
Так вопрос о тестере или демке? Ты говоришь о пунктах 4х значных или 5-ти?
21.01.2016, 07:38
Аватар для HUDSON
HUDSON HUDSON вне форума Новичок форума
Регистрация: 09.01.2016 / Сообщений: 92
Поблагодарили 8 раз(а) / Репутация: 9
Вопрос был в том что спред в отчете не всегда совпадает с реальным текущим . В ручную пересчитывал . на некоторых парах еще накидка к спреду какая то идет . которая не спред скорее всего а комиссия скорее всего, как правильно заметил "Ansol" . только тогда где она в отчете отображается я не вижу . как называется тоже не знаю .. Отдельный вопрос как нулевой спред сделать в тестере, вопрос тоже очень актуален . Ставишь ноль он текущий все равно )))) . И насчет пунктов . Они четырехзначные вроде везде ) пятый знак это доля пункта вроде везде )

Последний раз редактировалось HUDSON; 21.01.2016 в 07:42.
21.01.2016, 10:02
Аватар для vlad_123
vlad_123 vlad_123 на форуме Местный знаток
Регистрация: 29.01.2013 / Сообщений: 408
Поблагодарили 894 раз(а) / Репутация: 898
Вопрос был в том что спред в отчете не всегда совпадает с реальным текущим . В ручную пересчитывал . на некоторых парах еще накидка к спреду какая то идет . которая не спред скорее всего а комиссия скорее всего, как правильно заметил "Ansol" . только тогда где она в отчете отображается я не вижу . как называется тоже не знаю .. Отдельный вопрос как нулевой спред сделать в тестере, вопрос тоже очень актуален . Ставишь ноль он текущий все равно )))) . И насчет пунктов . Они четырехзначные вроде везде ) пятый знак это доля пункта вроде везде )
Текущий спред в тестере берется на момент начала теста. Если потом спред по паре меняется - это ведь никак не отражается в результатах теста. И при тестировании значение спреда остается неизменным и равно либо явно заданному в тестере значению, либо текущему (на момент начала теста) спреду.
Нулевой спред вряд ли выставишь - попробуй поставить 1.
4х/5ти-значность пункта зависит от свойств текущего аккаунта - если цена по тестируемому символу 4 знака, то и пункт - 4хзнак.
Вот если тестировать на 5тизнаке, а потом вручную пересчитывать для 4хзнака - тут и полезут дробные пункты.

На заказ не программирую.
21.01.2016, 17:32
Аватар для vlad_123
vlad_123 vlad_123 на форуме Местный знаток
Регистрация: 29.01.2013 / Сообщений: 408
Поблагодарили 894 раз(а) / Репутация: 898
Паходу - я тут раздумывал, как можно побольше пипсов насобирать, закрывая одни и те же позиции...
Сподвигло меня на это изменение требований MyFxBook'а к AutoTrade провайдерам, а именно - если раньше они требовали >10пипов на профитную сделку, то теперь Avg пипов на трейд - не менее 3. И если раньше мой сов подходил, то теперь нет.
Ну, в общем-то, и решение - закрывать убыточные сделки по возможности меньшим количеством операция (я раньше закрывал по 0.01 лота), а вот профитные - наоборот, закрывать по возможности наименьшими лотами.
Ну, и как результат - сегодня +6400 пипов
А функционал-то работает
Редко, но метко - сегодня тремя советниками (портфель из 3х счетов с разными рисками) собрал 14700+ пипсов

На заказ не программирую.
22.01.2016, 13:34
Аватар для monopolie
monopolie monopolie вне форума Новичок форума
Регистрация: 07.09.2012 / Сообщений: 46
Поблагодарили 5 раз(а) / Репутация: 6
Что нужно прописать в индикаторе что чтобы при соприкосновении с ценой этого индикатора был бы звуковой сигнал?
Что в конце что в начале, что в середине писать в коде?
Я на мку4 не писал. Писал программки на с++, но давно.
22.01.2016, 13:37
Аватар для ansol
ansol ansol на форуме
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
Что нужно прописать в индикаторе что чтобы при соприкосновении с ценой этого индикатора был бы звуковой сигнал?
Что в конце что в начале, что в середине писать в коде?
Я на мку4 не писал. Писал программки на с++, но давно.
Есть встроенная команда PlaySound("имя звука") - посмотри в хелпе описание.
22.01.2016, 13:46
Аватар для monopolie
monopolie monopolie вне форума Новичок форума
Регистрация: 07.09.2012 / Сообщений: 46
Поблагодарили 5 раз(а) / Репутация: 6
Ок. Спасибо. А как тогда прописать эту ситуацию соприкосновения цены с индикатором при которой должен быть звук?
22.01.2016, 13:54
Аватар для ansol
ansol ansol на форуме
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
Ок. Спасибо. А как тогда прописать эту ситуацию соприкосновения цены с индикатором при которой должен быть звук?
Э-э... Сравнить Bid и значение индикатора, видимо.
Только вот точного равенства может не получиться, лучше, наверное, сравнить close[1], close[0] и значение индикатора - типа, пересечение сверху вниз или снизу вверх, или наоборот, взять значение индикатора текущее и предыдущее и сравнить с Bid(ценой). Это же зависит от типа индикатора - как лучше, кто кого пересекает и т.п.
22.01.2016, 14:52
Аватар для monopolie
monopolie monopolie вне форума Новичок форума
Регистрация: 07.09.2012 / Сообщений: 46
Поблагодарили 5 раз(а) / Репутация: 6
close[] Я посмотрел это цена закрытия бара. Это может быть уже поздно. Хотелось бы именно первое соприкосновение с индикатором цены. Это Мувинг Аверэйдж.
Соприкосновение может быть или сверху вниз или наоборот. Неважно, в обе стороны.

Последний раз редактировалось monopolie; 22.01.2016 в 14:55.
22.01.2016, 15:00
Аватар для ansol
ansol ansol на форуме
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
close[] Я посмотрел это цена закрытия бара. Это может быть уже поздно. Хотелось бы именно первое соприкосновение с индикатором цены. Это Мувинг Аверэйдж.
Close[0] = Bid - это текущая цена.
Например, предыдущий бар close[1] закрылся ниже МА, ждем когда close[0] станет выше или равно
if(close[0] >= iMA(...)) действие;
Либо наоборот, close[1] выше МА
if(close[0] <= iMA(...)) действие;
Т.е. с первым же тиком факт достижения или пересечения МА будет зафиксирован.
Я просто обратил ваше внимание на то, что точного равенства может не быть хотя бы потому, что цена может перепрыгнуть несколько пипсов легко,
скажем была 1.08196, следующим тиком стала 1.08199, а МА у вас(к примеру!) 1.08198 - вот и облом.
Поэтому небольшой огородик полезно сделать, чтоб потом не удивляться.
22.01.2016, 15:01
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,777
Поблагодарили 9,209 раз(а) / Репутация: 9214
close[] Я посмотрел это цена закрытия бара. Это может быть уже поздно.
В любой момент времени на текущем, нулевом баре, значение цены Close и есть текущая цена. Справедливо только для нулевого бара!!!
23.01.2016, 10:26
Аватар для fsfs
fsfs fsfs на форуме Новичок форума
Регистрация: 18.01.2013 / Сообщений: 95
Поблагодарили 10 раз(а) / Репутация: 12
Привет всем)есть индюк,даёт сигналы на приведущем баре но иногда ставит сигнал на приведущем баре вовремя формирования нулевого бара.вопрос,как зделать чтоб давал сигналы только на открытие бара и не давал сигналы посреди формирования?
26.01.2016, 02:39
Аватар для monopolie
monopolie monopolie вне форума Новичок форума
Регистрация: 07.09.2012 / Сообщений: 46
Поблагодарили 5 раз(а) / Репутация: 6
Что нужно сделать чтобы был сигнал если расстояние между двумя МА меньше определённого количества пунктов? Нашёл в инете код с основными командами для работы алерта, но условия нужно задавать самому.

В начало эксперта перед функцией start() вставьте следующий код:

Скрытый текст

/+======================================================================================+
//+====================================================+
//+======================================================================================+
extern string Alerts="Алерты и стрелки от www.expforex.com";
extern bool AlerT=true; // Выдавать алерт на экран
extern bool Mail=true; // Посылать сообщение
extern bool Push=true; // Посылать ПУШ на телефон
extern bool Arrow=true; // Ставить стрелки на сигналах
extern int shift=1; // На каком баре считать сигнал 0 - на текущем 1 - на закрытом
int timeee; // Внутренняя переменная
string nameInd;

void SetArrow(int cd, color cl,
string nm="", datetime t1=0, double p1=0, int sz=3) {
if (nm=="") nm=DoubleToStr(Time[0], 0);
if (t1<=0) t1=Time[0];
if (p1<=0) p1=Bid;
nameInd=WindowExpertName( );
int wind=WindowFind(nameInd);
wind=0;
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, wind, 0,0);
ObjectSet(nm, OBJPROP_TIME1 , t1);
ObjectSet(nm, OBJPROP_PRICE1 , p1);
ObjectSet(nm, OBJPROP_ARROWCODE, cd);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_WIDTH , sz);
}


void Expforex_AlertArrow(string text="",int arrowdir=0,bool history=false,int i=0)
{
nameInd=WindowExpertName();
int wind=WindowFind(nameInd);
if(wind==-1)wind=0;
ObjectCreate("Originalalert",OBJ_LABEL,wind,0,0);
ObjectSetText("Originalalert","Модификация AlertArrow www.expforex.com",10,"Arial Bold",Red);
ObjectSet("Originalalert",OBJPROP_CORNER,2);
ObjectSet("Originalalert",OBJPROP_XDISTANCE,200);
ObjectSet("Originalalert",OBJPROP_YDISTANCE,10);
if(!history)
{
if(AlerT) Alert(text);
if(Arrow) if(arrowdir==1) SetArrow(241,Blue,nameInd+DoubleToStr(Time[shift],0),Time[shift],Low[shift]);
if(Arrow) if(arrowdir==2) SetArrow(242,Red,nameInd+DoubleToStr(Time[shift],0),Time[shift],High[shift]);
if(!IsTesting())if(Mail) SendMail(text,text);
if(!IsTesting())if(Push) SendNotification(text);
}
if(history)
{
if(Arrow) if(arrowdir==1) SetArrow(241,Blue,nameInd+DoubleToStr(Time[shift+i],0),Time[shift+i],Low[shift+i]);
if(Arrow) if(arrowdir==2) SetArrow(242,Red,nameInd+DoubleToStr(Time[shift+i],0),Time[shift+i],High[shift+i]);

}

}

//+======================================================================================+
//+================================ ====================+
//+======================================================================================+
[свернуть]

Дальше нужно вставить условие до команды return()
Индикатор приложил. Можете написать и объяснить условие?
Сделайте плиз чтобы было два файла индикаторов МА. Не всё в одном файле.

Последний раз редактировалось monopolie; 26.01.2016 в 02:56.
Ответить

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 14:38. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO