Ghost Quotes (Котировки-привидения) - страница 3

 
LRA:
Мне такой нравится

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


А на картинке небось со 100$ история? Что за советник там?

 
// Проверка исчерпания фрахта

     if(FreightMoneyAccountPercent<100)

     {

      ph=CalculateProfitHistory();

      if(ph<-StartMoneyOnDeposit * FreightMoneyAccountPercent/100)

      {

         Print("Советник исчерпал фрахт и завершил работу");

         SendMail("EA BJH","Советник исчерпал фрахт и завершил работу");

         ExpertRemove();

      }

     }

// Z.a.k.l.a.d.k.a.BLACKJACK&HOOKERS.mq4 double CalculateProfitHistory() { double profithistory=0; for(int i=OrdersTotal()-1; i>=0; i--) { if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue; if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) if(OrderType()==OP_BUY || OrderType()==OP_SELL) profithistory+=OrderProfit(); } return(profithistory); }

Я отказался профиты учитывать по открытым позициям, ведь там может быть рабочая просадка и некорректно закрывать советника. По профитам открытых ордеров страхует функция выставления встречного ордера с автолотом. Не будем ей мешать.


SELECT_BY_POS. Mожет быть одной из следующих величин:

MODE_TRADES (по умолчанию) - ордер выбирается среди открытых и отложенных ордеров,

MODE_HISTORY - ордер выбирается среди закрытых и удаленных ордеров. 

Вроде всё правильно... Помогите ошибку найти.

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
geratdc:   ЧТо за метод такой SELECT_BY_POS??? Он относится к текущим позициям или это просто указание на выборку? В инструкции не нашёл ничего про этот метод. В общем на тесте не отработал последний вариант. Где-то что-то не то. Но логика думаю понятна. Помогите ошибку найти.

Ставишь курсор на OrderSelect() и нажимаешь F1. Функция OrderSelect() выбирает ордер для последующей работы с ним. Если ордера нужно выбирать в том порядке, как они лежат у брокера на сервере, то SELECT_BY_POS. А если нужно по номеру, который ордеру присвоил сервер брокера, то SELECT_BY_TICKET

 
STARIJ:

Ставишь курсор на OrderSelect() и нажимаешь F1. Функция OrderSelect() выбирает ордер для последующей работы с ним. Если ордера нужно выбирать в том порядке, как они лежат у брокера на сервере, то SELECT_BY_POS. А если нужно по номеру, который ордеру присвоил сервер брокера, то SELECT_BY_TICKET


Да, с этим справился. То есть в коде сначала выбираются все ордера советника ORDER_BY_POS потом уточняется что среди закрытых профит считаем. Но всё равно не работает. ph я добавил вместе с op, и другими double переменными вверху.

Файл с настройками тестов прилагаю. Там как бы 300 $ депозит. 33% фрахта. В районе 162 долларов баланса советник выходить должен - там контр ордера шпарят и у них просадка прошла - автолот не справился и эти контрордера были закрыты. Стало быть фрахт исчерпан, но по последнему варианту ph не вычисляется как будто.

Дата теста по EURUSD с 02.01.2017 по 29.12.21017
Файлы:
 

if(OrderType()==OP_BUY || OrderType()==OP_SELL) profithistory+=OrderProfit();


Может здесь ошибка в || ?  

Нам же надо по селам и баям считать? И по тем и по другим типам среди закрытых ордеров. Да не, вроде всё логично.

 
geratdc:

Я отказался профиты учитывать по открытым позициям, ведь там может быть рабочая просадка и некорректно закрывать советника. По профитам открытых ордеров страхует функция выставления встречного ордера с автолотом. Не будем ей мешать.


SELECT_BY_POS. Mожет быть одной из следующих величин:

MODE_TRADES (по умолчанию) - ордер выбирается среди открытых и отложенных ордеров,

MODE_HISTORY - ордер выбирается среди закрытых и удаленных ордеров. 

Вроде всё правильно... Помогите ошибку найти.


OrdersTotal()     Возвращает общее количество открытых и отложенных ордеров.

на

OrdersHistoryTotal()     Возвращает количество закрытых и удаленных ордеров в истории текущего счета, загруженной в клиентском терминале.

замените

как то так.

    

 
Alekseu Fedotov:

OrdersTotal()     Возвращает общее количество открытых и отложенных ордеров.

на

OrdersHistoryTotal()     Возвращает количество закрытых и удаленных ордеров в истории текущего счета, загруженной в клиентском терминале.

замените

как то так.

    


Спасибо. Сейчас потестю. Отпишусь.


StartMoneyOnDeposit (deposit) $ 300 FreightMoneyAccountPercent 33 Lots 0.01 TakeProfit $ 20


// Проверка исчерпания фрахта
     if(cn==0 && FreightMoneyAccountPercent<100)
     {
      ph=CalculateProfitHistory();
      if(ph<-StartMoneyOnDeposit * FreightMoneyAccountPercent/100)
      {
         Print("Советник исчерпал фрахт и завершил работу");
         SendMail("EA BJH","Советник исчерпал фрахт и завершил работу");
         ExpertRemove();
      }
     }



// Z.a.k.l.a.d.k.a.BLACKJACK&HOOKERS.mq4
double CalculateProfitHistory()
  {
   double profithistory=0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
         if(OrderType()==OP_BUY || OrderType()==OP_SELL) profithistory+=OrderProfit();
     }
   return(profithistory);
  }

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


Ещё раз спасибо всем)) 

 
geratdc:  ... Пойду оформлять в инструкцию...

А для чего нужна инструкция? Чтоб дурачить лопухов, помогать брокерам стричь баранов?!!

 
STARIJ:

А для чего нужна инструкция? Чтоб дурачить лопухов, помогать брокерам стричь баранов?!!


Я когда другие советники смотрю, не понимаю что за что отвечает. Как и что настроить? И по какому принципу алгоритм работает. Это мешает эффективно потестить. Думаю инструкция как-то проще даст понять принципы работы новичкам уж точно. Профи код посмотрят и им всё ясно - очередной сливатор)))

Взять вот рыбку. Неплохо бы коротенькую инструкцию про неё. Что за параметры настройки такие. Общий алгоритм работы советника. Советую))

 
geratdc:

Я когда другие советники смотрю, не понимаю что за что отвечает. Как и что настроить? И по какому принципу алгоритм работает. Это мешает эффективно потестить. Думаю инструкция как-то проще даст понять принципы работы новичкам уж точно. Профи код посмотрят и им всё ясно - очередной сливатор)))

Взять вот рыбку. Неплохо бы коротенькую инструкцию про неё. Что за параметры настройки такие. Общий алгоритм работы советника. Советую))

Английский школьник проник в тайны интернета. Вошел под его именем - чего началось!!!

Скачал вот советник - попробуй. EURUSD  H1  2017 ... 2018 год. Начальное депо от 11 до  111

Файлы:
E_007.ex4  13 kb
Причина обращения: