Помогите разобратся с while - страница 4

 
gince:

Смысл в этом таков. Эти индки или ихниии комбинации показывают чаправление тренда. В этом направлинии разрешается открыть установленое количество ордеров. Это потому что в конце этово движения обычно начинается боковое движение (корекция, разворот). Устанавливаем такое количество разрешаемых открыть ордеров, при котором они открывались до бокового движения

Как пример

Выбор индикаторов - да любые какие кому нравятся


Имеет право на существование. Только логику работы надо отработать. Попробуй. Просто учитывай чтоты знаешь какой ордер был закрыт последним, и какой сейчас ( в данный момент времени).

сигнал. Можешь так же получить количество позиций подобного типа, текущую волатильность и многое остальное.

Я попробую помочь. Но не так быстро как хотелось бы. Работаю, да и свои дела есть.

 
А как можно узнать тип (буй, селл)  несколки последних закрытых ордеров. Как один последний - есть функция у Кима, а больше одного возможно?
 
gince:
А как можно узнать тип (буй, селл) несколки последних закрытых ордеров. Как один последний - есть функция у Кима, а больше одного возможно?


Можно примерно так делать

int Order_Count_History_OP(string lSymbol, int lMagic, int lOP){
   int Res=0;
   for (int i = OrdersHistoryTotal() - 1;  i >= 0;  i--) {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
      if (OrderSymbol() != lSymbol)                     continue;
      if (OrderMagicNumber() != lMagic)                 continue;
      if (OrderType()==lOP) Res++; else break;
   }
   return(Res);
}

Пример использования

int BuyCount= Order_Count_History_OP(Symbol(), Magic, OP_BUY);

 

Спасибо Виктор. Видно эта функцийа останется в моем архиве, как и другие там лежащие. Чем дальше тем больше думаю что с форексом надо заканчивать. Програмиста с меня неполучится, а сидеть все время у мотитора нет времени так как еще слишком бедчый чтоб неработать. Заплатить за реализацию идеи - нестоит тратить денег, так как идея без шлифофки ничего нестоит. За каждое изменение советника опят плати. Пока доведеш его до ума потратиш не одну тысячу. Сам пока могу написать цоветник на основе готового изменяя индикаторы и их параметры. Програмировать интересно, но я рад что в 45 лет научился хоть как то несложные програмы прочитать. Когда то была идея написать индюк рисовать канал на ЗЗ и работать на пробитие. Но сколко непробовал сам написать так и неполучилось. Просил помощи в нете, но так осталась идея при мне. Написать чего хочу с индикатора или советника мне трудновато, так как нехватает слов из за того что я не русский и даже писать проблоема, когда пишеш всегда на родном языке и клавиатура на том же языке, то на русском пока находиш русской клавиатуры...  

Так что надо перестать морочить вам головы. Спасибо всем помогавшим. 

 

 

Еще про этот советник. Была мысль на выбор минимального тейк профита, а дальше при достижении его тралить грубым тралом до уровня второва тейка и еще дальше тралить может по минимуму последней свечи. Все это подбирать надо и это делается по ходу дела при тестировании. Много чего придумать можно. Но сначала минимальный советник нужен. Когда тестируеш идеи появляются. 

Можно также сделать для лутшей фильтрации логическое умножение нескольких индикаторов или того же но с разными периодоми (или изменяя другие параметры).

Если кто взмется програмировать по этой стратегии мой Skype - gintaras2604  

 

Еще такая мысль пришла как отказатся от цикла (не без помощи Vinin. Спасибо ему). Подщитываем бары с момента появления синей линии. Другими словами заводим щечик.

Тогда проверяем были ли открыты ордера с нулевого до n-того бара, если были выдаем количество.

int Order_Count_History_OP(string lSymbol, int lMagic, int lOP, int bar){
 int res=0;
 for (int i = OrdersHistoryTotal() - 1; i >= 0; i--) {
 if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
 if (OrderSymbol() != lSymbol)                     continue;
 if (OrderMagicNumber() != lMagic)                 continue;
 if (OrderType()==lOP)                             continue;
 if (bar>=iBarShift(lSymbol,0,OrderOpenTime())) 
    res++;
 else break;
 }
 return(res);
}

Если неправ, поправте пожалуйста.
 

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