0
Вручную да просто делается, а программно пока никак. Спросил еще на форуме мкл. Может что подскажут.
avatar

AM2

  • 6 ноября 2015, 05:24
0
У вас как это реализовано, отдельный индикатор фибо?
avatar

AM2

  • 5 ноября 2015, 17:49
0
Через полчаса где то. Вы в сети будете?
avatar

AM2

  • 5 ноября 2015, 16:57
+1
А длину трала и шаг трала как можно регулировать?


Это простой трал, как в советнике MACD Sample.
avatar

AM2

  • 5 ноября 2015, 16:00
+1
Мне просто стало интересно написать виртуальный трал. Сделал простой вариант:
www.opentraders.ru/downloads/922/

avatar

AM2

  • 5 ноября 2015, 11:45
0
фибо можно с ценой (%$)

Это как?
avatar

AM2

  • 5 ноября 2015, 10:48
0
Индикатор еще нужен: 3Bollinger_Bands_Stop_v2.ex4
avatar

AM2

  • 5 ноября 2015, 09:18
0
Когда происходит смена цвета, натягивается фиба: www.opentraders.ru/downloads/921/

avatar

AM2

  • 5 ноября 2015, 09:04
0


avatar

AM2

  • 5 ноября 2015, 00:44
0
Проще по ТЗ написать чем править чужой код.
avatar

AM2

  • 5 ноября 2015, 00:32
0
Наверное проще с нуля переписать будет, чем ошибки отыскивать и еще глюки есть.
avatar

AM2

  • 5 ноября 2015, 00:30
0
а можно узнать описание? что такое BuySell = 1; // 1-Buy 2-Sell 0-OFF
лось это стоп? а язь это тейк? реквот это что? БУ есть тут? или сразу тралл с позиции?


А как насчет немного подумать и потестить?
avatar

AM2

  • 4 ноября 2015, 23:31
+1
Сделал. Можете прогнать в тестере. Советник сам может выставлять ордера и тралить.


//+------------------------------------------------------------------+
//|                                                         Tral.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots      = 0.1; // лот
extern int StopLoss     = 900; // лось
extern int TakeProfit   = 900; // язь
extern int Slip         = 30;  // реквот
extern int BuySell      = 1;   // 1-Buy 2-Sell 0-OFF
extern int TrailingDist = 500; // дистанция для включения трала
extern int TrailingStep = 200; // шаг трала
extern int Magic        = 0;   // магик
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol())
           {
            if(OrderType()==OP_BUY)
              {
               // цена прошла дистанцию
               if(Bid-OrderOpenPrice()>TrailingDist*Point)
                 {
                  // стоп ордера меньше чем на расстоянии шага от цены
                  if(OrderStopLoss()<Bid-TrailingStep*Point)
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStep*Point,OrderTakeProfit(),0,Yellow);
                    }
                 }
              }

            if(OrderType()==OP_SELL)
              {
               // цена прошла дистанцию
               if((OrderOpenPrice()-Ask)>TrailingDist*Point)
                 {
                  // стоп ордера меньше чем на расстоянии шага от цены
                  if((OrderStopLoss()>(Ask+TrailingStep*Point)) || (OrderStopLoss()==0))
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStep*Point,OrderTakeProfit(),0,Yellow);
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
   int    r=0;
   double sl=0,tp=0;

//--- sell conditions
   if(BuySell==2)
     {
      if(StopLoss>0) sl=NormalizeDouble(Bid+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(Bid-TakeProfit*Point,Digits);
      r=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,sl,tp,"",Magic,0,Red);
      return;
     }
//--- buy conditions
   if(BuySell==1)
     {
      if(StopLoss>0) sl=NormalizeDouble(Ask-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(Ask+TakeProfit*Point,Digits);
      r=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,sl,tp,"",Magic,0,Blue);
      return;
     }
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   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()==OP_BUY || OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }  
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(CountTrades()<1) OpenPos();
   if(TrailingDist>0) Trailing();
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 4 ноября 2015, 22:11
0
Собрал код, но не обнаружил в нем ни одной торговой функции. Советник не выставляет никаких ордеров вообще.
avatar

AM2

  • 4 ноября 2015, 21:47
+1
Я еще посмотрю код, может получится поправить.
avatar

AM2

  • 4 ноября 2015, 21:32
0
На панели форматирования текста есть теги CODE между ними вставляете весь советник. Должен уместиться, т.к. есть ограничение на длину сообшения.

avatar

AM2

  • 4 ноября 2015, 18:39