FX-Arabia

جديد المواضيع











الملاحظات

منتدى المؤشرات و الاكسبيرتات تعليم برمجة الاكسبيرت ، اكسبيرت مجانى ، برمجة مؤشرات ، مؤشر ، تصميم اكسبيرت مجانا ، اكسبيرتات جديدة ، مؤشرات جديدة ، كل ما يتعلق بالتحليل و الخاص بالمؤشرات الفنية او الرقمية ، Expert advisor ، mql ، mql4 ، دورة برمجة ، برمجة اكسبيرت ، اكسبيرت رابح ، اكسبيرت جيد ، ادارة حسابات ، تداول الى ، ميتاتريدر ، تحميل منصة ، منصة تداول ، برمجة مؤشر ، مكتبة مؤشرات ، مؤشر جديد ، مؤشرات جديدة ، مؤشر حصرى ، احدث مؤشر .


دورة تعليم برمجة الاكسبريت

منتدى المؤشرات و الاكسبيرتات


إضافة رد
 
أدوات الموضوع
قديم 28-03-2013, 05:46 PM   المشاركة رقم: 111
الكاتب
MOVING_AVERAGE
عضو فضى
الصورة الرمزية MOVING_AVERAGE

البيانات
تاريخ التسجيل: Feb 2012
رقم العضوية: 8190
الدولة: algeria
العمر: 41
المشاركات: 2,213
بمعدل : 0.47 يوميا

الإتصالات
الحالة:
MOVING_AVERAGE غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : MOVING_AVERAGE المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: دورة تعليم برمجة الاكسبريت

نضع شرط ضهور السهم الازرق مع فتح صفقة واحدة فقط

ونضع حاضنة لتنفيذ الامر الذي نريده

كذالك شرط ضهور السهم الاحمر وحاضنة للامر الذي نريد تنفيذه

[PHP]
if(orderstotal()<MaxTrades&&indigreen<4000)
{

}

if(orderstotal()<MaxTrades&&indired<4000)
{

}
[/PHP]

مع تاكيد اننا نريد ان نقوم بعملية شراء عند ضهور سهم ازرق

وبيع عند ضهور سهم احمر



التوقيع

نقره لعرض الصورة في صفحة مستقلة







عرض البوم صور MOVING_AVERAGE  
رد مع اقتباس
  #111  
قديم 28-03-2013, 05:46 PM
MOVING_AVERAGE MOVING_AVERAGE غير متواجد حالياً
عضو فضى
افتراضي رد: دورة تعليم برمجة الاكسبريت

نضع شرط ضهور السهم الازرق مع فتح صفقة واحدة فقط

ونضع حاضنة لتنفيذ الامر الذي نريده

كذالك شرط ضهور السهم الاحمر وحاضنة للامر الذي نريد تنفيذه

[PHP]
if(orderstotal()<MaxTrades&&indigreen<4000)
{

}

if(orderstotal()<MaxTrades&&indired<4000)
{

}
[/PHP]

مع تاكيد اننا نريد ان نقوم بعملية شراء عند ضهور سهم ازرق

وبيع عند ضهور سهم احمر




رد مع اقتباس
قديم 28-03-2013, 05:53 PM   المشاركة رقم: 112
الكاتب
MOVING_AVERAGE
عضو فضى
الصورة الرمزية MOVING_AVERAGE

البيانات
تاريخ التسجيل: Feb 2012
رقم العضوية: 8190
الدولة: algeria
العمر: 41
المشاركات: 2,213
بمعدل : 0.47 يوميا

الإتصالات
الحالة:
MOVING_AVERAGE غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : MOVING_AVERAGE المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: دورة تعليم برمجة الاكسبريت

وكما شرحنا من قبل ان في حالة الشراء

فان الامر سيتنفذ علي Ask

وهنا الربح بالنقاط يسمي TakeProfit

اذن الربح الذي نريد اغلاق الصفقة لما يصله السعر

هو سعر الدخول + عدد نقاط الربح

ونفس الامر بالنسبة للخسارة

اذا سيصبح الكود عند ضهور سهم ازرق ولاننا سندخل عملية Buy

[PHP]
double TP;

double SL;

if(orderstotal()<MaxTrades&&indigreen<4000)
{
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*poi nt;}
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3*Q,SL,TP,"",Ma gicNumber,0,Blue);
}

if(orderstotal()<MaxTrades&&indired<4000)
{
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3*Q,SL,TP,"",M agicNumber,0,Red);
}

[/PHP]

وهذا هو الكود الكلي برتيب اكثر



التوقيع

نقره لعرض الصورة في صفحة مستقلة







عرض البوم صور MOVING_AVERAGE  
رد مع اقتباس
  #112  
قديم 28-03-2013, 05:53 PM
MOVING_AVERAGE MOVING_AVERAGE غير متواجد حالياً
عضو فضى
افتراضي رد: دورة تعليم برمجة الاكسبريت

وكما شرحنا من قبل ان في حالة الشراء

فان الامر سيتنفذ علي Ask

وهنا الربح بالنقاط يسمي TakeProfit

اذن الربح الذي نريد اغلاق الصفقة لما يصله السعر

هو سعر الدخول + عدد نقاط الربح

ونفس الامر بالنسبة للخسارة

اذا سيصبح الكود عند ضهور سهم ازرق ولاننا سندخل عملية Buy

[PHP]
double TP;

double SL;

if(orderstotal()<MaxTrades&&indigreen<4000)
{
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*poi nt;}
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3*Q,SL,TP,"",Ma gicNumber,0,Blue);
}

if(orderstotal()<MaxTrades&&indired<4000)
{
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3*Q,SL,TP,"",M agicNumber,0,Red);
}

[/PHP]

وهذا هو الكود الكلي برتيب اكثر




رد مع اقتباس
قديم 28-03-2013, 05:58 PM   المشاركة رقم: 113
الكاتب
imaddine
عضو نشيط

البيانات
تاريخ التسجيل: Dec 2012
رقم العضوية: 12839
المشاركات: 202
بمعدل : 0.05 يوميا

الإتصالات
الحالة:
imaddine غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : MOVING_AVERAGE المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: دورة تعليم برمجة الاكسبريت

بارك الله فيك استاذي العزيز موفنج



عرض البوم صور imaddine  
رد مع اقتباس
  #113  
قديم 28-03-2013, 05:58 PM
imaddine imaddine غير متواجد حالياً
عضو نشيط
افتراضي رد: دورة تعليم برمجة الاكسبريت

بارك الله فيك استاذي العزيز موفنج




رد مع اقتباس
قديم 31-03-2013, 03:09 AM   المشاركة رقم: 114
الكاتب
imaddine
عضو نشيط

البيانات
تاريخ التسجيل: Dec 2012
رقم العضوية: 12839
المشاركات: 202
بمعدل : 0.05 يوميا

الإتصالات
الحالة:
imaddine غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : MOVING_AVERAGE المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: دورة تعليم برمجة الاكسبريت

استاذ موفنج والله اتعبتك معاي لو ممكن مساعدة بسيطة
حول الاكسبيرت الذي عملناه في الدورة فقد قمت ببعض التعديلات
عليه مثل اضافة التريلنج استوب وكذلك اغلاق الصفقة لما تكون اشارة
معاكسة لكن للاسف لم تتفعل اي من هذه الدوال في الاكسبيرت
بل اصبح يفتح 5 صفقات معا بدل صفقة واحدة رغم اني حددت
عدد الصفقات المفتوحة بصفقة واحدة فقط فارجو ان تشرح لي
الاخطاء التي وقعت فيها لان الاكسبيرت للتعلم فقط لا اكثر
وبارك الله فيك وجعله في ميزان حسناتك
[PHP]extern double Lots = 0.1;
double point;
int digits,Q;
extern int MaxTrades = 1;
extern int StopLoss=0;
extern int TakeProfit=0;
extern int TrailingStop=0;
extern int TrailingStep=0;
extern int MagicNumber=1234;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits==2)
{
point=0.01;

}
if(Digits==4)
{
point=0.0001;

}
if(Digits==3)
{
point=0.01;

}
if(Digits==5)
{
point=0.0001;
}
}
int magic=0 ;

int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//----

//----

//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("");

if(TrailingStop>0)MoveTrailingStop();
//////////////////////////////////////////////////

double indigreen=iCustom(0,0,"imad",1,1);
double indired=iCustom(0,0,"imad",0,1);

//////////////////////////////////////////////////

double TP,SL;


if(indigreen<4000) {
if(orderstotal()<MaxTrades)
{CloseSellOrders();}
//Buy
if(TakeProfit==0){TP=0;}
else{TP=Ask+TakeProfit*point;}
if(StopLoss==0){SL=0;}
else{SL=Ask-StopLoss*point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"",Magi cNumber,0,Blue);

}

//////////////////////////////////////////////////


if(indired<4000){
if(orderstotal()<MaxTrades)
{CloseBuyOrders();}
//Sell
if(TakeProfit==0){TP=0;}
else{TP=Bid-TakeProfit*point;}
if(StopLoss==0){SL=0;}
else{SL=Bid+StopLoss*point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"",Mag icNumber,0,Red);

}


}
//+------------------------------------------------------------------+




void CloseBuyOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
}
}

}
//////////////////////////////////////////////////
void CloseSellOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())

if (OrderType()==OP_SELL)

OrderClose(OrderTicket(),OrderLots(),Ask,3);
}

}

//////////////////////////////////////////////////
void MoveTrailingStop()
{

for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOp enPrice()+TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)<Normal izeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blu e);

}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingSte p*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)>(Norma lizeDouble(Ask+TrailingStop*point,digits)))||(Orde rStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Ask+TrailingStop*point,digits),OrderTakeP rofit(),0,Red);

}
}
}
}
}
}

[/PHP]



عرض البوم صور imaddine  
رد مع اقتباس
  #114  
قديم 31-03-2013, 03:09 AM
imaddine imaddine غير متواجد حالياً
عضو نشيط
افتراضي رد: دورة تعليم برمجة الاكسبريت

استاذ موفنج والله اتعبتك معاي لو ممكن مساعدة بسيطة
حول الاكسبيرت الذي عملناه في الدورة فقد قمت ببعض التعديلات
عليه مثل اضافة التريلنج استوب وكذلك اغلاق الصفقة لما تكون اشارة
معاكسة لكن للاسف لم تتفعل اي من هذه الدوال في الاكسبيرت
بل اصبح يفتح 5 صفقات معا بدل صفقة واحدة رغم اني حددت
عدد الصفقات المفتوحة بصفقة واحدة فقط فارجو ان تشرح لي
الاخطاء التي وقعت فيها لان الاكسبيرت للتعلم فقط لا اكثر
وبارك الله فيك وجعله في ميزان حسناتك
[PHP]extern double Lots = 0.1;
double point;
int digits,Q;
extern int MaxTrades = 1;
extern int StopLoss=0;
extern int TakeProfit=0;
extern int TrailingStop=0;
extern int TrailingStep=0;
extern int MagicNumber=1234;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits==2)
{
point=0.01;

}
if(Digits==4)
{
point=0.0001;

}
if(Digits==3)
{
point=0.01;

}
if(Digits==5)
{
point=0.0001;
}
}
int magic=0 ;

int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//----

//----

//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("");

if(TrailingStop>0)MoveTrailingStop();
//////////////////////////////////////////////////

double indigreen=iCustom(0,0,"imad",1,1);
double indired=iCustom(0,0,"imad",0,1);

//////////////////////////////////////////////////

double TP,SL;


if(indigreen<4000) {
if(orderstotal()<MaxTrades)
{CloseSellOrders();}
//Buy
if(TakeProfit==0){TP=0;}
else{TP=Ask+TakeProfit*point;}
if(StopLoss==0){SL=0;}
else{SL=Ask-StopLoss*point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"",Magi cNumber,0,Blue);

}

//////////////////////////////////////////////////


if(indired<4000){
if(orderstotal()<MaxTrades)
{CloseBuyOrders();}
//Sell
if(TakeProfit==0){TP=0;}
else{TP=Bid-TakeProfit*point;}
if(StopLoss==0){SL=0;}
else{SL=Bid+StopLoss*point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"",Mag icNumber,0,Red);

}


}
//+------------------------------------------------------------------+




void CloseBuyOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
}
}

}
//////////////////////////////////////////////////
void CloseSellOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())

if (OrderType()==OP_SELL)

OrderClose(OrderTicket(),OrderLots(),Ask,3);
}

}

//////////////////////////////////////////////////
void MoveTrailingStop()
{

for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOp enPrice()+TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)<Normal izeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blu e);

}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingSte p*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)>(Norma lizeDouble(Ask+TrailingStop*point,digits)))||(Orde rStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Ask+TrailingStop*point,digits),OrderTakeP rofit(),0,Red);

}
}
}
}
}
}

[/PHP]




رد مع اقتباس
قديم 31-03-2013, 02:47 PM   المشاركة رقم: 115
الكاتب
MOVING_AVERAGE
عضو فضى
الصورة الرمزية MOVING_AVERAGE

البيانات
تاريخ التسجيل: Feb 2012
رقم العضوية: 8190
الدولة: algeria
العمر: 41
المشاركات: 2,213
بمعدل : 0.47 يوميا

الإتصالات
الحالة:
MOVING_AVERAGE غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : MOVING_AVERAGE المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: دورة تعليم برمجة الاكسبريت

المشاركة الأصلية كتبت بواسطة imaddine نقره لعرض الصورة في صفحة مستقلة
استاذ موفنج والله اتعبتك معاي لو ممكن مساعدة بسيطة
حول الاكسبيرت الذي عملناه في الدورة فقد قمت ببعض التعديلات
عليه مثل اضافة التريلنج استوب وكذلك اغلاق الصفقة لما تكون اشارة
معاكسة لكن للاسف لم تتفعل اي من هذه الدوال في الاكسبيرت
بل اصبح يفتح 5 صفقات معا بدل صفقة واحدة رغم اني حددت
عدد الصفقات المفتوحة بصفقة واحدة فقط فارجو ان تشرح لي
الاخطاء التي وقعت فيها لان الاكسبيرت للتعلم فقط لا اكثر
وبارك الله فيك وجعله في ميزان حسناتك
[PHP]extern double Lots = 0.1;
double point;
int digits,Q;
extern int MaxTrades = 1;
extern int StopLoss=0;
extern int TakeProfit=0;
extern int TrailingStop=0;
extern int TrailingStep=0;
extern int MagicNumber=1234;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits==2)
{
point=0.01;

}
if(Digits==4)
{
point=0.0001;

}
if(Digits==3)
{
point=0.01;

}
if(Digits==5)
{
point=0.0001;
}
}
int magic=0 ;

int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//----

//----

//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("");

if(TrailingStop>0)MoveTrailingStop();
//////////////////////////////////////////////////

double indigreen=iCustom(0,0,"imad",1,1);
double indired=iCustom(0,0,"imad",0,1);

//////////////////////////////////////////////////

double TP,SL;


if(indigreen<4000) {
if(orderstotal()<MaxTrades)
{CloseSellOrders();}
//Buy
if(TakeProfit==0){TP=0;}
else{TP=Ask+TakeProfit*point;}
if(StopLoss==0){SL=0;}
else{SL=Ask-StopLoss*point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"",Magi cNumber,0,Blue);

}

//////////////////////////////////////////////////


if(indired<4000){
if(orderstotal()<MaxTrades)
{CloseBuyOrders();}
//Sell
if(TakeProfit==0){TP=0;}
else{TP=Bid-TakeProfit*point;}
if(StopLoss==0){SL=0;}
else{SL=Bid+StopLoss*point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"",Mag icNumber,0,Red);

}


}
//+------------------------------------------------------------------+




void CloseBuyOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
}
}

}
//////////////////////////////////////////////////
void CloseSellOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())

if (OrderType()==OP_SELL)

OrderClose(OrderTicket(),OrderLots(),Ask,3);
}

}

//////////////////////////////////////////////////
void MoveTrailingStop()
{

for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOp enPrice()+TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)<Normal izeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blu e);

}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingSte p*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)>(Norma lizeDouble(Ask+TrailingStop*point,digits)))||(Orde rStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Ask+TrailingStop*point,digits),OrderTakeP rofit(),0,Red);

}
}
}
}
}
}

[/PHP]
اول ملاحضة

لاحظ انك حذفت return

من الدالة start

وهي معرفة علي انها دالة من نوع int يعني ترجع رقم وغير ممكن لا ترجع شئ



التوقيع

نقره لعرض الصورة في صفحة مستقلة







عرض البوم صور MOVING_AVERAGE  
رد مع اقتباس
  #115  
قديم 31-03-2013, 02:47 PM
MOVING_AVERAGE MOVING_AVERAGE غير متواجد حالياً
عضو فضى
افتراضي رد: دورة تعليم برمجة الاكسبريت

المشاركة الأصلية كتبت بواسطة imaddine نقره لعرض الصورة في صفحة مستقلة
استاذ موفنج والله اتعبتك معاي لو ممكن مساعدة بسيطة
حول الاكسبيرت الذي عملناه في الدورة فقد قمت ببعض التعديلات
عليه مثل اضافة التريلنج استوب وكذلك اغلاق الصفقة لما تكون اشارة
معاكسة لكن للاسف لم تتفعل اي من هذه الدوال في الاكسبيرت
بل اصبح يفتح 5 صفقات معا بدل صفقة واحدة رغم اني حددت
عدد الصفقات المفتوحة بصفقة واحدة فقط فارجو ان تشرح لي
الاخطاء التي وقعت فيها لان الاكسبيرت للتعلم فقط لا اكثر
وبارك الله فيك وجعله في ميزان حسناتك
[PHP]extern double Lots = 0.1;
double point;
int digits,Q;
extern int MaxTrades = 1;
extern int StopLoss=0;
extern int TakeProfit=0;
extern int TrailingStop=0;
extern int TrailingStep=0;
extern int MagicNumber=1234;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits==2)
{
point=0.01;

}
if(Digits==4)
{
point=0.0001;

}
if(Digits==3)
{
point=0.01;

}
if(Digits==5)
{
point=0.0001;
}
}
int magic=0 ;

int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//----

//----

//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("");

if(TrailingStop>0)MoveTrailingStop();
//////////////////////////////////////////////////

double indigreen=iCustom(0,0,"imad",1,1);
double indired=iCustom(0,0,"imad",0,1);

//////////////////////////////////////////////////

double TP,SL;


if(indigreen<4000) {
if(orderstotal()<MaxTrades)
{CloseSellOrders();}
//Buy
if(TakeProfit==0){TP=0;}
else{TP=Ask+TakeProfit*point;}
if(StopLoss==0){SL=0;}
else{SL=Ask-StopLoss*point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"",Magi cNumber,0,Blue);

}

//////////////////////////////////////////////////


if(indired<4000){
if(orderstotal()<MaxTrades)
{CloseBuyOrders();}
//Sell
if(TakeProfit==0){TP=0;}
else{TP=Bid-TakeProfit*point;}
if(StopLoss==0){SL=0;}
else{SL=Bid+StopLoss*point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"",Mag icNumber,0,Red);

}


}
//+------------------------------------------------------------------+




void CloseBuyOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
}
}

}
//////////////////////////////////////////////////
void CloseSellOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())

if (OrderType()==OP_SELL)

OrderClose(OrderTicket(),OrderLots(),Ask,3);
}

}

//////////////////////////////////////////////////
void MoveTrailingStop()
{

for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOp enPrice()+TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)<Normal izeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blu e);

}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingSte p*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)>(Norma lizeDouble(Ask+TrailingStop*point,digits)))||(Orde rStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Ask+TrailingStop*point,digits),OrderTakeP rofit(),0,Red);

}
}
}
}
}
}

[/PHP]
اول ملاحضة

لاحظ انك حذفت return

من الدالة start

وهي معرفة علي انها دالة من نوع int يعني ترجع رقم وغير ممكن لا ترجع شئ




رد مع اقتباس
قديم 31-03-2013, 02:50 PM   المشاركة رقم: 116
الكاتب
imaddine
عضو نشيط

البيانات
تاريخ التسجيل: Dec 2012
رقم العضوية: 12839
المشاركات: 202
بمعدل : 0.05 يوميا

الإتصالات
الحالة:
imaddine غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : MOVING_AVERAGE المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: دورة تعليم برمجة الاكسبريت

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE نقره لعرض الصورة في صفحة مستقلة
اول ملاحضة

لاحظ انك حذفت return

من الدالة start

وهي معرفة علي انها دالة من نوع int يعني ترجع رقم وغير ممكن لا ترجع شئ
فعلا لم انتبه لها
ربما حذفتها عند عملية التعديل



عرض البوم صور imaddine  
رد مع اقتباس
  #116  
قديم 31-03-2013, 02:50 PM
imaddine imaddine غير متواجد حالياً
عضو نشيط
افتراضي رد: دورة تعليم برمجة الاكسبريت

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE نقره لعرض الصورة في صفحة مستقلة
اول ملاحضة

لاحظ انك حذفت return

من الدالة start

وهي معرفة علي انها دالة من نوع int يعني ترجع رقم وغير ممكن لا ترجع شئ
فعلا لم انتبه لها
ربما حذفتها عند عملية التعديل




رد مع اقتباس
قديم 31-03-2013, 02:55 PM   المشاركة رقم: 117
الكاتب
MOVING_AVERAGE
عضو فضى
الصورة الرمزية MOVING_AVERAGE

البيانات
تاريخ التسجيل: Feb 2012
رقم العضوية: 8190
الدولة: algeria
العمر: 41
المشاركات: 2,213
بمعدل : 0.47 يوميا

الإتصالات
الحالة:
MOVING_AVERAGE غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : MOVING_AVERAGE المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: دورة تعليم برمجة الاكسبريت

المشاركة الأصلية كتبت بواسطة imaddine نقره لعرض الصورة في صفحة مستقلة
فعلا لم انتبه لها
ربما حذفتها عند عملية التعديل
2- حاول ربط الشروط مع بعض في دلة شرطية واحدة باستعمال && ولا تجزء الشروط



التوقيع

نقره لعرض الصورة في صفحة مستقلة







عرض البوم صور MOVING_AVERAGE  
رد مع اقتباس
  #117  
قديم 31-03-2013, 02:55 PM
MOVING_AVERAGE MOVING_AVERAGE غير متواجد حالياً
عضو فضى
افتراضي رد: دورة تعليم برمجة الاكسبريت

المشاركة الأصلية كتبت بواسطة imaddine نقره لعرض الصورة في صفحة مستقلة
فعلا لم انتبه لها
ربما حذفتها عند عملية التعديل
2- حاول ربط الشروط مع بعض في دلة شرطية واحدة باستعمال && ولا تجزء الشروط




رد مع اقتباس
قديم 31-03-2013, 03:03 PM   المشاركة رقم: 118
الكاتب
imaddine
عضو نشيط

البيانات
تاريخ التسجيل: Dec 2012
رقم العضوية: 12839
المشاركات: 202
بمعدل : 0.05 يوميا

الإتصالات
الحالة:
imaddine غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : MOVING_AVERAGE المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: دورة تعليم برمجة الاكسبريت

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE نقره لعرض الصورة في صفحة مستقلة
2- حاول ربط الشروط مع بعض في دلة شرطية واحدة باستعمال && ولا تجزء الشروط
ساحاول تجميع كل الشروط في شرط واحد فقط
بارك الله فيك استاذ موفنج



عرض البوم صور imaddine  
رد مع اقتباس
  #118  
قديم 31-03-2013, 03:03 PM
imaddine imaddine غير متواجد حالياً
عضو نشيط
افتراضي رد: دورة تعليم برمجة الاكسبريت

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE نقره لعرض الصورة في صفحة مستقلة
2- حاول ربط الشروط مع بعض في دلة شرطية واحدة باستعمال && ولا تجزء الشروط
ساحاول تجميع كل الشروط في شرط واحد فقط
بارك الله فيك استاذ موفنج




رد مع اقتباس
قديم 31-03-2013, 03:16 PM   المشاركة رقم: 119
الكاتب
MOVING_AVERAGE
عضو فضى
الصورة الرمزية MOVING_AVERAGE

البيانات
تاريخ التسجيل: Feb 2012
رقم العضوية: 8190
الدولة: algeria
العمر: 41
المشاركات: 2,213
بمعدل : 0.47 يوميا

الإتصالات
الحالة:
MOVING_AVERAGE غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : MOVING_AVERAGE المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: دورة تعليم برمجة الاكسبريت

المشاركة الأصلية كتبت بواسطة imaddine نقره لعرض الصورة في صفحة مستقلة
ساحاول تجميع كل الشروط في شرط واحد فقط
بارك الله فيك استاذ موفنج

فيه شئ غير صحيح في برنامجك اخي

هو غلق الصفقات العكسية

ماهي شروط غلق الصفقات العكسية ؟؟؟؟؟



التوقيع

نقره لعرض الصورة في صفحة مستقلة







عرض البوم صور MOVING_AVERAGE  
رد مع اقتباس
  #119  
قديم 31-03-2013, 03:16 PM
MOVING_AVERAGE MOVING_AVERAGE غير متواجد حالياً
عضو فضى
افتراضي رد: دورة تعليم برمجة الاكسبريت

المشاركة الأصلية كتبت بواسطة imaddine نقره لعرض الصورة في صفحة مستقلة
ساحاول تجميع كل الشروط في شرط واحد فقط
بارك الله فيك استاذ موفنج

فيه شئ غير صحيح في برنامجك اخي

هو غلق الصفقات العكسية

ماهي شروط غلق الصفقات العكسية ؟؟؟؟؟




رد مع اقتباس
قديم 31-03-2013, 03:33 PM   المشاركة رقم: 120
الكاتب
MOVING_AVERAGE
عضو فضى
الصورة الرمزية MOVING_AVERAGE

البيانات
تاريخ التسجيل: Feb 2012
رقم العضوية: 8190
الدولة: algeria
العمر: 41
المشاركات: 2,213
بمعدل : 0.47 يوميا

الإتصالات
الحالة:
MOVING_AVERAGE غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : MOVING_AVERAGE المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: دورة تعليم برمجة الاكسبريت

لغلق الصفقات العكسية يشترط فقط ضهور السهم المعاكس

;غير شرط ان يكون عدد الصفقات اقل من mx trade

اذت لغلق الصفقات ضع الشرط منفصل علي شرط فتح الصفقات مع تغير الشروط

انا ممكن اضع لك التعديل النهائي لاكن اردت مناقشة الاخضاء لكي يستفيد الجميع عند مراجعة الموضوع



التوقيع

نقره لعرض الصورة في صفحة مستقلة







عرض البوم صور MOVING_AVERAGE  
رد مع اقتباس
  #120  
قديم 31-03-2013, 03:33 PM
MOVING_AVERAGE MOVING_AVERAGE غير متواجد حالياً
عضو فضى
افتراضي رد: دورة تعليم برمجة الاكسبريت

لغلق الصفقات العكسية يشترط فقط ضهور السهم المعاكس

;غير شرط ان يكون عدد الصفقات اقل من mx trade

اذت لغلق الصفقات ضع الشرط منفصل علي شرط فتح الصفقات مع تغير الشروط

انا ممكن اضع لك التعديل النهائي لاكن اردت مناقشة الاخضاء لكي يستفيد الجميع عند مراجعة الموضوع




رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
الاكسبريت, برمجة, تعليم, دورة

أدوات الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة



الساعة الآن 08:47 AM



جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com

تحذير المخاطرة

التجارة بالعملات الأجنبية تتضمن علي قدر كبير من المخاطر ومن الممكن ألا تكون مناسبة لجميع المضاربين, إستعمال الرافعة المالية في التجاره يزيد من إحتمالات الخطورة و التعرض للخساره, عليك التأكد من قدرتك العلمية و الشخصية على التداول.

تنبيه هام

موقع اف اكس ارابيا هو موقع تعليمي خالص يهدف الي توعية المستثمر العربي مبادئ الاستثمار و التداول الناجح ولا يتحصل علي اي اموال مقابل ذلك ولا يقوم بادارة محافظ مالية وان ادارة الموقع غير مسؤولة عن اي استغلال من قبل اي شخص لاسمها وتحذر من ذلك.

اتصل بنا

البريد الإلكتروني للدعم الفنى : support@fx-arabia.com
جميع الحقوق محفوظة اف اكس ارابيا – احدى مواقع Inwestopedia Sp. Z O.O. للاستشارات و التدريب – جمهورية بولندا الإتحادية.
Powered by vBulletin® Copyright ©2000 - 2024 , Designed by Fx-Arabia Team