FORTS SL e TP - página 6

 
ottenand:
Então você quer uma ordem de limite de venda no copo para ficar entre os limites de compra?

Não, ele quer provar mais uma vez que ele é o único D'Artagnan aqui.
 
prostotrader:


Não, para colocar uma ordem no mercado (e ela estará lá) você deve usar

request.type_filling=ORDER_FILLING_RETURN.

Adicionado

Alterar ORDER_FILLING_IOC para ORDER_FILLING_RETURN (no meu exemplo)

e o preço para SYMBOL_SESSION_PRICE_LIMIT_MAX

e você verá a ordem no mercado

:) E que tipo de pedido deve ser usado?
 
Yury Kulikov:
:) Que tipo de pedido devo usar?

void SetSyncOrder(const bool deffered)
  {
   MqlTradeRequest request={0};
   MqlTradeResult  result={0};
   order_ticket=0;
   request.magic=Magic;
   request.symbol=Symbol();
   request.volume=1;
   if(deffered)
   {
     request.type_filling=ORDER_FILLING_RETURN;  //Отложенный ордер
   }
   else
   {
     request.type_filling=ORDER_FILLING_IOC;  //Рыночный ордер
   }  
   request.type_time=ORDER_TIME_DAY;
   request.action=TRADE_ACTION_PENDING;
   request.type=ORDER_TYPE_SELL_LIMIT;
   request.comment="";
   if(deffered)
   {
     request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MAX);
   }
   else
   {
     request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MIN);
   }  
   if(OrderSend(request,result))
     {
      if(result.retcode==TRADE_RETCODE_DONE)
        {
         order_ticket=result.order;
         if(OrderSelect(order_ticket))
           {
            ENUM_ORDER_STATE order_state=ENUM_ORDER_STATE(OrderGetInteger(ORDER_STATE));
            switch(order_state)
              {
               case ORDER_STATE_STARTED:
               case ORDER_STATE_REQUEST_ADD:
               case ORDER_STATE_REQUEST_MODIFY:
               case ORDER_STATE_REQUEST_CANCEL:
                  Print(__FUNCTION__,": Order is busy! State: ",EnumToString(order_state));
                  break;
               case ORDER_STATE_CANCELED:
               case ORDER_STATE_PARTIAL:
               case ORDER_STATE_FILLED:
               case ORDER_STATE_REJECTED:
               case ORDER_STATE_EXPIRED:
                  Print(__FUNCTION__,": Order not found.");
                  break;
               case ORDER_STATE_PLACED:
                 Print(__FUNCTION__,": Sync Order place done and found in terminal.");
               break;
              }
           }
        }
     }
   else {Print("Order not sent.");}
  }
Os preços são dados a título de exemplo
Arquivos anexados:
 
prostotrader:


Eu não quero nada.

Leia o fio inteiro com atenção.

Não explique, eles estão tentando ajudá-lo, tentar absorver e entender. Somente os limites de compra podem estar abaixo do preço atual na troca. Tudo o mais abaixo do preço pode ser uma ordem de parada no servidor do corretor. Aquela ordem de Limite de Venda foi preenchida no próximo pedido de fechamento, que é o preço de mercado, porque você não pode colocar o que não pode colocar, ou seja, você coloca sua ordem de Limite de Venda na Linha de Compra abaixo do preço na Pilha. Se você quiser vender abaixo do preço com uma condição, coloque uma parada de venda no servidor do corretor.
 
ottenand:
Não explique, eles estão tentando ajudá-lo, tentar entrar no assunto e descobrir o que fazer. Somente os limites de compra podem estar abaixo do preço atual na troca. Tudo o resto abaixo do preço pode ser na forma de uma ordem de parada no servidor do corretor. Aquela ordem de Limite de Venda foi preenchida no próximo pedido de fechamento, que é o preço de mercado, porque você não pode colocar o que não pode colocar, ou seja, você coloca sua ordem de Limite de Venda na Linha de Compra abaixo do preço na Pilha. Se você quiser vender abaixo do preço com uma condição - coloque uma parada de venda no servidor para o corretor.

Então também não é preciso explicar...
 
prostotrader:
   request.type=ORDER_TYPE_SELL_LIMIT;

Por que citar um texto tão longo para uma pergunta simples, ou seja, sua resposta: Vender tipo de ordem Limite.

 
Yury Kulikov:

Por que citar um texto tão longo para uma pergunta simples, ou seja, sua resposta: Vender tipo de ordem Limite.


:)
 
Heh, bem, é com você =)
 

Corrija-me se eu estiver errado em algum lugar =)

 
Yury Kulikov:

Por que citar um texto tão longo para uma pergunta simples, ou seja, sua resposta: Vender tipo de ordem Limite.


Yuriy!

Eu dei o arquivo (especificação Plaza II)

Em nenhuma parte da especificação há meia linha sobre limite, mercado ou ordem pendente.

As ordens na troca são aceitas de acordo com 4 parâmetros principais

1. Preço

2. Direção do pedido (compra/venda)

3. Volume .

Tipo(em MQL).

Isto é o que os desenvolvedores chamaram de limite, mercado ou ordem pendente.

Para fazer pedidos corretamente, devemos entender como esses pedidos serão percebidos pela Bolsa

de acordo com a especificação.

Adicionado

Por exemplo, para que a ordem permaneça na pilha

na área de VENDA

É suficiente estabelecer um dos preços da zona de venda

e request.type_filling=ORDER_FILLING_RETURN;

Mas se você estabelecer um preço a partir da zona de compra, seu pedido será executado imediatamente.

É por isso que nomeei as ordens como "pendentes" para serem mais ou menos consistentes com a especificação do mercado:

Pendente - uma ordem que "se mantém" no mercado

Mercado - esta ordem pode ser executada a qualquer preço.

Ordem limite - esta ordem será executada pelo preço especificado na ordem.

Razão: