0
На истории — просто грааль!!! По факту очередной пикассо( это я про индикатор).*cry* 
avatar

GAWroch

  • 22 ноября 2023, 16:30
0
Не крепится ссылка, к сожалению.( 
avatar

GAWroch

  • 15 февраля 2022, 13:45
0
Да просто! " !SuperTrend — cci (arrows + alerts + candles).ex4 (0 Kb)". Перезалей индюк или ссылку на него скинь.
avatar

GAWroch

  • 15 февраля 2022, 13:38
0
Я так понимаю имеется в виду безубыток…
avatar

GAWroch

  • 27 июля 2021, 20:03
0
Выступаю поручителем. Если уважаемый автор уточнит ТЗ (добавит скрины например), будет вообще хорошо. Лично у меня возникают вопросы по " очень простой стратегии".
1-По каким значениям стохастика открывается первый ордер?
2-Объем Lot2 понятен только автору. «Lot2=Lot1+3» — плюс 3 чего?
3- Если все три последовательно открытых ордера уйдут в стоп...?
avatar

GAWroch

  • 26 июня 2021, 10:04
0
Этот вариант вполне устраивает! Ещё раз спасибо. Будет нужен «0» в следующем месяце оформлю новый заказ.;) 
avatar

GAWroch

  • 29 мая 2021, 16:48
0
Ещё странность, которую я никак не пойму.....*wall* 
При принудительном стопе = 0 ордера выставляются
<code>r=OrderSend(NULL,OP_SELL,Lot(1),NormalizeDouble(Bid,_Digits),Slip,0,NormalizeDouble(Ask-TakeProfit*_Point,_Digits),"",Magic,0,Red);</code>

но трал на BUY работает, а на SELL нет............*shock* 
avatar

GAWroch

  • 29 мая 2021, 14:39
0


И при стопе=0 ордера не открываются...( 
avatar

GAWroch

  • 29 мая 2021, 14:17
0
Единственный момент. Сыпятся: OrderModify error 130. Этого можно как-то избежать?
avatar

GAWroch

  • 29 мая 2021, 12:04
0
Работает как задумано. Спасибо.:) 
avatar

GAWroch

  • 29 мая 2021, 10:43
0

Ваш сэт. Стабильно! ))
avatar

GAWroch

  • 27 мая 2021, 22:06
0
Сов для ручной торговли! Вход руками! И стоп должен выставляться именно по последнему сигналу стохастика, а не только в момент пересечения. Если это не трудно конечно.
avatar

GAWroch

  • 27 мая 2021, 18:11
0
Протер глаза и увидел, что не в той ветке хотел отписаться.Сорян.
avatar

GAWroch

  • 27 мая 2021, 09:20
0
Очевидно имелась в виду возможность торговли в двух направлениях одновременно?
avatar

GAWroch

  • 25 мая 2021, 08:49
+1
Андрей извини, что поковырялся в твоем коде. В общем такая хрень получилась. Тейк вроде «тралит» в минус, но пункты изменения привязаны к «StopLoss», а это не верно. Они должны зависеть от величины последнего профита, если я правильно понял пожелания автора. Возможно Андрей сделает? И да, за основу взят сов «HighLow4».
<code>
//+------------------------------------------------------------------+
//|                                                    HighLowXZ.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 222;      // лось
extern int TakeProfit    = 333;      // язь
extern int Count         = 2;        // число поз
extern int Delta         = 20;       // дополнение к стопу
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                   Одна  сделка за свечу                          |
//+------------------------------------------------------------------+
bool OneCandleDeal()
  {
   if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderOpenTime()>Time[0] && OrderOpenTime()<Time[0]+PeriodSeconds())
           {
            return(false);
           }
        }
     }
   return(true);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades(int type)
  {
   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)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|         Подсчет профита по типу ордеров                          |
//+------------------------------------------------------------------+
double AllProfit(int ot=-1)
  {
   double pr=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }

            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }
           }
        }
     }
   return(pr);
  }
//------------------------------------------------------------------------

//+------------------------------------------------------------------+
//|            Автор функции подсчета профита последней              |
//|          группы закрытых ордеров"Vitalie Postolache"             |
//+------------------------------------------------------------------+
double lastloss()
  {
   double lastlos=0,op=0;
   int cnt=0;
   datetime time=0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2)
           {
            if(cnt==0 && OrderCloseTime()!=0)
               time=OrderCloseTime();
            if(OrderCloseTime()+PeriodSeconds()<time)
               break;
            op=NormalizeDouble(OrderProfit()+OrderSwap()+OrderCommission(),2);
            lastlos+=op;
            cnt++;
           }
        }
     }
   return(lastlos);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ModeB()
  {
   bool m=1;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0)
              {
               if(OrderOpenPrice()< OrderTakeProfit())
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice()-NormalizeDouble(StopLoss*_Point,_Digits),0,Yellow);
              }
              {
               if(OrderOpenPrice()> OrderTakeProfit())
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit()-NormalizeDouble(StopLoss*_Point,_Digits),0,Yellow);
              }
           }
        }
     }
  }
//--------------------------------------------------------------------------------------------------
void ModeS()
  {
   bool m=1;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==1)
              {
               if(OrderOpenPrice()> OrderTakeProfit())
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice()+NormalizeDouble(StopLoss*_Point,_Digits),0,Yellow);
              }
              {
               if(OrderOpenPrice()< OrderTakeProfit())
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit()+NormalizeDouble(StopLoss*_Point,_Digits),0,Yellow);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int r=0;
   if(Bid>=High[1])
     {
      if(CountTrades(0)<Count)
        {
         if(OneCandleDeal())
           {
            r=OrderSend(NULL,0,Lots,NormalizeDouble(Ask,_Digits),Slip,0,NormalizeDouble(Bid+TakeProfit*_Point,_Digits),"",Magic,0,Blue);
            if(lastloss()>0)
               ModeS();
           }
        }
     }
   if(Bid<=Low[1])
     {
      if(CountTrades(1)<Count)
        {
         if(OneCandleDeal())
           {
            r=OrderSend(NULL,1,Lots,NormalizeDouble(Bid,_Digits),Slip,0,NormalizeDouble(Ask-TakeProfit*_Point,_Digits),"",Magic,0,Red);
            if(lastloss()>0)
               ModeB();
           }
        }
     }

   Comment("\n Buy: ",CountTrades(0),
           "\n Sell: ",CountTrades(1),
           " \n",
           "\n Крайний профит:                       ",lastloss());
  }
//+------------------------------------------------------------------+

</code>
avatar

GAWroch

  • 22 мая 2021, 10:06
0
Примерно так. Двигаем ТР при каждом закрытии противоположного ордера по профиту.
avatar

GAWroch

  • 22 мая 2021, 05:57
0
Слежу за темой, интересно, что может получиться. Оперативно Андрей. Но подозреваю это не то, что хотел автор. Если его комментов не последует, в понедельник оформлю ТЗ от себя так, как я понял автора.
avatar

GAWroch

  • 21 мая 2021, 19:38