النتائج 1 إلى 15 من 25
الموضوع: طريقة صناعة الاكسبيرتات الاليه
- 04-01-2008, 08:08 PM #1
طريقة صناعة الاكسبيرتات الاليه
بسم الله الرحمن الرحيم
(موضوع منقول للاخ الدكتور وليد سليمان نقلته لفائدة الاعضاء )
في هذا الموضوع شرح كامل لعملية تصنيع اكسبيرت عن طريق نموذج لأحد الكسبيرتات
يكفي فقط ان تضع طريقتك على هيئة معادلات وبعدين تغذي بها النموذج وتبدأ متاجرتك الألية
ارجو التركيز من فضلكم
نبدأ على بركة الله
* التعرف على نموذج الكسبيرت
//كود PHP:+------------------------------------------------------------------+
كود PHP:[center] //| My Own Expert |
//| Copyright, created 20 may 2006 |
//| www.forex.com.sa |
//| Desined by Dr. Waleed |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "My Own Expert"
#property link "www.forex.com.sa"
extern int MaxTrades = 1;
extern int stoploss = 25;
extern int takeprofit = 50;
extern double TrailingStop =10;
extern bool UseHourTrade = true;
extern int FromHourTrade = 7;
extern int ToHourTrade = 17;
extern string MM_Parameters = "---------- Money Management";
extern double Lots = 1;
extern bool MM = true,
AccountIsMicro = false;
extern int Risk = 10;
int ID=148;
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderscnt(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && ID==OrderMagicNumber()){
cnt++;
}
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+
int start()
{
if (UseHourTrade){
if(!(Hour()>=FromHourTrade&&Hour()<=ToHourTrade)){
Comment("Non-Trading Hours!");
return(0);
}
}
double EMA5cr, EMA5pr, EMA8cr, EMA8pr;
EMA5cr=iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE,0);
EMA5pr=iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE,1);
EMA8cr=iMA(NULL, 0, 8, 0, MODE_EMA, PRICE_CLOSE,0);
EMA8pr=iMA(NULL, 0, 8, 0, MODE_EMA, PRICE_CLOSE,1);
double sl,tp;
if(MM) Lots = subLotSize();
if (EMA5cr>EMA8cr && EMA5pr<EMA8pr){
if(orderscnt()<MaxTrades){
if(stoploss==0){sl=0;}else{sl=Ask-stoploss*Point;}
if(takeprofit==0){tp=0;}else{tp=Ask+takeprofit*Point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,2,sl,tp,"My Own Expert",ID,0,Blue);
PlaySound("Alert.wav");
}
}
if (EMA5cr<EMA8cr && EMA5pr>EMA8pr){
if(orderscnt()<MaxTrades){
if(stoploss==0){sl=0;}else{sl=Bid+stoploss*Point;}
if(takeprofit==0){tp=0;}else{tp=Bid-takeprofit*Point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,2,sl,tp,"My Own Expert",ID,0,Red);
PlaySound("Alert.wav");
}
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS TrailingStop |
//+------------------------------------------------------------------+
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,
OrderTakeProfit(),0,Green);
return(0);
}
}
}
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,
OrderTakeProfit(),0,Red);
return(0);
}
}
}
return(0);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Money Managment |
//+------------------------------------------------------------------+
double subLotSize()
{
double lotMM = MathCeil(AccountFreeMargin() * Risk / 1000) / 100;
if(AccountIsMicro==false)
{
if(lotMM < 0.1) lotMM = Lots;
if((lotMM > 0.5) && (lotMM < 1)) lotMM = 0.5;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
if(lotMM > 100) lotMM = 100;
}
else
{
if(lotMM < 0.01) lotMM = Lots;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
if(lotMM > 100) lotMM = 100;
}
return (lotMM);
}
//+---------------------------------------------------------------------------------+
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*[/center]
كود PHP:[center]
//+------------------------------------------------------------------+
//| My Own Expert |
//| Copyright, created 20 may 2006 |
//| www.forex.com.sa |
//| Desined by Dr. Waleed |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "My Own Expert"
#property link "www.forex.com.sa"
[/center]
هذا الجزء بأكمله تعريف لصانع الكسبيرت وحقوقه ,, يمكنك كتابة اي بيانات هنا مثلي ولا يؤثر على عمل الكسبيرت ,, هذا الجزء خاص بك وحدك اكتب ما تشاء
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
ثاني جزء من الكسبيرت
كود PHP:extern int MaxTrades = 1; // ------------------ 1
كود PHP:[center] extern int stoploss = 25; // ---------------- 2
extern int takeprofit = 50; // --------------- 3
extern double TrailingStop =10; // -------------- 4
extern bool UseHourTrade = true; // ----------- 5
extern int FromHourTrade = 7; // ------------- 6
extern int ToHourTrade = 17; //------------- 7
extern string MM_Parameters = "---------- Money Management";
extern double Lots = 1;
extern bool MM = true, // ------------ 8
AccountIsMicro = false;
extern int Risk = 10; // ------------- 9
int ID=148; //--------------------- 10
[/center]
حسنا , الأن هذه اعدادات الكسبيرت يمكنك تغير ما تشاء منها حسب القواعد التالية
رقم 1 هو عدد الصفقات التي سيفتحها الكسبيرت في نفس الوقت لنفس العملة ولو هناك صفقة مفتوحة للعملة التي يعمل عليها الكسبيرت لن يفتح أخرى ويمكن تغييرها ل 2 او 3 او اي عدد يعجبك
رقم 2 هو وقف الخسارة بالنقط
رقم 3 هو الهدف بالنقط
رقم 4 الوقف المتحرك
رقم 5 هنا يمكنك كتابة قيمتين اما "true" او "false" ومعناها هل تريد ان تشغل خاصية الفلتر الزمني- بمعنى ان تتم المضاربة في ساعات محددة من اليوم - فأن جعلتها "true" انزل للخطوات رقم 6 ورقم 7 لتكتب من الساعة للساعة كم يتاجر هذا الكسبيرت ,
وان جعلتها "false" فأنت الغيت الخاصية ولا تكتب شيء في الخطوات رقم 6 و رقم 7 .
رقم 8 نفس القيمتين اما "true" او "false" وهي الخاصية التي تقوم بتشغيل ادارة راس المال اي زيادة عدد العقود اتوماتيكيا حسب راس المال الموجود في الصفقة الواحدة ( انصح بجعلها "true" كما هي)
رقم 9 خاصة بأدارة المخاطر وهي لن تعمل الا اذا كان رقم 8 "true" وهي تقوم على نسبة كمية زيادة عدد العقود حسب راس المال المستخدم , فأنت انت شغلت خاصية ادارة راس المال في الخطوة رقم 8 سيتم فتح عقود في الصفقة الواحدة حسب ادارة المخاطر في الخطوة رقم 9 ( نصيحة لا تزيد عن رقم 15) .
رقم 10 وهو خاص برقم الكسبيرت حتى يميز اكسبيرتك عن اي اكسبيرت اخر (optional)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
ثالث جزء من الكسبيرت
//كود PHP:+------------------------------------------------------------------+
كود PHP:[center] //| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderscnt(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && ID==OrderMagicNumber()){
cnt++;
}
}
}
return(cnt);
}
[/center]
لا يتم تغيير شئ فيه بتاتا
وهو الجزء الخاص بتعريف الميتا عملية البيع والشراء
لن نتدخل في هذا الجزء
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
رابع جزء من الكسبيرت ( ارجو التركيز)
//كود PHP:+------------------------------------------------------------------+
كود PHP:[center] //| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+
int start()
{
if (UseHourTrade){
if(!(Hour()>=FromHourTrade&&Hour()<=ToHourTrade)){
Comment("Non-Trading Hours!");
return(0);
}
}
double EMA5cr, EMA5pr, EMA8cr, EMA8pr; // --------------- 11
EMA5cr=iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE,0); // ----- 12
EMA5pr=iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE,1); // ----- 13
EMA8cr=iMA(NULL, 0, 8, 0, MODE_EMA, PRICE_CLOSE,0); // ----- 14
EMA8pr=iMA(NULL, 0, 8, 0, MODE_EMA, PRICE_CLOSE,1); // ----- 15
[/center]
هنا في هذا الجزء من الكسبيرت سيتم تعريف الميتا بالمؤشرات التي سيقوم عليها عمل الكسبيرت
فأنت قبل ان تنشئ اكسبيرتك الخاص يجب عليك قبل البدء , تحديد المؤشرات الخاصة بك وتسميتها بأسماء لكي يميزها الكسبيرت
سأعطي مثالا كما هو موضح في هذا الجزء
انا الأن اريد ان استخدم المتوسطان 5 اكسبوشنال و 8 اكسيبوشنال فقط في هذا الكسبيرت وعمله سيكون قائما على تقاطعهما فقط
ساتي للخطوة رقم 11 الموجودة في الكود اعلاه واكتب اسماء من تأليفي امام كلمة double لكل ما سأستخدمه من متوسطات وارجو الألتزام بالفواصل كما هي :
EMA5cr خاص بالمتوسط المتحرك 5 للشمعة الحالية
EMA5pr خاص بالمتوسط المتحرك 5 للشمعة السابقة
EMA8cr خاص بالمتوسط المتحرك 8 للشمعة الحالية
EMA8pr خاص بالمتوسط المتحرك للشمعة السابقة
سيسألني سائل : لماذا يا وليد وضعت اسم المتوسطات للشموع السابقة؟ والجواب سيأتي ذكره في الجزء التالي من الكسبيرت(المعادلات) فلا تستعجلون الأن.
ارجو ملاحظة ان الأسماء السبقة لي حرية اختيارها وهي يمكن تغييرها المهم اني التزم بها فيما سيلي ,
الأن وبعد ان سميت المتوسطات بأسمائها امام كلمة double سأترجمها للميتا تريدر كي يعرف اي متوسطات انا استخدمها
في الخطوات من رقم12 ل رقم 15 تعريف لكل اسم انا اخترته وبجانبه اشارة =
هذا التعريف هو اسم مؤشرات المتوسطات كما يعرفها الميتاتريدر واعداداتها
وهناك مكتبة لأغلب المؤشرات الموجودة في الميتا ويجب الألتزام بها كما هي والتغيير يكون في الأعدادات فقط كما سأذكره لاحقا وهي بالمرفقات باسم "مكتبة المؤشرات"
سأذكر مثالا على التغيير في اعدادات المتوسط 5 اكسيبوشنال, كلوز للشمعة الحالية والشمعة السابقة :
انظر للخطوة رقم 12 في الكود
كود PHP:[center][center]
EMA5cr=iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE,0); ----- 12
[/center][/center]
EMA5cr الأسم الذي سميته له في الخطوة رقم 11
= هذه الأشارة معناها انها تقول للميتا ان هذا الأسم الذي اخترته يختص بالمؤشر المخزن في ذاكرتك واعداداته كما في التالي
iMA كود المتوسط المتحرك في الميتا تريدر وهو مخزن بها وستجده في مكتبة المؤشرات في المرفقات
NULL نتركها كما هي
0,5,0 رقم المتوسط المتحرك 5 , ان اردت استخدام المتوسط 200 مثلا يمكنك تغيير رقم 5 هنا ل 200 وهكذا سيعرف الكسبيرت انك استخدمت المتوسط 200 (ارجو ان يكون الشرح واضح)
MODE_EMA وهو خاص بأعدادات المتوسط من ناحية simple او exponential طبعا EMA معناها اكسيبونينشيال و SMA معناها سيمبل وهكذا
PRICE_CLOSE وهي تتعلق بأعدادات المؤشر من ناحية ان يحسب الهاي او اللو او الأوبن او الكلوز
0 الصفر الأخير في كل المؤشرات اهم شئ في اعدادات كل المؤشرات ومعناه انه يعرف الكسبيرت ان تستخدم هذا المؤشر بقيمة الشمعة الحالية , واذا غيرنا الصفر لواحد فمعناها اننا نقصد ان قيمة المؤشر نريدها للشمعة السابقة , وقيمة 2 معناها الشمعة قبل السابقة وهكذا
كود PHP:[center][center]
EMA5pr=iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE,1); ----- 13
[/center][/center]
هنا المتوسط قيمته عند الشمعة السابقة للسعر الحالي
كلما زاد الرقم كلما بعدنا عن الشمعة الحالية وهكذا ( ارجو ان يكون الشرح واضح ومفهوم)
ملاحظة مهمة قبل الأنتقال للخطوات القادمة , اذا اردنا ان نضيف اغلاق الشمعة او سعر فتحها او الهاي او اللو لها فهؤلاء لهم استثاء صغير
يكفي فقط ان نضع في المعادلات في الجزء القادم من الكسبيرت كلمة Close او Open او High او Low دون تعريفها في هذا الجزء مثل بقية المؤشرات فالميتا يعرفهم بمفرده فلا حاجة لتسميتها او تعريفها من قبلنا بل توضع في المعادلات كما هي ونغير فقط في اعداداتها كما في هذا الكود
كود PHP:
كود PHP:High[0] // ----- 18
كود PHP:[center]Open[2] // ----- 19
Close[1] //----- 20
Low[1] // ----- 21
[/center]
في رقم 18 نقصد الهاي للشمعة الحالية
في الرقم 19 نقصد الأوبن للشمعة ما قبل السابقة
في الرقم 20 نقصد كلوز الشمعة السابقة
في الرقم 21 نقصد اقل سعر للشمعة السابقة ... وهكذا تكتب في المعادلات مباشرة دون تعريف وسيأتي ذكرها في الجزء القادم ان شاء الله
الأن لنعود لهذا القسم من جديد بعد شرح اعدادات المؤشرات وكما لاحظتم في الخطوات من رقم 12 ل رقم 15 اني اريد من الكسبيرت استخدام الموفنج افرج 5 اكسبونينشال كلوز للشمعة الحالية وقيمته ايضا للشمعة السابقة و8 اكسبونينشال للشمعة الحالية وايضا السابقة
الأن عرف الكسبيرت ماذا اريد ان استخدم وما هي الأدوات التي اريده فقط ان يستخدمها
لم يبقى سوى كيف يستخدمها في عملية البيع والشراء ؟
وهو ما سيتم شرحه في الجزء التالي
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
خامس جزء من الكسبيرت ( ارجو التركيز أكثر)
كود PHP:double sl,tp;
كود PHP:[center]
if(MM) Lots = subLotSize();
if (EMA5cr>EMA8cr && EMA5pr<EMA8pr){ // ------------------------- 22
if(orderscnt()<MaxTrades){
if(stoploss==0){sl=0;}else{sl=Ask-stoploss*Point;}
if(takeprofit==0){tp=0;}else{tp=Ask+takeprofit*Point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,2,sl,tp,"My Own Expert",ID,0,Blue);
PlaySound("Alert.wav");
}
}
if (EMA5cr<EMA8cr && EMA5pr>EMA8pr){ // ------------------------ 23
if(orderscnt()<MaxTrades){
if(stoploss==0){sl=0;}else{sl=Bid+stoploss*Point;}
if(takeprofit==0){tp=0;}else{tp=Bid-takeprofit*Point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,2,sl,tp,"My Own Expert",ID,0,Red);
PlaySound("Alert.wav");
}
}
[/center]
لن نتدخل هنا الا في السطرين رقم 22 (معادلة الشراء) ورقم 23 ( معادلة البيع)فقط .
عملنا كله في هذا القسم سيكون في المعادلات بين القوسين ( ) بعد كلمة if
الأن دعونا نفكر قليلا , الأن الكسبيرت عرف المؤشرات التي سيستخدمها وباقي عليه انه يعرف كيف سيستخدمها , ماذا نفعل لكي نفهمه ان يشتري او يبيع عند التقاطع ؟
لكي نشرح للكسبيرت عملية التقاطع يلزمنا معادلات لهذا , سنشرحها بالعربي اولا وبعدها نحولها لكود
عملية التقاطع لأعلى ( شراء) معناها ان متوسط 5 يقطع متوسط 8 لأعلى
بمعنى أكثر دقة ان قيمة المتوسط 5 في الشمعة السابقة اقل من قيمة المتوسط 8 وبعد لحظة التقاطع انقلب الوضع وصار المتوسط خمسة حاليا اعلى من المتوسط 8 حاليا ... (وليد صار يخرف)
بعد تحويلها لمعادلات بتكون كدا
كود PHP:EMA5cr>EMA8cr && EMA5pr<EMA8pr
وعلامة && معناها بلغة الميتا " و " يعني لازم تحقق الشرطين اعلاه مع بعضهما , وعلامة || معناها بلغة الميتا " أو " يعني يمكن تحقق اي الشرطين
الأن لاحظوا معي EMA5pr<EMA8pr اي ان المتوسط 5 كان في الشمعة السابقة اصغر من المتوسط 8 ,,, EMA5cr>EMA8cr اصبح المتوسط 5 حاليا اكبر من المتوسط 8
وكتبناهم في السطر 22 اي مكان معادلات الشراء ,
هنا عند تحقق الشروط وحدوث التقاطع سيفهم الكسبيرت انه عليه الأن فتح صفقة شراء تيجة لهذه المعطيات .
ونفس الكلام في معادلة البيع
لاحظو اننا فكرنا اولا كيف نترجم عملية التقاطع للغة الميتا ,, اي ان كل شئ بدأ بالتفكير وهو ما اطلبه منكم عند التدريب على هذا النموذج
حسنا ما ذا لو اردنا مثلا ان يشتري الكسبيرت عند صعود الRSI مثلا
الحل هنا
كود PHP:RSI1 = iRSI(NULL, 0, 14, PRICE_CLOSE,0);
كود PHP:[center]RSI2 = iRSI(NULL, 0, 14, PRICE_CLOSE,1);
[/center]
ونكتبها في الجزء الربع من الكسبيرت ولا ننسى ان نعرف RSI1 و RSI2 امام كلمة double في السطر رقم 11
وبعد ذلك نفكر , كيف نترجم عملية صعود ال ار اس اي للكسبيرت ,
سهلة , لما تكون قيمته الحالية اعلى من قيمته السابقة بيكون اكيد صاعد وما علينا الا ان نكتب المعادلة دي في السطر رقم 22 في معادلة الشراء
كود PHP:
كود PHP:(RSI1>RSI2)
او ممكن ندمجها في نفس نموذج الكسبيرت المرفق مثلا على النحو التالي
كود PHP:if (EMA5cr>EMA8cr && EMA5pr<EMA8pr && RSI1>RSI2) // ------ 22
طيب ماذا لو اردنا ان نشتري مثلا عندما يكون سعر افتتاح الشمعة السابقة اعلى من سعر اغلاقها
الحل
كود PHP:Open[1]>Close[1]
ولا يتم تعريفهم لأنهم استثنائيون في الجزء الرابع من الكسبيرت بل نكتفي بوضعها فقط داخل معادلة الشراء في السطر رقم 22 كما هو مبين :
كود PHP:if (Open[1]>Close[1]){ // ---------- 22
آخر تعديل بواسطة ماجد كو ، 04-01-2008 الساعة 08:13 PM
- 04-01-2008, 08:14 PM #2
رد: طريقة صناعة الاكسبيرتات الاليه
اخواني هذا الملف تعبني ساحاول اضافته على صيغة وورد من الكمبيوتر الثاني مشكورييين
- 04-01-2008, 08:18 PM #3
رد: طريقة صناعة الاكسبيرتات الاليه
يعطيك ألف عافية
- 04-01-2008, 11:46 PM #4
رد: طريقة صناعة الاكسبيرتات الاليه
دروس الدكتور وليد هي اول دروس تعلمتها للغة mql4
جزاك الله وجزاه كل خير
- 05-01-2008, 08:15 PM #5
رد: طريقة صناعة الاكسبيرتات الاليه
السلام عليكم ورحمة الله وبركاته
يا ريت لو أحد من الأخوة المبرمجين يشوف أيش الي انا عملته في بدايتي لعمل أول أكسبرت
double dRSI=iRSI(NULL,60,3,PRICE_CLOSE,0);
// double diRSI1=iRSI(NULL,60,3,PRICE_CLOSE,0);
double EMA18cr, EMA18pr, EMA28cr , EMA28pr;
EMA18cr=iMA(NULL, 0, 18, 0, MODE_SMMA, PRICE_CLOSE,0);
EMA18pr=iMA(NULL, 0, 18, 0, MODE_SMMA, PRICE_CLOSE,1);
EMA28cr=iMA(NULL, 0, 28, 0, MODE_SMMA, PRICE_CLOSE,0);
EMA28pr=iMA(NULL, 0, 28, 0, MODE_SMMA, PRICE_CLOSE,1);
if ((dRSI<12))
if(EMA28cr>EMA18cr&&EMA28pr>EMA18pr){
OpenBuy();
return(0);
}
if ((dRSI>90))
if(EMA28cr>EMA18cr&&EMA28pr>EMA18pr){
OpenSell();
return(0);
}
ما أردت برمجته هو التالي
1- المؤشرات RSI بأعددات 3 على فريم الساعة والمستويات 12- 90
2- الموفنج أفرج 18-28 SMOOTHED-CLOSE
الشراء عندم يتحقق
1- أر أس أي يلامس أو يخترق خط 13 مع وجود الموفنج أفرج18 فوق 28
2 البيع عندما أر أس أي يلامس أو يخترق مستوى 90 والموفنج 28 فوق 18
فهل الأعدادات التي ذكرتها صحيحة أم هناك أخطاء والرجاء تعديل الأخطاء
مع شكري وتقديري للجميع
- 06-01-2008, 01:27 AM #6
رد: طريقة صناعة الاكسبيرتات الاليه
لو سمحتوا يا أخوان عندي فكرة أخرى حابب أعملها أكسبرت ولكنها لا تعتمد على المؤشرات الموجودة في الميتا تريد طيب كيف نسويها
المؤشرات هي
double O1,C1
حيث أن
(O1 = iOpen(NULL,0,i-1
(C1 =iClose(NULL,0,i-1
وطريقة عمل الأكسبرت
if((O1>C1)) =SELL
if((C1>O1)) =BUY
يا ريت لو أحد من المبرمجين يساعدني في ضبط أكسبرت يقوم على تلك المعادلات
- 06-01-2008, 12:19 PM #7
رد: طريقة صناعة الاكسبيرتات الاليه
اخواني اعتذر للتأخير
مرفق ملف وورد بالموضوع بالاضافه الى نموذج الاكسبيرت المشروح
اخي جنين موضوعك ربما يكون افضل مع المواضيع المثبته الخاصه باسئله في البرمجه وحاول ان تضلل المعادلات وتضغط زر الphpوذلك لتظهر صحيحه وتسلم وتسلممممممممون جميعا
- 06-01-2008, 08:45 PM #8
رد: طريقة صناعة الاكسبيرتات الاليه
السلام عليكم ورحمة الله
شكرا لك أخي ماجد على مجهودك المتواصل في توصيل المعلومات بشكل سهل وبسيط قدر الأمكان
والله يا أخي لي عندك طلب ويا ريت ما تردني فيه مع أني حاولت كثيرا وبحثت لكن الى الأن لم أفلح في عمل ما أريده وذلك لنقص شديد في المعلزمت لي عندي فلو تتكرم علينا بوضع طريقة كتابة المعادلات الي رح أذكرها لك الأن حتى نفهم أكثر عن هذا الموضوع
ما أريده هنا
أكسبرت يعمل كالتالي
المؤشرات المطلوبه (موفنج أفرج 20 سمبل كلوز ) ومؤشر موفنج أفرج (50 سمبل كلوز)
وبهذه المؤشرات ما عندي مشكله بتعريفهم لأكسبرت
الأن طريقة العمل
ما أريده أن
1- يفتح الأكسبرت صفقة شراء ( عندما تغلق شمعة بولش فوق الموفنج 20 وأيضا يكون الموفنج 50 فوق الموفنج 20 )وفي حالة مثلا أنه تم الأغلاق فوق ا لموفنج 20 ولكن كان الموفنج50 تحت الموفنج20 لا يفتح الأكسبرت صفقات أبدا.
2- البيع (عندما تغلق شمعة بيريش تحت الموفنج20 وأيضا الموفنج 50 تحت الموفنج20 )
وبدون توفر هذه الشروط لا تفتح صفقات
طبعا على فريم الساعة
يعني بأختصار طريقة عمل الموفنج المستعمله في الأكسبرت لا تقوم على مبدأ التقاطع وأنما ال50 يحدد أتجاه الترند بالنسبة لموقعه من الموفنج20
والموفنج 20 هو مقاومة على الشارت بكسرها يكون العمل مع موافقة الترند
أرجو أن أكون قد أوضحت الموضوع
بأنتظار تعليقكم الكريم
تحياتي للجميع
- 07-01-2008, 06:25 PM #9
رد: طريقة صناعة الاكسبيرتات الاليه
اخي العزيز
اخوك ضعيف ايضا في البرمجه ، ولكن حسب ما فهمته اعتقد بان التقاطعات ليست مشكله كما قلت لبرمجتها كما ان شرط ان تكون فوق الموفينج 20 ليقوم بالشراء اعتقد ايضا ليست مشكله ولكن شمعة البوليش كيف ستحددها ؟؟ وياليت تحط سؤالك في الموضوع المثبت ايضا حتى يشوفها الاخوان المبرمجون المعروفون ونتعاون جميعا في ذلك وتسلم
- 07-01-2008, 11:32 PM #10
- 09-01-2008, 01:59 PM #11
رد: طريقة صناعة الاكسبيرتات الاليه
[quote=wajdyss;538821]
اخي الكريم
انا مبتدأ في برمجة mql4 ولكن الشرط السابق سهل للغاية
وفي المرفقات اكسبيرت قمت بالتعديل عليه على نموذج جاهز ليقوم بالشراء عندما تكون الشمعة السابقة صاعدة ويقوم بالبيع عندما تكون الشمعة السابقة هابطة
ارجو ان تستفيد منه
شكرا لك أخي العزيز على النموذج وأن شاء الله سوف أقوم بفحصه والأستفادة منه
- 13-01-2008, 03:57 AM #12
رد: طريقة صناعة الاكسبيرتات الاليه
السلام عليكم ورحمة الله وبركاته
موضوع رائع ويستحق التثبيت
بارك الله فيك وفي كل عزيز لديك ورزقك من حيث لاتحتسب رزقا طيبا واسعا
جهد جبار يستحق الإشادة
تقبل تقديري واحترامي
- 13-01-2008, 04:40 PM #13
رد: طريقة صناعة الاكسبيرتات الاليه
السلام عليكم
اخي jnene
يمكنك تعريف الموفنق افريج 50 و 20 بالطريقة التالية :كود:double SMA50 = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE,0); double SMA20 = iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE,0);أما عن شروط الدخول فسيكون عليك تغيير السطور الموضحة في الكود التالي :
بالنسبة للشراء :كود:if (SMA50 > SMA20 && Close[0] > Open[0] && Close[0] > SMA50){ // ------------------------- 22بالنسبة للبيع :كود:if (SMA50 < SMA20 && Close[0] < Open[0] && Close[0] < SMA50){ // ------------------------ 23مشاكل هذا الكود :
أهم مشكله في هذا الكود ولا استطيع حلها لأنني مبتدئ في البرمجة هي أنه سيقوم بفتح عقود شراء لكل اغلاق أكبر من افتتاح فوق الموفنق 50
والعكس أيضاً بالنسبة للبيع
ولحل هذه المشكله أقترح اقتراح قد يكون حل لهذه المشكله ولكنه ليس بالحل النهائي..
وهو اضافة شرط أن يكون سعر الافتتاح لشمعة الدخول أقل من أو تساوي الموفنق 50
والعكس صحيح بالنسبة للبيع
هذا ما اعرفه,, واتمنى ان يكون ما طلبته
تحياتي لك
أخوك عادل الماجد
آخر تعديل بواسطة الماجد ، 13-01-2008 الساعة 04:45 PM
- 13-01-2008, 05:01 PM #14
- 13-01-2008, 05:58 PM #15
رد: طريقة صناعة الاكسبيرتات الاليه
1- يفتح الأكسبرت صفقة شراء ( عندما تغلق شمعة بولش فوق الموفنج 20 وأيضا يكون الموفنج 50 فوق الموفنج 20 )وفي حالة مثلا أنه تم الأغلاق فوق ا لموفنج 20 ولكن كان الموفنج50 تحت الموفنج20 لا يفتح الأكسبرت صفقات أبدا.
2- البيع (عندما تغلق شمعة بيريش تحت الموفنج20 وأيضا الموفنج 50 تحت الموفنج20 )
وبدون توفر هذه الشروط لا تفتح صفقات
اخي عرف الموفينج للساعه السابقه للاثنين بزياده حرف قبل 50 وقبل ال20
كود PHP:double SMAP20 =(null,0,50,0,MODE_SMA,Price_CLOSE,1)
واتكون معادله الشراء
كود PHP:(SMAP50<SMAP20&&SMA50>SMA20&&CLOSE[1]>SMA20&&OPEN[1]<SMA20&&CLOSE[1]<SMA50)
آخر تعديل بواسطة بدر هادي ، 13-01-2008 الساعة 06:09 PM
المواضيع المتشابهه
-
دورة صناعة الاكسبيرتات
By وضاح عطار in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 174آخر مشاركة: 18-06-2020, 01:44 AM -
طريقه تداول للمتاجره الاليه !!
By TRIDER in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادنمشاركات: 10آخر مشاركة: 23-04-2009, 12:22 PM -
هل من الممكن عمل طريقة الوافي بي اكسبيرت للمتاجره الاليه؟
By nokia8310i in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 3آخر مشاركة: 10-08-2008, 05:33 PM -
المجنون واشارات الدايفرجنس الاليه !!!!
By حسن السيد in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادنمشاركات: 181آخر مشاركة: 12-12-2007, 06:53 PM -
ماهى الاليه لوضع امر وقف الخسارة
By bader_10 in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادنمشاركات: 3آخر مشاركة: 06-03-2005, 06:35 PM