Ответ
 
Опции темы
Старый 11.11.2012, 11:57   #481 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 347
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от sochinik Посмотреть сообщение
Уважаемые профи подскажите как вы решаете эту задачу отсутствия работающего терминала в выходные дни- Я понимаю что есть тестер, но он не полную картину рисует....
Я тестер использую. Если что то в коде не хватает, временно дописываю. Например для проверки советника трейлера. можно временно добавить открытие ордера. В тестере временный код открывает ордер, а дальше основной тралит. Достаточно для проверки. тем более есть режим визуала.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (11.11.2012), sochinik (11.11.2012)
Старый 11.11.2012, 21:26   #482 (permalink)
zis
Местный житель
 
Аватар для zis
 
Регистрация: 21.06.2012
Сообщений: 117
Репутация: 153
zis - zis -
Сказал(а) спасибо: 738
Поблагодарили 152 раз(а) в 40 сообщениях
Поинты: 42
Сообщение от SKALMI Посмотреть сообщение
ДЦ какой
У меня forex-market и адмирал все работает.
У меня ForexClub, но дело не в нём, т.к. на компьютере тестер работает, а перестал работать в ноутбуке, а мне он здесь нужен!
zis вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 11.11.2012, 21:50   #483 (permalink)
zis
Местный житель
 
Аватар для zis
 
Регистрация: 21.06.2012
Сообщений: 117
Репутация: 153
zis - zis -
Сказал(а) спасибо: 738
Поблагодарили 152 раз(а) в 40 сообщениях
Поинты: 42
[QUOTE=hiys;522114]Может что не доложил?[/QUк

К сожалению Вложения 02 и 03 - файлы испорчены и не распаковываются!
zis вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 11.11.2012, 21:55   #484 (permalink)
zis
Местный житель
 
Аватар для zis
 
Регистрация: 21.06.2012
Сообщений: 117
Репутация: 153
zis - zis -
Сказал(а) спасибо: 738
Поблагодарили 152 раз(а) в 40 сообщениях
Поинты: 42
Сообщение от hiys Посмотреть сообщение
Ну, так правильно. Он библиотеки снёс, а сейчас может, что не положил. Бывает
Библиотеки все в порядке, т.к. тестер на терминале установленном на компе - работает (не работает на ноутбуке). Сравнил все файлы с работающим - всё совпадает, но упорно не работает!
zis вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 11.11.2012, 23:11   #485 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Вопрос вроде как простой, но меня загнал в тупик. То ли логика кривая у автора. В общем, код с мтшного форума:

PHP код:
double CheckCrossMADist(string smbint tfint iBdouble dist)
{
  
double dMA=iMA(smbtffPeriod0fModefPriceiB)-iMA(smbtfsPeriod0sModesPriceiB);
  if (
MathAbs(dMA)<dist*Point) return(0); // если разница меньше порога, то пересечения нет
  
  
int n=iBars(smbtf)-MathMax(sPeriodfPeriod)-1// число баров для проверки (c учетом корректности расчета МА)
  
for(int i=iB+1i<ni++) // проходим по барам
  
{
    
double dMA2=iMA(smbtffPeriod0fModefPricei)-iMA(smbtfsPeriod0sModesPricei);
    if(
MathAbs(dMA2)>=dist*Point) break; // если нашли расстояние больше порога, то обрываем поиск
  
}
  if (
dMA*dMA2>0) return(0); // проверяем знак разниц. если одинаковый, то пересечение не найдено
  
return(dMA); // вернули знак пересечения


Если нам нужно найти расстояние между машками, достаточно просчитать расстояние между значениями один раз, на одном баре.., в частности, на последнем.
Т.е. вот эта строчка:

PHP код:
double dMA=iMA(smbtffPeriod0fModefPriceiB)-iMA(smbtfsPeriod0sModesPriceiB); 

Зачем потом находится ещё значение double dMA2 ?
Ещё странная логике с циклом

PHP код:
for(int i=iB+1i<ni++) 

Здесь к значению iB прибавляется 1, т.е. рассчёт не от 0. Это что бы не учитывать последний бар, который ещё не закрылся?
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 12.11.2012, 04:56   #486 (permalink)
::: __,,,^._.^,,,__ :::
 
Аватар для ale002
 
Регистрация: 28.02.2010
Сообщений: 1,246
Репутация: 2528
ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002
Сказал(а) спасибо: 794
Поблагодарили 2,502 раз(а) в 770 сообщениях
Поинты: 670
Вообще-то функция ищет не расстояние. Пересечение на уч-ке, равном периоду самой медленной из пары MA. Сначала проверяет это самое расстояние на текущем баре, если оно больше контрольного, то пробегает по остальным барам и проверяет а) чтобы расстояние нигде не было больше контрольного, б) чтобы где-нибудь оно было с противоположным знаком (пересечение). Текущий бар из цикла исключён, бо проверен в 1й строке функции

В общем две МАшки должны пройти рядом (не дальше dist) и иногда пересекаясь какое-то расстояние (период sPeriod-1), а потом разойтись. Тада функция вернёт на сколь конкретно они развалились в финале. По терминологии одной оч продуманной системы это окончание фазы "спагетти"

Последний раз редактировалось ale002; 12.11.2012 в 04:59.
ale002 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
hoz (12.11.2012)
Старый 12.11.2012, 09:03   #487 (permalink)
 
Аватар для hiys
 
Регистрация: 01.06.2012
Сообщений: 885
Репутация: 2996
hiys hiys hiys hiys hiys hiys hiys hiys hiys hiys hiys
Сказал(а) спасибо: 2,138
Поблагодарили 2,995 раз(а) в 731 сообщениях
Поинты: 311
Отправить сообщение для hiys с помощью ICQ Отправить сообщение для hiys с помощью Skype™
zis [QUOTE=zis;522876]
Сообщение от hiys Посмотреть сообщение
Может что не доложил?[/QUк

К сожалению Вложения 02 и 03 - файлы испорчены и не распаковываются!
С первого распаковывать начинал? Давай мыло, на почту целым архивом закину, на форуме делить нужно

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Съел бобра, спас дерево!

Последний раз редактировалось hiys; 12.11.2012 в 09:05.
hiys вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
zis (12.11.2012)
Старый 12.11.2012, 21:38   #488 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ale002 Посмотреть сообщение
Вообще-то функция ищет не расстояние. Пересечение на уч-ке, равном периоду самой медленной из пары MA. Сначала проверяет это самое расстояние на текущем баре, если оно больше контрольного, то пробегает по остальным барам и проверяет а) чтобы расстояние нигде не было больше контрольного, б) чтобы где-нибудь оно было с противоположным знаком (пересечение). Текущий бар из цикла исключён, бо проверен в 1й строке функции

В общем две МАшки должны пройти рядом (не дальше dist) и иногда пересекаясь какое-то расстояние (период sPeriod-1), а потом разойтись. Тада функция вернёт на сколь конкретно они развалились в финале. По терминологии одной оч продуманной системы это окончание фазы "спагетти"

Тока вот у меня ale002 возник сразу вопрос. Почему ты решил, что переменная iB это текущий бар? Странно тут, что не от нуля цикл, а от этого бара с индексов iB Получается что о нулевого или первого бара до бара с индексом iB мы в цикл не берём. А это уже не верно, как я вижу. Ведь это значения ближе в настоящему времени, ежели бары которые находятся дальше в истории.
я вот так имею ввиду:

PHP код:
for(int i=iB+1i<ni++) 

Там на мт4 написано про входные параметры:

Цитата:
Функция принимает:
- требуемый символ, таймфрейм и бар, с которого необходимо получить данные.
- и параметр dist - минимальное требуемое расстояние пересечение для его фиксации

Последний раз редактировалось hoz; 12.11.2012 в 21:49.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 13.11.2012, 05:01   #489 (permalink)
::: __,,,^._.^,,,__ :::
 
Аватар для ale002
 
Регистрация: 28.02.2010
Сообщений: 1,246
Репутация: 2528
ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002
Сказал(а) спасибо: 794
Поблагодарили 2,502 раз(а) в 770 сообщениях
Поинты: 670
Сообщение от hoz Посмотреть сообщение
Странно тут, что не от нуля цикл, а от этого бара с индексов iB Получается что о нулевого или первого бара до бара с индексом iB мы в цикл не берём. А это уже не верно, как я вижу. Ведь это значения ближе в настоящему времени, ежели бары которые находятся дальше в истории.
С кодом всё пучком - это ПОЛЬЗОВАТЕЛЬСКАЯ ФУНКЦИЯ, которую основной цикл скрипта может вызывать скока надо раз. Напр индикатор при запуске может её пару сотен тысяч раз дёрнуть - для каждого бара истории персонально, включая нулевой. А эксперт может проверять по каждому тику только нулевой

Цитата:
Почему ты решил, что переменная iB это текущий бар?
Для функции он текущий, т.е. самый свежий из разрешённых к использованию в расчётах
ale002 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 13.11.2012, 10:35   #490 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ale002 Посмотреть сообщение
С кодом всё пучком - это ПОЛЬЗОВАТЕЛЬСКАЯ ФУНКЦИЯ, которую основной цикл скрипта может вызывать скока надо раз. Напр индикатор при запуске может её пару сотен тысяч раз дёрнуть - для каждого бара истории персонально, включая нулевой. А эксперт может проверять по каждому тику только нулевой


Для функции он текущий, т.е. самый свежий из разрешённых к использованию в расчётах

Ну а разве это не нулевой бар? Ведь последний бар из разрешённые к использованию обычно имеет индекс 0, или индекс 1, если важна цена закрытия. Как тогда его правильно будет объявить?
Я понимаю, что вопросы, возможно, очень простые, но я сколько чего не видел, и сам индикаторы писал, но вот с этим кодом столкнулся и стопорнулся. Уже понимаю суть, но не совсем.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 16.11.2012, 12:27   #491 (permalink)
Интересующийся
 
Аватар для aufx
 
Регистрация: 16.11.2012
Сообщений: 26
Репутация: 3
aufx
Сказал(а) спасибо: 11
Поблагодарили 2 раз(а) в 2 сообщениях
Поинты: 22

По умолчанию Глобальные переменные терминала


Уважаемые профи!
Скрипт формирует глоб. перемен. терминала. Ее видно из меню терминала.
Но индикатор не хочет ее видеть, так и выдает в ошибке.
Если эту переменную создать в ручную из меню терминала то индикатор ее видит. Как сделать что бы индикатор увидел перем. созданную скриптом.
aufx вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 16.11.2012, 13:43   #492 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 347
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от aufx Посмотреть сообщение
Уважаемые профи!
Скрипт формирует глоб. перемен. терминала. Ее видно из меню терминала.
Но индикатор не хочет ее видеть, так и выдает в ошибке.
Если эту переменную создать в ручную из меню терминала то индикатор ее видит. Как сделать что бы индикатор увидел перем. созданную скриптом.
Скорее всего касяк в имени переменной. Перебей имя переменной в скрипте.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
aufx (17.11.2012), eevviill (16.11.2012)
Старый 17.11.2012, 07:15   #493 (permalink)
Интересующийся
 
Аватар для aufx
 
Регистрация: 16.11.2012
Сообщений: 26
Репутация: 3
aufx
Сказал(а) спасибо: 11
Поблагодарили 2 раз(а) в 2 сообщениях
Поинты: 22
Сообщение от Ugar Посмотреть сообщение
Скорее всего касяк в имени переменной. Перебей имя переменной в скрипте.
Все заработало. Спасибо!!!
aufx вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.11.2012, 12:33   #494 (permalink)
Местный житель
 
Аватар для Алекc1234
 
Регистрация: 24.03.2011
Сообщений: 697
Репутация: 276
Алекc1234 Алекc1234 Алекc1234
Сказал(а) спасибо: 391
Поблагодарили 276 раз(а) в 176 сообщениях
Поинты: 0
Всем привет! Подскажите, как каждую свечу связать с функцией OrderProfit()? То есть, чтобы в коде можно было каждую свечу(всю свечу: и тело и тени) связать(как-то приравнять что-ли) с OrderProfit(). Чтобы было так - свеча открылась - смотрим какой профит, свеча длится - снова определяем профит и закрылась тоже смотрим на профит(OrderProfit()) . То есть связываем свечу с ордерпрофитом.
Алекc1234 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 17.11.2012, 14:12   #495 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,680
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Сообщение от Алекc1234 Посмотреть сообщение
Всем привет! Подскажите, как каждую свечу связать с функцией OrderProfit()? То есть, чтобы в коде можно было каждую свечу(всю свечу: и тело и тени) связать(как-то приравнять что-ли) с OrderProfit(). Чтобы было так - свеча открылась - смотрим какой профит, свеча длится - снова определяем профит и закрылась тоже смотрим на профит(OrderProfit()) . То есть связываем свечу с ордерпрофитом.
Думаю таким образом не выйдет.
Надо приравнивать цену открытия(закрытия, хай, лоу) с ценой открытия ордера(OrderOpenPrice()).

PHP код:
int prof8= (Close[8]-OrderOpenPrice())/Point
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Алекc1234 (17.11.2012)
Старый 17.11.2012, 15:26   #496 (permalink)
Активный участник
 
Аватар для yggfyn
 
Регистрация: 02.05.2010
Сообщений: 23
Репутация: 47
yggfyn
Сказал(а) спасибо: 2
Поблагодарили 46 раз(а) в 15 сообщениях
Поинты: 12
Уважаемые программисты, мне нужна Ваша помощь.. Если поможете буду очень благодарен ! Сам я не силен в программировании и последняя надежда на Вас. Перерыл весь интернет, но ничего подобного не нашел.

Суть.. есть советник, который работает на временном интервале H1. Что необходимо прописать во внешних или внутренних параметрах советника, чтобы он закрывал все открытые ордера по цене открытия Каждого нового часового бара. К примеру, если советник открыл ордер (неважно бай или селл) во временном периоде с 15.00 до 15.59, то ордер должен быть закрыт точно в 16.00, если советник открыл ордер во временном периоде с 16.00 до 16.59, то ордер должен быть закрыт точно в 17.00 и так далее. Есть ли такая функция ? И вообще возможно ли это реализовать. Спасибо !

Последний раз редактировалось yggfyn; 17.11.2012 в 15:33.
yggfyn вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.11.2012, 15:46   #497 (permalink)
::: __,,,^._.^,,,__ :::
 
Аватар для ale002
 
Регистрация: 28.02.2010
Сообщений: 1,246
Репутация: 2528
ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002
Сказал(а) спасибо: 794
Поблагодарили 2,502 раз(а) в 770 сообщениях
Поинты: 670
"По цене открытия" - это одно, "точно в 17.00" - другое. Оба реализуются добавлением в код советника дополнительной функции, но 2й вариант требует ещё и запуска секундного таймера при инициализации сова, добавления в код отлова события onTimer, синхронизации с серверным временем и проч мороки. В любом разе без знания MQL этого не сделать, одних изменений настроек недостаточно
ale002 вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (17.11.2012), yggfyn (17.11.2012)
Старый 17.11.2012, 15:50   #498 (permalink)
Активный участник
 
Аватар для yggfyn
 
Регистрация: 02.05.2010
Сообщений: 23
Репутация: 47
yggfyn
Сказал(а) спасибо: 2
Поблагодарили 46 раз(а) в 15 сообщениях
Поинты: 12
Спасибо !.. Придется ручками закрывать открытый ордер в конце часа.. Вроде фигня, а мороки столько..
yggfyn вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ale002 (17.11.2012)
Старый 17.11.2012, 16:46   #499 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,680
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Сообщение от yggfyn Посмотреть сообщение
Спасибо !.. Придется ручками закрывать открытый ордер в конце часа.. Вроде фигня, а мороки столько..
Попробуй обратится в ветку Доработка ботов
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.11.2012, 08:28   #500 (permalink)
Местный житель
 
Аватар для Алекc1234
 
Регистрация: 24.03.2011
Сообщений: 697
Репутация: 276
Алекc1234 Алекc1234 Алекc1234
Сказал(а) спасибо: 391
Поблагодарили 276 раз(а) в 176 сообщениях
Поинты: 0
Сообщение от eevviill Посмотреть сообщение
Думаю таким образом не выйдет.
Надо приравнивать цену открытия(закрытия, хай, лоу) с ценой открытия ордера(OrderOpenPrice()).

PHP код:
int prof8= (Close[8]-OrderOpenPrice())/Point
Спасибо большое. А не подскажете, как можно сделать, чтобы при Close[i] учитывалось бы несколько свечей. То есть скажем i равнялось бы от первой свечи до седьмой.
Алекc1234 на форуме   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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