0


Поймал отрисовку линии:
Появилась при открытии бара (см.скрин), дистанция 30п.

P.S. у меня вопрос: если он рисует линю на пинбаре, а пин бар это свеча, у которой маленькое тело, длинный хвост с одной стороны и небольшой с другой, то где на скрине пинбар, и почему линия при открытии нулевого бара нарисовалась на расстоянии 30п.? При этом предыдущий бар не является пинбаром.
Т.е. робот не рисует линию на пин баре. Получается так)
avatar

FEEX

  • 25 января 2024, 13:17
0
расчет риска:
double GetLots()
  {
   double lot;
   double minlot=MarketInfo(Symbol(),MODE_MINLOT);
   double maxlot=MarketInfo(Symbol(),MODE_MAXLOT);
   if(risk!=0)
     {
      lot=NormalizeDouble(AccountBalance()*risk/100/10000,2);
      if(lot<minlot)
         lot=minlot;
      if(lot>maxlot)
         lot=maxlot;
     }
   else
      lot=LOTS;
   return(lot);
  }
avatar

FEEX

  • 25 января 2024, 12:27
0
Еще раз ТЗ скину, чтобы не искать долго)
ТЗ
При установке советника на график отрисовывается горизонтальная линия на тек.цене и <b>фиксируется</b>.
Следующая отрисовка линии и последующие происходят на цене закрытия ордера, или сетки ордеров.

Далее ждем ухода цены от линии на определенную дистанцию (Distance - задается в настройках в пунктах )
Далее, если цена ушла от линии, например вверх, на определенное расстояние(Distance), открываем SELL, при этом 
выставляется Тейк профит, соответствующий цене горизонтальной линии (если в настройках TakeProfit = 0) 
Если цена продолжает идти против нас, вверх, открываем второй SELL с тем же лотом! Строим сеть, шаг 
задается в настройках.

Если цена разворачивается в нашу сторону, то фиксация прибыли может произойти двумя способами:
1. При выходе всей сетки в безубыток, активируется трал (TrailingStop - старт трала в настройках)
2. При достижении ценой тейкпрофита.
Зеркально для BUY.
Выше линии - SELL, ниже линии - BUY.
-----------------------------------------------------------
НАСТРОЙКИ:
Risk         = 100;   // риск (если = 0, off)
Lots         = 0.1;   // торговый объем ордера
Distance     = 300;   // Расстояние от линии = сигнал открытия 1 ордера.
StopLoss     = 0;     // SL (если=0, то не выставляется и работает только когда активируется тралл.)
TakeProfit   = 100;   // TP ( если = 0, то фиксация прибыли происходит на цене линии, ранее отрисованной.)
TrailingStop = 35;    // трал (если 0, не работает)
Step         = 100;   // шаг
Count        = 10;    // Max ордеров серии
Slip         = 30;    // реквот
StartHour    = 1;     // час начала торговли
StartMin     = 30;    // минута начала торговли
EndHour      = 23;    // час окончания торговли
EndMin       = 30;    // минута окончания торговли
Magic        = 12345; // магик
-----------------------------------------------------------
Желательно сделать отрисовку линию безубытка, если не сложно)
P.S. формулу для Risk желательно использовать ту же, что в советнике CITY
avatar

FEEX

  • 25 января 2024, 12:23
0
по линии не открывается, и линия никуда не движется, пока идет накопление ордеров. В этом и фишка:
Линия, своего рода точка, граница, показывающая, что ниже линии будут только BUY, а выше линии только SELL.
И в рынке всегда находятся или ТОЛЬКО BUY, или ТОЛЬКО SELL.

avatar

FEEX

  • 25 января 2024, 12:17
0
Тем временем, на демо, тралимся потихоньку:

не обращайте внимание на инфо панель, это скрин с ноута, а там немного некорректно панелька отображается.
НО, обратите внимание!!! Все открытые ордера, в данном случае BUY, находятся НИЖЕ линии, о чем я и говорил. BUY — всегда ниже линии, SELL — всегда выше!..
P.S. Напомню, три дня назад баланс был 3171$
P.S.2 Только что ордера все закрылись, баланс: 5132.81
avatar

FEEX

  • 25 января 2024, 12:03
0
Андрей, наблюдая за оригиналом, я конечно не понял на каком основании эта линия рисуется, но понял что дальше происходит. По сути — вообще похрен где она(линия) нарисуется, главное что дальше делается!
А делается вот что:

после отрисовки линии, похрен на каком основании — просто при установке на график, или после закрытия всех ордеров, на цене закрытия, дальше эта линия никуда не смещается, стоит на той цене, на которой нарисовалась.

Потом от этой линии цена уходит или вверх, или вниз, на определенное расстояние, например 100п.
Когда цена ушла на определенное расстояние(100п) от линии, открывается 1 ордер.
Если цена от линииушла вниз на 100п, то открываем BUY
Если цена от линии ушла вверх на 100п, то открываем SEll

А дальше или сеть строится, если цена не в нашу сторону, или если в нашу, то по ТР закрываем, или траллу.

ВАЖНО!!!
Всё это время, пока были открыты ордера, хоть один — линия не меняет своё расположение!!!
Только после закрытия ВСЕХ ордеров, линия убирается, и рисуется НОВАЯ — на цене закрытия всех ордеров!

И с этого момента всё повторяется, о чем я выше писал.

Вообще я это всё расписал в ТЗ. Т.е. можно просто сделать так, как написано в ТЗ. И всё))
Андрей, просто жалко Ваше время — по тем версиям, которые вы выкладывали в этой теме — ну там ничего нет из ТЗ)) т.е это не то совсем)) А хотелось бы по ТЗ)) Опять же, чтобы не терять время)
avatar

FEEX

  • 25 января 2024, 11:50
0
void MakeLine(double price)
  {
   string name="level";

   if(price>iOpen(Symbol(),PERIOD_M5,0))
      Comment("BUY = "+DoubleToStr(price,Digits));
   if(price<iOpen(Symbol(),PERIOD_M5,0))
      Comment("SELL= "+DoubleToStr(price,Digits));

   if(ObjectFind(name)!=-1)
     {
      ObjectMove(name,0,iTime(Symbol(),PERIOD_M1,0),price);
      return;
     }
   ObjectCreate(name,OBJ_HLINE,0,0,price);
   ObjectSet(name,OBJPROP_COLOR,clrAqua);
   ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSet(name,OBJPROP_WIDTH,2);
   ObjectSet(name,OBJPROP_BACK,TRUE);
  }

вроде линия?
avatar

FEEX

  • 25 января 2024, 02:36
0
с пинбаром тоже можно, и может даже и нуужно, но на поиск пинбара тоже уйдет время. Я пока предлагаю тупо на цене закрытия всех ордеров ставить линию и не смещать её пока новые ордера все не закроются.И т.д. Т.е. чисто для скорости отработки системы. А там уже смотреть на чем её лучше рисовать эту линию. И может в коде оригинала кто-то разберется, на чем именно она рисуется.
avatar

FEEX

  • 25 января 2024, 00:06
0
По поводу вашего варианта с линией — не совсем так она должна работать.
Сначала отрисовывается линия, например сразу после установки совы на график, а далее уже после закрытия ВСЕХ ордеров на цене закрытия и она НЕ перемещается никуда до тех пор, пока снова не произойдет закрытия всех ордеров.
А когда линия нарисовалась, она стоит на месте, на той цене, на которой открылась, и и дальше уже стоит и ждет когда дистанция достигнет установленной величины, чтобы открылся первый ордер. Линия при этом никуда не смещается, всё еще стоит на той же цене, далее открываются ордера, сеть строится… И только когда вся сетка закроется, только тогда линия убирается и отрисовывается снова уже на цене закрытия сетки.
Примерно так.
Под нарисованной линией открываются ТОЛЬКО buy ордера, Над нарисованной линией открываются только SELL ордера, и только тогда, когда цена ушла от линии на определенную дистанцию, которая прописана в настройках
avatar

FEEX

  • 24 января 2024, 23:10
0
самый простой вариант: «При установке советника на график отрисовывается горизонтальная линия на тек.цене и фиксируется. Следующая отрисовка линии и последующие происходят на цене закрытия ордера, или сетки ордеров.». После отрисовки линии ждем отработку параметра Distance и открываем ордер. Это самый простой вариант отрисовки линии.
Как именно сие действие заложено в оригинал — лично мне неведомо))
avatar

FEEX

  • 24 января 2024, 22:49
0
с Distance еще лучше должен пойти. Андрей, просмотрите еще раз моё ТЗ, если всё сделать как там описано, а так же использовать указанные настройки, то будет точно интереснее, т.к. с настройками уже больше вариантов получится))
Да, еще: я уже писал, просто напомню: расчет лота (Risk) сделайте, плиз, как в оригинале.
По сути параметр «коэффициент» там не нужен, ибо расчет лота происходит исключительно от депа, а если ордера уже открыты, то их лот не умножается на кэфф.
avatar

FEEX

  • 24 января 2024, 22:41
+1
как посоветовали: «Сов сначала пин-бар находит, после уже строит линию, и если цена бид ниже линни то открывает сделку на покупку.Для продаж зеркально.»
или мой вариант, он проще: «При установке советника на график отрисовывается горизонтальная линия на тек.цене и фиксируется. Следующая отрисовка линии и последующие происходят на цене закрытия ордера, или сетки ордеров.»
После отрисовки линии в работу вступает параметр Distance = 300; // Расстояние от линии = сигнал открытия 1 ордера. И всё остальное по ТЗ)
На данный момент уже понятно, что CITY открывает SELL если цена ВЫШЕ линии, и BUY, если цена НИЖЕ линии. Пока непонятно как он вычисляет дистанцию от линии для открытия ордера, но на данном этапе это можно смоделировать фиксированными настройками расстояния в пунктах. Уже получится приблизительная модель. Так же можно реверс прикрутить, как доп. параметр (включаемый/выключаемый в настройках)
По сути сова пытается поймать разворот цены, т.е. сетка против тренда…
Как он это делает на самом деле — ответить сможет только специалист, коим я не являюсь)
Но сама модель интересная! Эффективная ли она — вопрос. Пока не попробуем, не узнаем)
avatar

FEEX

  • 24 января 2024, 21:31
0
Никто не запрещает регулировать время в настройках) в ТЗ я это тоже указал)
avatar

FEEX

  • 24 января 2024, 20:44
0
Не возражаю! «и если цена бид ниже линни то открывает сделку на покупку.Для продаж зеркально.» Всё верно! Только при соблюдении дистанции и остальных параметров в настройках) И по реверсу тоже не возражаю, тем более, что с этого всё и началось и благодаря pacanyaga (Автор) эта тема до сих пор обсуждаема и интересна! Осталось пригласить Андрея и уговорить его серьезно отнестись ко всему вышеизложенному и создать сову)
avatar

FEEX

  • 24 января 2024, 20:43
0
так это не я профессор, это примерно так этот CITY работает)) И я старался максимально просто и понятно расписать))
Если совсем просто:
Ставиv сову на график, она рисует линию на той цена, которая на данный момент в рынке. Дальше от этой цены отходим 50 пунктов например вверх(в настройках задается) и открывается SELL.
Если в настройках тейкпрофИТ = 0, то уровень TP устанавливается на той линии (цене), которая нарисовалась в начале.
А дальше или идем к текпрофиту, или тралом закрываемся. Если не в нашу строну цена, то сетку строим.))
Помоему все просто))
После закрытия всех ордеров, на цене закрытия снова рисуется линия, и весь цикл повторяется))
дистанция влияет на расстояние от нарисованной линии, на котором откроется первый ордер)
P.S. Линия при закрытии всех ордеров рисуется всегда, но не всегда будет являться тейкпрофитом! Только если в настройках TP=0, тогда тейкпрофитом становится цена линии. Если в настройках TP НЕ равен нулю, например = 100, то линия не становится тейкпрофитом! Тогда тейк работает по выставыленному в настройках значению.
avatar

FEEX

  • 24 января 2024, 18:49
0
Набросал ТЗ, используя примерную логику данного робота.
<code>ТЗ
При установке советника на график отрисовывается горизонтальная линия на тек.цене и фиксируется.
Следующая отрисовка линии и последующие происходят на цене закрытия ордера, или сетки ордеров.
Далее ждем ухода цены от линии на определенную дистанцию (Distance - задается в настройках в пунктах )
Далее, если цена ушла от линии, например вверх, на определенное расстояние, открываем SELL, при этом 
выставляется Тейк профит, соответствующий цене горизонтальной линии (если в настройках TakeProfit = 0) 
Если цена продолжает идти против нас, вверх, открываем второй SELL с тем же лотом! Строим сеть, шаг 
задается в настройках.
Если цена разворачивается в нашу сторону, то фиксация прибыли может произойти двумя способами:
1. При выходе всей сетки в безубыток, активируется трал (TrailingStop - старт трала в настройках)
2. При достижении ценой тейкпрофита.
Зеркально для BUY.
Выше линии - SELL, ниже линии - BUY.
-----------------------------------------------------------
НАСТРОЙКИ:
Risk         = 100;   // риск (если = 0, off)
Lots         = 0.1;   // торговый объем ордера
Distance     = 300;   // Расстояние от линии = сигнал открытия 1 ордера.
StopLoss     = 0;     // SL (если=0, то не выставляется и работает только когда активируется тралл.)
TakeProfit   = 100;   // TP ( если = 0, то фиксация прибыли происходит на цене линии, ранее отрисованной.)
TrailingStop = 35;    // трал (если 0, не работает)
Step         = 100;   // шаг
Count        = 10;    // Max ордеров серии
Slip         = 30;    // реквот
StartHour    = 1;     // час начала торговли
StartMin     = 30;    // минута начала торговли
EndHour      = 23;    // час окончания торговли
EndMin       = 30;    // минута окончания торговли
Magic        = 12345; // магик
-----------------------------------------------------------
Желательно сделать отрисовку линию безубытка, если не сложно)
P.S. формулу для Risk желательно использовать ту же, что в советнике CITY</code>
avatar

FEEX

  • 24 января 2024, 17:18
0
значит я правильного брокера выбрал и уже не первый год на реале торгую)
avatar

FEEX

  • 24 января 2024, 15:54
0
Про других брокеров не скажу, не пользуюсь, но на робе лично у меня всё гуд, тестит без проблем. Дллку надо только разрешить и норм.
Попробуйте разрешить dll не в сове, а именно в терминале, и перезапустить терминал.
Почту посмотрите, скинул версию 2.1)
avatar

FEEX

  • 24 января 2024, 15:44
0
в первом посте этой темы мой скрин из тестера)
avatar

FEEX

  • 24 января 2024, 15:41
0
dll который в сове прописан — это системный dll, т.е. он на ПК стоит у всех. Что он делает — я хз.
По поводу влияния брокера на сову — конечно может)) что угодно может сделать))
avatar

FEEX

  • 24 января 2024, 15:13