Советник Ultron [внутридневной, GBP/USD, H1]

  • Автор темы Автор темы Юлия
  • Дата начала Дата начала

FEEX

Местный житель
да, но в ней нет многих опций. можно, конечно, и руками, но....))

Лично мне эта версия не нравится) Робот и так не совсем безопасный, а с динамикой вообще всё может закончиться намного быстрее.
Я отталкивался от кол-ва непрерывных проигрышей и меня интересовала при этом макс. просадка.
И пока в этом плане интереснее версия с фиксированным лотом)
 
Последнее редактирование:

buza70

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

libertadoros

Интересующийся
FEEX,
А можно получить исходник для 3.2.0? Хотелось бы посмотреть и поколдавать над ней.
 

libertadoros

Интересующийся
Вот мой тест-репорт с депо в килобакс и лот размером в 0.2:)
Просадку чем ниже в 40 % не получается добиться
 

Вложения

  • 3.2.0_Result.JPG
    3.2.0_Result.JPG
    184,8 КБ · Просмотры: 126

FEEX

Местный житель
Вот мой тест-репорт с депо в килобакс и лот размером в 0.2:)
Просадку чем ниже в 40 % не получается добиться

Вроде на картинке просадка 20%)

Время сервера какое в алпари?
Если GMT 0, то время торговли надо изменить: старт 6, финиш 21
В советнике 3.2.0 по умолчанию стоит для GMT+2: старт 8, финиш 23
 

libertadoros

Интересующийся
:please:
Вроде на картинке просадка 20%)

Время сервера какое в алпари?
Если GMT 0, то время торговли надо изменить: старт 6, финиш 21
В советнике 3.2.0 по умолчанию стоит для GMT+2: старт 8, финиш 23
Да ты прав, хотел написать что общее кол-во убыточных сделок всегда выходит в области 40 процентов
И время GMT+2, спасибо.
А исходник, как есть вариант поделиться или никак уже?:please:
 
Последнее редактирование:

FEEX

Местный житель
:please:
Да ты прав, хотел написать что общее кол-во убыточных сделок всегда выходит в области 40 процентов
И время GMT+2, спасибо.
А исходник, как есть вариант поделиться или никак уже?:please:

моей версией никак. Есть на буржуйском форуме куча разных вариантов в mq4
ветка автора: _https://www.forexfactory.com/showthread.php?t=840339
 

libertadoros

Интересующийся
моей версией никак. Есть на буржуйском форуме куча разных вариантов в mq4
ветка автора: _https://www.forexfactory.com/showthread.php?t=840339
смотрел , все что там есть и в этой ветке одно и тоже.
жалко , думал если есть у тебя развивать это направление дальше
 

daiman18

Новичок форума
Здравствуй подскажи что не так сделал хотел на график вывести информацию сколько заработал общей по всем парам прибыли на сегодня в процентах ( типо как на сайте myfxboox)
ошибок нет но при компиляции но на графики просто выводиться LABEL
я новичок подскажите что не так тут.
вот код
Код:
 double profitToday = GetProfitForDay(0);
      l_name_8 = gs_104 + "7";
   if (ObjectFind(l_name_8) == -1) {
      ObjectCreate(l_name_8, OBJ_LABEL, 0, 0, 0);
      ObjectSet(l_name_8, OBJPROP_CORNER, 1);
      ObjectSet(l_name_8, OBJPROP_XDISTANCE, 10);
      ObjectSet(l_name_8, OBJPROP_YDISTANCE, 155);
   }
   ObjectSetText(l_name_8, "Процент прибыли: " + DoubleToStr(profitToday / GetProfitTodayInPercent() * 100.0, 2)+"%", 10, "Courier New", White);




double GetProfitTodayInPercent()
{
double profitToday = GetProfitForDay(0);
double balanceToday = AccountBalance() - profitToday;

return 100.0 * profitToday/balanceToday;
 

nidhogg

Новичок форума
А можно версией советника для мт5 поделиться? Спасибо.
 

vladradon

Программист
ошибок нет но при компиляции но на графики просто выводиться LABEL
я новичок подскажите что не так тут.
Сейчас немного по-другому все прописывается - как в 5-м языке и смотри документацию. Но у меня и по-старому работает, как у тебя, только я не делаю проверку на наличие объекта, а создаю лейбл каждый раз. Попробуй убрать if... с кривыми скобками (обе скобки!).
 

daiman18

Новичок форума
Сейчас немного по-другому все прописывается - как в 5-м языке и смотри документацию. Но у меня и по-старому работает, как у тебя, только я не делаю проверку на наличие объекта, а создаю лейбл каждый раз. Попробуй убрать if... с кривыми скобками (обе скобки!).
Ошибка так получается
 

vladradon

Программист
Ошибка так получается
Если прописать так:
PHP:
 double profitToday = GetProfitForDay(0);
      l_name_8 = gs_104 + "7";
 if(ObjectFind(0,l_name_8)>=0) ObjectDelete(0,l_name_8);
 ObjectCreate(l_name_8, OBJ_LABEL, 0, 0, 0);
 ObjectSet(l_name_8, OBJPROP_CORNER, 1);
 ObjectSet(l_name_8, OBJPROP_XDISTANCE, 10);
 ObjectSet(l_name_8, OBJPROP_YDISTANCE, 155);
 ObjectSetText(l_name_8, "Процент прибыли: " + DoubleToStr(profitToday / GetProfitTodayInPercent() * 100.0, 2)+"%", 10, "Courier New", White);
ошибки быть не должно.
 
Последнее редактирование:

daiman18

Новичок форума
Если прописать так:
PHP:
 double profitToday = GetProfitForDay(0);
      l_name_8 = gs_104 + "7";
 if(ObjectFind(0,l_name_8)>=0) ObjectDelete(0,l_name_8);
 ObjectCreate(l_name_8, OBJ_LABEL, 0, 0, 0);
 ObjectSet(l_name_8, OBJPROP_CORNER, 1);
 ObjectSet(l_name_8, OBJPROP_XDISTANCE, 10);
 ObjectSet(l_name_8, OBJPROP_YDISTANCE, 155);
 ObjectSetText(l_name_8, "Процент прибыли: " + DoubleToStr(profitToday / GetProfitTodayInPercent() * 100.0, 2)+"%", 10, "Courier New", White);
ошибки быть не должно.

так же просто выводит на график LABEL
 

vladradon

Программист
так же просто выводит на график LABEL
Тогда такой вариант точно рабочий:
PHP:
if(ObjectFind(0,l_name_8)<0)
        {
         ObjectCreate(0,l_name_8,OBJ_LABEL,0,0,0);
         ObjectSetInteger(0,l_name_8,OBJPROP_XDISTANCE,10);
         ObjectSetInteger(0,l_name_8,OBJPROP_YDISTANCE,155);
         ObjectSetInteger(0,l_name_8,OBJPROP_BACK,false);
         ObjectSetInteger(0,l_name_8,OBJPROP_COLOR,clrWhite);
         ObjectSetInteger(0,l_name_8,OBJPROP_FONTSIZE,10);
         ObjectSetString(0,l_name_8,OBJPROP_FONT,"Courier New");
        }
ObjectSetString(0,l_name_8,OBJPROP_TEXT,"Процент прибыли: " + DoubleToStr(profitToday / GetProfitTodayInPercent() * 100.0, 2)+"%");
Хоть предыдущий вариант у меня нормально работает.
 
Последнее редактирование:

FEEX

Местный житель
Тогда такой вариант точно рабочий:
PHP:
if(ObjectFind(0,l_name_8)<0)
        {
         ObjectCreate(0,l_name_8,OBJ_LABEL,0,0,0);
         ObjectSetInteger(0,l_name_8,OBJPROP_XDISTANCE,10);
         ObjectSetInteger(0,l_name_8,OBJPROP_YDISTANCE,155);
         ObjectSetInteger(0,l_name_8,OBJPROP_BACK,false);
         ObjectSetInteger(0,l_name_8,OBJPROP_COLOR,clrWhite);
         ObjectSetInteger(0,l_name_8,OBJPROP_FONTSIZE,10);
         ObjectSetString(0,l_name_8,OBJPROP_FONT,"Courier New");
        }
ObjectSetString(0,l_name_8,OBJPROP_TEXT,"Процент прибыли: " + DoubleToStr(profitToday / GetProfitTodayInPercent() * 100.0, 2)+"%");
Хоть предыдущий вариант у меня нормально работает.

я так понимаю дело не оформлении вывода на график. Там что-то мешает, чего нам автор не показал.
Как я понял там, помимо этого параметра, выводится еще куча, типа: профит за сегодня, за вчера и т.д. И, скорее всего, нужно смотреть всю картину, и саму функцию GetProfitForDay(0)
Ну, мне так кажется)
 

FEEX

Местный житель
скорее всего там что-то вроде этого)

PHP:
void DrawStats() {
   double ld_0 = GetProfitForDay(0);  
   string l_name_8 = gs_104 + "1";
   if (ObjectFind(l_name_8) == -1) {
      ObjectCreate(l_name_8, OBJ_LABEL, 0, 0, 0);
      ObjectSet(l_name_8, OBJPROP_CORNER, 1);
      ObjectSet(l_name_8, OBJPROP_XDISTANCE, 10);
      ObjectSet(l_name_8, OBJPROP_YDISTANCE, 120);
   }
   ObjectSetText(l_name_8, "Cегодня: " + DoubleToStr(ld_0, 2), 9, "Courier New", Gold);
   ld_0 = GetProfitForDay(1);
   l_name_8 = gs_104 + "2";
   if (ObjectFind(l_name_8) == -1) {
      ObjectCreate(l_name_8, OBJ_LABEL, 0, 0, 0);
      ObjectSet(l_name_8, OBJPROP_CORNER, 1);
      ObjectSet(l_name_8, OBJPROP_XDISTANCE, 10);
      ObjectSet(l_name_8, OBJPROP_YDISTANCE, 135);
   }
   ObjectSetText(l_name_8, "Вчера: " + DoubleToStr(ld_0, 2), 9, "Courier New", Gold);
   ld_0 = GetProfitForDay(2);
   l_name_8 = gs_104 + "3";
   if (ObjectFind(l_name_8) == -1) {
      ObjectCreate(l_name_8, OBJ_LABEL, 0, 0, 0);
      ObjectSet(l_name_8, OBJPROP_CORNER, 1);
      ObjectSet(l_name_8, OBJPROP_XDISTANCE, 10);
      ObjectSet(l_name_8, OBJPROP_YDISTANCE, 150);
   }
   ObjectSetText(l_name_8, "Позавчера: " + DoubleToStr(ld_0, 2), 9, "Courier New", Gold);
   ld_0 = 0;
   for (int id_day = 0; id_day < DayOfWeek(); id_day ++)
   ld_0 = ld_0 + GetProfitForDay(id_day);
   l_name_8 = gs_104 + "4";
   if (ObjectFind(l_name_8) == -1) {
      ObjectCreate(l_name_8, OBJ_LABEL, 0, 0, 0);
      ObjectSet(l_name_8, OBJPROP_CORNER, 1);
      ObjectSet(l_name_8, OBJPROP_XDISTANCE, 10);
      ObjectSet(l_name_8, OBJPROP_YDISTANCE, 165);
   }
   ObjectSetText(l_name_8, "Неделя: " + DoubleToStr(ld_0, 2), 9, "Courier New", Gold);

   ld_0 = 0;
   for (int id_day = 0; id_day < Day(); id_day ++)
   ld_0 = ld_0 + GetProfitForDay(id_day);
   l_name_8 = gs_104 + "5";
   if (ObjectFind(l_name_8) == -1) {
      ObjectCreate(l_name_8, OBJ_LABEL, 0, 0, 0);
      ObjectSet(l_name_8, OBJPROP_CORNER, 1);
      ObjectSet(l_name_8, OBJPROP_XDISTANCE, 10);
      ObjectSet(l_name_8, OBJPROP_YDISTANCE, 180);
   }
   ObjectSetText(l_name_8, "Месяц: " + DoubleToStr(ld_0, 2), 9, "Courier New", Gold);

   l_name_8 = gs_104 + "6";
   if (ObjectFind(l_name_8) == -1) {
      ObjectCreate(l_name_8, OBJ_LABEL, 0, 0, 0);
      ObjectSet(l_name_8, OBJPROP_CORNER, 1);
      ObjectSet(l_name_8, OBJPROP_XDISTANCE, 10);
      ObjectSet(l_name_8, OBJPROP_YDISTANCE, 195);
   }
   ObjectSetText(l_name_8, "Баланс: " + DoubleToStr(AccountBalance(), 2), 11, "Courier New", Gold);
}

PHP:
double GetProfitForDay(int ai_0) {
   double ld_ret_4 = 0;
   for (int l_pos_12 = 0; l_pos_12 < OrdersHistoryTotal(); l_pos_12++) {
      if (!(OrderSelect(l_pos_12, SELECT_BY_POS, MODE_HISTORY))) break;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         if (OrderCloseTime() >= iTime(Symbol(), PERIOD_D1, ai_0) && OrderCloseTime() < iTime(Symbol(), PERIOD_D1, ai_0) + 86400) ld_ret_4 = ld_ret_4 + OrderProfit() + OrderCommission() + OrderSwap();
   }
   return (ld_ret_4);
}
 
Верх