• Уважаемый гость! Чтобы просмотреть скрытую часть информации Вам нужно зарегистрироваться.

    Быстрая регистрация!

Ваши пожелания, предложения по развитию ресурса Trading-Go

  • Автор темы Admin
  • Дата начала
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 121
Реакции
503
  • Первое сообщение
  • #1
Чего бы хотелось или чего не хватает форуму , пишите тут.
 
А

Александр 771

Участник
Регистрация
16.01.2018
Сообщения
5
Реакции
2
Спасибо за ответ. Куда Вам выслать код?
 
А

Александр 771

Участник
Регистрация
16.01.2018
Сообщения
5
Реакции
2
Код:
#property version   "1.00"
#property strict

input int    MagicNumber   = 3;
input int    Second        = 14400;// 3600-1h;14400 4h;
input double Lots          = 0.01;
input int    Orders        = 4;
input int    StopLoss      = 25;
input int    TakeProfit    = 50;
input int    Otstyp        = 20;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()== MagicNumber)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//--- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
{
  int  total, res;
  double ma;
   total = OrdersTotal();
    if(total > Orders)return;//СРАВНИВАЕМ КОЛИЧЕСТВО ОРДЕРОВ
 //  if(Volume[0]>1) return;
//----   
 double Spred = MarketInfo(Symbol(),MODE_SPREAD);
 
//-------------РАСЧЁТ МА---------------------------------
  ma = (Close[20]+Close[19]+Close[18]+Close[17]+Close[16]+Close[15]+Close[14]+Close[13]+Close[12]+Close[11]+Close[10]+Close[9]+Close[8]+Close[7]+Close[6]+Close[5]+Close[4]+Close[3]+Close[2]+Close[1])/20;
 
 //---- sell ----------------------------------------------открывается по Bid
 /*  if(Bid <= ma) */if(Open[2] < Close[2] && High[2]>=ma && Open[1] > Close[1])//Эти условия не работают как хочется,т.е. не работает это High[2]>=ma,все остальные срабатывают
     {
     if((OrderType()==OP_SELL)>1)return;
      res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask +( StopLoss * Point),Ask-(TakeProfit*Point),"",MagicNumber,0,Red);
      
      if((OrderType()==OP_SELLSTOP)>1)return;
       res = OrderSend(Symbol(),OP_BUYSTOP,Lots, Bid-(Otstyp*Point),5, Ask+(StopLoss*Point),Ask-(TakeProfit*Point),"",MagicNumber,TimeCurrent()+Second,Blue);
      return;
     }
 //---- buy ----------------------------------------------------------открывается по Ask
  /* if( Ask >= ma)*/if(Open[2] > Close[2] && Low[2] <= ma && Open[1] < Close[1]) //Эти тоже
     {
     if((OrderType()==OP_BUY)> 1)return;   
      res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid -( StopLoss * Point),Bid+(TakeProfit*Point),"",MagicNumber,0,Blue);
      
      if((OrderType()==OP_BUYSTOP)> 1)return;
         res = OrderSend(Symbol(),OP_SELLSTOP,Lots,Ask +(Otstyp*Point), 5,Bid-(StopLoss*Point),Bid+(TakeProfit*Point),"",MagicNumber,TimeCurrent()+Second,Red);
      return;
     }   
//------------------------------------------------------------------------------------------------
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false)
      return;
//--- calculate open orders by current symbol
   if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
//   else                                    CheckForClose();
//---
  }
//+------------------------------------------------------------------+
Теперь и стоповые ордера не открываются.
 
  • Автор темы
  • Панель управления
  • #64
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 121
Реакции
503
ma = (Close[20]+Close[19]+Close[18]+Close[17]+Close[16]+Close[15]+Close[14]+Close[13]+Close[12]+Close[11]+Close[10]+Close[9]+Close[8]+Close[7]+Close[6]+Close[5]+Close[4]+Close[3]+Close[2]+Close[1])/20;

Мувинг по закрытию считается по другому iMA(NULL,0,20,0,MODE_SMMA,PRICE_CLOSE,1); //

И еще Вы создали очень редкое условие. Оно редко встречается на графике.

if((OrderType()==OP_SELL)>1)return; так не правильно OrderType() вызывается только в пределах ордер селект, за пределами возвращает бред..
 
А

Александр 771

Участник
Регистрация
16.01.2018
Сообщения
5
Реакции
2
Спасибо.Завтра буду пробовать по другому.
 
А

Александр 771

Участник
Регистрация
16.01.2018
Сообщения
5
Реакции
2
Здравствуйте Владимир.Подправил код, в местах где Вы указали ошибки. На счёт iMA ,мне показалось неоднократно ,что работает не совсем корректно поэтому вписал внутрь.Условие на открытие подправил,входов стало больше, но всё-же не срабатывает как написано.
Код:
 ma = (/*Close[20]+Close[19]+Close[18]+Close[17]+Close[16]+Close[15]+Close[14]+Close[13]+Close[12]+Close[11]+*/Close[10]+Close[9]+Close[8]+Close[7]+Close[6]+Close[5]+Close[4]+Close[3]+Close[2]+Close[1])/10;
 
 //---- sell ----------------------------------------------открывается по Bid
 /*  if(Bid <= ma) */if(Open[3] > Close[3] &&Open[2]>ma && Close[2]<ma && Open[1] > Close[1])
     {
   //  if((OrderType()==OP_SELL)>1)return;
      res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask +( StopLoss * Point),Ask-(TakeProfit*Point),"",MagicNumber,0,Red);
      
   //   if((OrderType()==OP_SELLSTOP)>1)return;
       res = OrderSend(Symbol(),OP_BUYSTOP,Lots, Bid-(Otstyp*Point),5, Ask+(StopLoss*Point),Ask-(TakeProfit*Point),"",MagicNumber,TimeCurrent()+Second,Blue);

      return;
     }
 //---- buy ----------------------------------------------------------открывается по Ask
  /* if( Ask >= ma)*/if(Open[3] < Close[3] &&Open[2]<ma && Close[2]> ma && Open[1] < Close[1])
     {
 //    if((OrderType()==OP_BUY)> 1)return;   
      res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid -( StopLoss * Point),Bid+(TakeProfit*Point),"",MagicNumber,0,Blue);

      
 //     if((OrderType()==OP_BUYSTOP)> 1)return;
         res = OrderSend(Symbol(),OP_SELLSTOP,Lots,Ask +(Otstyp*Point), 5,Bid-(StopLoss*Point),Bid+(TakeProfit*Point),"",MagicNumber,TimeCurrent()+Second,Red);
      return;
     }
Попробую ещё с Линиями Боллинджера может вход будет как хотелось-бы.Вы можете подсказать где ошибаюсь.Спасибо.

форум.png
 
W

W0wAN

Участник
Регистрация
11.12.2013
Сообщения
114
Реакции
49
  • Автор темы
  • Панель управления
  • #68
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 121
Реакции
503
W

W0wAN

Участник
Регистрация
11.12.2013
Сообщения
114
Реакции
49
Чего бы хотелось или чего не хватает форуму , пишите тут.
дядя Вова, возможно ли в трейдинг панели сделать тралл и безубыток изменяемым прямо на ордере?, удобно же когда надо поджимать сделку
 

Вложения

  • Автор темы
  • Панель управления
  • #70
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 121
Реакции
503
дядя Вова, возможно ли в трейдинг панели сделать тралл и безубыток изменяемым прямо на ордере?, удобно же когда надо поджимать сделку
Теоритически сейчас должно все работать, Вы выделяете линию двойным кликом ?
 
W

W0wAN

Участник
Регистрация
11.12.2013
Сообщения
114
Реакции
49

Вложения

  • Автор темы
  • Панель управления
  • #72
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 121
Реакции
503
Ага, так было задумано, когда линия выделена ее можно перемещать и стоп лос будет двигаться в след за линией
 
Теги Нет
Верх