-
كود الهيدج؟؟؟
هذا اللي طلع معاي :hands::hands::hands: ما :0023::0023::0023: علي
كود:
extern int Magic= 20080919;
extern int period=30;
extern double Lot=0.10;
//----
static int prevtime = 0;
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if (Time[0] == prevtime) return(0);
prevtime = Time[0];
int i, candle;
double c1=iClose(NULL,0,1);
double c2=iClose(NULL,0,2);
double ma1=iMA(NULL,0,period,0,MODE_SMA,PRICE_CLOSE,1);
double ma2=iMA(NULL,0,period,0,MODE_SMA,PRICE_CLOSE,2);
int Signal;
{
if (Time[0] == prevtime) return(0);
prevtime = Time[0];
if(c1>ma1 && c2<ma2)
Signal=1;
else if(c1<ma1 && c2>ma2)
Signal=2;
if(Signal==1 && MyOrdersTotal(Magic)>0)
{
CloseOrders(Magic);
}
if(Signal==1 && MyOrdersTotal(Magic)==0)
OrderSend(Symbol(), OP_BUY, Lot, Ask, 3, 0, 0, "ZigZag", Magic, 0, Blue);
else if(Signal==2 && MyOrdersTotal(Magic)>0)
{
CloseOrders(Magic);
}
if(Signal==2 && MyOrdersTotal(Magic)==0)
OrderSend(Symbol(), OP_SELL, Lot, Bid, 3, 0, 0, "ZigZag", Magic, 0, Red);
}
return(0);
}
//+-----------------------------------------------------------------
//__________________ 1st order Closde in 2nd candle ( Order opend on Time Check OK )
int MyOrdersTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
c++;
}
}
return(c);
}
int CloseOrders(int Magic)
{
for (int cnt=0; cnt<=OrdersTotal(); cnt++) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,0);
}
return(0);
}
فتح صفقات الإشارة الأولى و الثانية = = كما هو مطلوب
عند ظهور الإشارة المعاكسة يتم إقفال الصفقة المفتوحة =! كما هو مطلوب
يتم إقفال الصقفة المفتوحة عند إقفال الشمعة الثانية و اللتي تلي ظهور الإشارة
و المطلوب أن يتم الإقفال عند إفتتاح الشمعة الثانية و اللتي تلي ظهور الإشارة أي عند فتح الصفقة الثانية ,,,,, بصريح العبارة هيدج أو من ينوب عنه
-
رد: كود الهيدج؟؟؟
بعد حذف
كود PHP:
if (Time[0] == prevtime) return(0);
prevtime = Time[0];
ظبطت , و أصبح الكود
كود:
extern int Magic= 20080919;
extern int period=30;
extern double Lot=0.10;
//----
static int prevtime = 0;
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if (Time[0] == prevtime) return(0);
prevtime = Time[0];
int i, candle;
double c1=iClose(NULL,0,1);
double c2=iClose(NULL,0,2);
double ma1=iMA(NULL,0,period,0,MODE_SMA,PRICE_CLOSE,1);
double ma2=iMA(NULL,0,period,0,MODE_SMA,PRICE_CLOSE,2);
int Signal;
{
if(c1>ma1 && c2<ma2)
Signal=1;
else if(c1<ma1 && c2>ma2)
Signal=2;
if(Signal==1 && MyOrdersTotal(Magic)>0)
{
CloseOrders(Magic);
}
if(Signal==1 && MyOrdersTotal(Magic)==0)
OrderSend(Symbol(), OP_BUY, Lot, Ask, 3, 0, 0, "ZigZag", Magic, 0, Blue);
else if(Signal==2 && MyOrdersTotal(Magic)>0)
{
CloseOrders(Magic);
}
if(Signal==2 && MyOrdersTotal(Magic)==0)
OrderSend(Symbol(), OP_SELL, Lot, Bid, 3, 0, 0, "ZigZag", Magic, 0, Red);
}
return(0);
}
//+-----------------------------------------------------------------
//__________________ 1st order Closde in 2nd candle ( Order opend on Time Check OK )
int MyOrdersTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
c++;
}
}
return(c);
}
int CloseOrders(int Magic)
{
for (int cnt=0; cnt<=OrdersTotal(); cnt++) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,0);
}
return(0);
}