+2
Пожалуйста — www.opentraders.ru/downloads/1457/
avatar

Andrju81

  • 15 января 2017, 01:01
+1
И вот рабочий вариант —

Добавил в каталог файлов — www.opentraders.ru/downloads/1450
avatar

Andrju81

  • 8 января 2017, 22:30
0
Еще раз огромное СПАСИБО за помощь! *good* *bravo* 
avatar

Andrju81

  • 2 января 2017, 15:57
0
Подскажите, пожалуйста, где она находится. Лично я за два дня себе все мозги вынес в поисках ошибки, но так и не нашел, пришлось проявить смекалку, править его в старом metaeditor — там ошибок не возникает, но создает некоторое неудобство — для проверки приходится копировать его исполняемый файл в другой терминал.
avatar

Andrju81

  • 2 января 2017, 13:30
0
Вот что у меня получилось сделать с этим индикатором —

Всем спасибо за помощь! И с Новым Годом Вас!
avatar

Andrju81

  • 2 января 2017, 05:02
+1
Я не программист, но кое-какое представление о mql4 имею. Есть задумки на счет этого индикатора, но для начала надо заставить его работать в декомпилированном состоянии, т.к. с нового написать похожий индикатор у меня не получится, в принципе как и исправить ошибки мешающие его работе!?..
avatar

Andrju81

  • 1 января 2017, 17:51
+1
Не думаю, что это хорошая идея. Они прекратили бесплатное обновление с 15 декабря. Хотя обещали, что данный индикатор будет бесплатен до конца времен!?.. Теперь он может загрузить и отобразить на графиках всю историю вплоть до 14 декабря 2016 года включительно, а дальше ахтунг — либо плати 30 баксов в месяц за использование аналогичного индикатора из вектора для автоматического обновления данных, либо бесплатно скачивай шаблоны каждый день и применяй их на графиках. Но с этими шаблонами неудобно работать, т.к. нужно отдельно для этого открывать дополнительный график. В общем полная лажа — обещания не сдержали, глядишь плавно перейдут только на платную основу, к этому все и ведет.
avatar

Andrju81

  • 1 января 2017, 16:05
0
Андрей, я уже исправил почти все предупреждения выдаваемые в строгом режиме, но это проблему не устраняет, работает только отображение текущей цены. Что касается побитовых операций, то я пока от этого далек, не хватает навыков самому разобраться, если бы были похожие примеры, может и справился бы своими силами, но увы, вынужден просить помощи у знающих людей.
avatar

Andrju81

  • 31 декабря 2016, 21:33
0
Может такой вариант Вам поможет:

extern double     Lot               = 0.1;   //Начальный лот
extern double     ShagLot           = 0.05;  //прогрессия лота
extern int        MaxOrd            = 35;    //Максимум ордеров
extern double     MaxLot            = 10;    //Максимальный лот

int PrevOrdTotalBuy=0;
//+-------------------------------------------------------------+//
double BuyLotsOptimized()
 
{
   
double LotSize=MarketInfo(Symbol(),MODE_LOTSIZE);
   
double MinLot=MarketInfo(Symbol(),MODE_MINLOT);
   
double lot=Lot;

   
if(OrdTotalBuy()>PrevOrdTotalBuy && OrdTotalBuy()<=MaxOrd)
     
{
      lot
+= ShagLot*(OrdTotalBuy()-1);
     
if(lot<=MinLot) lot=MinLot;
     
if(lot>=MaxLot) lot=MaxLot;
     
}
return (lot);
 
}
avatar

Andrju81

  • 13 марта 2016, 17:49
0
Я пользуюсь такой торговой панелью,
только оставляю одну панель для расчета лота и выставления ордеров, дабы не загромождать график. Описание настроек прилагается в архиве.
avatar

Andrju81

  • 28 февраля 2016, 15:57
0
Этот индикатор основан на принципах анализа по Ганну. Это не грааль, но сигналы весьма и весьма точны. Я так понимаю и формулы для расчета уровней взяты по такому принципу. Использовать данный индикатор как торговую стратегию без фильтрации сигналов конечно неразумно, но я писал выше, что визуально в тестере с фильтром MACD, получаются довольно не плохие результаты на паре EURUSD, собственно именно для этой пары его и писали.
avatar

Andrju81

  • 1 февраля 2016, 23:05
0
Как-то так:

   
int li_188 = 100; //JPY
   
int digs  = Digits;
   
if (StringFind(Symbol(), "JPY", 0) == -1) li_188 = 10000; //кроме пар с JPY

double OpenPrice = iOpen(Symbol(),PERIOD_D1,0) * li_188;
   
// алгоритм расчета уровней
   
double Mod=(180* MathSqrt(OpenPrice) - 225.0)/360;
   
double dir=(((180* MathSqrt(OpenPrice) - 225.0)/360)-Mod)*360;
   
string strdir = "Unknown: " + dir;
   
if (dir >= 0.0 && dir <= 90.0 || dir >= 180.0 && dir <= 270.0) strdir="Long";
   
if (dir > 90.0 && dir < 180.0 || dir > 270.0 && dir <= 360.0) strdir="Short";

   
double ld_124 = 0, ld_132 = 0, ld_148 = 0, ld_156 = 0, ld_164 = 0;
   
// Ширина сетки
   
if (dir >= 90.0) {
      ld_124
= NormalizeDouble(dir / 90.0, 0);
      ld_148
= dir / ld_124;
      ld_164
= ld_148 / 180.0;
   
} else {
      ld_132
= NormalizeDouble(90 / dir, 0);
      ld_156
= dir * ld_132;
      ld_164
= ld_156 / 180.0;
   
}
   
   
double Entry_1;
   
double Entry_2;
   
double TP1;
   
double TP2;
   
double SL;
   
double ld_196 = MathSqrt(OpenPrice);
   
   
if (strdir=="Long")
   
{
      Entry_1
= NormalizeDouble(OpenPrice / li_188,digs); //White
      Entry_2
= NormalizeDouble((ld_196 - ld_164 / 2.0) * (ld_196 - ld_164 / 2.0) / li_188,digs); //Orange
      TP1
= NormalizeDouble((ld_196 + ld_164 / 2.0) * (ld_196 + ld_164 / 2.0) / li_188,digs); //Lime
      TP2
= NormalizeDouble((ld_196 + ld_164) * (ld_196 + ld_164) / li_188,digs); //Green
      SL
= NormalizeDouble((ld_196 - ld_164) * (ld_196 - ld_164) / li_188,digs); //Red
   
}
   
   
if (strdir=="Short")
   
{
      Entry_1
= NormalizeDouble(OpenPrice / li_188,digs); //White
      Entry_2
= NormalizeDouble((ld_196 + ld_164 / 2.0) * (ld_196 + ld_164 / 2.0) / li_188,digs); //Orange
      TP1
= NormalizeDouble((ld_196 - ld_164 / 2.0) * (ld_196 - ld_164 / 2.0) / li_188,digs); //Lime
      TP2
= NormalizeDouble((ld_196 - ld_164) * (ld_196 - ld_164) / li_188,digs); //Green
      SL
= NormalizeDouble((ld_196 + ld_164) * (ld_196 + ld_164) / li_188,digs); //Red
   
}
   

<img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 
avatar

Andrju81

  • 1 февраля 2016, 20:49
0
В том то и дело, что недостаточно опыта.
avatar

Andrju81

  • 1 февраля 2016, 19:50
0
Андрей, может посмотрите мой заказ?!.. Не хотелось бы разводить дубликаты топика, так как этот не попадает под условия заказа, а именно более одного заказа в январе месяце.
avatar

Andrju81

  • 1 февраля 2016, 17:26
0
В этом тральщике вся информация о стопах и профитах отображается в комментариях в левом верхнем углу:

Как можете заметить, на скрине отображается текущий профит(Current Profit) 40 пунктов, а текущий стоп (Current Stop) на уровне 10 пунктов, т.е. в настройках было установлено начальный уровень трала (TrailingStart) 10 п., фиксированный уровень трала (TralingStop) 30 п., шаг трала (TralingStep) 1 п… Когда профит достиг 40 пунктов, советник «перенес»(запомнил) стоп на уровень безубытка плюс 10 пунктов. Если цена окажется на этом уровне или при резком движении даже заскочит далеко вниз, если был ордер на покупку, то советник отдаст приказ брокеру на рыночное закрытие ордера. Вот теперь подумайте, оно Вам надо?!..
avatar

Andrju81

  • 31 января 2016, 02:51
0
Попробуйте этот: opentraders.ru/downloads/1021/
avatar

Andrju81

  • 29 января 2016, 04:15
0
Андрей, небольшая поправка к стратегии:
Если открытый ордер не закрывается до начала следующего дня и не сработал отложенный ордер, то при поступлении сигнала в туже сторону корректируем только тейк-профит согласно новым данным если он не ниже цены открытия самого ордера, если ниже, то просто переводим ордер в безубыток, модифицируем отложенный ордер (цена открытия, SL) по новым данным. Если открыты два ордера, то ничего не меняем или перемещаем тейк-профит обоих ордеров в безубыток плюс несколько пунктов.
avatar

Andrju81

  • 26 января 2016, 16:03
0
Другие может и подстраиваются (перерисовываются), но этот индикатор берет для расчетов только цену открытия дневной свечи, белая линия (Entry_1) всегда находится на уровне открытия дня.
avatar

Andrju81

  • 26 января 2016, 12:54
0
Спасибо Андрей за помощь! То что доктор прописал. Только, я думаю, надо сделать(дать) выбор шага изменения баланса и соответственно лота. В таком случае получается так:
extern double     Lot               = 0.1;  //Начальный лот
extern double     ShagLot           = 0.1;  //прогрессия лота на каждые "ShagBalans"
extern int        ShagBalans        = 1000; //шаг баланса кратный 1000
extern double     Risk              = 5;    //если баланс меньше "ShagBalans" рассчитывается(%) от баланса
extern double     MaxLot            = 10;   //Максимальный лот
//+-------------------------------------------------------------+//
double LotsOptimized()
 
{
   
double LotSize=MarketInfo(Symbol(),MODE_LOTSIZE);
   
double MinLot=MarketInfo(Symbol(),MODE_MINLOT);
   
double lot=Lot;
   lot
=(int)AccountBalance()/ShagBalans;
   lot
=lot*ShagLot;
   
//баланс меньше 1000
   
if(AccountBalance()<ShagBalans)
     
{
      lot
=NormalizeDouble(AccountBalance()*Risk/LotSize,2);
     
if(lot<=MinLot) lot=MinLot;
     
if(lot>=MaxLot) lot=MaxLot;
     
}
return (lot);
 
}

Вы со мной согласны?!.. Если да, то тогда вопрос исчерпан. Еще раз СПАСИБО за помощь.
avatar

Andrju81

  • 25 января 2016, 17:10
Загрузка...