Лента последних комментариев


0
Оставляю ссылку на индикатор:

www.mql5.com/ru/code/21871

avatar

ZERNO

  • 27 мая 2024, 20:20
0
Очень странно когда советник торгует только продажи и выставляет ордера в таком алгоритме частыми ордерами. Понимаю, что кто-то оценит. Может еще я не разобрался, но пока с большим трудом разбираюсь и принимаю его, с ностальгией вспоминая о старом добром усреднении по методу Шамана. Ища возможность все таки добавить в него какой нибудь риск-менеджмент
avatar

Jimirami

  • 27 мая 2024, 20:20
0
Так прикипел к старому индикатору и понимал его работу на протяжении множества тестов, что от этого прям отторжение. Вернуть бы старый обычный алгоритм ордеров шамана с добавлением ограничителей которые ты Андрей добавил. (Хотя видимо вы вместе его делали упорным трудом). На старом индикаторе было ВСЁ!- красиво. Не хватало только ограничение открытия ордеров как в нынешней версии. Если ты откатишь старый индикатор — Будет красота, и классический советник Шамана заиграет новыми гибкими переменными настройками и не изменится до неузнаваемости
avatar

Jimirami

  • 27 мая 2024, 20:14
0
спасибо большое все работает
avatar

ivan1032612

  • 27 мая 2024, 15:07
0
Давно ищу такого)))) но еще не нашел))) либо баланс нужен просто гигантский в центах либо слива))
avatar

Ramboo

  • 27 мая 2024, 14:29
0
т.е сов управляет кнопкой автоторговли на выбранных графиках бай и селл с другим советником при поступлении сигнала от индикатора и закрытием текущих сделок
avatar

Ramboo

  • 27 мая 2024, 14:26
0
Андрей доброго дня, не работает вот что происходит на графике модифицирует постоянно какой то минус делает, можете посмотреть?
avatar

Ramboo

  • 27 мая 2024, 14:12
0
Напомню: текущий Эквити показывает нам, сколько манейS останется на депозите, если мы все закроем, выключив таки свет.

Открытие ордеров. Серьезная штука.
Тестирование — не менее серьезная штука.
Предлагаю сложить серьезности не деля на два.

Например. TF М5. Свеча закрылась вверх. Открываем ордер Buy. Следующая закрылась вверх — OP_BUY. Закрылась вниз — Sell. А покупки, например, закрыли.

Что мы имеем?
Каждые пять минут ордер. Умножили на килограммы — сумасшедшие деньги. НО…
Мы можем тестировать по ценам открытия. Быстро, а итог, что по тикам.

Идея в моем понимании не плохая, но надо над ММ подумать. Сейчас или в ходе первых тестирований. Тут важно не набрать много ордеров. Чтоб до цугундера в виде кочерги не добаловать.

Как тебе такое, дорогой Илан?
avatar

kvashnin007

  • 27 мая 2024, 13:47
0
В первую очередь делаю то что проще
avatar

AM2

  • 27 мая 2024, 13:24
0
Что-то не фонтанирует. Добавил еще индюка на выбор. Трал Эквити от CMILION. Пробуйте.

www.opentraders.ru/downloads/3846/
avatar

kvashnin007

  • 27 мая 2024, 11:50
0
День добрый!
Пардон. Перезалил.
avatar

kvashnin007

  • 26 мая 2024, 07:04
0
Вот смиллиона трал эквити
//+------------------------------------------------------------------+
//|                               Copyright © 2015, Vladimir Hlystov |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, http://cmillion.ru"
#property link      "cmillion@narod.ru"
#property version   "1.00"
#property strict

extern double  Total_Profit_Start   = 5000;  //Сумма в USD от которой стартовать трал по Профиту
extern double  Profit_Percent       = 1;     //% Процент профита для старта трала
extern double  Profit_Rollback      = 0.5;   //% Процент отката для закрытия всех ордеров

double EquityStart=0;
bool Trall=false;
int slippage=1000;
//-------------------------------------------------------------------- 
int init() 
{ 
   double AE = AccountEquity();
   EquityStart=AE+AE/100*Profit_Percent;
   return(0);
}
//+------------------------------------------------------------------+
int start()
{
   if (!IsTradeAllowed()) return(0);

   double AB = AccountBalance();
   double AE = AccountEquity();

   DrawLABEL("Balance",1,5,20,Lime,StringConcatenate("Balance ",DoubleToStr(AB,2)));
   DrawLABEL("Equity" ,1,5,40,Lime,StringConcatenate("Equity ",DoubleToStr(AE,2)));

   if (OrdersTotal()==0) {Trall=false;EquityStart=AE+AE/100*Profit_Percent;}
   if (!Trall)
   {  
      DrawLABEL("Equity Start",1,5,60,Lime,StringConcatenate("Equity Start Trall ",DoubleToStr(MathMax(EquityStart,Total_Profit_Start),2)));
      if (AE>=EquityStart && AE>=Total_Profit_Start) //запуск тралла по эквити
      {  
         EquityStart=AE+AE/100*Profit_Percent;
         Alert("Запуск трейлинга Equity, Equity = "+DoubleToStr(AE,2));
         Trall=true;
      }
   }
   if (Trall)
   {  
      if (EquityStart<AE+AE/100*Profit_Percent) EquityStart=AE+AE/100*Profit_Percent;
      DrawLABEL("Equity Start",1,5,0,Red,StringConcatenate("Трал Equity закрытие при ",DoubleToStr(EquityStart-EquityStart/100*Profit_Rollback,2)));
      if (AE<=EquityStart-EquityStart/100*Profit_Rollback)
      {  
         CloseAll();
         Trall=false;
         AE=AccountEquity();
         EquityStart=AE+AE/100*Profit_Percent;
      }
      return(0);
   }
return(0);
}
//------------------------------------------------------------------
int deinit()
{
   if (!IsTesting()) 
   {
      ObjectsDeleteAll(0);
   }
   return(0);
}
//-------------------------------------------------------------------
void DrawLABEL(string name, int CORNER, int X, int Y, color clr, string Name)
{
   if (ObjectFind(name)!=-1) ObjectDelete(name);
   ObjectCreate(name, OBJ_LABEL, 0, 0, 0);
   ObjectSet(name, OBJPROP_CORNER, CORNER);
   ObjectSet(name, OBJPROP_XDISTANCE, X);
   ObjectSet(name, OBJPROP_YDISTANCE, Y);
   ObjectSetText(name,Name,10,"Arial",clr);
}
//+------------------------------------------------------------------+
color Color(bool P,color a,color b)
{
   if (P) return(a);
   else return(b);
}
//------------------------------------------------------------------
double CloseAll()
{
   bool error=true;
   int OMN,nn,OT,Ticket,j;
   double loss=0;
   while(true)
   {
      for (j = OrdersTotal()-1; j >= 0; j--)
      {
         if (OrderSelect(j, SELECT_BY_POS))
         {
            OT = OrderType();
            OMN=OrderMagicNumber();
            Ticket = OrderTicket();
            if (OT>1) error=OrderDelete(Ticket);
            if (OT==OP_BUY) 
            {
               error=OrderClose(Ticket,OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),(int)MarketInfo(OrderSymbol(),MODE_DIGITS)),slippage,Blue);
               if (error) loss+=OrderProfit();
            }
            if (OT==OP_SELL) 
            {
               error=OrderClose(Ticket,OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),(int)MarketInfo(OrderSymbol(),MODE_DIGITS)),slippage,Red);
               if (error) loss+=OrderProfit();
            }
         }
      }
      int n=0;
      for (j = 0; j < OrdersTotal(); j++)
      {
         if (OrderSelect(j, SELECT_BY_POS))
         {
            OT = OrderType();
            n++;
         }
      }
      if (n==0) break;
      nn++;
      if (nn>10) 
      {
         Alert(Symbol()," Не удалось закрыть все сделки, осталось еще ",n);
         return(loss);
      }
      Sleep(1000);
      RefreshRates();
   }
   return(loss);
}
//--------------------------------------------------------------------
avatar

OSS5

  • 26 мая 2024, 03:48
0
День добрый!
Во вложении нет индикатора «KVN_KAE_U_Dif3», есть эксперт «ShamanNew v_2».

поэтому при тестировании в логах

Скиньте еще раз, но уже индикатор. Спасибо.
avatar

OSS5

  • 26 мая 2024, 03:44
+1

//+------------------------------------------------------------------+
//|                                                    bezubitok.mq4 |
//|                                               Copyright 2024, Ve |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, Ve"
#property version   "1.00"
#property strict

extern int BU        = 30;       // Уровень безубытка в пунктах
extern int Slip      = 30;       // Slippage
extern int Magic     = 0;        // Magic
int count_trades;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades(int type=-1)
  {
   int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type || (OrderType()<2 && type==-1))
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ModifyBu()
  {
   double sl;
   bool mod;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0)
               {
                sl=OrderOpenPrice()+BU*_Point;
                mod=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,clrYellow);
               }
            if(OrderType()==1)
               {
                sl=OrderOpenPrice()-BU*_Point;
                mod=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,clrYellow);
               }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(count_trades!=CountTrades())
     {
      if(count_trades>CountTrades())
        ModifyBu();
      count_trades=CountTrades();
     }
  }
//+------------------------------------------------------------------+

avatar

verta81

  • 26 мая 2024, 00:05
Начать торговлю с Альпари