Ответ
 
Опции темы
Старый 14.01.2016, 23:07   #4441 (permalink)
Новичок форума
 
Аватар для fsfs
 
Регистрация: 18.01.2013
Сообщений: 88
Репутация: 11
fsfs
Сказал(а) спасибо: 16
Поблагодарили 9 раз(а) в 8 сообщениях
Поинты: 24
Привет.Подскажите пожалуйста!Есть индикатор стрелочник,ставиш индикатор на график,стрелки есть но при первом тике тике удаляет стрелки.В чем может быть проблема?
fsfs на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 15.01.2016, 06:14   #4442 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от fsfs Посмотреть сообщение
Привет.Подскажите пожалуйста!Есть индикатор стрелочник,ставиш индикатор на график,стрелки есть но при первом тике тике удаляет стрелки.В чем может быть проблема?
Может какой-то другой индикатор стоит на графике и удаляет все объекты. Может так код написан и ещё ХХХ вариантов.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
fsfs (15.01.2016)
Старый 20.01.2016, 10:18   #4443 (permalink)
Новичок форума
 
Аватар для HUDSON
 
Регистрация: 09.01.2016
Сообщений: 92
Репутация: 9
HUDSON
Сказал(а) спасибо: 11
Поблагодарили 8 раз(а) в 7 сообщениях
Поинты: 106

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


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

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

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,008
Репутация: 828
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 842 раз(а) в 554 сообщениях
Поинты: 1306
HUDSON
За время прохождения команды на открытие ордера спред легко может поменяться, да вообще, у них введено понятие "проскальзывание" - т.е. сделка откроется вовсе не по тому, что вы видите в терминале, так что, высокая точность просто недостижима в принципе, условия такие ловкие
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
HUDSON (20.01.2016)
Старый 20.01.2016, 14:05   #4445 (permalink)
Новичок форума
 
Аватар для HUDSON
 
Регистрация: 09.01.2016
Сообщений: 92
Репутация: 9
HUDSON
Сказал(а) спасибо: 11
Поблагодарили 8 раз(а) в 7 сообщениях
Поинты: 106
Согласен что спред может поменяться за время открытия ордера но поголовно все сделки закрываются с одним и тем же минусом . открытие по одной цене и закрытие по той же . все поголовно . И такое возможно только на реальном счете где спред плавающий . Да и к тому же ордер на сервер пролетает за милисекунды какие то . там вероятность проскальзывания ничтожно мала . Тут проблема в чем то другом . Не спрашивал бы иначе .

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

Последний раз редактировалось HUDSON; 20.01.2016 в 14:12.
HUDSON вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 20.01.2016, 14:49   #4446 (permalink)
Местный знаток
За призовое место в конкурсе 

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

Последний раз редактировалось HUDSON; 20.01.2016 в 15:48.
HUDSON вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 20.01.2016, 17:21   #4448 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от HUDSON Посмотреть сообщение
Тестирую на демо счете советников . После каждого теста в отчете указывается спред . Проблема в том что судя по моему опыту он кое где округляется до пунктов . Хотя спреды и в долях пунктов есть много у кого .

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

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

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Мониторинг советников: http://www.myfxbook.com/members/vlad_123/

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

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Мониторинг советников: http://www.myfxbook.com/members/vlad_123/

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

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,008
Репутация: 828
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 842 раз(а) в 554 сообщениях
Поинты: 1306
Сообщение от monopolie Посмотреть сообщение
Что нужно прописать в индикаторе что чтобы при соприкосновении с ценой этого индикатора был бы звуковой сигнал?
Что в конце что в начале, что в середине писать в коде?
Я на мку4 не писал. Писал программки на с++, но давно.
Есть встроенная команда PlaySound("имя звука") - посмотри в хелпе описание.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
monopolie (22.01.2016)
Старый 22.01.2016, 13:46   #4454 (permalink)
Новичок форума
 
Аватар для monopolie
 
Регистрация: 07.09.2012
Сообщений: 46
Репутация: 6
monopolie
Сказал(а) спасибо: 21
Поблагодарили 5 раз(а) в 4 сообщениях
Поинты: 58
Ок. Спасибо. А как тогда прописать эту ситуацию соприкосновения цены с индикатором при которой должен быть звук?
monopolie вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 22.01.2016, 13:54   #4455 (permalink)
Местный знаток
За призовое место в конкурсе 

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

Последний раз редактировалось monopolie; 22.01.2016 в 14:55.
monopolie вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 22.01.2016, 15:00   #4457 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,008
Репутация: 828
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 842 раз(а) в 554 сообщениях
Поинты: 1306
Сообщение от monopolie Посмотреть сообщение
close[] Я посмотрел это цена закрытия бара. Это может быть уже поздно. Хотелось бы именно первое соприкосновение с индикатором цены. Это Мувинг Аверэйдж.
Close[0] = Bid - это текущая цена.
Например, предыдущий бар close[1] закрылся ниже МА, ждем когда close[0] станет выше или равно
if(close[0] >= iMA(...)) действие;
Либо наоборот, close[1] выше МА
if(close[0] <= iMA(...)) действие;
Т.е. с первым же тиком факт достижения или пересечения МА будет зафиксирован.
Я просто обратил ваше внимание на то, что точного равенства может не быть хотя бы потому, что цена может перепрыгнуть несколько пипсов легко,
скажем была 1.08196, следующим тиком стала 1.08199, а МА у вас(к примеру!) 1.08198 - вот и облом.
Поэтому небольшой огородик полезно сделать, чтоб потом не удивляться.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
monopolie (22.01.2016)
Старый 22.01.2016, 15:01   #4458 (permalink)
 
Аватар для mobidik
 
Регистрация: 09.08.2012
Адрес: Ua_Khm
Сообщений: 1,647
Репутация: 8540
mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik
Сказал(а) спасибо: 633
Поблагодарили 8,536 раз(а) в 1,561 сообщениях
Поинты: 800
Сообщение от monopolie Посмотреть сообщение
close[] Я посмотрел это цена закрытия бара. Это может быть уже поздно.
В любой момент времени на текущем, нулевом баре, значение цены Close и есть текущая цена. Справедливо только для нулевого бара!!!
mobidik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
monopolie (22.01.2016)
Старый 23.01.2016, 10:26   #4459 (permalink)
Новичок форума
 
Аватар для fsfs
 
Регистрация: 18.01.2013
Сообщений: 88
Репутация: 11
fsfs
Сказал(а) спасибо: 16
Поблагодарили 9 раз(а) в 8 сообщениях
Поинты: 24
Привет всем)есть индюк,даёт сигналы на приведущем баре но иногда ставит сигнал на приведущем баре вовремя формирования нулевого бара.вопрос,как зделать чтоб давал сигналы только на открытие бара и не давал сигналы посреди формирования?
fsfs на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 26.01.2016, 02:39   #4460 (permalink)
Новичок форума
 
Аватар для monopolie
 
Регистрация: 07.09.2012
Сообщений: 46
Репутация: 6
monopolie
Сказал(а) спасибо: 21
Поблагодарили 5 раз(а) в 4 сообщениях
Поинты: 58
Что нужно сделать чтобы был сигнал если расстояние между двумя МА меньше определённого количества пунктов? Нашёл в инете код с основными командами для работы алерта, но условия нужно задавать самому.

В начало эксперта перед функцией 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()
Индикатор приложил. Можете написать и объяснить условие?
Сделайте плиз чтобы было два файла индикаторов МА. Не всё в одном файле.
Вложения:
Тип файла: mq4 moving_averages.mq4 (5.3 Кб, 1 просмотров)

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

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


Опции темы

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

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



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


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