حياك الله أخي
الشروط كالتالي :
عرض للطباعة
حياك الله أخي
الشروط كالتالي :
شكراً استاذي الكريم لكن اعتقد اني لم افلح في شرح السؤال. عند وضع الموفينك على الشارت هناك خيار first indicator data. اي اضف الموفينج على مؤشر وحينما نختاره يضعه على المؤشر وليس على الشارت مباشرة. اعتقد حتمية وجود هذا الخيار في البرمجة لكثرة استخدامه في التحليل الفني لكن لكوني ضعيف في البرمجة ولاني لا اعرف الانكليزية جيداً لم افهم الشروحات الموجودة في المواقع الاجنبية.
شكراً مقدماً.
السلام عليكم
لم انتبه لمشاركتك
عموما
void دالة لا تعود بقيمة معينة لنتيجة ما، بل هي تعتبر دالة منفصلة خارج الدوال الرئيسية تقوم بتكوينها بها شروط معينة (مثل دالة التريلنغ أو اغلاق الصفقات...) ولكن لن تقوم بتنفيذ أي شيء إلا إذا ثم استدعائها بأحد الدوال الرئيسية،
أما دوال الغير void مثل double و int و bool و.... الغير الرئيسية هي بنفس مبدأ void ولكن الفرق انها دائما تعود بقيمة محددة return مثل دالة عدد الصفقات أو الربح... حتى تستخدمها بشروط معينة،
وكل هذا لاختصار الكود وسرعة المعالجة وتخفيف الضغط على الذاكرة العشوائية للحاسوب حيث تقوم باستدعاء الدالة عند الحاجة فقط وليس كل تكة سعرية مثلا او كل جزء من الثانية...
أما حلقة البحث for تعتبر أسهل انواع الحلقات وذلك لأن جميع عناصرها مجتمعة في مكان واحد، كما تقوم بتنفيذ قسم معين من البرنامج لعدد معروف ومحدد من المرات
مثال بالسطر الأول قمنا بتعريف متغير ما عبارة عن عدد صحيح باسم i
السطر الثاني يحتوي الحلقة for والتي تتكون من الكلمة المحجوزة for وقوسين يحتويان بداخلهما على ثلاث تعبيرات مفصولين عن بعضهما البعض بالفاصلة المنقوطة
هذه التعبيرات الثلاثة هي تعبير ابتداء الحلقة وتعبير اختبار قيمة المتغير وتعبير زيادة قيمة المتغير
جسد الحلقة هو الكود الذي سينفذ الشروط اعلاها لعدد محدد من المرات في هذه الحلقة وهذا الكود هو وفي مثالنا هذا العدد المحدد من المرات لتنفيذ الحلقة هو 15 مرة،
للمزيد من المعلومات راجع الكتب المرفقة بالموضوع التعليمي
والله الموفق
نعم ممكن باستخدام المصفوفة iMAOnArray ولكن لا اعتقد انه يمكن بناء الشروط برمجيا لأن القيم مختلفة وتعتبر التقاطعات وهمية لا ترى إلا بالعين المجردة، وهذا المقصود من ردي السابق
ستجد امثلة لكثير من المؤشرات بالنت
وهذا مثال بسيط لدمج الموفينج مع الارس آي
راجع الشرح بالموقع الرسمي للغة ويمكنك الترجمة من خلال متصفح الكروم
iMAOnArray
اتشكرك اخي كيرا على المساعدة
up=iBands(Symbol(),0,20,2,0,0,MODE_UPPER,1) هذا البولنغر العلوي
dn=iBands(Symbol(),0,20,2,0,0,MODE_LOWER,1)هذا البولنغر المتوسط مع اني اعرف ان MODE LOWER هو البولنغر السفلي
هل كلامي صح ام خطا
md=(up+dn)/2;ليش حضرتك جمعت و قسمت العالي على المتوسط وسميته md
up العلوي
dn السفلي
md المتوسط
اتشكرك
ممكن نعدل على الكود
بحيث البيع يبقى كما هو
ولكن الشراء
اذا كونت الشمعة اللو ادنى السفلي والهاي اعلى المتوسط يبقى شراء
مع ارفاق الكود بالكامل للشراء والبيع وتعريف المدخلات وفقك الله
شكرا جزيلا
شكراً على الملاحظة سوف احاول تطبيقه على الكود الذي اعمل عليه
يوجد اكسبيرت تطبيقي مفتوح الكود بالموضوع التعليمي حاول تعديل الشروط بما تريد وارفقه هنا للتصحيح
العفو أخي
العفو أخي
لدي سؤال اخر ارجو ان لااكون قد اكثرت عليك
اذا اردت عمل اكسبرت يفتح صفقات كل50 نقطة صفريةيعني كيف يتم عمل هذا ؟؟
يعنى 1.4250 - 14300 - 14350 - 14400 - 14450 - 14500
هل يتم يدوي يعني اعمل دالة ل1.4250 و دالة اخرى ل14300 و هكذا لانها سوف تأخذ و قت و جهد كبيرينو شكرا مقدما
تفضل اخي
ويارت تضفله الترلينغ ستوب
اتشكرك
اخواتى
MathCeil ماذا تعنى هذا الامر المحجوز وبماذا تستخدم ؟
الدايره FOR هل تاتى بناتج الصفقة بعد نهاية عملها فقط يعنى عندما يساوي 0 = 0
لان الدايره تفضل تعمل وتاتى بنتائج صفقات اخري لنفس الاكسيبرت
MathCeil
The function returns integer numeric value closest from above.
Parameters
val
[in] Numeric value.
Return Value
Numeric value representing the smallest integer that exceeds or equals to val.
Note
Instead of the MathCeil() function you can use ceil().
For Loop Operator
The for operator consists of three expressions and an executable operator:
Expression1 describes the loop initialization. Expression2 checks the conditions of the loop termination. If it is true, the loop body for is executed. The loop repeats expression2 until it becomes false. If it is false, the loop is terminated, and control is given to the next operator. Expression3 is calculated after each iteration.
The for operator is equivalent to the following succession of operators:
Any of the three or all three expressions can be absent in the for operator, but the semicolons (;) that separate them must not be omitted. If expression2 is omitted, it is considered constantly true. The for(;;) operator is a continuous loop, equivalent to the while(1) operator. Each expression 1 or 3 can consist of several expressions combined by a comma operator ','.
Note
If it is expected that a large number of iterations will be handled in a loop, it is advisable that you check the fact of forced program termination using the IsStopped() function.
Examples:
السلام عليكم
للتذكير
للمشاركة رقم 1134#
عايز دالة تعمل كالاتي
تقفل اي صفقات شراء يورو دولار مع (+) اي صفقات شراء دولار فرنك بربح عدد معين من الدولارات
كذلك يقفل اي صفقات بيع يورو دولار مع (+) اي صفقات بيع دولار فرنك بربح عدد معين من الدولارات
ملحوظة : اقصد بــ (أي) عدد محدد من الصفقات للزوجين وليس (كل) صفقات البيع او الشراء
يعني الدالة تختار اي صفقات شراء عشوائية للزوجين معاً (شراء يورو دولار + شراء دولار فرنك) بمجموع ربح بالدولار
كذلك اي صفقات بيع عشوائية للزوجين معاً (بيع يورو دولار + بيع دولار فرنك) بمجموع ربح بالدولار
الوظيفة MathCeil تقوم بحساب أكبر قيمة صحيحة للرقم المدخل ( 5.5 تصبح 6 و -5.5 تصبح -5 )بالنسبة للحلقة for راجع المشاركة التالي :
https://www.fxprg.com/vb/showthread.php?t=31457&page=29&p=879880&viewfull=1 #post879880
مرفق الاكسبيرت
الكود كالتالي مع الشرح :
طيب لو اردت ان اجعل الاكسبرت يغلق الصفقة عن اغلاق الشمعة (افتتاح شمعة جديدة)
كيف يكون هذا ؟؟
و شكرا جزيلا
السلام عليكم
الحمد لله تم عمل استراتجيه وتم التجربه على الديمو لمده وتم عمل الاكسبيرت ليها
والحمد لله الاكسبيرت يعمل بمتياز
طلبى هو كيف اجعل الاكسبيرت يبحث على جميع الازواج بدون ان افتح اى زوج غير زوج واحد فقط
اذا تم ايجاد الشروط على اى زوج غير المفتوح يفتح شرط الزوج ويفتح صفقه عليه
ممكن كتابه مع الشرح الكود
اكون شاكر ليكم
دالة اغلاق الصفقة عند اغلاق الشمعة كالتالي:
وعليكم السلام
ستقوم بعمل مصفوفة للأزواج التي تريد التداول عليه ويجب أن تكون هذه الأزواج بخانة الماركت واتش
مثال:
السلام عليكم
لقد برمجت اكسبرت مضاعفات بواسطة برنامج
وهو يعمل جيدا في فتح الاوامر وغلقها
المشكل انه في بعض الحالات لما يكون انزلاق سعري او وقت خبر لا يفتح صفقات مدة طويلة
هل فيه طريقة ممكن تسريع عمله وثباته وقت الاخبار
وعليكم السلام
برمجيا غير ممكن التحكم بسرعة التنفيذ فهذا على حسب سيرفر شركة الوساطة وسرعة النت لديك
أما اعادة التسعير من الممكن التحكم بها من خلال خاصية السليباج الموجودة بدالة فتح الصفقة، كلما كان الرقم كبير كلما كان في امكانية فتح الصفقة
تسلم عينك ياغالى
والله كلامك ودروسك بي دي اف كلها محشوره معلومات مهمه
طيب ايه الفرق بينMathCeil وNormalizeDouble
لان بالدروس شايف حاطط الثانية داخل الاولى وهما الاتنين بنفس الوظيفة
MathMin(NormalizeDouble(LastOrderLots()*LotsMpOnLo ss,2)
وتشكر
استاذا كيرا
ممكن دالة حساب جسم الشمعة يعني الافتتاح للاغلاق فقط بدون حساب الذيول(بدون الhighو الlow) فقط الاغلاق ناقص الافتتاح و لكن هكذا سوف يكون النتائج سالبة عند الشمعة الهابطة لكنني اريدها النتيجة موجبة سواء شمعة صاعد او هابطة
و شكرا
ستستخدم دالة القيمة المطلقة MathAbs
مثال :
شكرا لك استاذ
صباح الخير
اتشكرك اخي حسن وفقك الله
تمام اخي حسن ممكن تضيفله الار اس اي كنوع من الفلترة
بحيث اذا اعلى 30 شراء
واذا ادنى ال 70 بيع
اتشكرك
بعتذر اخي كيرا على الخطا الكتابي
ممكن تخله اذا اعلى الارسي 40 شراء واسفل الارسي 40 بيع
الفرق واضح فكما قلنا الوظيفة الاولى تقوم بحساب أكبر قيمة صحيحة لعدد عشري
والثاني اي NormalizeDouble به اعدادين، الاول تقوم بتحديد العدد الذي نريد تحويله والثاني نحدد عدد الاعشار بعد الفاصلة
مثلا
النتيجة هي 3.24 بحيث نريد رقمين (2) فقط بعد الفاصلة
اما الشرط بالدرس معناه اننا نريد اقصى قيمة للناتج ذو رقمين بعد الفاصلة
أخي الكريم هذا الموضوع مخصص للأسئلة البرمجية
عموما مرفق الاكسبيرت
كثر الله خيرك
دايما معطاء وكريم انا اتعلم من كتابتك
وفقك الله
كيف يمكنى تحديد سلة من العملات انفذ عليهم امر
SYmpol =="EURUSD"مثلا ولا بيتنفذ ازاى
وازاى اقدر اتحكم في جميع الصفقات المفتوحة بغض النظر الاكسيبرت على اى شارت
for (int q=0;q<OrdersTotal();q++)
{
if (OrderSelect(q,SELECT_BY_POS,MO DE_TRADES))
هل يوجد طريقة اخري لها
اخي حسن قمت بعمل موضوع في قسم البرمجة المدفوعة شرحت فيه التفاصيل
https://www.fxprg.com/vb/showthread.php?t=33356
وعملت نفس الموضوع على منتدى الجيران
والاخ مستر دولار اعطاني تلك الدالة ولكن لا اعرف كيف استخدمها؟!
ارجو مساعدتي في كيفية استخدامها للعمل بالشروط المذكورة