Pergunte! - página 145

 

Chamada de serviço web com MQL

Alguém sabe como chamar serviços web externos de um consultor especializado?

 
 

Acho que isto é algo básico, só que eu não sei como acessá-lo. Alguém pode me dizer como recuperar o Daily Open/Close de vários dias atrás se eu estou em um gráfico que não seja o Daily? Talvez forneça um código de amostra, seria útil.

Thx

ET

 

Procure no MetaEditor ajuda para iopen e iclose

Lux

 
luxinterior:
Veja no MetaEditor ajuda para iopen e icloseLux

Muito obrigado, fez o truque...

ET

 

Pedido de correção de código

Olá,

Estou tentando modificar o indicador anexo para realizar o seguinte:

1) fazer a data de início coincidir com a cor1, neste momento o indicador traça a segunda cor (cor2) da série para a data de início e não a primeira

2) produzir a data, cor, aberto, alto, baixo, e fechado de cada linha plotada na série. O arquivo seria anexado à medida que novos dados estivessem disponíveis.

Obrigado por sua ajuda com antecedência.

Cumprimentos,

Arquivos anexados:
 

Calcular a menor tendência de baixa/utilização de maior prazo/evitar problema de propagação

Estou tentando encontrar algumas amostras de codificação que poderiam prever os seguintes requisitos:

Para calcular a colocação de uma parada, eu gostaria de ver uma codificação que, para qualquer período de tempo, a EA poderia ser informada a BAIXA MAIS BAIXA (ou mais alta) durante o último X número de barras... e depois usar AQUELE preço menos (ou mais no caso da mais alta) X número de pips para definir um nível de parada.

Para que qualquer novo pedido de curto prazo seja colocado na mesma direção que a tendência de um prazo maior, eu gostaria de ver uma codificação que permitisse que novos pedidos fossem colocados no gráfico de curto prazo SOMENTE na mesma direção que a tendência do gráfico de maior prazo. Como um exemplo simples, suponha que um EA anexado a um gráfico de 15 minutos queira colocar uma ordem de compra no cruzamento de MA1 sobre MA2 (com uma parada colocada conforme a pergunta anterior a 5 pips abaixo da mais baixa das últimas 5 barras) MAS eu estou procurando uma codificação que só colocaria essa nova ordem desde que no gráfico de uma hora para esse mesmo par, o preço atual esteja acima (ou abaixo nos casos de uma venda) de um X período MA.

A fim de evitar falsas aberturas/fechamentos de ordens devido a spreads largos incomuns, eu gostaria de ver uma codificação que só acionasse uma ação de ordem baseada no FECHAR da barra atual (ou mesmo uma barra anterior poderia ser considerada) em vez de ser acionada enquanto uma barra ainda estiver aberta. Com o IBFX, por exemplo, já vi spreads que geralmente eram de 5 pips, muitas vezes chegam a ter 20 pips (e uma vez até vi 53 pips!). Parece que uma ação tão ampla como essa abriu uma nova ordem porque durante a formação do bar os MA's cruzaram temporariamente...mas no momento em que o bar fechou eles NÃO tinham cruzado, deixando-me com uma ordem de compra no lugar que não era desejada!

Qualquer amostra de código para endereçar estas coisas seria muito apreciada.

 
Arquivos anexados:
 

Prezado coderguru,

É talvez o trabalho mais fácil na codificação para mudar a cor.......I sou incapaz de fazê-lo............

Basta mudar o suporte em uma cor e a resistência em uma cor diferente deste código.......

Aqui a resistência e o suporte estão em cor..................... semelhante

E os objetos não são apagados quando o código é apagado.............

do que com antecedência.............

Arquivos anexados:
 

Ajuda com a parada de enchimento / 1 Risco ou posição M

Olá a todos,

tentei procurar no fórum uma solução para meu problema:

No início da minha EA:

//---- buy conditions

if(Ask > mybuyconditions)

{

ticket=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-lowestof10bars),((BBupper-BBlower)/(Ask-lowestof10bars))*1000,"Einstieg 1",magic+1,0,Green);

}

//---- sell conditions

if(Bid < mysellconditions)

{

ticket=OrderSend(Symbol(),OP_SELL,LotsShort(),Bid,Spread,Ask+(highestof10bars-Bid),((BBupper-BBlower)/(highestof10bars-Bid))/100,"Einstieg -1",magic-1,0,Red);

}

//----[/CODE]

Stopploss: its easy 10 bars hi/lo

Takeprofit: here i write my formula for my Trailingstop, and that is:

Take the differenz of BBupper - BBlower at the order open time. Then divide by StopLoss in Pips and you have an Factor. Then take the actual BB differenz and divide it by this Faktor. NOW WE HAVE OUR VOLA BB TRAILINGSTOPP!!!!!

SO, my big problem is now to save this FAKTOR!!!! I saved it in th Takeprofit of Ordersend, it works but it is not right!!!!!

And know the 2te Question:

Position Management:

so my order is open and i have my trailing stopp that trails : So and now if the trailingstop is > orderopenprice send next ORDER!!! It's logical because so i can always sicure to risk just my 1 R Risk.

.... if Trailingstopp is > orderopenprice of secondOrder send 3te order.

HERE MY EXAMPLES:

for(int i = (OrdersTotal()-1); i >= 0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 2",magic+2,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2 && CalculateCurrentAfterOrders(Symbol()) <= 1)

{

if(OrderStopLoss()<Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 3",magic+3,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3 && CalculateCurrentAfterOrders(Symbol()) <= 2)

{

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

}

}

}

[CODE] if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

{

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 2",magic+2,0,Green);

return;

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 3",magic+3,0,Green);

return;

}

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(CalculateCurrentOrders(Symbol()) == 0)

{

OrderClose(ticket1,OrderLots(),Ask,Spread,Red); return;

}

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3)

{

OrderClose(i,OrderLots(),Ask,Spread,Red); return;

}

Espero que alguém possa me ajudar com este problema!!!!! Obrigado a todos.