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
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?
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.
//--- тикет ордера указан только для примера, его нужно получить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(),")");
}
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)
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
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?
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;
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:
Leia sobre o tempo em MQL5 aqui:https://www.mql5.com/ru/articles/599 .
Utilizar pesquisa e ler artigos e documentação.
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);
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. :(
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. :(
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);
Olá a todos!
Por favor não atire pedras, mas não consegui encontrar nenhuma...
não há vagas abertas na EA... dá isto...
O problema é que preciso de refazer (um pouco) a coruja pronta.