السلام عليكم .. إخواني أريد كود بسيط أيضاً يقوم بحساب أطوال الشمعات الثلاثين السابقة بحيث أن كل شمعة منها تكون أقل من طول معين وشكراً
Printable View
السلام عليكم .. إخواني أريد كود بسيط أيضاً يقوم بحساب أطوال الشمعات الثلاثين السابقة بحيث أن كل شمعة منها تكون أقل من طول معين وشكراً
هذا الاكسبيرت والمؤشر اخي صاحب هدف شوف مشكلته
طبعا في الصوره موضح الخطا وكمان فيه مشكله دائما الاحظها موجوده في الصوره
وشكرا لك مقدما
هلا أخوي
أنا درويش في البرمجة أخي مش محترف :doh:
أظن الإكسبرت ده قديم أوي
بخصوص الأخطاء لازم نعرف طريقة عمل الإكسبرت عشان نقدر نصحح الأخطاء لكن أعتقد المقصود هو الشمعة 0 والشمعة 1
إستبدل i ب 0 وإستبدل i+1 ب 1 وقتها تقدر تشغل الإكسبرت وتختبره , لو إشتغل زي المطلوب يبقى تمام , لو فيه أخطاء يبقى لازم تعرف مبدأ عمله وترجع تصيغ الكود
بخصوص التحذير بتاع الأوردر سيلكت ماعرفش ليه بيظهر للأسف , لما يدخل الأستاذ أسامة أكيد هيفيدك
بالتوفيق إن شاء الله
تسلم ياغالي فيك الخير والبركه
بالنسبه للاكسبيرت والمؤشر انا عاملهم بنفسي قبل ساعتين من موقع ومن برنامج عندي
لكن ليس المقصود 0 و 1 لان صفر للشمعه الحاليه و1 للشمعه السابقه لكن الي موجود مقصود فيه تقاطع على نفس الشمعه ننتظر اخونا اسامه والله له وحشه
الخطا الموجود هو بخصوص تعريف قيمة i مثل ماهي موجوده في المؤشر
السلام عليكم
كيف اجعل التريلينج ستوب يعمل على متوسط سعر دخول الصفقات على الزوج
علما انه لدي داله لحساب متوسط الشراء والبيع كل على حده
حاولت كثيرا ولكن يحصل اخطاء في التطبيق(والله عارف انها سهله لكن احيانا المخ يعلق في شي بسيط)
ارجو ارفاق الكود مع الدالتين لاعرف اين الخطأ
كود PHP:
avgbuy()
avgsell()
وعليكم السلام ورحمة الله وبركاته
بدلا من إستخدام سعر فتح الصفقه سوف تستخدم دالة متوسط سعر الدخول
مثال
كود PHP:
void MoveTrailingStop()
{
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;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,digits)>NormalizeDouble( avgbuy()+TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)<NormalizeDouble(Bid-TrailingStop*point,digits)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blue);
}
}
}
else
{
if(TrailingStop>0 && NormalizeDouble(Bid,digits)<NormalizeDouble( avgbuy()-TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)>(NormalizeDouble(Ask+TrailingStop*point,digits))) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,digits),OrderTakeProfit(),0,Red);
}
}
}
}
}
}
في المؤشر يعتمد على قيمة i لحساب قيم الشموع السابقه لكن في حالة الإكسبرت فأنت تحتاج فقط إلى وضع المقارنه للشمعه الحاليه لذلك ستستبدل قيمة i ب 0 كما ذكر الأخ صاحب الهدف
بالنسبه للتحذير فهو يخبرك بأن الداله OrderSelect تعود بقيمة معينه لذلك يمكنك تعريفها بالشكل
كود PHP:
bool select=OrderSelect(ticket, SELECT_BY_TICKET);
طب وأنا ياريس :hands: لا رديت عليا ولا فتحتلنا موضوع عن class
نروح فين مالناش غيرك :eh_s(7):
تمام ياعسل
لكن انا اريد ان يكون الاكسبيرت يعمل كالتالي
تقاطع حالي لهاي الشمعه السابقه بمعنى ان Bid في اخر تكه قطع هاي الشمعه السابقه وBid السابق له لم يقطع
الله يجزاك خير ويكتب اجرك ياعسل وكل من شارك في الموضوع
انت مبدع بحق اخي اسامه عطاء بلا حدود
حفظك الله ياغالي
السلام عليكم
لماذا هذا المؤشر لا يعمل على الباك تست مثله مثل العديد من المؤشرات حاولت بطريقة حفضه بالتمبلت و لم ينفع هل المشكل في المؤشرات أم فالمنصة.
أهلا أستاذ أسامة :eh_s(7):
كنت طلبت منك طريقة رسم الترندات في mq5 فحضرتك أرفقتلي مؤشر بيرسم الترندات
حاولت إني أفهم الكود ماقدرتش لاني ماتعاملتش مع class من قبل ولا أعرف عنها حاجة
صادف وقتها كمان إني سألتك عن الـ combo box والظاهر إنها كمان متعلقة بالـ class
فبشوف بعد إذنك عشان الفايدة العامة تفتحلنا موضوع تعليمي عن كل حاجة تخص الـ class لان الواضح إنها مهمة جدا
بس ياريت بأقرب وقت ممكن وجزاك الله عننا كل خير
تحياتي :eh_s(7):