Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 802

 
pako:

ChartFirst

Возвращает идентификатор первого графика клиентского терминала.

я понимаю, что это самый левый график 

К сожалению это не так, проверить это легко:

1. надо открыть 2-3 валютные пары в терминале

2. запустить код для проверки:

 

   long ch=ChartFirst();
   Print("Первый ID терминала: ",ch, ", символ: ",ChartSymbol(ch),", таймфрейм: ",ChartPeriod(ch));
   for(int i=1;i<=100;i++) {
      ch=ChartNext(ch);
      if(ch<0)break;
      Print(i," chart ID for ",ChartSymbol(ch),ChartPeriod(ch),": ",ch);
  }
 
gyfto:
Смутно подозреваю, что нет. Завтра отпишусь, сейчас на работу.
Поможет только  трендовыми отрезками в подокне. Но нужно как-то перехватывать значение масштаба. Как?
 
Кто знает, можно ли модифицировать TakeProfit у открытого ордера в минусовую зону если сделка находится в минусе?
 
woin2110:
Кто знает, можно ли модифицировать TakeProfit у открытого ордера в минусовую зону если сделка находится в минусе?
конечно можно .
 
здравствуйте. вот только пару дней назад начал написание эксперта. опыт программирования есть но в MQL4 я еще не программировал. еще многое стоит постичь , а пока я плаваю то прошу мне пока подсказать готовое решение)))). допустим я хочу открыть ордер на 0.01 лота и мне нужно так выставить тейкпрофит чтобы прибыль по нему была бы  0.5. покажите пожалуйста как это правильно сделать.
 

пока ждал ответа - порылся , кое что нашел и стряпал такое. будет ли оно правильно показывать ? сегодня воскресение и ждать до 12 ночи не охота чтобы узнать правильно ли написал.


  if(Count ==0)
        symbol = Symbol();
        
   double bid   =MarketInfo(symbol,MODE_BID); // Запрос значения Bid
   double ask   =MarketInfo(symbol,MODE_ASK); // Запрос значения Ask
   double point =MarketInfo(symbol,MODE_POINT);//Запрос Point  
   double  value =MarketInfo(OrderSymbol(), MODE_TICKVALUE);// Размер минимального изменения цены инструмента в валюте депозита
   double stoplevel = MarketInfo(symbol,MODE_STOPLEVEL);
   double digits =   MarketInfo(symbol,MODE_DIGITS);


   
   if( bid<= stoploss1||step1 == 0)
   {
      step1++;
      stoplevel= NormalizeDouble(stoplevel*point,digits);
      stoploss1 = ask-stoplevel;
      takeprofit1 = ask+stoplevel;

 
      double profit =0.5;
      double takeprofit2= profit * point * value * lot1 + bid;
      takeprofit2 = NormalizeDouble(takeprofit2,digits);
      if (takeprofit2 > takeprofit1)
         takeprofit1 = takeprofit2;


 
pycha:

пока ждал ответа - порылся , кое что нашел и стряпал такое. будет ли оно правильно показывать ? сегодня воскресение и ждать до 12 ночи не охота чтобы узнать правильно ли написал.


  if(Count ==0)
        symbol = Symbol();
        
   double bid   =MarketInfo(symbol,MODE_BID); // Запрос значения Bid
   double ask   =MarketInfo(symbol,MODE_ASK); // Запрос значения Ask
   double point =MarketInfo(symbol,MODE_POINT);//Запрос Point  
   double  value =MarketInfo(OrderSymbol(), MODE_TICKVALUE);// Размер минимального изменения цены инструмента в валюте депозита
   double stoplevel = MarketInfo(symbol,MODE_STOPLEVEL);
   double digits =   MarketInfo(symbol,MODE_DIGITS);


   
   if( bid<= stoploss1||step1 == 0)
   {
      step1++;
      stoplevel= NormalizeDouble(stoplevel*point,digits);
      stoploss1 = ask-stoplevel;
      takeprofit1 = ask+stoplevel;

 
      double profit =0.5;
      double takeprofit2= profit * point * value * lot1 + bid;
      takeprofit2 = NormalizeDouble(takeprofit2,digits);
      if (takeprofit2 > takeprofit1)
         takeprofit1 = takeprofit2;



так не проще?

 if(OrderProfit() > 0.5) OrderClose();

 

 .

 
если я правильно понял  эти функции уже для созданых ордеров. мне же нужно расчитать профит еще перед открытием ордера, чтобы поставить  его сразу при создании ордера.
 
у меня эта программа будет использоваться не только для  торговли но и для анализа истории. рассчитать нужно будет сколько ордеров по нужным параметрам было бы открыто за определенный срок времени.  поэтому все нужно рассчитать вручную
 
pycha:
у меня эта программа будет использоваться не только для  торговли но и для анализа истории. рассчитать нужно будет сколько ордеров по нужным параметрам было бы открыто за определенный срок времени.  поэтому все нужно рассчитать вручную

https://www.mql5.com/ru/forum/351

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