Небольшой код для простого советника, по отложкам! - страница 4

 
Sepulca:

Да, ёлки, был небольшой недароботк))). Сейчас у себя попробовал - выставляет. Но наверное нужно подумать о времени когда ордера уже не нужно открывать. А то с заданного до полунучи будут открываться если закрылся предыдущий......

Специально вставил Symbol() вместо "XAUUSD". Запускайте именно на XAUUSD. А то это как-то не совсем правильно.....


сейчас буду искать как сделать так что бы после срабатывания ордера второй автоматом удалялся и повторно больше ничего не открывалось!)
 
Sepulca:

Да, ёлки, был небольшой недароботк))). Сейчас у себя попробовал - выставляет. Но наверное нужно подумать о времени когда ордера уже не нужно открывать. А то с заданного до полунучи будут открываться если закрылся предыдущий......

Специально вставил Symbol() вместо "XAUUSD". Запускайте именно на XAUUSD. А то это как-то не совсем правильно.....


Привет, вопрос, если у нас не стоит конкретный валютный инструмент, он должен открывать ордера на всех валютных парах?)
 
Rebornnn:

Привет, вопрос, если у нас не стоит конкретный валютный инструмент, он должен открывать ордера на всех валютных парах?)
Нет
 
artmedia70:
Нет


хм, ну у нас в коде нигде не указан конкретный инструмент и на золоте он открывает сделки, а вот на остальных нет, вопрос что не так?)
 
Rebornnn:

хм, ну у нас в коде нигде не указан конкретный инструмент и на золоте он открывает сделки, а вот на остальных нет, вопрос что не так?)
А это? XAUUSD
 
artmedia70:
А это? XAUUSD

Вот собственно говоря сам код, XAUUSD Так маркируется золото на алпари. Я вообще не вижу в коде какой то привязки к нему!(
extern int TP=350;
 extern int SL=400;
 extern int H=15;
 extern int M=45;
 extern double Lot=3;
 extern int n=100;
 int magic=1234;
int slippage=30;
int init(){return(0);}
int deinit(){return(0);}
int start(){
int ticket=-1,NoS=0,NoL=0,NoBS=0,NoSS=0;
double price;
 for (int i=OrdersTotal()-1;i>=0;i--) {
  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
   if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic){
    switch(OrderType()){
     case OP_BUY:      NoL++;break;
     case OP_SELL:     NoS++;break;
     case OP_BUYSTOP:  NoBS++;break;
     case OP_SELLSTOP: NoSS++;break;
     default: break;
    }
   }
  }
 }
 if((Hour()>H) || (Hour()==H && Minute()>=M)){// Открываем ордер только после достижения заданного времени.
  datetime expiration=0;// отложенный ордер будет существовать до тех пор пока не сработает или сам хозяин не удалит его  
  double spread=Ask-Bid; // Текущий спрэд
  double sl=SL*Point;// стоплосс, 
  double tp=TP*Point;// тейкпрофит
  price=Ask+n*Point;// Цена открытия отложенного ордера
  if(NoL+NoBS==0)ticket=OrderSend(Symbol(),OP_BUYSTOP,Lot,price,slippage,price-sl-spread,price+tp+spread,"My order ",magic,expiration,Blue);// Ордер BUY только один, других не открываем
  price=Bid-n*Point;// Цена открытия отложенного ордера
  if(NoS+NoSS==0)ticket=OrderSend(Symbol(),OP_SELLSTOP,Lot,price,slippage,price+sl+spread,price-tp-spread,"My order ",magic,expiration,Red);// Ордер SELL только один, других не открываем 
 }  
 return(0);
}
 
Rebornnn:
Вот собственно говоря сам код, XAUUSD Так маркируется золото на алпари. Я вообще не вижу в коде какой то привязки к нему!(

Ну... здесь нету. Здесь работа с той парой, на графике которой висит советник - вместо явно заданного XAUUSD вписано Period() - это означает работать с текущим инструментом.
 
artmedia70:
Ну... здесь нету. Здесь работа с той парой, на графике которой висит советник - вместо явно заданного XAUUSD вписано Period() - это означает работать с текущим инструментом.


Уже нашел косяк,))
 
Rebornnn:

Уже нашел косяк,))
Ну... Вообще конечно лучше всё переписать...
 
artmedia70:
Ну... Вообще конечно лучше всё переписать...



Почему?

Я пока только начинаю в этом все разбираться и что хорошо что плохо пока не очень понимаю)

Причина обращения: