Ордера открываются когда надо, но не закрываются

 

Решил написать своего советника.

Принцип следующий: индикатор iCC с периодом 50, при пересечении с низу вверх заданного уровня (-100) открывается покупка и закрывается только тогда когда будет пересечении сверху вниз уровня 100, но котором также открывается продажа и т.д. Торговля идет всегда 1 ордером.

Но появилась проблема. Ордера открываются когда надо, но не закрываются.

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

Заранее благодарен!!!

Файлы:
lexxf.mq4  4 kb
 
LexxSakhalin >>:

Решил написать своего советника.

Принцип следующий: индикатор iCC с периодом 50, при пересечении с низу вверх заданного уровня (-100) открывается покупка и закрывается только тогда когда будет пересечении сверху вниз уровня 100, но котором также открывается продажа и т.д. Торговля идет всегда 1 ордером.

Но появилась проблема. Ордера открываются когда надо, но не закрываются.

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

Заранее благодарен!!!

см. отличная система по CCI

 

Читал...Какая она отличная на фиг!!!

Мне требо такую какую задумал сделать, т.к. это не последняя инстанция!!!

 
LexxSakhalin писал(а) >>

Решил написать своего советника.

Принцип следующий: индикатор iCC с периодом 50, при пересечении с низу вверх заданного уровня (-100) открывается покупка и закрывается только тогда когда будет пересечении сверху вниз уровня 100, но котором также открывается продажа и т.д. Торговля идет всегда 1 ордером.

Но появилась проблема. Ордера открываются когда надо, но не закрываются.

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

Заранее благодарен!!!

у тя кажись условия не правильные по закрытию!

если покупка открылась снизу вверх -100 то поидее она должна закрыться 100+20, а у тя -100-20 ! тоже самое с продажей!

или я чёт не допонял!

 

CCIBuyLevel = -100;
CCISellLevel = 100;
CCIMove = 20;

на покупку открывается if (PrewTrend < CCIBuyLevel && NowTrend > CCIBuyLevel) Move1= 1; // динамика покупки

а закрываться должен на if (PrewTrend > CCISellLevel+CCIMove && NowTrend < CCISellLevel+CCIMove) Move4 = 1;// динамика закрытия покупки


вроде все верно...

 
Т.к. переменная Tiket не глобальная, то она каждый новый тик обнуляется. И в этом месте
OrderSelect(Tiket, SELECT_BY_TICKET, MODE_TRADES);
выбора ордера не происходит.
Надо Tiket , вынести в глобальные переменные
 
Talex >>:
Т.к. переменная Tiket не глобальная, то она каждый новый тик обнуляется. И в этом месте

Это куда?

 
Talex >>:
Т.к. переменная Tiket не глобальная, то она каждый новый тик обнуляется. И в этом месте

Просто реально 3 день только осваиваю этот язык.

 

Справочник MQL4 - Основы языка - Переменные - Глобальные переменные

Глобальные переменные определяются на том же уровне, что и функции, т. е. не локальны ни в каком блоке.

 

Учебник по MQL4 Переменные Виды переменных

https://book.mql4.com/ru/variables/types

Причина обращения: