Pergunte! - página 77

 

Para CodersGuru : precisa de ajuda cerca de 10 pontos 3 EA....

Olá CodersGuru,

Eu sou novo no comércio forex e também sou novo neste fórum. A primeira vez que estou aprendendo é EuroX2_sl, ampliado de 10 pontos 3 EA script. Depois de fazer alguns testes para frente, esta EA abriu bem a posição, mas não fechou bem a posição como eu preciso fazer quando o mercado se inverte. Talvez, algo esteja errado com o código ( porque' não sou programador ) e acho que preciso de sua ajuda para resolvê-lo. Poderia por favor verificar qual parte pode estar errada?

A condição é :

1. OPEN BUY quando a condição indicadora existe, ou seja: estocástico

2. FECHAR COMPRA quando existe o indicador de VENDA ABERTA, ou seja: estocástico

3. VENDA ABERTA como condição indicadora ( no. 2 acima ) existe, ou seja: estocástico

4. FECHAR VENDA como condição indicadora ( nº 1 acima ) existe. ou seja: estocástico

Eu acho que a posição ABERTA está bem, mas o problema é com a POSIÇÃO FECHADA, pois ela não FECHADA ( COMPRAR ou VENDER ) mesmo quando o indicador existe.

O código como eu fiz é :

-------- parte do script da EuroX2_sl estendido de 10 pontos 3 como eu penso para a posição fechada -------

// é importante entrar no mercado corretamente,

// mas é mais importante sair corretamente...

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()<=OP_SELLL && // verificar a posição aberta

OrderType()<=OP_BUY &&

OrderType()>=OP_SELL &&

OrderType()>=OP_BUY &&

OrderSymbol()==Symbol()) // verificar o símbolo

{

//+--------------------------------------------------------------

if(OrderType()==OP_BUY) // posição longa é aberta

{

//+-------------------------------------------------------------------

//+ CONDIÇÃO PARA POSIÇÃO PRÓXIMA

//+-------------------------------------------------------------------

//+--------------- FECHAR POSIÇÃO DE COMPRA ----------------------------

se ( Stoch_M15_Cu < Stoch_Sig_M15_Cu )

//+------------------------------------------------------------------

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // posição fechada

retornar(0); // sair

}

//+-----------------------------------------------------------------------

// verificar a parada de trilha

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

retornar(0);

}

}

}

}

//+--------------- FECHAR POSIÇÃO DE VENDA --------------------------------

senão // ir para a posição curta

{ //+ NÃO REMOVER

if(OrderType()==OP_SELL) // posição curta é aberta

{

}

// deve ser fechado?

//+----------------------------------------------------------------------------

se ( Stoch_M15_Cu > Stoch_Sig_M15_Cu )

//+-----------------------------------------------------------------------------

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // posição fechada

retornar(0); // sair

}

//+----------------------------------------

// verificar a parada de trilha

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) ||| (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

retornar(0);

}

}

}

}

}

}

--------------------------------------------------------------

Obrigado,

fxgroup

 

Leitura de dados de outra janela de par de moedas

Meu EA está na janela "GBPJPY", mas eu preciso encontrar ObjectDescription() formar outra janela, digamos "USDJPY". (Infelizmente, é um indicador Pivot que não retorna valores do iCustom())

Alguém conhece a maneira de se referir a outra janela de par (não atual) para poder usar funções como ObjectDescription() nela?

Ou o MQ4 não o permite?

Obrigado

euro

 

Como isolar os lucros de uma moeda de outras?

color color_of_pipsprofit;

color_of_pipsprofit = White;

int m,totalbuy;

totalbuy=OrdersTotal();

for(m=0;m<totalbuy;m++)

OrderSelect(m, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips_profit=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

int n,totalsell;

totalsell=OrdersTotal();

for(n=0;n<totalsell;n++)

OrderSelect(n, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);

ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);

ObjectSet("pips_profit", OBJPROP_CORNER, 3);

ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);

ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);

}

Eu criei esta codificação, mas não posso isolar os lucros de uma moeda das outras moedas que estão sendo negociadas. O que me falta em meu código?

Por favor, revise. Obrigado por sua ajuda!

Dave

 

Lucro

Tente este código:

int start()

{

int total = OrdersTotal();

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());

}

}

return(0);

}

double Profit(int type, string currency, double open)

{

if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy

if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy

return(-1);

}[/php]

1Dave7:
[php]

color color_of_pipsprofit;

color_of_pipsprofit = White;

int m,totalbuy;

totalbuy=OrdersTotal();

for(m=0;m<totalbuy;m++)

OrderSelect(m, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips_profit=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

int n,totalsell;

totalsell=OrdersTotal();

for(n=0;n<totalsell;n++)

OrderSelect(n, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);

ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);

ObjectSet("pips_profit", OBJPROP_CORNER, 3);

ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);

ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);

}

I created this coding, but I cannot isolate the profits of one currency from other currencies being traded. What am I lacking in my code??

Please review. Thanks for your help!

Dave
 
codersguru:
Experimente este código:
int start()

{

int total = OrdersTotal();

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());

}

}

return(0);

}

double Profit(int type, string currency, double open)

{

if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy

if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy

return(-1);

}

Olá Coder,

Isto não era exatamente o que eu precisava. Estou anexando uma imagem gráfica para ilustrar o que estou procurando. Você pode modificar a codificação para exibir o Lucro? Se sim, posso fazer com que as cores mudem no valor do Lucro. Estou apenas procurando o lucro para cada moeda específica.

Arquivos anexados:
 

indicador atestado

Oi Codersguru

im desejando que o indicador atestado mostre aberto à meia-noite do gmt, e não a hora do servidor do corretor, é possível que isso

muito obrigado monty

 

Ajuda com o código

Você pode passar através do código? Estou recebendo um valor incorreto (veja abaixo "Conta") e depois está sendo corretamente preenchido, mas não tenho certeza do motivo.

int Conta = 123456;

se (Account != AccountNumber())

{

Comentário ("Você não pode usar este programa com esta conta");

retornar (0);

}

senão

{

Comentário ("Bem-vindo ao Programa");

}

 

Pergunta simples

O consultor especializado funcionará normalmente sem as funções init() e deinit()?

 
n7drazen:
O consultor especializado funcionará normalmente sem as funções init() e deinit()?

Sim,

Somente a função de partida é necessária.

 

Kalenzo,

Eu tenho uma pergunta:

HEDGING:

Estou à procura:

se (OrderOpenPrice() = = Bid (ou Ask)

Opreço aberto deve ser igual ao novo preço.

I hedging com o mesmo par EURUSD.

Se o preço aberto é de venda e o preço é 1,3580,

O preço de compra deve ser o mesmo.

Obrigado. Aqui estão os códigos.

B.

//------------------------------------------

if(Comprar==0)

{

RefreshRates();

OrderSend(Symbol_1,OP_BUY,lotsi,MarketInfo(Symbol_ 1,MODE_ASK),...

RefreshRates();

if (OrderOpenPrice() == Oferta)

{

OrderSend(Symbol_1,OP_SELL,lotsi,MarketInfo(Symbol _1,MODE_BID),...

}