Chiedete! - pagina 69

 

Ciao,

Qualcuno può dirmi cosa c'è di sbagliato in questo codice?

Non apre nessun ordine?

L'ho testato al 2007.01.03

Saluti

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));

}
 

Non riesco a trovare il file MQ4 per l'indicatore

Spero che qualcuno possa aiutarmi con qualcosa che inizialmente pensavo fosse abbastanza semplice. Volevo mettere un allarme acustico su un indicatore che in realtà viene fornito con Metatrader in modo che quando raggiunge un livello particolare me lo dica. L'indicatore è Force Index ma non riesco a trovare un file MQ4 per esso da nessuna parte nella cartella Experts/Indicators. Qualcuno ha un'idea di dove potrei trovare il file?

Se riesco a trovare il file MQ4 avrei ragione di supporre che posso usare il codice dato da Codersguru all'inizio di questo thread per aggiungere un allarme ad esso?

grazie

 

rif. post precedente

Sono riuscito a risolvere il mio problema dal post precedente.

Grazie a tutti per l'interesse.

 
Hartadi:
Ciao,

Qualcuno può dirmi cosa c'è di sbagliato in questo codice?

Non apre nessun ordine?

L'ho testato al 2007.01.03

Saluti

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

Non puoi comprare al prezzo d'offerta.

 

@Michel :

Oh mio Dio... come sono stupido...

grazie...

 

Aiuto con le siepi

Ciao a tutti!

Ho usato l'Expert Advisor Builder di sufx.com per creare un EA. Ha due limitazioni che sto cercando di eliminare:

1. apre solo 1 trade alla volta. Posso fare in modo che abbia due operazioni aperte contemporaneamente, ma non riesco a fargli aprire un ordine di acquisto e uno di vendita contemporaneamente.

2. sembra prendere gli ordini di vendita come preferenza rispetto agli ordini di acquisto. Questo non sarebbe un problema se il problema numero 1 fosse risolto.

Questo è il pezzo di codice che sembra trattenermi:

//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

Qualche suggerimento? Mi piacerebbe lasciare che apra il maggior numero possibile di trade, e che sia in grado di aprire ordini di acquisto e di vendita simultaneamente se gli indicatori lo dicono.

Grazie per l'aiuto,

Benjimang

 

Profitto/perdita di valuta

Dave,

Penso che tu debba essere più specifico in quello che stai chiedendo. E BTW perché non rispondi ai PM? Dove ti nascondi in questi giorni?? lol

P in KC

 
FX4$$$:
Dave,

Penso che tu debba essere più specifico in quello che stai chiedendo. E BTW perché non rispondi ai PM? Dove ti nascondi in questi giorni?? lol

P in KC

Non ho ricevuto nessun nuovo PM ???? Purtroppo durante questo periodo ho avuto un'emergenza familiare che è accaduta - Tutto va bene con l'emergenza. Potrei ancora usare l'aiuto sulla mia codifica, specialmente la codifica delle buste.

Dave

 

Come posso pubblicare il profitto della valuta in alto a destra del grafico?

Vorrei pubblicare il profitto/perdita della valuta in alto a destra del grafico della piattaforma di trading (EURUSD). Se il profitto del trade corrente è positivo, verrebbe mostrato in verde; se è 0.00, verrebbe mostrato in bianco; se è una perdita, verrebbe mostrato in rosso.

So che ObjectCreate è la strada da seguire, ma oltre a questo non so come catturare il profitto dalla piattaforma di trading? Qualcuno può darmi una mano su questa utilità? Voglio includere questo nel mio ea.

Grazie!

Dave

<<<
 

statistiche di trading

usa questo codice:

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

int stats()

{

int i, vOrders;

// profitto attuale del CP

vOrders = OrdersTotal();

Profitto = 0;

PipsProfit = 0;

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

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if(OrderSymbol() == Symbol())

{

Profit += OrderProfit();

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

altrimenti se (OrderType() == OP_SELL) PipsProfit += ((OrderOpenPrice() - Ask)/Point);

}

}

}

// rischio potenziale

// posizioni massime

}

Profit & PipsProfit dovranno essere dichiarati fuori dal programma, quindi visualizzati sullo schermo con il tuo metodo preferito. Commenti se non altro.

Segna