Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 164

 

Cavalheiros, por favor digam-me o que escrever nas duas últimas linhas quando modificam uma ordem pendente, se a sua vida útil estiver definida. (por exemplo, 6 horas - ).

request.type_time = ORDER_TIME_SPECIFIED; // a encomenda será válida até à data de expiração
request.expiration = TimeCurrent()+6*3600;// último tempo conhecido do servidor + contagem*horas

Se a vida útil não mudar, não podemos escrever nada ao modificarmos? Por defeito, morrerá por si só.

E se precisar de mudar o seu tempo de vida?

Modificar a Ordem Pendente

Pedido comercial para modificar níveis de preços de encomenda pendentes. São necessários 7 campos:

-acção

- encomenda

-preço

-sl

-tp

-type_time

-expiração

Estas são as duas linhas do Manual em que não consigo entrar:

type_time

Tipo de encomenda na data de expiração. O valor pode ser um dos valores ENUM_ORDER_TYPE_TIME

expiração

Prazo de validadeda encomenda pendente (para encomendas do tipo ORDER_TIME_SPECIFIED)

Por favor, escreva como devem parecer no perito, ao modificar, eu compreenderei. Obrigado de antemão.

Pode omitir estas duas linhas no seu conjunto.

Pode escrever um, por exemplo: request.type_time = ORDER_TIME_DAY; neste caso, a encomenda será apagada após 1 dia,

outras opções: https://www.mql5.com/ru/docs/constants/tradingconstants/orderproperties#enum_order_type_time

Nopedido.expiração = TimeCurrent()+6*3600;//longa última hora conhecida do servidor + número de horas*horas

especifica o prazo de validade da encomenda.

https://www.mql5.com/ru/articles/481

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 

Ajuda para um recém-chegado, por favor.

Instalei o Alpari mt5, a optimização está a funcionar como deve ser, ou seja, todos os gráficos estão a desenhar e relatórios estão a ser gerados, e a história está boa. Depois de ter instalado o MT5 no mesmo PC com o Insta, descarreguei algum histórico de testes lá e agora não tenho gráficos e resultados de optimização tanto no Insta como no Alpari. Depois de ter desmontado tudo e apenas Alpari ter sido instalado, a optimização funciona novamente na perfeição. No entanto, depois de instalar Insta noutro computador na rede local, os resultados da optimização são novamente perdidos.

O mesmo EA em todos os casos, o registo é inundado com as melhores mensagens de resalto, apenas agentes locais estão a ser utilizados.

Alguém usa dois ou mais mt5 ao mesmo tempo num computador ou na rede local, ou talvez tenha enfrentado um tal problema?




 
Crucian:

Estas duas linhas podem não ser de todo escritas.

Pode escrever um, por exemplo: request.type_time = ORDER_TIME_DAY; neste caso, a encomenda será apagada após 1 dia,

Estou a ver. Foi o que pensei, quando modifiquei.


request.type_time =ORDER_TIME_DAY - Acho que é o mesmo que -

input int t = 24;

request.expiration = TimeCurrent()+t*3600;

 
rosomah:

Estou a ver. Foi o que pensei, quando modifiquei.


request.type_time =ORDER_TIME_DAY - Acho que é o mesmo que -

input int t = 24;

request.expiration = TimeCurrent()+t*3600;

Dei-lhe o linkhttps://www.mql5.com/ru/docs/constants/tradingconstants/orderproperties#enum_order_type_time que 4 variantes podem ser utilizadas pararequest.type_time:


ORDER_TIME_GTC
A ordem estará na fila até a

PEDIDO_PEDIDO_DIA
A ordem só estará activa durante o dia de negociação actual

ORDER_TIME_SPECIFIED
A encomenda será válida até à data de expiração

HORA_DE_ORDEM_DIA_ESPECIFICADA
A encomenda estará em vigor até às 00:00 da data especificada. Se esse tempo não cair sobre uma sessão de negociação, a expiração será no momento de negociação mais próximo.

E deu-lhe o link para https://www.mql5.com/ru/articles/481 , que dá o código do pedido comercial ao modificar uma encomenda utilizando a classe CTrade pronta https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/ctrade.

O código é este:

//--- тикет ордера указан только для примера, его нужно получить
   ulong ticket=1234556;
//--- символ также указан для примера, его нужно получить
   string symbol="EURUSD";
//--- количество знаков после запятой
   int    digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
//--- значение пункта
   double point=SymbolInfoDouble(symbol,SYMBOL_POINT);
//--- получим цену покупки
   double price=SymbolInfoDouble(symbol,SYMBOL_ASK);
//--- вычислим и нормализуем уровни SL и TP
//--- на самом деле они должны вычисляться в зависимости от типа ордера
   double SL=NormalizeDouble(price-1000*point,digits);
   double TP=NormalizeDouble(price+1000*point,digits);
   //--- зададим срок действия одни сутки
   datetime expiration=TimeTradeServer()+PeriodSeconds(PERIOD_D1); //!!!  
//--- все готово, делаем попытку модифицировать ордер 
   if(!trade.OrderModify(ticket,price,SL,TP,ORDER_TIME_GTC,expiration)) //!!!
     {
      //--- сообщим о неудаче
      Print("Метод OrderModify() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
            ". Описание кода: ",trade.ResultRetcodeDescription());
     }
   else
     {
      Print("Метод OrderModify() выполнен успешно. Код возврата=",trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");
     }

Leia sobre o tempo em MQL5 aqui:https://www.mql5.com/ru/articles/599 .

Utilizar pesquisa e ler artigos e documentação.


Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 

Olá a todos!

Por favor não atire pedras, mas não consegui encontrar nenhuma...

não há vagas abertas na EA... Diz o seguinte

2013.12.23 03:00:01 Core 1 2013.12.20 23:30:00 compra imediata falhada 1,00 EURUSD a 1,36720 sl: 1,06720 tp: 1,46720 [Pedido inválido]

и

2013.12.23 03:00:01 Core 1 2013.12.20 23:30:00 Alerta: Pedido de colocação de encomenda falhou - código de erro:4756

O que poderia ser?

mrequest.action = TRADE_ACTION_DEAL; // execução imediata

mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // último preço pedido

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digitos); // Stop Loss

mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Dígitos); // Take Profit

mrequest.symbol = _Símbolo; // símbolo

pedido.volume = Lote; // número de lotes a negociar

mrequest.magic = EA_Magic; // Número mágico

mrequest.type = ORDER_TYPE_BUY; // ordem de compra

mrequest.type_filling = ORDER_FILLING_FOK; // tipo de encomenda - tudo ou nada

pedido.desvio=100; // deslizamento em relação ao preço actual

//----enviar encomenda

OrderSend(mrequest,mresult);

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Armen:

Armen, por favor. cole o código na moldura de código. Ctrl+"5". Melhor ainda, prima o botão SRC no editor, cole na caixa e prima [ok].

Não é claro. :(

 
MetaDriver:

Armen, por favor. cole o código na moldura de código. Ctrl+"5". Melhor ainda, prima o botão SRC no editor, cole na caixa e prima [ok].

Não é claro. :(

Desculpe, vou refazê-lo agora...
 

Olá a todos!

Por favor não atire pedras, mas não consegui encontrar nenhuma...

não há vagas abertas na EA... Dá isto

2013.12.23 03:00:01 Core 1 2013.12.20 23:30:00 compra imediata falhada 1,00 EURUSD a 1,36720 sl: 1,06720 tp: 1,46720 [Pedido inválido]

и

2013.12.23 03:00:01 Core 1 2013.12.20 23:30:00 Alerta: Pedido de colocação de encomenda falhou - código de erro:4756

O que poderia ser?

         mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение

         mrequest.price = NormalizeDouble(latest_price.bid,_Digits);           // последняя цена Bid

         mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss

         mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit

         mrequest.symbol = _Symbol;                                            // символ

         mrequest.volume = Lot;                                                // количество лотов для торговли

         mrequest.magic = EA_Magic;                                            // Magic Number

         mrequest.type = ORDER_TYPE_SELL;                                       // ордер на продажу

         mrequest.type_filling = ORDER_FILLING_FOK;                            // тип исполнения ордера - все или ничего

         mrequest.deviation=100;                                               // проскальзывание от текущей цены

         //--- отсылаем ордер

         OrderSend(mrequest,mresult);

 
Armen:

Olá a todos!

Por favor não atire pedras, mas não consegui encontrar nenhuma...

não há vagas abertas na EA... dá isto...

É melhor enviar uma ordem para abrir uma posição/ordem como descrito em Operações comerciais em MQL5 - é fácil.
 
paladin800:
O problema é que preciso de refazer (um pouco) a coruja pronta.
O problema é que preciso de modificar (um pouco) as corujas prontas... :(