[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 636
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
Boas pessoas, ajuda, não consigo entender, TrailingStop não está funcionando como deveria, se o negócio for aberto na loja de venda funciona bem, mas se você abrir a BUY, então por alguma razão imediatamente modificou a rolha. Onde está o erro que eu não consigo entender.... AQUI ESTÁ O CÓDIGO:
externo int TP = 50;
externo int SL = 50;
Trailing int exterior = 15;
int init()
{retorno(0);}
int deinit()
{retorno(0);}
int start()
{
//========= Calculate Breakeven level ======
int i;
lotes duplosBUY=0;
lotes duplosSEL=0;
soma duplaBUY=0;
soma duplaSEL=0;
para (i=0; i<OrdensTotal(); i+++)
{
se (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continuar;
se (OrderSymbol()!=Symbol()) continuar;
se (OrderType()==OP_BUY)
{
lotsBUY=lotsBUY+OrderLots();
sumBUY=sumBUY+OrderLots()*OrderOpenPrice();
}
se (OrderType()==OP_SELL)
{
lotsSEL=slotsSEL-OrderLots();
sumSEL=sumSEL-OrderLots()*OrderOpenPrice();
}
}
preço duploBUY=0;
se (lotsBUY!=0) priceBUY=sumBUY/lotsBUY;
preço duploSEL=0;
se (lotsSEL!=0) priceSEL=sumSEL/lotsSEL;
//======== Posição aberta =====
duplo MA=iMA(NULL,0,14,0,MODE_SMMA,PRICE_CLOSE,0);
se (OrdensTotal() < 1 && Oferta>MA)
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-SL*Point,Ask+TP*Point,0,0,0,0,Green);
se (OrderTotal() < 1 && Ask<MA)
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+SL*Point,Bid-TP*Point,0,0,0,0,Vermelho);
//======= Trailing Stop =======
for(i = 0; i <= OrderTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
se (OrderType()==OP_SELL && Trailing!=0)
{
if(priceSEL-Ask>=Trailing*Point && OrderStopLoss()>(Ask+Trailing*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingPoint*Point,OrderTakeProfit(),0,CLR_NONE);
}
}
se (OrderType()==OP_BUY && Trailing!=0)
{
if(Bid-priceBUY>=Trailing*Point && (Bid-Point*Trailing)>OrderStopLoss())
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Trailing,OrderTakeProfit(),0,CLR_NONE)
}
}
}
retorno(0);
}
Há um momento, se eu mudar o preçoBUY para OrderOpenPrice() no bloco TrailingStop, ele funciona, mas eu preciso rastrear do nível de equilíbrio, não do preço de abertura..... Na SELL funciona, mas na compra por alguma razão não.... Eu não entendo onde está o erro.....SOS!!!!!!!!
Isto não é um erro - é uma mensagem de que o saldo mínimo foi alcançado - ou seja, a conta é drenada - a execução é encerrada e uma nova é iniciada com outro conjunto de parâmetros de entrada - veja as caixas de seleção e defina os valores limite na guia Otimizar Testador:
Boa tarde!!! Minha EA está retraindo os pedidos com este lugar.
Minha EA já esteve indo bem antes, pelo menos até que eu tive 2-5 pedidos. Agora temos tantas encomendas quantas quisermos - 20, 50 de cada lado. Em resumo, não limpa. Bem, duas ou três ou quatro vezes, e depois de repente não!
Eu me pergunto como ficará no testador - em geral, ele remove várias encomendas perto do preço, mas não todas! Que tipo de desvios podemos prever, inventar, fantasiar, que certamente fecharia?
Realmente, estava tudo bem antes. Costumava fechar, não era? O que mais é necessário? ?????
Boas pessoas, ajuda, não consigo entender, TrailingStop não está funcionando como deveria, se o negócio for aberto na loja de venda funciona bem, mas se você abrir a BUY, então por alguma razão imediatamente modificou a rolha. Onde está o erro que eu não consigo entender.... AQUI ESTÁ O CÓDIGO:
extern int TP = 100;
extern int SL = 100;
extern int Trailing = 15;
int init()
{return(0);}
int deinit()
{return(0);}
int start()
{
//========= Расчёт уровня безубытка ======
int i;
double lotsBUY=0;
double lotsSEL=0;
double sumBUY=0;
double sumSEL=0;
for (i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUY)
{
lotsBUY=lotsBUY+OrderLots();
sumBUY=sumBUY+OrderLots()*OrderOpenPrice();
}
if (OrderType()==OP_SELL)
{
lotsSEL=lotsSEL-OrderLots();
sumSEL=sumSEL-OrderLots()*OrderOpenPrice();
}
}
double priceBUY=0;
if (lotsBUY!=0) priceBUY=sumBUY/lotsBUY;
double priceSEL=0;
if (lotsSEL!=0) priceSEL=sumSEL/lotsSEL;
//======== Открытие позиции =====
double MA=iMA(NULL,0,14,0,MODE_SMMA,PRICE_CLOSE,0);
if (OrdersTotal() < 1 && Bid>MA)
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-SL*Point,Ask+TP*Point,0,0,0,Green);
if (OrdersTotal() < 1 && Ask<MA)
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+SL*Point,Bid-TP*Point,0,0,0,Red);
//======= Trailing Stop =======
for(i = 0; i <= OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType()==OP_SELL && Trailing!=0)
{
if(priceSEL-Ask>=Trailing*Point && OrderStopLoss()>(Ask+Trailing*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Trailing*Point,OrderTakeProfit(),0,CLR_NONE);
}
}
if (OrderType()==OP_BUY && Trailing!=0)
{
if(Bid-priceBUY>=Trailing*Point && (Bid-Point*Trailing)>OrderStopLoss())
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Trailing,OrderTakeProfit(),0,CLR_NONE);
}
}
}
return(0);
}
Boas pessoas, ajuda, não consigo entender, TrailingStop não está funcionando como deveria, se o negócio for aberto na loja de venda funciona bem, mas se você abrir a BUY, então por alguma razão imediatamente modificou a rolha. Onde está o erro que eu não consigo entender.... AQUI ESTÁ O CÓDIGO:
Há um tempo, se eu mudar o preçoBUY para OrderOpenPrice() no bloco TrailingStop, tudo funciona, mas eu preciso de uma parada de retaguarda a partir do nível de equilíbrio, não a partir do preço de abertura..... Na SELL funciona, mas na compra por alguma razão não.... Eu não entendo onde está o erro.....SOS!!!!!!!!
Boa tarde!!! Minha EA está retraindo os pedidos com este lugar.
Minha EA parece ter estado bem antes, pelo menos até que eu tive 2-5 pedidos. Mas agora tenho tantas encomendas quantas eu quiser - 20, 50 de cada lado. Em resumo, não limpa. Bem, duas ou três ou quatro vezes, e depois de repente não!
Eu me pergunto como ficará no testador - ele remove vários pedidos perto do preço, mas não todos eles! Que tipo de desvios podemos inventar, fantasia, para que possamos fechá-los sem falhas?
Realmente, tudo estava bem antes? Costumava fechar, não era? O que mais ele precisa?????
Bem, isso não vai funcionar.
Enquanto o pedido não é fechado, seu OrderClosePrice é igual a 0, e neste lugar você deve substituir o preço real pelo qual você está fechando o pedido, ou seja, Pergunte em caso de pedido de VENDA e Licite para COMPRAR.
Bem, não funciona assim.
Até que o pedido seja fechado, seu OrderClosePrice é igual a 0, e neste lugar você tem que colocar o preço real ao qual você está fechando o pedido, ou seja, Pergunte em caso de pedido de VENDA e Licite para COMPRAR.
Não,OrderClosePrice() para um pedido que não está fechado não é igual a zero - cheque.OrderCloseTime() - sim