Открыть ордер на указанной цене

 
Привет , как открыть ордер на указанной цене когда до этой цены дойдет BID , не имеет значения это будет BUY или SELL только по BID ! 
 
valomano:
Привет , как открыть ордер на указанной цене когда до этой цены дойдет BID , не имеет значения это будет BUY или SELL только по BID ! 
input   double  i_fOpenPrice = 1.24535;

void OnTick()
{
   if (OrdersTotal() == 0)
      if (i_fOpenPrice - Bid > -Point() / 10.0)
         OrderSend(Symbol(), OP_BUY, <объем>, Ask, 0, 0.0, 0.0);
}

Это утрированный код. В нем предполагается, что на счете будет открыт только один единственный ордер. По хорошему же вместо

if (OrdersTotal() == 0)

нужно еще сделать проверку того, что ордер по заданной цене уже был открыт. Также предполагается, что в момент запуска эксперта рыночная цена выше, чем цена, указанная в i_fOpenPrice. В противном случае ордер будет открыт сразу на старте работы эксперта.

 
Ihor Herasko:

Это утрированный код. В нем предполагается, что на счете будет открыт только один единственный ордер. По хорошему же вместо

нужно еще сделать проверку того, что ордер по заданной цене уже был открыт. Также предполагается, что в момент запуска эксперта рыночная цена выше, чем цена, указанная в i_fOpenPrice. В противном случае ордер будет открыт сразу на старте работы эксперта.

Спасибо большое !
 
Ihor Herasko:

Это утрированный код. В нем предполагается, что на счете будет открыт только один единственный ордер. По хорошему же вместо

нужно еще сделать проверку того, что ордер по заданной цене уже был открыт. Также предполагается, что в момент запуска эксперта рыночная цена выше, чем цена, указанная в i_fOpenPrice. В противном случае ордер будет открыт сразу на старте работы эксперта.

все же ордер открывается не в том месте ( 
 
valomano:
все же ордер открывается не в том месте ( 

Покажите, что Вы там делаете. У меня с чтением мыслей пока беда))

 
Ihor Herasko:

Покажите, что Вы там делаете. У меня с чтением мыслей пока беда))

if(CountTrades() == 0 ){ 
if (summup - Bid < -Point() / 10.0){
   int ticket=OrderSend(Symbol(),OP_BUY,Lot,Bid,NULL,NULL,NULL,NULL); // Делаем ставку
   if(OrderSelect(ticket,SELECT_BY_TICKET) == true){
   double TP = NormalizeDouble(OrderOpenPrice() + takeprofitsumm * Point, Digits);
   double SL = NormalizeDouble(OrderOpenPrice() - stoplosssum    * Point, Digits);
   int ticketmodify = OrderModify(ticket,Bid,SL,TP,NULL);
   }
  
      }

в summup цена на которой должен открыться ордер 

 
valomano:

в summup цена на которой должен открыться ордер 

Вы не сможете заставить открыться позицию Buy по цене Bid. Равно как не сможете заставить открыться позицию Sell по цене Ask.

Позиции Buy и все ордера на покупку открываются/срабатывают по цене Ask.

Позиции Sell и все ордера на продажу открываются/срабатывают по цене Bid.

 
Artyom Trishkin:

Вы не сможете заставить открыться позицию Buy по цене Bid. Равно как не сможете заставить открыться позицию Sell по цене Ask.

Позиции Buy и все ордера на покупку открываются/срабатывают по цене Ask.

Позиции Sell и все ордера на продажу открываются/срабатывают по цене Bid.

я так понимаю это можно сделать только отложенным ордером ? 

 
valomano:

я так понимаю это можно сделать только отложенным ордером ? 

Нет. Это никак не сделать. Если вы хотите открыть позицию или выставить ордер на покупку, то позиция будет открыта, а ордер сработает только по цене Ask, и никак иначе.

 
valomano:

я так понимаю это можно сделать только отложенным ордером ? 

Делаем ставку господа. Вы прям как в казино пришли.

Почитайте немного, а уж потом остальное

Общие принципы - Торговые операции - Справка по MetaTrader 5
Общие принципы - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Перед тем как приступить к изучению торговых функций платформы, необходимо создать четкое представление об основных терминах: ордер, сделка и позиция. — это распоряжение брокерской компании купить или продать финансовый инструмент. Различают два основных типа ордеров: рыночный и отложенный. Помимо них существуют специальные ордера Тейк Профит...
Причина обращения: