Pergunte! - página 69

 

Hi,

Alguém pode me dizer o que há de errado com este código?

Ele não abre nenhuma ordem?

Eu o testei novamente em 2007.01.03

Saúde

extern string StrGetPosition = "19:55";

extern string StrStartOrderTime = "20:00";

extern string StrEndOrderTime = "23:59";

extern double MyBidPrice = 1.3271;

int CountOrder = 0, BuyMagicNumber, SellMagicNumber;

extern double Lots = 1;

extern int StopLoss = 35;

extern int TakeProfit = 8;

extern bool FlagBuy = false;

int x, b, FindMagicSell, TicketSell, FindMagicBuy, TicketBuy;

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

//| expert initialization function |

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

int init()

{

//----

MyBidPrice = 1.3271;

//----

return(0);

}

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

//| expert deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| expert start function |

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

int start()

{

//----

int GetPosition, StartOrderTime, EndOrderTime, o;

GetPosition = StrToTime(StrGetPosition);

StartOrderTime = StrToTime(StrStartOrderTime);

EndOrderTime = StrToTime(StrEndOrderTime);

if (TimeCurrent() >= StartOrderTime && TimeCurrent() <= EndOrderTime)

{

FlagBuy = true;

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

//| Posisi BUY

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

if (FlagBuy == true)

{

if ((MyBidPrice == Bid) && (CountOrder < 6))

{

CountOrder++;

BuyMagicNumber = StrToInteger("1" + CountOrder + Day() + Month() + Year());

o = OrderSend(Symbol(),OP_BUY,Lots,Bid,3,Bid-StopLoss*Point,Bid+TakeProfit*Point,"Test",BuyMagicNumber,0,Green);

if (o < 1) MessageBox("ERROR!!");

if (CountOrder > 1) ModifyBuy();

if (CountOrder == 5) FlagBuy = false;

MyBidPrice = Bid - (2*Point);

}

ShowComment();

}

}

//----

return(0);

}

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

void ModifyBuy()

{

for (x = 1; x < CountOrder; x++)

{

FindMagicBuy = StrToInteger("1" + x + Day() + Month() + Year());

for (b = 0; b < OrdersTotal(); b++)

{

OrderSelect(b,SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber() == FindMagicBuy)

{

TicketBuy = OrderTicket();

OrderSelect(TicketBuy,SELECT_BY_TICKET);

OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit()-(2*Point),0);

break;

}

}

}

}

void ShowComment()

{

Comment("DayOfWeek = ",DayOfWeek(),"\nFLAG BUY : ",FlagBuy,"\nCount Order ",CountOrder,"\nNext order = ",MyBidPrice,"\nBID = ",Bid,"\nTime : ",TimeToStr(TimeCurrent(),TIME_MINUTES));

}
 

Não é possível encontrar o arquivo MQ4 para o indicador

Espero que alguém possa me ajudar com algo que eu inicialmente pensei que seria bastante simples. Eu queria colocar um alerta sonoro em um indicador que realmente vem com o Metatrader para que quando ele atingir um determinado nível ele me diga. O indicador é o Índice de Força, porém não consigo encontrar um arquivo MQ4 para ele em nenhum lugar na pasta de Especialistas/Indicadores. Alguém tem uma idéia de onde eu poderia localizar o arquivo?

Se eu puder encontrar o arquivo mq4, eu estaria certo ao assumir que posso usar o código dado pelo Codersguru no início deste tópico para adicionar um alerta a ele?

obrigado

 

ref. Posto Anterior

Consegui resolver meu problema a partir do posto superior.

Obrigado a todos por seu interesse.

 
Hartadi:
Hi,

Alguém pode me dizer o que há de errado com este código?

Ele não abre nenhuma ordem?

Eu o testei novamente em 2007.01.03

Saúde

o = OrderSend(Symbol(),OP_BUY,Lots,Bid,3,Bid-StopLoss*Point,Bid+TakeProfit*Point,"Test",BuyMagicNumber,0,Green);

Você não pode comprar a preço de licitação.

 

@Michel :

Oh meu Deus... como sou estúpido...

obrigado...

 

Ajuda com a cobertura

Olá a todos!

Eu usei o Expert Advisor Builder da sufx.com para criar uma EA. Ele tem duas limitações das quais estou tentando me livrar:

1. Só abre uma profissão de cada vez. Posso conseguir que ele tenha duas negociações abertas ao mesmo tempo, mas não consigo que ele abra uma ordem de compra e uma ordem de venda simultaneamente.

2. Parece ter preferência por ordens de venda em detrimento de ordens de compra. Isto não seria realmente um problema se o problema número 1 fosse resolvido.

Aqui está o pedaço de código que parece estar me atrasando:

//Check position

bool IsTrade = False;

for (int i = 0; i < Total; i ++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if (OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {

IsTrade = True;

if (OrderType() == OP_BUY) {

//Close

Alguma sugestão? Gostaria de deixá-lo abrir o maior número possível de negociações e poder abrir ordens de compra e venda simultaneamente, se os indicadores assim o indicarem.

Um abraço pela ajuda,

Benjimang

 

Lucro/perda de moeda

Dave,

Acho que você precisa ser mais específico no que está pedindo. E o BTW por que não responder aos PMs? Onde você está se escondendo hoje em dia??? lol

P em KC

 
FX4$$$:
Dave,

Acho que você precisa ser mais específico no que está pedindo. E o BTW por que não responder aos PMs? Onde você está se escondendo hoje em dia??? lol

P em KC

Não recebi nenhum novo PM's???? Infelizmente durante este tempo eu tive uma emergência familiar que aconteceu - Tudo está bem com a emergência. Eu ainda poderia usar a ajuda na minha codificação, especialmente a codificação do envelope.

Dave

 

Como eu coloco o lucro da moeda no canto superior direito do gráfico?

Eu gostaria de colocar o lucro/perda da moeda no canto superior direito do gráfico de moeda da plataforma de negociação (EURUSD). Se o lucro do comércio atual for positivo, ele se mostraria em verde; se for 0,00, ele se mostraria em branco; se for uma perda, ele se mostraria em vermelho.

Eu sei que ObjectCreate é o caminho a seguir, mas além disso não sei como capturar o lucro da plataforma de comércio? Alguém pode me dar uma mão nesta utilidade? Eu quero incluir isto em minha e-a.

Obrigado!

Dave

<<<
 

estatísticas comerciais

use este código:

// ***************************************************************************

int stats()

{

int i, vOrders;

// lucro atual da CP

vOrdens = EncomendasTotal();

Lucro = 0;

PipsProfit = 0;

for(i=vOrdens-1;i>=0;i--)

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if(OrderSymbol() == Símbolo())

{

Lucro += OrderProfit();

se (OrderType() == OP_BUY) PipsProfit += ((Bid - OrderOpenPrice())/Point);

caso contrário se (OrderType() == OP_SELL) PipsProfit += ((OrderOpenPrice() - Ask)/Ponto);

}

}

}

// risco potencial

// posições máximas

}

Profit & PipsProfit precisará ser declarado fora do programa e depois exibido na tela com seu método favorito. Comentários, se nada mais.

Marcar

Razão: