İş tamamlandı
İş Gereklilikleri
Hi! I have problems with me code. I need somebody help me with that. Thank you
extern double lots = 1;
extern double CCIsell = 100;
extern double CCIbuy = -100;
extern double CCIclose = 100;
extern double slippage = 0;
extern int CCIperiod = 14;
extern double ADXlimit = 25;
extern int ADX = 14;
extern string nameEA = "B3";
int c, ticket;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//Variables Initialization//
int positions = 0;
//Scanning//
for(c = 0; c < OrdersTotal(); c++)
{
//Checking open market trades//
OrderSelect(c, SELECT_BY_POS);
//Looking only for this symbol and orders from this EA//
if(OrderSymbol() == Symbol() && OrderType() <= OP_SELL && OrderComment() == nameEA)
{
positions++;
//Checking for close signal for bought trade//
if(OrderType() == OP_BUY)
{
if(iCCI(NULL, 0, CCIperiod, PRICE_OPEN, 0) >= CCIclose)
{
//Close bought trade//
OrderClose(OrderTicket(), OrderLots(), Bid, slippage, CLR_NONE);
}
}
//Checking for close signal for sold trade//
else
{
if(iCCI(NULL, 0, CCIperiod, PRICE_OPEN, 0) <= -CCIclose)
{
//Close sold trade//
OrderClose(OrderTicket(), OrderLots(), Ask, slippage, CLR_NONE);
}
}
}
}
//If there is no open trade for this pair and this EA//
if(positions < 1)
{
if(AccountFreeMargin() < 1000*lots)
{
Print("Not enough money to trade ", lots, " lots. Strategy:", nameEA);
return(0);
}
//Checking buy signal//
if(iCCI(NULL, 0, CCIperiod, PRICE_OPEN, 0) <= CCIbuy)
{
if( (iCCI(NULL, 0, CCIperiod, PRICE_OPEN, 0) < iCCI(NULL, 0, CCIperiod, PRICE_OPEN, 1)) &&
( (iADX(NULL, 0, ADX, PRICE_OPEN, MODE_MAIN, 0) >= ADXlimit) || (iADX(NULL, 0, ADX, PRICE_OPEN, MODE_MINUSDI, 0) >= ADXlimit)))
//Sell//
ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, slippage, 0, 0, nameEA, 0, 0, CLR_NONE);
else
//Buy//
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, 0, 0, nameEA, 0, 0, CLR_NONE);
if(ticket < 0)
Print("OrderSend(",nameEA,") ERROR #", GetLastError());
}
//Checking sell signal//
if(iCCI(NULL, 0, CCIperiod, PRICE_OPEN, 0) >= CCIsell)
{
if( (iCCI(NULL, 0, CCIperiod, PRICE_OPEN, 0) > iCCI(NULL, 0, CCIperiod, PRICE_OPEN, 1)) &&
( (iADX(NULL, 0, ADX, PRICE_OPEN, MODE_MAIN, 0) >= ADXlimit) || (iADX(NULL, 0, ADX, PRICE_OPEN, MODE_PLUSDI, 0) >= ADXlimit)))
//Buy//
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, 0, 0, nameEA, 0, 0, CLR_NONE);
else
//Sell//
ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, slippage, 0, 0, nameEA, 0, 0, CLR_NONE);
if(ticket < 0)
Print("OrderSend(",nameEA,") ERROR #", GetLastError());
}
}
return(0);
}