Ваши вопросы по языку MQL4

Coofoo

Прохожий
Помогите с написанием советника

Доброго времени суток!
Пишу свой советник, но ни как не могу разобраться с условием закрытия сделки по противоположному сигналу. Как его прописать?
(если открыт бай, нужно его закрыть и открыть селл и наоборот)
 

AlexeyVik

Программист mql4 mql5
Доброго времени суток!
Пишу свой советник, но ни как не могу разобраться с условием закрытия сделки по противоположному сигналу. Как его прописать?
(если открыт бай, нужно его закрыть и открыть селл и наоборот)
А как ты определяешь что надо открыть Buy или Sell в первый раз?
 

Coofoo

Прохожий
А как ты определяешь что надо открыть Buy или Sell в первый раз?

Сигналом на сделку сейчас служат показатели индикатора, в процессе прикручивания ещё парочка для фильтрации. Советник сейчас может открывать сделки, выставлять сделку в без убыток по достижении Х пунктов. теперь вот нужно научить его закрывать сделки по определённым условиям.
 

hoz

Активный участник
Доброго времени суток!
Пишу свой советник, но ни как не могу разобраться с условием закрытия сделки по противоположному сигналу. Как его прописать?
(если открыт бай, нужно его закрыть и открыть селл и наоборот)

А где вопрос вообще? ЧТо имеется то, на данный момент?
 

AlexeyVik

Программист mql4 mql5
Сигналом на сделку сейчас служат показатели индикатора, в процессе прикручивания ещё парочка для фильтрации. Советник сейчас может открывать сделки, выставлять сделку в без убыток по достижении Х пунктов. теперь вот нужно научить его закрывать сделки по определённым условиям.

Я просто балдею от такого... В твоём вопросе есть ответ на него а ты не видишь этого...
Доброго времени суток!
Пишу свой советник, но ни как не могу разобраться с условием закрытия сделки по противоположному сигналу. Как его прописать?
(если открыт бай, нужно его закрыть и открыть селл и наоборот)
Поменяй местами два глагола и может тогда увидишь ответ...
Открыть и закрыть... и сделать это по одному сигналу...
 

Coofoo

Прохожий
Я просто балдею от такого... В твоём вопросе есть ответ на него а ты не видишь этого...

Поменяй местами два глагола и может тогда увидишь ответ...
Открыть и закрыть... и сделать это по одному сигналу...

Хватит умничать! Итак понятно было, что критерий открытия селл может быть критерием закрытия бай. (хотя они у меня разные) А узнать я хотел как всё это ПРОПИСАТЬ грамотно, через какую функцию, а не по каким критериям.Читайте внимательнее.
 

hoz

Активный участник
Хватит умничать! Итак понятно было, что критерий открытия селл может быть критерием закрытия бай. (хотя они у меня разные) А узнать я хотел как всё это ПРОПИСАТЬ грамотно, через какую функцию, а не по каким критериям.Читайте внимательнее.

Для обладателей подобных реплик на одном форуме есть Клуб Телепатов, куда, собственно говоря, и посылают обычно. Здесь такого клуба нет, так что я промолчу...
 

Viko2000

Почетный гражданин
Хватит умничать! Итак понятно было, что критерий открытия селл может быть критерием закрытия бай. (хотя они у меня разные) А узнать я хотел как всё это ПРОПИСАТЬ грамотно, через какую функцию, а не по каким критериям.Читайте внимательнее.

Да не переживай.)));) Я уже год наблюдаю за веткой. Тут уже спецов. помогающих от души к сожелению не осталось.:) Тема прогнила, одни умники и зазнавшиеся челы остались. Я сам жду, пока подключатся новое оптимистичное поколение, и ветка воссияет.:D
 

Coofoo

Прохожий
Да не переживай.)));) Я уже год наблюдаю за веткой. Тут уже спецов. помогающих от души к сожелению не осталось.:) Тема прогнила, одни умники и зазнавшиеся челы остались. Я сам жду, пока подключатся новое оптимистичное поколение, и ветка воссияет.:D

Да я и не не переживаю))):) решение было найдено )))
 

AlexeyVik

Программист mql4 mql5
Спасибо за наводку, кое-что интересное для себя вычитал, хотя решение было найдено ранее (через функцию "CloseOrder")
Тоесть тебе надо было не условие закрытия, а функция закрытия ордеров? Ты даже этого не знаешь??? Ну так вопрос надо ставить соответственно...
Ну извини. Грамотно прописать значит не только закрыть, но и предусмотреть возможные ошибки закрытия. Тебе и это всё надо объяснять? А пользоваться поиском тебя не учили?
А не кажется-ли вам, господа, что просить помощи надо хоть что-то понимая в вопросе. А когда просят кусок кода чтобы тупо вставить его в свой пазл, это уже совсем не то.
 

RoboMaks

Элитный участник
Доброго времени суток!
Пишу свой советник, но ни как не могу разобраться с условием закрытия сделки по противоположному сигналу. Как его прописать?
(если открыт бай, нужно его закрыть и открыть селл и наоборот)

Для простоты решения добавьте в код где-нибудь после функции OnTick() (или Start() ) кусок кода

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void closesell(){int is;
for(;is<OrdersTotal();is++){RefreshRates();
if(OrderSelect(is,SELECT_BY_POS)&&OrderType()==OP_SELL&&OrderSymbol()==_Symbol/*&&OrderMagicNumber()==Magic*/){
if(OrderClose(OrderTicket(),OrderLots(),Ask,5)){PlaySound("stops.wav");return;}}}}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void closebuy(){int ib;
for(;ib<OrdersTotal();ib++){RefreshRates();
if(OrderSelect(ib,SELECT_BY_POS)&&OrderType()==OP_BUY&&OrderSymbol()==_Symbol/*&&OrderMagicNumber()==Magic*/){
if(OrderClose(OrderTicket(),OrderLots(),Bid,5)){PlaySound("stops.wav");return;}}}}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

и вставьте потом перед открытием BUY ( или если открыт BUY, как Вам нужно ) - closesell();, а перед открытием SELL - closebuy();

Если нужно именно по определённому магику - уберите там заглушки /* */
 

derzerack

Интересующийся
Прошу знающих подсказать. Проблема с индикатором Apollo.ex4

На этом форуме нашёл индюк, немного попробовал по нему ручками поторговать, вроде не плохо. Решил создать советника чтоб посмотреть стоит ли на это тратить время. Но возникла проблема, через функцию iCustom

Vtoroy0=iCustom(NULL,0,"Apollo.ex4",TimeFrame,Lag,NumComps,PeriodNorm,N,HighLowStep,0,1);

не получается вытащить значения, при попытке вывести значения на экран кроме "2147483647" никакие другие значения не передаются, и соответственно после окончания теста индикатор не отображается. Поискал в интернете подобную ситуацию, но кроме того что кривой dll информации больше не нашёл. Индюк был без исходника, думал проблема в этом, откомпилировал, поменял имена переменных, но результат такой же. Если индюк просто кидаешь на график он нормально работает, если пробуешь вызвать из советника ничего не делает(.

Сам индикатор и длл к нему прилагаю. Заранее благодарен за помощь.
 

Вложения

  • libSSA.dll
    79 КБ · Просмотры: 24
  • Apollo.ex4
    8,9 КБ · Просмотры: 34

derzerack

Интересующийся
Большое спасибо за ответ но(...

При вызове индюка, измени его имя, вместо: "Apollo.ex4" пропиши "Apollo"

прописывал для декомпилированного так
//------------------------вытаскиваем параметр индюка второй--------
Vtoroy0=iCustom(NULL,0,"Apollo~",TimeFrame,Lag,NumComps,PeriodNorm,N,HighLowStep,0,1);
Vtoroy1=iCustom(NULL,0,"Apollo~",1,0);
Vtoroy2=iCustom(NULL,0,"Apollo~",2,0);
Vtoroy3=iCustom(NULL,0,"Apollo~",3,0);
Vtoroy4=iCustom(NULL,0,"Apollo~",4,0);
Vtoroy5=iCustom(NULL,0,"Apollo~",5,0);
//------------------------Конец вытаскивания втрого---------------------------
для оригинала который скачал так
//------------------------вытаскиваем параметр индюка второй--------
Vtoroy0=iCustom(NULL,0,"Apollo",TimeFrame,Lag,NumComps,PeriodNorm,N,HighLowStep,0,1);
Vtoroy1=iCustom(NULL,0,"Apollo",1,0);
Vtoroy2=iCustom(NULL,0,"Apollo",2,0);
Vtoroy3=iCustom(NULL,0,"Apollo",3,0);
Vtoroy4=iCustom(NULL,0,"Apollo",4,0);
Vtoroy5=iCustom(NULL,0,"Apollo",5,0);
//------------------------Конец вытаскивания втрого---------------------------

Результат к сожалению на скрине. Похоже что этот индюк непобедим(.
 

Вложения

  • 2015-09-20 09-14-16 Скриншот экрана.png
    2015-09-20 09-14-16 Скриншот экрана.png
    166,5 КБ · Просмотры: 30

mobidik

-----
прописывал для декомпилированного так
//------------------------вытаскиваем параметр индюка второй--------
Vtoroy0=iCustom(NULL,0,"Apollo~",TimeFrame,Lag,NumComps,PeriodNorm,N,HighLowStep,0,1);
Vtoroy1=iCustom(NULL,0,"Apollo~",1,0);
Vtoroy2=iCustom(NULL,0,"Apollo~",2,0);
Vtoroy3=iCustom(NULL,0,"Apollo~",3,0);
Vtoroy4=iCustom(NULL,0,"Apollo~",4,0);
Vtoroy5=iCustom(NULL,0,"Apollo~",5,0);
//------------------------Конец вытаскивания втрого---------------------------
для оригинала который скачал так
//------------------------вытаскиваем параметр индюка второй--------
Vtoroy0=iCustom(NULL,0,"Apollo",TimeFrame,Lag,NumComps,PeriodNorm,N,HighLowStep,0,1);
Vtoroy1=iCustom(NULL,0,"Apollo",1,0);
Vtoroy2=iCustom(NULL,0,"Apollo",2,0);
Vtoroy3=iCustom(NULL,0,"Apollo",3,0);
Vtoroy4=iCustom(NULL,0,"Apollo",4,0);
Vtoroy5=iCustom(NULL,0,"Apollo",5,0);
//------------------------Конец вытаскивания втрого---------------------------

Результат к сожалению на скрине. Похоже что этот индюк непобедим(.

Все сосчитывается, вот так, например:
 

Вложения

  • Apollo-TEST.mq4
    1,1 КБ · Просмотры: 35
  • Apollo-TEST.png
    Apollo-TEST.png
    52,8 КБ · Просмотры: 52
Последнее редактирование:

djasper

Интересующийся
Всем Привэт. Подскажите пожалуйста как прописать?: Если low четырёх последних свечей не отличаются более чем на 5 пунктов.
 

derzerack

Интересующийся
Маги кудесник))

Все сосчитывается, вот так, например:

Огромное спасибо, всё действительно заработало. Единственное. После пробы Вашего файлика "Apollo-TEST". Результат был такой же. Я заглянул в журнал сообщений, там писал ошибку что то типо "загрузка длл запрещена". В настройках метатрейдера поставил галочку как на скрине и всё заработало.
Так что если кто то столкнётся с подобной проблемой загляните сначала не запрещены ли у вас длл в советниках.

Ещё раз большущее спасибо).
 

Вложения

  • 2015-09-20 19-55-58 Скриншот экрана.png
    2015-09-20 19-55-58 Скриншот экрана.png
    193,1 КБ · Просмотры: 20

gush

бродяга
пацаны, может кто что переделывал/трогал, а может просто завалялось у кого... простой сов для восстановления всех/любых закрытых ордеров на их прежнее место один в один? Весь инет перерыл, может куском кода.. просто поделитесь у кого что есть по этому вопросу.. любые аналоги алгоритма... спасибо!!!!!!!
 
Верх