0
Да любая ТС это использование той или иной закономерности. Но рынок таков, что
любая закономерность всегда предмет общественного достояния. Поэтому больше чем
в 50 % вход в рынок при использовании данной закономерности будет ложным. И для
того что бы ТС была успешной приходится учить её не только как не допустить
ложного входа (а это поиск закономерности/тей указывающих что вход будет ложным),
но и как выходить с минимальными потерями. И если это достигнуто, — -спользование
основной закономерности становится true. Но часто наворачивание кода ни к чему
хорошему не приводит и приходится признать что хотя закономерность и существует,
использовать её для получения реальной прибыли без возможных существенных потерь
невозможно.
avatar

vikas

  • 26 февраля 2017, 11:17
0
Да так частично он закрывается. Правда вылезает косяк с усреднением. После выставления 3-го ордера и частичного удаления второго ордера моментально выставляется 4-ый ордер лотом 0.02. И непонятно то ли это из за тестера, то ли из за логики блока усреднения.(блок усреднения стандартный) Смотрю в результаты и такое ощущение что второй ордер сначала удаляется полностью а потом тестер по этой же цене выставляет новый ордер с лотом 0.01 (как бы частично закрылся) Ну и получается Step 2-го ордера то пройден, он и выставляет 4-ый ордер лотом 0.02. Но почему? Ведь есть третий ордер и Step должен считаться от него. Я конечно
изловчился изменил усреднение, добавил переменных и как бы работает. Но я не уверен будет ли это работать в реале — может кодом я просто исправил проблему
тестера. Вообщем буду смотреть дальше после выходных.
avatar

vikas

  • 25 февраля 2017, 09:32
0
буду пробовать спасибо.
avatar

vikas

  • 24 февраля 2017, 13:27
0
Так частично закрываются все 3 ордера. А нужно только второй. Или делаю что то
не то. Что в скобках? Так?

 bool cl=true;
 double pAsk;
 for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            pAsk=MarketInfo(OrderSymbol(),MODE_ASK);
          
            if(OrderType()==OP_SELL)         cl=OrderClose(OrderTicket(),lot,fND(pAsk),Slip,Red);
           }
        }
     
  }
avatar

vikas

  • 24 февраля 2017, 12:34
0
Насчёт спреда да, не учтёшь. Но в каких то спорных моментах можно спред в тестере
в каких то пределах менять и тогда судить. Что касается проскальзываний, то
лучше использовать ECN счёт там их нет. Вообще всё это конечно больше касается
скальпинга на малых таймфреймах. Для долгосрочной торговли это не актуально.
avatar

vikas

  • 28 октября 2016, 17:28
0
Для того, что бы оценить реальную работу советника необходимо тестировать его на
реальной тиковой истории того борокера у которого торгуете. Эту историю нужно не
скачивать гдето из архивов этого ДЦ, а писать самостоятельно в режиме реального
времени т.к архивные тики отличаются от реальных.(уж не знаю что они там с ними
делают) Сделать это можно например с помощью программы TicksCollektor_AD. С помощью скрипта fxtFilemaker_script_ad конвертируем в файл удобный для тестера.
Ну а что касается дукаскопи… ну да 99% только толку то от этого.
avatar

vikas

  • 27 октября 2016, 19:31
0
Да, всё отлично работает. Оперативно. Спасибо большое.
avatar

vikas

  • 18 июля 2016, 21:58
0
Да всё работает. Большое спасибо.
avatar

vikas

  • 29 февраля 2016, 06:46
0
изменил блок void DellTP() на:
void ModifyOrders() {
  int tip,Ticket;
   double SL=0,TP=0;
   double OOP;
  
   for (int i=0; i<OrdersTotal(); i++) 
   {  
      if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
      {  
         tip = OrderType();
         if (OrderSymbol()==Symb && OrderMagicNumber()==Magic && (OrderType()==OP_BUY || OrderType()==OP_SELL))
         {
            
            
            {  
               OOP   = OrderOpenPrice();
               Ticket = OrderTicket();
                
               if (tip==OP_BUY)             
               {
                  if (STakeProfit!=0) TP = NormalizeDouble(OOP + STakeProfit*Point,Digits); 
                  if (SStopLoss!=0)   SL = NormalizeDouble(OOP - SStopLoss*Point,Digits);  
                    
                  if(OrderTakeProfit()!=TP)  int number =OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0,Yellow);
                 
               }  
                                                       
               if (tip==OP_SELL)        
               {
                  if (STakeProfit!=0) TP = NormalizeDouble(OOP - STakeProfit*Point,Digits); 
                  if (SStopLoss!=0)   SL = NormalizeDouble(OOP + SStopLoss*Point,Digits);
                  
                  if(OrderTakeProfit()!=TP)  int number1 =OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0,Yellow);              
                  
                  
               } 
            }
         }
      }
      
   }

}
avatar

vikas

  • 20 октября 2015, 22:34
0
доработанный по золоту за 2 года shot.qip.ru/00GmGP-5Ogbqip64/
avatar

vikas

  • 9 октября 2015, 06:54
0
Проблема решена.
avatar

vikas

  • 8 октября 2015, 20:29
0
Андрей, посмотрел последнюю версию. Давай закончим на этом. Тебе большое
спасибо за упорство и терпение. Дальше я сам.
avatar

vikas

  • 8 октября 2015, 17:47
0
Андрей это ты что имел ввиду? Поставить сразу в меню?
Или в процессе модификации?
Если первое то не подходит.
Если второе то я об этом и говорил.
avatar

vikas

  • 8 октября 2015, 12:48
0
хорошо я конечно буду пробовать.
Тогда может его не удалять а загнать
куда подальше. А в меню указать куда?
главное ведь что бы он не мешал.
Все равно ведь закрытие то в валюте?
Короче модифицировать?
avatar

vikas

  • 8 октября 2015, 11:26
0
Oxy, доброе утро. Честно, не знаю. Но попробовать надо. Дело в том что во флете
он иногда открывает очень много ордеров. Очень здорово растёт маржа. По пунктам
он не доходит до закрытия. А вот в валюте мог бы. Ну и вообще я хотел поиграться
с кодом — изменить например условия открытия ордера, ввести какие нибудь коэффициенты, фильтры и т.д. Я уже так делал в предыдущих ваших с Андреем советниках.
avatar

vikas

  • 8 октября 2015, 06:44
0
Я вот давал тебе ссылку на советника с сайта mql5. Ты говоришь он у тебя в тестере не запускается. Там просто в меню в первой строчке надо надо поменять «manual»
на «by indicator». Тогда он тестится. (если тебе это ещё интересно)
avatar

vikas

  • 8 октября 2015, 00:04
0
Ну так да. Выставился BUY. У него выставился ТП. Одновременно выставился Sellstop.
Здесь нормально. Дальше цена пошла вниз сработал Sellstop. ТП ордера Buy должен
удалиться. А он не удаляется. Что не так?
avatar

vikas

  • 7 октября 2015, 23:44
0
Андрей, наверное я плохо объясняю. Такое ощущение что мы общаемся через переводчика. Но всётаки, тейк профит должен быть только у первоначального ордера и удаляться если сработал следующий за ним отложенник. А дальше все должно закрыться по суммарному профиту в валюте. Больше ничего делать не надо.
Вот посмотри на картинку shot.qip.ru/00GmGP-5Ogbqip5F/
Это последняя твоя версия. Всё замечательно. Только первый рыночный ордер BUY
закрылся по своему ТП уже после того как сработали отложенники. А нужно было
чтобы ТП этого первого ордера удалился после сработки sellstop и чтобы этот первый BUY закрылся вместе со всеми.

avatar

vikas

  • 7 октября 2015, 23:10
Начать торговлю с Альпари