Ответить
21.12.2012, 18:24
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Ну так делись. Хитрый какой.
Лично мне интересно, возможно не только мне, какой ДЦ, в чём была проблема и как решил.
Неужели ты до-сих пор хочешь услышать что-то новое, что сам не знаешь??? Такого быть не может...
21.12.2012, 19:35
Аватар для king
king king на форуме Новичок форума
Регистрация: 12.05.2011 / Сообщений: 214
Поблагодарили 29 раз(а) / Репутация: 29
как нужно писать в коде. "после закрытие свеча зеленом цвете"
21.12.2012, 19:43
Регистрация: 13.03.2009 / Сообщений: 2,326
Поблагодарили 1,945 раз(а) / Репутация: 2018
Неужели ты до-сих пор хочешь услышать что-то новое, что сам не знаешь??? Такого быть не может...
Как не странно, я готов учиться у любого кто знает хоть чуть чуть больше меня. Конечно речь идёт о тематике которая меня интересует профессионально. Кроме того, всех нюансов о всех ДЦ вряд ли кто то может знать. Их развелось как собак не резаных.
Практически любая программная проблема mql4 для меня решаемая. А вдруг кто то решил оптимальнее и проще, почему бы не перенять приёмчик.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
21.12.2012, 19:56
Регистрация: 13.03.2009 / Сообщений: 2,326
Поблагодарили 1,945 раз(а) / Репутация: 2018
как нужно писать в коде. "после закрытие свеча зеленом цвете"
if(Close[1]-Open[1]> 0.9*Point)
{
//прошлая свеча закрылась быком
}
if(Open[1]-Close[1]> 0.9*Point)
{
//прошлая свеча закрылась медведем
}
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
21.12.2012, 20:12
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,029 раз(а) / Репутация: 9029
  • Отправить сообщение для eevviill с помощью Skype™
if(Close[1]-Open[1]> 0.9*Point)
{
//прошлая свеча закрылась быком
}
if(Open[1]-Close[1]> 0.9*Point)
{
//прошлая свеча закрылась медведем
}
Хмм. По моему чем проще, тем лучше. Ну ты и сам так говорил. Или я не так вопрос понял?

PHP код:
Close[1]>Open[1]   //green
Open[1]>Close[1]   //red
Open[1]==Close[1//yellow 
21.12.2012, 20:53
Регистрация: 13.03.2009 / Сообщений: 2,326
Поблагодарили 1,945 раз(а) / Репутация: 2018
Хмм. По моему чем проще, тем лучше. Ну ты и сам так говорил. Или я не так вопрос понял?

PHP код:
Close[1]>Open[1]   //green
Open[1]>Close[1]   //red
Open[1]==Close[1//yellow 
Если не учитывать погрешности хранения данных типа double то можно и так.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
21.12.2012, 22:38
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 531
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
Если не учитывать погрешности хранения данных типа double то можно и так.
Ну а что нам до погрешности? Мы же только сравниваем, и никаких расчётов дальше с этими переменными не ведём?
22.12.2012, 05:28
Аватар для king
king king на форуме Новичок форума
Регистрация: 12.05.2011 / Сообщений: 214
Поблагодарили 29 раз(а) / Репутация: 29
Если не учитывать погрешности хранения данных типа double то можно и так.
У меня индикатор есть. Оно показивает движение цены. красным и зеленым цветом. Свечу оно сама крашивает даже если это свеча бычья оно может быть и зеленым и красным. Надо написат кож так чтобы с сигнала индиватора прочиталь а не с цены. коде примерно так панисано
if(MF>0 && MFC> && тут надо указат если предидуший свеча закрылось зеленым цветом )
comment=buy
Тут я вложил скрын по индикатору.
Спасибо
22.12.2012, 06:06
Регистрация: 13.03.2009 / Сообщений: 2,326
Поблагодарили 1,945 раз(а) / Репутация: 2018
У меня индикатор есть. Оно показивает движение цены. красным и зеленым цветом. Свечу оно сама крашивает даже если это свеча бычья оно может быть и зеленым и красным. Надо написат кож так чтобы с сигнала индиватора прочиталь а не с цены. коде примерно так панисано
if(MF>0 && MFC> && тут надо указат если предидуший свеча закрылось зеленым цветом )
comment=buy
Тут я вложил скрын по индикатору.
Спасибо
Надо сравнивать значения буферов.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
22.12.2012, 08:20
Аватар для king
king king на форуме Новичок форума
Регистрация: 12.05.2011 / Сообщений: 214
Поблагодарили 29 раз(а) / Репутация: 29
Надо сравнивать значения буферов.
Да. как на скрыне показано.
22.12.2012, 08:41
Регистрация: 13.03.2009 / Сообщений: 2,326
Поблагодарили 1,945 раз(а) / Репутация: 2018
Да. как на скрыне показано.
Это не вопрос, а ответ. Там 4 буфера. Одна пара формирует тонкую линию, другая толстую. Цвет линии зависит от разницы в значениях ячеек соответствующей пары буферов. Сравнив значения в паре буферов узнаешь цвет.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
22.12.2012, 10:54
Аватар для king
king king на форуме Новичок форума
Регистрация: 12.05.2011 / Сообщений: 214
Поблагодарили 29 раз(а) / Репутация: 29
Это не вопрос, а ответ. Там 4 буфера. Одна пара формирует тонкую линию, другая толстую. Цвет линии зависит от разницы в значениях ячеек соответствующей пары буферов. Сравнив значения в паре буферов узнаешь цвет.
Если честно я вообще не понимаю mql4. мне только надо писать в коде после закрытие красным(или голубым) цветом. или dll файл нужен для этого.
Вообщем надо писать советник что будет прояитать с графика и открывать и закрывать позиции. скажем иммется Бай позиция и оно зароеться если свеча изменить свой цвет на красный и закроется и в начале нового свеча откроется Селл. И наоборот.

Последний раз редактировалось king; 22.12.2012 в 11:12.
22.12.2012, 11:14
Регистрация: 13.03.2009 / Сообщений: 2,326
Поблагодарили 1,945 раз(а) / Репутация: 2018
Если честно я вообще не понимаю mql4. мне только надо писать в коде после закрытие красным(или голубым) цветом. или dll файл нужен для этого.
Нет, dll не нужно. Нужно заказать советник тому кто понимает mql4. В рекламном разделе их много. На любой вкус и кошелёк.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 22.12.2012 в 11:40.
22.12.2012, 21:44
Аватар для Vseslav
Vseslav Vseslav вне форума Новичок форума
Регистрация: 02.12.2012 / Адрес: Саратов / Сообщений: 52
Поблагодарили 21 раз(а) / Репутация: 22
  • Отправить сообщение для Vseslav с помощью Skype™

По умолчанию Закрытие ордера в цикле переборки по невидимому Стоп-лоссу

Камрады!
Такой пример. Открыты ордера, по номеру тикета каждому ордеру присваивается значение стоплосса (невидимого) в массив SL[] в формате цены.
0. Бай - SL[1]
1. Бай - SL[2] // достиг стоплосса и закроется в цикле переборки
2. Бай - SL[3]
3. Селл - SL[4]

В цикле переборки ордеров по тикету
for (i=0;i<OrdersTotal();i++)
{
OrderSelect;
if (стоплосс=0, открыт человеком) --> ставим стоплосс в массив SL[];
if (модификация стопа) --> подтягиваем стоп;
if (достигли стопа) --> OrderClose;
Здесь ордер с тикетом 1(второй в позиции, со стоплоссом SL[2] закрывается.
Внимание, вопрос:
Ордера не стало, и когда теперь сместятся тикеты?
Сразу? т.е. надо к OrderClose добавить переборку массива SL[] с целью смещения значений
for (j=i+1;j<OrdersTotal();j++) //- и да, чему сейчас равно OrdersTotal?
SL[j]=SL[j+1];
SL[j]=0;
или вынести переборку за цикл?
или вообще тикеты сместятся с приходом нового тика?
23.12.2012, 06:08
Аватар для ale002
ale002 ale002 вне форума ::: __,,,^._.^,,,__ :::
Регистрация: 28.02.2010 / Сообщений: 1,246
Поблагодарили 2,503 раз(а) / Репутация: 2529
Не совсем понятно - этот массив у вас существует постоянно (он глобальный) или формируется заново по каждому тику?

Если второе - удаление строк массива не ваша забота, всё обновится по след тику

Если первое - по новому тику проверяйте наличие ордеров с номерами из вашего массива, несуществующие удаляйте. Закрытие ордеров не привязано к котировкам, может растянуться на несколько тикофф

Но, имхо, много проще и надёжнее обходиться без этого массива. Напр, терминал закроетсо, не ту кнопку нажмете или ещё чего и массив с данными стопов накроетсо. Если стоп - фиксированная цифра, проще по каждому тику перебирать ордера, читать цену открытия каждого и прикидывать сработал стоп или нет
23.12.2012, 13:32
Аватар для Vseslav
Vseslav Vseslav вне форума Новичок форума
Регистрация: 02.12.2012 / Адрес: Саратов / Сообщений: 52
Поблагодарили 21 раз(а) / Репутация: 22
  • Отправить сообщение для Vseslav с помощью Skype™
Благодарю! Массив SL[] формируется каждый тик заново.
Т.е. закрыв один ордер, робот нормально отследит остальные в цикле переборки?
23.12.2012, 16:06
Аватар для ale002
ale002 ale002 вне форума ::: __,,,^._.^,,,__ :::
Регистрация: 28.02.2010 / Сообщений: 1,246
Поблагодарили 2,503 раз(а) / Репутация: 2529
OrdersTotal() не изменится быстрее, чем ваш цикл дощёлкает до конца, если вы об этом. Но чтобы наглухо исключить и теоретическую вероятность уберите его из управляющего оператора цикла. Напр:

i = OrdersTotal(); while(i>0) {
i--;
// тут работа цикла
}
23.12.2012, 18:01
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Камрады!
Такой пример. Открыты ордера, по номеру тикета каждому ордеру присваивается значение стоплосса (невидимого) в массив SL[] в формате цены.
0. Бай - SL[1]
1. Бай - SL[2] // достиг стоплосса и закроется в цикле переборки
2. Бай - SL[3]
3. Селл - SL[4]

В цикле переборки ордеров по тикету
for (i=0;i<OrdersTotal();i++)
{
OrderSelect;
if (стоплосс=0, открыт человеком) --> ставим стоплосс в массив SL[];
if (модификация стопа) --> подтягиваем стоп;
if (достигли стопа) --> OrderClose;
Здесь ордер с тикетом 1(второй в позиции, со стоплоссом SL[2] закрывается.
Внимание, вопрос:
Ордера не стало, и когда теперь сместятся тикеты?
Сразу? т.е. надо к OrderClose добавить переборку массива SL[] с целью смещения значений
for (j=i+1;j<OrdersTotal();j++) //- и да, чему сейчас равно OrdersTotal?
SL[j]=SL[j+1];
SL[j]=0;
или вынести переборку за цикл?
или вообще тикеты сместятся с приходом нового тика?
Не надо ставить такие условия в цикл. Лучше сделай переменную int Total = OrdersTotal(); и тогда цикл будет выглядеть так

Код:
int Total = OrdersTotal(); 
for (i = Total; i >= 0; i--)
Это зафиксирует количество ордеров в начале цикла и даже несоответствие не должно волновать, ведь если нет ордера с таким порядковым номером, то цикл просто перейдёт к следующей итерации.
Но даже используя такой подход надо перестраховаться (ИМХО) и повторить итерацию после закрытия ордера. Но предложенный вариант внутреннего перебора в цикле не эффективен. Здесь можно просто увеличить переменную цикла i++; В этом случае будет проверен ордер с предыдущим порядковым номером, а дальше всё пойдёт по-порядку.

Последний раз редактировалось AlexeyVik; 23.12.2012 в 18:03.
29.12.2012, 16:39
Аватар для sochinik
sochinik sochinik вне форума Активный участник
Регистрация: 10.05.2012 / Адрес: Курск-Краснодар / Сообщений: 326
Поблагодарили 169 раз(а) / Репутация: 170
  • Отправить сообщение для sochinik с помощью ICQ Отправить сообщение для sochinik с помощью MSN Отправить сообщение для sochinik с помощью Skype™
Подскажите пожалуйста, почему при копирование кода из Notepad++ в редактор metaeditorа кирилица исчезает и проявляется в виде знаков" ????..."( и это при том, что код брал с редактора МТ4, где кирилица присутствовала), такое же происходило, если копировал функцию с форума в редактор метаэдитора, Есть ли решение этой проблеммы и как её можно устранить.
У меня сменился SKYPE!!! Ищу своих друзей!

Пишите в личку или в новый SKYPE: sochinik1
29.12.2012, 17:30
Аватар для ale002
ale002 ale002 вне форума ::: __,,,^._.^,,,__ :::
Регистрация: 28.02.2010 / Сообщений: 1,246
Поблагодарили 2,503 раз(а) / Репутация: 2529
Патамушта копируете из документа открытого в юникод-кодировке, а вставляете в док ASCII-кодировки (или наоборот). Нотом-Плю-Плю не пользуюсь, попробуйте вставить в начало и конец копируемого куска по слову на русском - т.е. он должен начинаться и заканчиваться кириллицей. Иногда в винде это помогает при переносе из одной проги в др. А если нет - открывайте в блокноте док той-же кодировки, что и в редакторе, и тока после этого редактируйте/вставляйте/копируйте
Ответить

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


Опции темы

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

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



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


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