Whoa. O que tem isto a ver com os mandados? Temos estado sempre a falar de uma posição. Uma posição e ordens pendentes são coisas diferentes. Devem ser fechados de forma diferente!
As ordens pendentes não são fechadas, mas apagadas. As posições são fechadas através da abertura de uma ordem de mercado de volume igual e em direcção oposta à posição aberta.
O código que citou não foi concebido para apagar ordens pendentes.
Pode utilizar esta função para eliminar encomendas:
Já está. Nada sobre encomendas - apenas posições.
Eu prescrevi PositionSelect à noite - parece ter-me apanhado o fôlego. Envia (fecha) posições de vez em quando, mas penso que as condições já estão aqui envolvidas.
Não compreendo outra coisa. Não forma paragens e perdas de lucro, cujos valores são prescritos nos parâmetros de entrada. Se eu prescrevo estes valores no envio, o mesmo acontece - ou seja, nada.
inputint StopLoss=60; // Stop Lossinputint TakeProfit=170; // Take ProfitintOnInit()
...
STP = StopLoss;
TKP = TakeProfit;
if(_Digits==5 || _Digits==3)
{
STP = STP*10;
TKP = TKP*10;
}
return(0);
}
...
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение
mrequest.price = NormalizeDouble(Ask,_Digits); // последняя цена ask
mrequest.sl = StopLoss; // Stop Loss
mrequest.tp = TakeProfit; // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = Lot; // количество лотов для торговли
mrequest.magic = EA_Magic; // Magic Number
mrequest.type = ORDER_TYPE_BUY; // ордер на покупку
mrequest.type_filling = ORDER_FILLING_FOK; // тип исполнения ордера - все или ничего
mrequest.deviation=10; // проскальзывание от текущей цены//--- отсылаем ордерOrderSend(mrequest,mresult);
// анализируем код возврата торгового сервераif(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен
{
Alert("Ордер Buy успешно помещен, тикет ордера #:",mresult.order,"!!");
}
else
{
Alert("Запрос на установку ордера Buy не выполнен - код ошибки:",GetLastError());
return;
Olá. Pode dizer-me o que devo fazer no MT4 depois de subscrever os sinais, para que a sincronização possa ter lugar? Encontrei nas instruções o que fazer com o MT5, não encontrei instruções para o MT4. Subscrevi o sinal do MT4.
Compreendido. Sem menção de encomendas - apenas posições.
Eu prescrevi PositionSelect à noite - parece ter-me apanhado o fôlego. Envia (fecha) posições de vez em quando, mas penso que as condições já estão aqui envolvidas.
Não compreendo outra coisa. Não forma Stop e perdas de lucro, cujos valores são prescritos nos parâmetros de entrada. Se eu prescrevo estes valores no envio, o mesmo acontece - ou seja, nada.
As paragens e os lucros não são especificados correctamente.
Здес указали целое число
inputint StopLoss=60; // Stop Lossinputint TakeProfit=170; // Take Profit
...
STP = StopLoss;
TKP = TakeProfit;
if(_Digits==5 || _Digits==3)
{
STP = STP*10;
TKP = TKP*10;
}
return(0);
}
...
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение
mrequest.price = NormalizeDouble(Ask,_Digits); // последняя цена ask
mrequest.sl = NormalizeDouble(Ask - StopLoss*_Points,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(Ask + TakeProfit*_Points,_Digits); // Take Profit
На места для стоп и профит нужна цена!
A razão pela qual as paragens não são definidas quando uma posição é aberta pode depender do modo de negociação. Há três modos: Request Execution, Instant Execution e Market Execution.
Se o seu corretor utiliza o modo Market Execution, precisa de abrir uma posição primeiro e depois modificá-la (definir paragens) no tick seguinte. Ao mesmo tempo, ou seja, numa ordem, com este modo de negociação não é possível abrir uma posição com paragens.
De facto, há a Execução do Mercado em Alpari. Existe uma estrutura de modificação de encomendas em si? Como não há nenhuma modificação no fórum desde que haja uma ordem de venda ou compra em aberto.
Se não me engano, o "peixe" da modificação parece-se com isto.
if(PositionSelect(_Symbol)==true) // есть открытая позиция
{
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{ ModifyPosition(стоплосс на покупку)
}
else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
{
{ ModifyPosition(стоплосс на продажу)
}
return
Lester: De facto, na Execução do Mercado Alpari. Existe uma estrutura de modificação de encomendas em si? Como não há modificação no fórum desde que haja uma ordem de Venda ou Compra em aberto.
Se não me engano, o 'peixe' da modificação parece-se com isto.
Utilizar a solução pronta da biblioteca padrão(classe CTrade- método PositionModify). É uma boa solução para um começo. A qualquer momento pode fazer a sua própria aula semelhante e fazer as alterações necessárias.
Lester:
Este é um modelo com funções incorporadas para abertura, fecho e modificação.
A abertura e encerramento são escritos por Nikolay Kositsin.
Alterei-os facilmente e acrescentei modificações.
Penso que é claro como chamá-los, por isso, para sua conveniência.
Desculpe por isso - confundiuo ficheiro.
Tente desta forma:
Lester:
Este modelo tem funções incorporadas para abertura, fecho e modificação.
A abertura e encerramento são escritos por Nikolay Kositsin.
Alterei-os facilmente e acrescentei modificações.
Penso que é claro como os desafiar, por isso, para sua conveniência.
Como é que se abrem tais ficheiros com um editor?
Não é possível abri-los. ))
Tente ler alguns artigos. Há muito por onde escolher, desde o mais pequeno ao mais maduro. ))
Infelizmente, as ordens não fecham de todo. Acho que devo pensar um pouco sobre isso)
Alterou o ficheiro, desculpem por isso.
Confundi o ficheiro, desculpem.
Whoa. O que tem isto a ver com os mandados? Temos estado sempre a falar de uma posição. Uma posição e ordens pendentes são coisas diferentes. Devem ser fechados de forma diferente!
As ordens pendentes não são fechadas, mas apagadas. As posições são fechadas através da abertura de uma ordem de mercado de volume igual e em direcção oposta à posição aberta.
O código que citou não foi concebido para apagar ordens pendentes.
Pode utilizar esta função para eliminar encomendas:
Já está. Nada sobre encomendas - apenas posições.
Eu prescrevi PositionSelect à noite - parece ter-me apanhado o fôlego. Envia (fecha) posições de vez em quando, mas penso que as condições já estão aqui envolvidas.
Não compreendo outra coisa. Não forma paragens e perdas de lucro, cujos valores são prescritos nos parâmetros de entrada. Se eu prescrevo estes valores no envio, o mesmo acontece - ou seja, nada.
Olá. Pode dizer-me o que devo fazer no MT4 depois de subscrever os sinais, para que a sincronização possa ter lugar? Encontrei nas instruções o que fazer com o MT5, não encontrei instruções para o MT4. Subscrevi o sinal do MT4.
Inscrevi-me para o sinal do MT4. Obrigado.
Compreendido. Sem menção de encomendas - apenas posições.
Eu prescrevi PositionSelect à noite - parece ter-me apanhado o fôlego. Envia (fecha) posições de vez em quando, mas penso que as condições já estão aqui envolvidas.
Não compreendo outra coisa. Não forma Stop e perdas de lucro, cujos valores são prescritos nos parâmetros de entrada. Se eu prescrevo estes valores no envio, o mesmo acontece - ou seja, nada.
A razão pela qual as paragens não são definidas quando uma posição é aberta pode depender do modo de negociação. Há três modos: Request Execution, Instant Execution e Market Execution.
Se o seu corretor utiliza o modo Market Execution, precisa de abrir uma posição primeiro e depois modificá-la (definir paragens) no tick seguinte. Ao mesmo tempo, ou seja, numa ordem, com este modo de negociação não é possível abrir uma posição com paragens.
Em geral, tratar da estrutura de um pedido comercial:Referência MQL5 / Constantes padrão, enumerações e estruturas / Estruturas de dados / Estrutura de um pedido comercial. Penso que isto o ajudará no estudo mais aprofundado da língua.
Se não me engano, o "peixe" da modificação parece-se com isto.
De facto, na Execução do Mercado Alpari. Existe uma estrutura de modificação de encomendas em si? Como não há modificação no fórum desde que haja uma ordem de Venda ou Compra em aberto.
Se não me engano, o 'peixe' da modificação parece-se com isto.