Здравствуйте!
Подскажите, пожалуйста, как написать советнику, чтобы смотрел ордера с истории, если там будет подряд 3 ордера с убыточной прибылью, то открывал бы ордера наоборот то есть например не на buy, а уже на sell и еще если там будет подряд 3 ордера с убыточной прибылью то бы открывал ордера уже не наоборот, а нормально...
используйте для первой стратегии один маджик, для обратной другой.
Перед открытием ордера проверяется история, выбираются три последних ордера.
ну и т.д. :)
используйте для первой стратегии один маджик, для обратной другой.
Перед открытием ордера проверяется история, выбираются три последних ордера.
ну и т.д. :)
Чтобы использовался другой меджик это я в принципе уже написал мне только нужен код чтобы перед открытием проверялись три последних ордера в истории и если во всех трех профит в минус переворачивал стратегию.
int i=0,счёт=0; while(i<СчётЛос) {if(OrderSelect(OrdersHistoryTotal()-i,SELECT_BY_POS,MODE_HISTORY)) {if(OrderProfit()<0) {счёт++; } } i++; } if(счёт==СчётЛос && СчётЛос!=0) {//выполняем тото и тото }
правда здесь считается не по стоплосам а вообще сколько подряд убыточных сделок.
Чтобы использовался другой меджик это я в принципе уже написал мне только нужен код чтобы перед открытием проверялись три последних ордера в истории и если во всех трех профит в минус переворачивал стратегию.
очень приблизительно, как то так)
int cnt,i; int ArrMagic[3]; double ArrProfit[3]; for(cnt=OrdersHistoryTotal()-1,i=0; cnt>=0,i<3; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY); if(OrderSymbol()==Symbol()) { ArrMagic[i]=OrderMagicNumber(); ArrProfit[i]=OrderProfit(); i++; } } if(ArrMagic[0]==Magic1 && ArrMagic[1]==Magic1 && ArrMagic[2]==Magic1 && ArrProfit[0]<0 && ArrProfit[1]<0 && ArrProfit[2]<0) { Стратегия1=false; Стратегия2=true; } if(ArrMagic[0]==Magic2 && ArrMagic[1]==Magic2 && ArrMagic[2]==Magic2 && ArrProfit[0]<0 && ArrProfit[1]<0 && ArrProfit[2]<0) { Стратегия1=true; Стратегия2=false; }
зы: поправил. int ArrMagic.
Вот прикрепил код к советнику только он открывает по второй стратегии (это ордера наоборот) только 1 ордер, а потом опять по первой (это ордера как обычно)...
Вот прикрепил код к советнику только он открывает по второй стратегии (это ордера наоборот) только 1 ордер, а потом опять по первой (это ордера как обычно)...
bool Trade1=true;
bool Trade2=false;
должны быть глобальные переменные(вне функции start).
Чтоб работало не только в тестере, можно использовать GlobalVariableSet().
bool Trade1=true;
bool Trade2=false;
должны быть глобальные переменные(вне функции start).
Чтоб работало не только в тестере, можно использовать GlobalVariableSet().
Спасибо! :) Сразу не подумал что надо писать эти переменные за функцию start()...
Еще заменил обычные переменные глобальными.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте!
Подскажите, пожалуйста, как написать советнику, чтобы смотрел ордера с истории, если там будет подряд 3 ордера с профитом в минус, то открывал бы ордера наоборот то есть например не на buy, а уже на sell и еще если там будет подряд 3 ордера с профитом в минус то бы обратно переворачивал стратегию и т.д.