Советник на основе АО и АС - страница 4

 
rid:
  • lyakish, я вас правильно понял? Вы предлагаете использоать конструкцию примерно такую для модификации -
for(int i=0; i<OrdersTotal(); i++)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol())
            if (OrderMagicNumber()==BuyMagic) 
              if (BuyTicket=OrderTicket())
          { OrderModify(OrderTicket(),OrderOpenPrice(),B... ....}
И ещё. Как или когда лучше модифицировать ордер. Пока он находится в состоянии "отложки" ? Либо дождаться, пока он сработает и уже тогда модифицировать (т.е. поставить в него сл и тп), используя эту же конструкцию ?
Я думаю нужно еще вот такую команду сюда вставить RefreshRates();
 
Chris_Brown:
Всем привет, нужна помощь, я тут совсем запутался. В терминале при открытие позиции выбираем трейлинг стоп, и ставим галочку 15 пунктов. Как в MQL4 запрограммировать этот ход, чтоб при открытие позиции сразу устанавливался трейлинг стоп 15 пунктов ?
Никак. Надо писать код, который будет двигать СЛ.
 
Chris_Brown:
Всем привет, нужна помощь, я тут совсем запутался. В терминале
при открытие позиции выбираем трейлинг стоп, и ставим галочку
15 пунктов. Как в MQL4 запрограммировать этот ход, чтоб при открытие
позиции сразу устанавливался трейлинг стоп 15 пунктов ?
Привет! Вот посмотри в прикрепленом файле различные тралы.
Файлы:
 
У меня проблема: мне нужно создать глобальную переменную и записать в неё текущее значение цены Bid.
Делаю так:
if(!GlobalVariableCheck("g1")) 
{ 
   GlobalVariableSet("g1",12345); 
}

Но здесь проблема, допустим Bid равен 2345.5 а в глобальную переменнуб запишется 2345 (без .5), как сделать так,чтоб записалась
 вся цена bid 2345.5
 
 
Chris_Brown:
У меня проблема: мне нужно создать глобальную переменную и записать в неё текущее значение цены Bid.
Делаю так:
if(!GlobalVariableCheck("g1")) 
{ 
   GlobalVariableSet("g1",12345); 
}

Но здесь проблема, допустим Bid равен 2345.5 а в глобальную переменнуб запишется 2345 (без .5), как сделать так,чтоб записалась
 вся цена bid 2345.5
 

Переменная должна быть типа double

 
Cronex:
Chris_Brown:
У меня проблема: мне нужно создать глобальную переменную и записать в неё текущее значение цены Bid.
Делаю так:
if(!GlobalVariableCheck("g1")) 
{ 
   GlobalVariableSet("g1",12345); 
}

Но здесь проблема, допустим Bid равен 2345.5 а в глобальную переменнуб запишется 2345 (без .5), как сделать так,чтоб записалась
 вся цена bid 2345.5
 

Переменная должна быть типа double

а bid разве не типа double ?

if(!GlobalVariableCheck("g1")) 
{ 
   GlobalVariableSet("g1",Bid); 
}
всеровно при проверки глобальной переменной g1 - целое число .
 
Chris_Brown:
всеровно при проверки глобальной переменной g1 - целое число.

Проверьте еще раз моим скриптом:

//+------------------------------------------------------------------+
//|                                           CheckWriteBidTo_GV.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net/ru/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/ru/"
 
#property show_inputs
 
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   if (!GlobalVariableCheck("MyBid"))
      {
      GlobalVariableSet("MyBid",Bid);
      }
   else GlobalVariableSet("MyBid",Bid+1.0);      
//----
   return(0);
  }
//+------------------------------------------------------------------+

Результат:
 
Всё, работает - большое спасибо!
 
Вот процедура с четырмя параметрами: Type - тип ордера, Coment - каментарии, magic - магик, и Slippage. Но она почему то не устанавливает стопов, не могу найти ошибку, кто нибудь знает ?


//Процедура открытия позиции BUY или SELL
//Begin----------------------------------
void OpenOrder(int Type, string Coment,int magic,int Slippage ){
int ticket,total;
total = OrdersTotal();
if (total<TotalOrder){
   if(Type==OP_BUY){
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,Coment,magic);
      Sleep(1500);
      OrderModify(OrderTicket(),OrderOpenPrice(),Bid - StopLoss*Point,Ask+ TakeProfit*Point,0,Green);
   if(ticket>0) 
   if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
      else Print("Error opening BUY order : ",GetLastError());}   
     if(Type==OP_SELL){
     ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,Coment,magic);
     Sleep(1500);
     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+ StopLoss*Point,Bid-TakeProfit*Point,0,Red); 
     if(ticket>0)
     if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
        else Print("Error opening SELL order : ",GetLastError());}}}
 //End;===================================
 
Всем привет! А как получить значения веера Фибоначчи для использования их в советнике ?
Вот ссылка на индюк https://www.mql5.com/ru/code/7426