Ответить
29.01.2015, 09:01
Аватар для zpro
zpro zpro вне форума Почётный гражданин
Регистрация: 07.10.2014 / Адрес: ЦО / Сообщений: 445
Поблагодарили 475 раз(а) / Репутация: 480
всем привет
помогите с кодом

ТП фиксированный, без СЛ, лот фиксированный

открывается сразу два ордера, бай и селл. если, к примеру, бай закрылся по тейку, то открывается новый бай-ордер. если снова закрылся бай по тейку, то снова открываем бай-ордер.

вот такая простая логика.

как реализовать в коде? как смотреть какой ордер закрылся (баевский или селловский)?

спасибо
Проще посмотреть, какой остался
29.01.2015, 09:17
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Проще посмотреть, какой остался
Почему это проще? Может всё-таки проще на глобальном уровне 2 переменные в которые засунуть тикеты ордеров и проверять по времени закрытия и профиту? Если > 0 открываем такой-же.
29.01.2015, 09:23
Аватар для zpro
zpro zpro вне форума Почётный гражданин
Регистрация: 07.10.2014 / Адрес: ЦО / Сообщений: 445
Поблагодарили 475 раз(а) / Репутация: 480
Почему это проще? Может всё-таки проще на глобальном уровне 2 переменные в которые засунуть тикеты ордеров и проверять по времени закрытия и профиту? Если > 0 открываем такой-же.
А если перезапустили терминал?!
29.01.2015, 09:33
Аватар для vetallic
vetallic vetallic вне форума Местный знаток
Регистрация: 31.08.2010 / Сообщений: 352
Поблагодарили 509 раз(а) / Репутация: 511
как смотреть какой ордер закрылся (баевский или селловский)?
спасибо
void CheckLastOrderType()
{
int orderType = -1;
int orderId = -1;
datetime lastCloseTime = 0;
int cnt = OrdersHistoryTotal();
for (int i=0; i < cnt; i++)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
if (OrderSymbol() == Symbol() && lastCloseTime < OrderCloseTime() && orderId == магик №)
{
lastCloseTime = OrderCloseTime();
orderType = OrderType();
orderId = OrderMagicNumber();
}
}
if (orderType == OP_SELL)
{пишем что делать если закрытый был селл}
if (orderType == OP_BUY)
{пишем что делать если закрытый был бай}
}

как то так
29.01.2015, 09:48
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
А если перезапустили терминал?!
В ините надо всё предусматривать и восстанавливать значения тех переменных.
29.01.2015, 11:20
Аватар для ansol
ansol ansol вне форума
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
Сообщение от zpro
А если перезапустили терминал?!



В ините надо всё предусматривать и восстанавливать значения тех переменных.
Хелп не любим читать ни разу, да?

Не следует путать глобальные переменные клиентского терминала с переменными, объявленными на глобальном уровне mql4-программы.

Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются. Обращением к глобальной переменной считается не только установка нового значения, но и чтение значения глобальной переменной.

Хоть за перепускася терминалом!
29.01.2015, 11:33
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Хелп не любим читать ни разу, да?

Не следует путать глобальные переменные клиентского терминала с переменными, объявленными на глобальном уровне mql4-программы.

Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются. Обращением к глобальной переменной считается не только установка нового значения, но и чтение значения глобальной переменной.

Хоть за перепускася терминалом!
Я что-то не пойму, это ты кому такую реплику адресуешь? В твоей цитате и zpro и я. Если это мне сказано, то почитай внимательно мои слова. И не придумывай ничего о чём пытаешься спорить.
29.01.2015, 11:58
Аватар для ansol
ansol ansol вне форума
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
Я что-то не пойму, это ты кому такую реплику адресуешь? В твоей цитате и zpro и я. Если это мне сказано, то почитай внимательно мои слова. И не придумывай ничего о чём пытаешься спорить.
К обоим. Один думет, что переменные сбрасываются, другой говорит, что надо какие-то меры принимать.
По-моему, я из хелпа выделил, что "оно само" 4 недели и ничё делать не надо.
Впрочем, ты лично уже ясно какой "программист", так что, да, к тебе больше не буду обращаться.
29.01.2015, 12:03
Аватар для zpro
zpro zpro вне форума Почётный гражданин
Регистрация: 07.10.2014 / Адрес: ЦО / Сообщений: 445
Поблагодарили 475 раз(а) / Репутация: 480
Ну и ладно, все равно vetallic молодец ))

А Ансол сумничал )) хоть и о своем ))
29.01.2015, 12:05
Аватар для zpro
zpro zpro вне форума Почётный гражданин
Регистрация: 07.10.2014 / Адрес: ЦО / Сообщений: 445
Поблагодарили 475 раз(а) / Репутация: 480
К обоим. Один думет, что переменные сбрасываются, другой говорит, что надо какие-то меры принимать.
По-моему, я из хелпа выделил, что "оно само" 4 недели и ничё делать не надо.
Впрочем, ты лично уже ясно какой "программист", так что, да, к тебе больше не буду обращаться.
Если ты об этих переменных "GlobalVariableSet", то у меня и мысли не было, что Алекс их предлагает использовать. Ибо это пушкой по тараканам. А у него вроде как опыт то есть.
29.01.2015, 12:33
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
К обоим. Один думет, что переменные сбрасываются, другой говорит, что надо какие-то меры принимать.
По-моему, я из хелпа выделил, что "оно само" 4 недели и ничё делать не надо.
Впрочем, ты лично уже ясно какой "программист", так что, да, к тебе больше не буду обращаться.
Ну если тебе лениво прокрутить страничку, я тебе повторю сказанное.
Почему это проще? Может всё-таки проще на глобальном уровне 2 переменные в которые засунуть тикеты ордеров и проверять по времени закрытия и профиту? Если > 0 открываем такой-же.
Теперь скажи где упоминание о GV значения которых сохраняются...
Вот уж действительно видно какой ты программист.

Последний раз редактировалось AlexeyVik; 29.01.2015 в 12:35.
30.01.2015, 09:40
Аватар для SIDOYY
SIDOYY SIDOYY вне форума Новичок форума
Регистрация: 22.06.2012 / Сообщений: 32
Поблагодарили 4 раз(а) / Репутация: 4
подскажите как исправить вот такую ошибку " 'maxlot_196' - undeclared identifier " ???
30.01.2015, 09:55
Аватар для zpro
zpro zpro вне форума Почётный гражданин
Регистрация: 07.10.2014 / Адрес: ЦО / Сообщений: 445
Поблагодарили 475 раз(а) / Репутация: 480
подскажите как исправить вот такую ошибку " 'maxlot_196' - undeclared identifier " ???
объявить переменную, как-то так
double maxlot_196 = 100;
30.01.2015, 11:52
Аватар для Gnn-life
Gnn-life Gnn-life вне форума Элитный участник
Регистрация: 09.04.2012 / Адрес: Питер / Сообщений: 515
Поблагодарили 1,042 раз(а) / Репутация: 1042
Всем привет)) Помогите, плиз, с функцией ограничения по спреду, если спред в данный момент больше чем указан в параметрах, то ордер не открывается. Очень надо, а то ДЦ совсем в последнее время обнаглели, расширяют спреды до нельзя.
30.01.2015, 12:47
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,775
Поблагодарили 9,203 раз(а) / Репутация: 9208
Всем привет)) Помогите, плиз, с функцией ограничения по спреду, если спред в данный момент больше чем указан в параметрах, то ордер не открывается. Очень надо, а то ДЦ совсем в последнее время обнаглели, расширяют спреды до нельзя.
Я бы сделал так:
PHP код:
extern MaxSpread 15;  // максимально допустимый спред
//---
double Spread MarketInfo(Symbol(),MODE_SPREAD);   // получаем текущие значение спреда

if(Spread>MaxSpreadint trade 0; else trade 1// при 1 - можно торговать

if(trade==&& Ваше условие на открытие позиции); 
30.01.2015, 13:21
Аватар для Gnn-life
Gnn-life Gnn-life вне форума Элитный участник
Регистрация: 09.04.2012 / Адрес: Питер / Сообщений: 515
Поблагодарили 1,042 раз(а) / Репутация: 1042
Я бы сделал так:
PHP код:
extern MaxSpread 15;  // максимально допустимый спред
//---
double Spread MarketInfo(Symbol(),MODE_SPREAD);   // получаем текущие значение спреда

if(Spread>MaxSpreadint trade 0; else trade 1// при 1 - можно торговать

if(trade==&& Ваше условие на открытие позиции); 
Спасибо mobidik) уже не в первый раз меня выручаешь)
30.01.2015, 19:14
Аватар для djasper
djasper djasper на форуме Интересующийся
Регистрация: 26.03.2013 / Сообщений: 16
Поблагодарили 0 раз(а) / Репутация: 1
Помогите пожалуйста. Как прописать: если хай свечи впервые за день находится в диапазоне +-10п от хая прошлого дня тогда...
30.01.2015, 20:36
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,712 раз(а) / Репутация: 3708
Помогите пожалуйста. Как прописать: если хай свечи впервые за день находится в диапазоне +-10п от хая прошлого дня тогда...
if(MathAbs(iHigh(Symbol(), PERIOD_D1, 0) - iHigh(Symbol(), PERIOD_D1, 1)) < 10*_Point)
31.01.2015, 11:34
Аватар для Picasso
Picasso Picasso на форуме Местный знаток
Регистрация: 17.04.2013 / Адрес: город-герой ОДЕССА ★ / Сообщений: 405
Поблагодарили 679 раз(а) / Репутация: 680
  • Отправить сообщение для Picasso с помощью Skype™
Приветствую коллеги. Есть такой вопрос, как в самом простом подвальном индикаторе (любом) с одной линией, сделать визуализацию в виде стрелки, в том же подвале, если показания индюка выше отметки 0 - стрелка вверх или ниже - стрелка вниз.
Надеюсь на вашу помощь.
31.01.2015, 18:00
Аватар для Milord
Milord Milord вне форума Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 708 раз(а) / Репутация: 711

По умолчанию Вопрос знатокам MQL4 - я верно понимаю???

Всем Привет!
у меня вопрос относительно функции OrdersTotal(), я верно понимаю что отсчет открытых ордеров идет от 0 , а не от 1, то есть при 1ном открытом ордере, функция OrdersTotal()=0, если это так, то при 10 открытых ордерах, она покажет 9???
отсюда понятна путаница в кодах разных программистов, когда они считают число открытых ордеров или выбирают ордера в цикле
fot(int i=0;i<OrdersTotal();i++) или лучше так?
fot(int i=0;i=OrdersTotal();i++)


еще вопрос - есть ли разница в работе советника если перебирать ордера наоборот, вот так:
fot(int i<OrdersTotal();i=0;i--)
или вот так:
for(int i=OrdersTotal()-1; i>=0; i--)

напишите плиз понятно где ошибки в каких вариантах циклов по выбору ордеров, и в чем именно ошибки, и есть ли разница в работе если ошибок нету, при прямом переборе и обратном???
ЗАРАНЕЕ СПАСИБО!
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 31.01.2015 в 18:06.
Ответить

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


Опции темы

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

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



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


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