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

 
Кто знает, можно ли модифицировать TakeProfit у открытого ордера в минусовую зону если сделка находится в минусе?
[Eliminado]  
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

. 

[Удален]  

спасибо, но там еще много для меня не понятного. просто подскажите пожалуйста вот этот код будет правильно считать или нет.   

   double profit =0.5;
   double takeprofit2= profit * point * value * lot1 + bid;


 
pycha:

спасибо, но там еще много для меня не понятного. просто подскажите пожалуйста вот этот код будет правильно считать или нет.   

   double profit =0.5;
   double takeprofit2= profit * point * value * lot1 + bid;



Не ошибётесь, если посчитаете, что неправильно! Начинайте с Азбуки, учитесь, всё для всех тут есть, что нужно, найдёте! Успеха!