وعليكم السلام ورحمة الله وبركاته
تقصد إغلاق شمعة لها توقيت معين ؟
Printable View
هنا استاذى اقصد كما فى الكومنت السابق انه يغلق الصفقه المفتوحه مع اغلاق الشمعه الحاليه
ويتم تحديد وتغيير فترة الشمعه من الكود كمثال ibars(null,periodh4,0) ولكننى اجهل كامل الكود لقد نفذتها مسبقا ولكن للاسف نسيت الان
أيضا احتاج الكود الخاص بفتح صفقه واحده كل شمعه يعنى خلال الشمعه الواحدة وقد تكون معه ساعه أو يوم. ..الخ.
دمتم بخير وشاكر جدا لجهودكم الكريمه[/QUOTE]
بالنسبة للشق التانى اريد كود منفصل لكى لا يفتح الاكسبيرت اكثر من صفقه خلال الشمعه الواحده. وقد تكون شمعه يومى أو أسبوعى ..الخ
بالنسبة للشق التانى اريد كود منفصل لكى لا يفتح الاكسبيرت اكثر من صفقه خلال الشمعه الواحده. وقد تكون شمعه يومى أو أسبوعى ..الخ[/QUOTE]
اولا ستقوم باضافة متغير خارجى لاختيار نوع الفريم
هذا المتغير هيظهر فى الاعدادات على صورة قائمهكود:input ENUM_TIMEFRAMES TimeFrame=PERIOD_M1;
تختار منها الفريم الذى تريده
ثانيا كيف سنبلغ الاكسبرت انه تم فتح شمعه جديده
يوجد اكثر من طريقه واسهلها مقارنه الهاى واللو
بالنسبه للشق الثانى ستضيف متغيركود:if(iHigh(Symbol(),TimeFrame,0)==iLow(Symbol(),TimeFrame,0))
{ // اغلق الصفقه المفتوحه
// افتح صفقه جديده
}
وفى شروط فتح الصفقه ستضيف هذا الشرطكود:datetime BarTime;
وبعد كود الفتح ستغير القيمه الىكود:BarTime!=Time[0]
بالتوفيق ان شاء اللهكود:BarTime=Time[0];
حركةاقتباس:
if(iHigh(Symbol(),TimeFrame,0)==iLow(Symbol(),Time Frame,0))
هل جربتها اخي ؟
اعتقد مناسبة مع OnTick
ولكن مع OnTimer قد لايحدث التساوي--ممكن هاي مختلف عن اللو خلال ثانية خصوصا بدء فريمات على رؤوس الاخبار
مرحبا اخى فيلسوف
تم تجربتها فى الدالتين وتعمل بكفائه
اما بخصوص اختلاف الهاى عن اللو فلن يحدث
لانه بمجرد افتتاح الشمعه الجديده يتساوى الهاى واللو ويحقق الشرط
وبعدها بلحظات يتغير حسب حركة السعر فيكون قد حقق الشرط اولا قبل التحرك
يوجد طرق اكثر احترافيه بعمل داله لحساب عدد الشموع على الشارت
ومقارنته بمتغير فاذا كان عدد الشموع اكبر من المتغير نعرف انه تم فتح شمعه جديده
وبعدها نساوى عدد الشموع بالمتغير ويعيد المقارنه
كلامك منطقي جدا اذا اخترت 1 ثانية للتايمر
لانه اساسا الشمعة الجديدة مع رأس الثانية
ولكن افترض لاتريد الخبير يثقل المنصة وجعلت التحديث كل 7 ثواني مثلا بدلا من 1 ثانية
وانت مطبق شمعة ساعة وصادف قبل رأس الساعة ب 3 ثواني انه كان هناك تحديث
اذا افتتحت الشمعة الجديدة سيكون التحديث بعد 4 ثواني من بدئها----3+4=7
وهي مدة كافية لاي تغير ولو 0.1 نقطة وهو اكبر من ابسلون قيم الدبل الذي هو 0.00000000217 او حاجة مقاربة
فما بالك لو كان التحديث كل 37 ثانية مثلا!
لو كان بدء كل شمعة جديدة تحديث قسري للتايمر فلن لايوجد مشكلة ولكن لا اعتقد--دون جزم--ان الامر كذلك.
كلامي هنا كله اجتهاد دون تجربة -مجرد تصور للوضع
هذا مايمنع ان فكرتك بتساوي الهاي واللو مع بدء الشمعة اعجبتني
الان جالس الاحظ فريم الدقيقة مع بدئه
كلهم زي بعض--الهاي واللو والاوبن والكلوز
بالنسبة لي طريقة تكة واحدة فقط لكل شمعة هي افضل شيءاقتباس:
يوجد طرق اكثر احترافيه بعمل داله لحساب عدد الشموع على الشارت
يعني حتى لو وضعته على فريم الاسبوعي---سيحدث تكة واحدة فقط في الاسبوعي--اول تكة في الاسبوع فقط!! ثم كأن الخبير نايم!!! سليييب مووود!!
الطريقة في الصورة وهي تقريبا نفس بعض ردك اعلاه,
مع المتوسطات تحديدا استخدمها-لان القرار بعد الاغلاق السابق ومع الافتتاح الجديد!
http://www2.0zz0.com/2017/12/05/03/226132305.png
فكرة جيدة-بل ممتازة جداًاقتباس:
والافضل عندى دالة حساب الشموع
بالمناسبة تعادل الصورة اعلاه في عملها---يعني ايضا تكة واحدة لكل شمعة.
الف شكر على الرد ربنا يجعله فى ميزان حسناتكم