[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 337

 
люди добрые подскажите пажалуйста- какой код надо вставить в советник чтоб он открывал через определённое количество пунктов сразу 2 ордера на покупку и продажу по одной цене с выставлением стопа и профита на каждый,куда бы не пошла цена,и если можно как к нему добавить тралл на прибыль?чтоб его можно было включать и отключать и настраивать? заранее благодарен... бьюсь уже давно но ни чего не получается...если нетрудно подскажите кто знает...
 

Есть тут разработчики, прокомментируйте пожалуйста:


Или про это в ДЦ нужно спрашивать?


void start()
  {
  double tickvalue = MarketInfo(Symbol(), MODE_TICKVALUE);

  for(int i = OrdersHistoryTotal()-1; i >= 0;i--)
    {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY )) continue;
    if(OrderSymbol()!=Symbol() || OrderType() >= 2) continue;
    if(OrderType() == 0)
      {
      Alert((OrderClosePrice() - OrderOpenPrice())/Point*tickvalue*OrderLots()," <-Buy history-> ",OrderProfit());
      }
    if(OrderType() == 1)
      {
      Alert((OrderOpenPrice() - OrderClosePrice())/Point*tickvalue*OrderLots()," <-Sell history-> ",OrderProfit());
      }
    }
  }
 
fore-x:

Есть тут разработчики, прокомментируйте пожалуйста:


Или про это в ДЦ нужно спрашивать?



Про округление десятых цента или копейки (в чем там у вас депозит) Вам и школьники ответят.

 
P_I_R_A_T_E:
люди добрые подскажите пажалуйста- какой код надо вставить в советник чтоб он открывал через определённое количество пунктов сразу 2 ордера на покупку и продажу по одной цене ...
Никак. Цены у ордеров на покупку и продажу разные, поэтому одновременно, т.е. сразу, открыть их по одной цене не удастся. Да и вообще однопоточный МТ4 не может одновременно открывать ордера по рынку, даже с разными ценами.
 
Reshetov:
Никак. Цены у ордеров на покупку и продажу разные, поэтому одновременно, т.е. сразу, открыть их по одной цене не удастся. Да и вообще однопоточный МТ4 не может одновременно открывать ордера по рынку, даже с разными ценами.

спасибо за ответ... а если зделать чтоб открывались отложенные стоп ордера? сеткой и вверх и вниз? с фиксированным лотом так же реально зделать? при открытие пары открывается новая пара в пустом месте до этой вновь открытой?

 
Roll:


Про округление десятых цента или копейки (в чем там у вас депозит) Вам и школьники ответят.

Если бы округлялось, я бы не спрашивал. На скрин посмотрите, округлить у Вас не получится некоторые значения, короче результаты разнятся. На держи, округляй:


double profit;
bool norm = false;

void start()
  {
  double tickvalue = MarketInfo(Symbol(), MODE_TICKVALUE);

  for(int i = OrdersHistoryTotal()-1; i >= 0;i--)
    {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY )) continue;
    if(OrderSymbol()!=Symbol() || OrderType() >= 2) continue;
    if(OrderType() == 0)
      {
      profit = (Normalize(1, norm) - Normalize(2, norm))/Point*tickvalue*Normalize(3, norm);
      Alert(Normalize(4, norm)," <-Buy history-> ",OrderProfit());
      }
    if(OrderType() == 1)
      {
      profit = (Normalize(2, norm) - Normalize(1, norm))/Point*tickvalue*Normalize(3, norm);
      Alert(Normalize(4, norm)," <-Sell history-> ",OrderProfit());
      }
    }
  }
  
double Normalize(int x, bool z)
  {
  if(z == true)
    {
    if(x == 1) return(NormalizeDouble(OrderClosePrice(),Digits));
    if(x == 2) return(NormalizeDouble(OrderOpenPrice() ,Digits));
    if(x == 3) return(NormalizeDouble(OrderLots() ,2));
    if(x == 4) return(NormalizeDouble(profit ,2));
    }
  
  if(z == false)
    {
    if(x == 1) return(OrderClosePrice());
    if(x == 2) return(OrderOpenPrice());
    if(x == 3) return(OrderLots());
    if(x == 4) return(profit);
    }
  
  }

 
fore-x:

Есть тут разработчики, прокомментируйте пожалуйста:


Или про это в ДЦ нужно спрашивать?


Алерт и Коммент округляет числа при выводе на экран, хотя на самом деле они точнее.
 
BeerGod:
Алерт и Коммент округляет числа при выводе на экран, хотя на самом деле они точнее.
Они округляют, только если число не помещается, допустимо четыре знака после запятой, а у меня только три - максимум!
 
И чего это вы тут кричите ?
 
fore-x:

Есть тут разработчики, прокомментируйте пожалуйста:


Или про это в ДЦ нужно спрашивать?



Дык а в чём проблема-то? Пятёрка и выше не округляются в большую сторону? Вас смущает это, или что-то другое?