النتائج 1,531 إلى 1,545 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 25-01-2012, 05:44 PM #1531
الأخ مستر دولار
كيف نقوم ببرجمة اكسبيرت نصف آلي ، و اذا أمكن أن ترفق لي اكسبيرت من برمجتك كمثال .
أين يمكن أن أجد المؤشرات و الكسبيرتات المفتوحة المصدر التي قمت أنت ببرمجتها.(مجموعة).
شكرا مسبقا.
- 25-01-2012, 06:37 PM #1532
وعليكم السلام ورحمة الله وبركاته
أسهل طريقة وأفضلها في رأيي هو إستخدام الداله iCustom لإستدعاء المؤشر الخارجي فستكون أوفر للوقت والمجهود
في مثالك هذا سيكون إستدعاء المؤشر
كود PHP:double B=iCustom(Symbol(),0,"(T_S_R)signal line with alert",period,method,price,0,1);
double B_Previous=iCustom(Symbol(),0,"(T_S_R)signal line with alert",period,method,price,0,2);
double S=iCustom(Symbol(),0,"(T_S_R)signal line with alert",period,method,price,1,1);
double S_Previous=iCustom(Symbol(),0,"(T_S_R)signal line with alert",period,method,price,1,2);
كود PHP:if(B<5000&&B_Previous>5000)
كود PHP:if(S<5000&&S_Previous>5000)
- 25-01-2012, 07:28 PM #1533
وعليكم السلام ورحمة الله وبركاته
مبروك النجاح في برمجة الإكسبرت
بالنسبه للأخطاء فأولا ظهر لك خطأ عدد الصفقات المفتوحه كبيره لذلك سنحتاج إلى وضع شرط بحيث نسمح بفتح عدد صفقات محدده فقط أي صفقه واحده أو 2 أو حسب ما تريد
في الكود الداله موجوده لكنك لم تضيفها لشرط البيع لذلك ستحتاج أن تضيفها
كود PHP:if(orderstotal()<1){
راجع الإكسبرت المرفق سوف تجد خيارين HideSL و HideTP وهو المسؤول عن إخفاء الهدف والأستوب
لا يوجد فرق بين TakeProfit و TP فكلها متغيرات
TP , SL تقوم بتعريفهم داخل الداله start
بالنسبه للخطأ 131 فبعض البروكرات تقبل حجم لوت مايكرو مثلا 0.01 بالتالي عندما تضع حجم اللوت هذا سوف يفتح الإكسبرت الصفقه بدون مشاكل لكن بعض البروكرات الأخرى اقل حجم لوت لها هو 0.1 بالتالي إذا وضعت حجم لوت 0.01 فسوف يظهر خطأ حجم اللوت ولن تفتح الصفقه فهي تختلف من بروكر لآخر حسب نوع البروكر وحسب نوع الحساب
حتى تتأكد من أن شروط الإكسبرت تعمل بشكل صحيح قم بعمل فيجول باك تست للإكسبرت وضع المؤشرات المستخدمه على الشارت وراقب أماكن الدخول والخروج على الشارت حتى تتأكد من أن الدخول صحيح حسب الشروط التي حددتها
- 25-01-2012, 07:30 PM #1534
- 25-01-2012, 07:37 PM #1535
- 25-01-2012, 08:02 PM #1536
- 25-01-2012, 09:35 PM #1537
بارك الله فيك استاذي الكريم
الطريقة هذه جامدة جدا أعجبتني كثيرا والله
إسمح لي بسؤالين وطلب
الأول : ماذا يعني الرقم الأخير على اليمين في دالة iCustom
إذا كان shift يعني رقم الشمعة التي نأخذ منها قيمة المؤشر فما دور الرقم الذي قبله لم أجده في الأمثلة التي عملتها في الكورس
و السؤال الثاني
كود PHP:if(B<5000&&B_Previous>5000)
كود PHP:if(S<5000&&S_Previous>5000)
ومن باب الفضول و المعرفة أود طريقة كتابة شرط الشراء و البيع كلاسيكيا يعني دون إستدعاء المؤشر
وجزاك الله خيرا
- 25-01-2012, 11:10 PM #1538
شكرا أخي أسامه و جزاك الله خيرا على المساعده
أين اضع أخي هذا الكود الخاص بعدد الصفقات المفتوحه ؟
كود:if(orderstotal()<1){
كود:extern int MaxTrades=4;
كود:extern bool HideSL=false; extern int StopLoss=0; extern bool HideTP=false; extern int TakeProfit=7;
أيضا أخي ما معنى الكود
كود:extern int BreakEven=0; extern int movestopto=0;
و أخيرا هل الكود البرمجي الخاص بشرط البيع و الشراء على أساس تقاطع التنكن و الكيجن صحيح ؟؟
الاكسبيرت مرفق رجاء الاطلاع عليه
- 25-01-2012, 11:17 PM #1539
عذرا أخي اسامه أحاول فهم و قراءة الكود
كود:int init() { if(Digits<4) { point=0.01; digits=2; } else { point=0.0001; digits=4; } return(0); }
و ايضا سوف أجعل Point إلى point داخل الداله ستارت فقط و الفرق في أول حرف بدلا من كابيتال يكون سموول ؟؟؟؟؟
- 25-01-2012, 11:29 PM #1540
السلام عليكم ورحمة الله وبركاته
كيف حالك أخي الغالي مستر دولار
حقيقة أريد الإستفسار عن معنى هذه الرسالة التي صادفت أحد الإخوة عندما حاول تنزيل الميتاتريدر ، وهل لها حل
وجزاك الله خيراً
والسلام عليكم ورحمة الله وبركاته
- 26-01-2012, 02:02 AM #1541
شرح الداله iCustom بالتفصيل في هذا الموضوع سوف تجد فيه إجابة لأسئلتك
https://forum.arabictrader.com/t93175.html
إذا أردت كتابة كود المؤشر بداخل الإكسبرت بدون إستدعائه فيجب أن تقوم بمراجعة كود المؤشر
حذف الدوال غير المهمه مثل
كود PHP:int counted_bars = IndicatorCounted();
if(counted_bars < 0)
return(-1);
كود PHP:double WMA(int x, int p)
{
return(iMA(NULL, 0, p, 0, method, price, x));
}
vect1 = 2*WMA(1, period/2) - WMA(1, period);
vect1 = 2*WMA(2, period/2) - WMA(2, period);
ExtMapBuffer1 = iMAOnArray(vect1, 0, p, 0, method, 1);
ExtMapBuffer2 = iMAOnArray(vect1, 0, p, 0, method, 2);
if(ExtMapBuffer1>ExtMapBuffer2)//Green Line
if(ExtMapBuffer1<ExtMapBuffer2)//Red Line
وطبعا ستختلف طريقة الكتابه من مؤشر لآخر وحسب الكود الذي تكتبه الأسهل طبعا هو إستخدام
الداله iCustom مباشرة
- 26-01-2012, 02:06 AM #1542
ستضع الشرط عند أمر البيع كما وضعته عند أمر الشراء
كود PHP:if ( ts2>ks2&&ts1<ks1&&ts1<sb1&&sa1 ){
if(orderstotal()<1){
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,3,SL,TP,"dentist_hussein EA",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
بالنسبه لإخفاء الهدف والأستوب فيجب أن تضيف جميع الدوال المسؤله عن عملها فليس من المعقول أن تضيف جزء وجزء آخر لا تضيفه وإلا فكيف ستؤدي الداله غرضها
البريك إيفن BreakEven هو يشبه التريلينج ستوب لكنه يقوم بنقل الأستوب لوز إلى عدد نقاط ربح معين عندما يتحرك السعر في إتجاه الصفقه ربح معين
movestopto هو عدد نقاط الربح التي يتم وضع الأستوب عندها
خطأ حجم اللوت يمكنك عدم وضع شرط لكن فقط أن تأخذ بعين الإعتبار هذه الإحتماليه عند تشغيل الإكسبرت
أو يمكنك وضع شرط
كود PHP:if(Lots<MarketInfo(Symbol(),MODE_MINLOT))Lots=MarketInfo(Symbol(),MODE_MINLOT);
وهذا يعني إذا كان حجم اللوت Lots أقل من أصغر حجم لوت مسموح به فسوف يجعل الإكسبرت Lots تساوي أصغر حجم لوت مسموح به
أنصحك بالتجربه دائما في أي جزء لا تعرف وظيفته قم بتجربته وراجع ما هي الوظيفه التي يقوم بها وعندها ستعرف السببآخر تعديل بواسطة MR.dollar ، 26-01-2012 الساعة 02:08 AM
- 26-01-2012, 02:16 AM #1543
معنى الكود كالآتي
إذا كان عدد الأرقام العشريه بعد الفاصل اقل من 4 أي 2 هذا في حالة الين في البروكر الذي لا يستخدم رقم عشري زائد أو 3 في أزواج الين في البروكر الذي يستخدم رقم عشري زائد
فسوف يصبح point=0.01
وبالتالي عندما تحسب الهدف أو الأستوب لوز
فسوف يكون مثلا سعر الدخول 114.501 + 30 نقطه * point
أي 114.501+30*0.01 = 114.801 جرب تحسبها بالآله
لكن إذا إستخدمنا المتغير Point ففي الرقم العشري الزائد قيمته 0.001 ولسي 0.01
أي 114.501+30*0.001 = 114.531
الجزء الآخر والخاص ب 4 أو 5 أرقام عشريه هو جزء else
إي إذا كانت عدد الأرقام العشرية أكبر أو تساوي 4 أي 4 أو 5 أرقام عشرية
فسوف تصبح قيمة النقطه point=0.0001
بالتالي إذا كان سعر اليورو مثلا الدخول 1.43205 والهدف 30 نقطه
فسوف يصبح الهدف 1.43205+30*0.0001 = 1.43505
جرب تحسبها بالآله
- 26-01-2012, 02:21 AM #1544
وعليكم السلام ورحمة الله وبركاته
في بعض الدول يجد مشكله في الإتصال اللايف بالميتاتريدر مباشرة بسبب مزود الإنترنت أو أن بعض الشركات تمنعها لذلك يلجأ إلى إستخدام البروكسي للإتصال
وهو هنا يطلب منك آي بي السيرفر والدخول والباسوورد لكن طبعا يمكنك تجاوز هذه الخطوه إلا إذا كنت تستخدم بروكسي للدخول إلى النت
ويمكنك تفعيلها لاحقا من خيار
Tools------->Options ------->Server
وسوف تجد خيار Enable proxy server
- 26-01-2012, 05:09 AM #1545
بارك الله فيك وجزاك الله كل خير
وعندي سؤال أخر
هل هذا الكود صحيح لحساب متوسط الإغلاقات وإن كان غير صحيح أتمنى شرح للحلقة الصحيحة
كود PHP:for(int i=0;i<Bars;i++){
for(int e=i;e<i+period;i++){
double a=Close[e];
double aa+=a;
double lin=aa/period;
ExtMapBuffer1[i]=lin;}}
وجزاك الله خيراً
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM