Подскажите по поводу ордеров - страница 2

 

Конечно большое спасибо!!!

Но все равно не работает.

 
liza писал(а) >>

Конечно большое спасибо!!!

Но все равно не работает.

Покажи весь код. Можно у меня на форуме в отдельной ветке. Специально сделаю. И можно приватную (при желании).

 
Прикреплен
Файлы:
atrade.mq4  5 kb
 

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

Есть два варианта.

1. Полностью переписываю советника (но как понимаю это не нужно делать, шишки тоже нужны)

2. Начинать с логики работы. Расписать функциональные блоки и по шажкам их реализовывать (но уже не моими руками, но можно с подсказками).

Какой вариант более предпочтителен.

На самом деле зависит только от задач, решаемых автором топика, то есть от Вас Лиза.

 

Могли бы Вы мне помочь по 2-му варианту?

Я поставила в условие для закрытия ерунду для того чтобы проверить или oc() работает.

oc() работает и получается что не работает countpr().

Вот только с чего начать?

 
liza писал(а) >>

Могли бы Вы мне помочь по 2-му варианту?

Я поставила в условие для закрытия ерунду для того чтобы проверить или oc() работает.

oc() работает и получается что не работает countpr().

Вот только с чего начать?

Хорошо. Тогда начнем с логики. Напишите на бумаге (вначале) последовательность работы советника, но не уровне операторов.

Скажем так

1. Анализ рыночной ситуации (анализ индикаторов и прочее)

2. В зависимости от пункта 1 могут быть дальше варианты.

2.1 Поступил сигнал на закрытие (проверили наличие открытых позиций и при необходимости закрыли)

2.2 Поступил сигнал на модификацию (Проверили наличие и позиций и при необходимости обработали)

2.3 Поступил сигнал на открытие (Проверили наличие позиций и при подтверждении открыли позицию.

Примерно вся логика советника, которую строю я.

Хотя варианты могут быть разными.

После этого можно переходить к постепенному наполнению советника функционалом.

 

Дело в том что как я определила не работает countpr() и постоянно выдает 0.

Может Вы можете что подсказать по этой функции?

 
liza писал(а) >>

Дело в том что как я определила не работает countpr() и постоянно выдает 0.

Может Вы можете что подсказать по этой функции?

// расчет профита
double countpr() {
  double pr = 0;
  for(int i=0; i<OrdersTotal();i++) 
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
      if( OrderSymbol()==Symbol())        pr+= OrderProfit();
  Print("Общая прибыль/убыток по незакрытым операциям составляет ", pr);
  return(pr);
}
Проверь эту функцию.
 

Вроде работает но все-таки мто-то не так.

Меня интетесуют локирующие позиции при этом лок отложенный в обратную сторону с удвоенным лотом.

Частично так и получается, но не все.  Если можете подскажите в чем проблема.

 
Честно говоря я не понимаю почему если я вставляю в условие какое нибудь легкое условие ордера закрываются а если использую countpr()? или р ( р= countpr() ) oc() не срабатывает.  Не могли бы Вы подсказать причину?
Причина обращения: