Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
O que é que esta função faz que é clara para todos?
int OpenSell(double volume,int slippage=10,string comment="Open Short EUR/USD (Sell)",int magic0=102406)
{
MqlTradeRequest my_trade;
MqlTradeResultado meu_resultado_de_comércio;
my_trade.action=TRADE_ACTION_DEAL;
my_trade.symbol=Symbol();
my_trade.volume=NormalizeDouble(volume,1);
my_trade.price=NormalizeDouble(Bid,_Digits);
my_trade.sl=NormalizeDouble(Bid+StopLoss*_Point,_Dígitos);
my_trade.tp=NormalizeDouble(Bid-TakeProfit*_Point,_Dígitos);
my_trade.deviation=slippage;
my_trade.type=ORDER_TYPE_SELL;
my_trade.type_filling=ORDER_FILLING_AON;
my_trade.comment=comment;
my_trade.magic=magic;
ResetLastError();
if(OrderSend(my_trade,my_trade_result))
{
time_oc=TimeLocal();
md=0;
Print( "Operation result code - " ,my_trade_result.retcode);
}
senão
{
Print("Operation result code - ",my_trade_result.retcode);
Print("Order open error = ",GetLastError()));
}
return(0);
}
No procedimento OnTick()
...
OpenSell(Lots,10, "EUR/USD (Sell)",102406);
...
Logo no início:
StopLoss duplo=250,
TakeProfit=1400;
Lotes duplos externos = 0,1;
Por que raio é que os resultados dos testes custam 220 dólares?
<DATA> <BALANÇO> <EQUIDADE> <NÍVEL DE MARGEM
01,01,2010 0 :00:00 10000 10000 0
11,01,2010 2 :57:00 9779,29 9841,92 6827
15,01,2010 16:00:00 9829,8 9941,9 6857
22,01,2010 14:32:00 10124,1 10135,9 7167
26,01,2010 2 :14:00 10048,6 10048,6 0
26,01,2010 4 :06:00 10048,6 10038,4 7099
27,01,2010 21:12:00 10188,5 10188,5 0
29,01,2010 2 :16:00 10188,5 10308 7346
29,01,2010 7 :14:00 10188,5 10277,4 7324
04,02,2010 22:05:00 10418,63 10480,83 7592
Se eu estiver errado, espetar-me no nariz.
Não vos deixarei ver a EA inteira. A função na compra é semelhante...
Encerro a minha posição com ordem contrária.
Muito bem. Tenho andado a gritar de cabeça baixa. Apenas a aprendizagem da língua. Se eu ofendi alguém, peço desculpa. Vou trabalhar e procurar o problema. Provavelmente já o fiz eu próprio, mas quero realmente aprender a fazer bons EAs usando mql5. É um sistema muito bom, mas . Tenho problemas com isso até agora.
Embora eu tenha 20 Consultores Especialistas em mql4 sem quaisquer problemas.
...
Comecei a estudar a secção "Operações de arquivo" pouco a pouco. Sabe se há alguns tutoriais sobre como trabalhar com ficheiros na MQL5?
Qual é a forma correcta de eliminar todas as encomendas com um determinado modo?
Tenho duas funções para isto, check_orders checks_orders para encomendas com um determinado modo, e remove_sl elimina as encomendas:
O problema é que na revista da EA estas linhas aparecem:
2011.05.11 21:40:19 Comércios '726238' : não conseguiu cancelar a encomenda #4375237 comprar 0,00 a 0,00000 [Pedido inválido]
Ou seja, há pedidos redundantes ao servidor de comércio para eliminar a ordem de eliminação do pedido que já foi enviado.
Penso que tenho um problema com o fecho e a abertura de posições.
De alguma forma, em vez de ter uma posição para 0,1 lote, tenho de facto vários lotes. Aparentemente, as posições de um símbolo sobrepõem-se e o volume da posição cresce. Esta é a única forma de explicar os problemas acima mencionados com grandes valores de paragem e grande diferença nos testes. Significa que estou a analisar a presença de comércios abertos incorrectamente ou a fechar os trilhos incorrectamente.
Este é o procedimento que utilizo para determinar se existe uma posição aberta através de um símbolo:
int Total()
{
contar=0;
para (i=0; i<=PosiçõesTotal(); i++)
{
se (PositionGetSymbol(i)==_Symbol) {count++;}
}
devolução(contagem);
}
Naturalmente, a função retorna 0 ou 1.
Utilizo a seguinte entrada para abrir encomendas
se (Total()<1)
{
se (# alguma verificação nos indicadores#) OpenBuy(Lots,10, "EUR/USD (Comprar)",102406);
se (#some check on indicators#) OpenSell(Lots,10, "EUR/USD (Sell)",102406);
}
Abro a compra e venda de produtos com a aparência:
int OpenSell(volume duplo,int slippage=10,string comment="Open Short EUR/USD (Sell)",int magic0=102406)
{
MqlTradeRequest my_trade;
MqlTradeResultado meu_resultado_de_comércio;
my_trade.action=TRADE_ACTION_DEAL;
my_trade.symbol=Symbol();
my_trade.volume=NormalizeDouble(volume,1);
my_trade.price=NormalizeDouble(Bid,_Digits);
my_trade.sl=NormalizeDouble(Bid+StopLoss*_Point,_Dígitos);
my_trade.tp=NormalizeDouble(Bid-TakeProfit*_Point,_Dígitos);
my_trade.deviation=slippage;
my_trade.type=ORDER_TYPE_SELL;
my_trade.type_filling=ORDER_FILLING_AON;
my_trade.comment=comment;
my_trade.magic=magic;
ResetLastError();
if(OrderSend(my_trade,my_trade_result))
{
time_oc=TimeLocal();
md=0;
Print( "Operation result code - " ,my_trade_result.retcode);
}
senão
{
Print("Operation result code - ",my_trade_result.retcode);
Print("Order open error = ",GetLastError()));
}
return(0);
}
Encerro os negócios no procedimento principal da mesma forma:
se (Total()>0) TryToClose();
TryToClose é assim:
}
O indicador verifica se deve haver uma posição de Compra e se há uma posição de Venda, então fazemos uma Posição de Compra.
Onde cometi um erro. Porque é que estou a aumentar as minhas posições.
Inserir o código através do botão SRC
Sabe a diferença entre uma encomenda MT4 e uma encomenda MT5?Em mql4 as encomendas são ou comerciais ou pendentes.
Em mql5 uma encomenda é uma transacção pendente. A entrada no mercado é uma abertura de uma posição. Quando a ordem é accionada, é aberta uma posição. Só pode haver uma posição para um símbolo, e pode haver tantas encomendas quantas quisermos.
Todos me insinuam sempre para ser estúpido. Posso ser idiota. Bem, encontre os meus erros para que os possa corrigir.
Estou a receber uma espécie de pista de estupidez. Posso ser estúpido. Bem, encontrar os meus erros para que eu os possa corrigir.
Não estou a insinuar nada, apenas passei a correr e perguntei qual era a razão, não sei o vosso nível de formação.
Estou aqui há muito tempo, já formei uma opinião sobre muitas pessoas (cada um é forte à sua maneira), ainda não o conheço, por isso não vou insinuar nada.
Não vejo o panorama geral da estratégia. A julgar pelo facto de estar a passar pelas posições, a estratégia é multi-moeda.
Mas prescreveu apenas uma ferramenta, se a ferramenta é uma só, porquê percorrer as posições?
Se conhece o instrumento, não precisa de procurar em todas as posições para as encontrar, só precisa de utilizar esta função: