النتائج 1 إلى 9 من 9
الموضوع: هل هذا خطأ من المنصه او من الكود
- 04-06-2013, 07:51 PM #1
هل هذا خطأ من المنصه او من الكود
السلام عليكم ورحمة الله وبركاته
جالس تدرب على برمجه اكسبيرتات
بعمل على منصه جين كابيتال فوركس
المشكله احيانا الهدف يختلف والاستوب يختلف في المسافه بلاحظها على الشارت
واحيانا كثيره يظهر بشكل طبيعي
قمت بوضع له خيارات استوب خارجي وضعت له 100 في منصه 5 ارقام
وضعت له الهدف 100 في منصه 5 ارقام يعني هدف 10 واستوب 10
مثلا هذه عمليه في journal ظهرت الخطوط كما في ملف مرفق
دالة الشراءكود:2013.06.04 09:03:18 '91146799': order was opened : #79662813 sell 0.10 GBPUSDpro at 1.52965 sl: 1.53089 tp: 1.52889
كود:int Buy(){ OrderSend(Symbol(), OP_BUY, 0.1, Ask, 30 , Ask-Stop*Point, Ask+Take*Point,"" , 1234556,0,Green); }
دالة البيع
المتغيرات الخارجيه :
كود:int Sell(){ OrderSend(Symbol(), OP_SELL, 0.1, Bid, 30 , Bid+Stop*Point, Bid-Take*Point,"" , 1234556,0,Red); }
كود:double Lots=0.10; extern int Stop=100; extern int Take = 100;
في صوره مرفقه ايضا لاحظوا المسافه ايضا وصول السعر للهدف ولم يخرج .!
انا بكتب حاليا تخطى السعر بعده نقاط حتى قام بالاغلاق
اكسبيرت بسيط جدا وهكذا ظهرت اخطاء كيف لو عملت اكسبيرت حقيقي
ولايوجد اي امر يعدل على الاستوب او الهدف
ماهو السبب .؟
- 04-06-2013, 10:38 PM #2
قد يكون البروكير ECN ففي هذه الحالة لا يقبل وضع استبو لوز ولا تيك بروفيت والحل في هذه المشكلة
انك تجعل الوقف والهدف = صفر
ثم تضيف دالة ordermodify()
تضع فيها الهدف والوقف وسوف تحل المشكلة باذن الله
او بدل من ان تستخدم الدالة الاخيرة تعمل معادلة وتبقي الوقف والهدف = صفر والمعادلة عبارة مقارنة بين سعر الدخول والسعر الحالي فان ساوى الهدف او الوقف تخرج او تدخل في صفقة اخرى
- 04-06-2013, 10:43 PM #3
أخي الكريم
السلام عليكم ورحمة الله وبركاته
بالنسبة للكود ... لاتوجد أخطأ على مايبدو ... تسلسل المتغيرات بدالة OrderSend صحيحة
بالنسبة لتجاوز السعر للهدف ... ربما أنت لم تضع في الحسبان بأن البيع يقفل سعر الأسك
وفي حالة الشراء يقفل على البيد ...
لذلك من الأفضل أن تقوم بوضع الأسك أيضا على الشارت فهذا يساعدك على رؤية متى بالضبط
ستقفل الصفقة وخصوصا لو كان السبريد متغير.
- 06-06-2013, 01:55 AM #4
تسلم اخي الحبيب
الشركه ليست ecn حسب مابعرف هي شركة stp
ممكن توضيح اكثر حول داله ordermodify
مثل اكسبيرت يقوم بفتح صفه شراء في حال اخترق RSi اعلى 50 والبيع بالعكس
والهدف والاستوب بمتغيرات خارجيه مثلا 15 واستوب 15
ولكن يتم تنفيذ الهدف والاستوب غصب عن الشركه كيف يتم ذلك .؟
- 06-06-2013, 02:00 AM #5
عليكم السلام ورحمة الله وبركاته
حياك الله اخي
صراحه تفاجئت بمثل هذه المشكله والحساب اساسا ديمو
احيانا يقبل الامر دون مشاكل واحيانا يضع هدف والاستوب بعكس المطلوب
بدخل بحجم عقد 0.10 بهدف 10 بعض صفقات ربحه 7 دولار مثلا وبعضها تجده 2 دولار او 3 دولار
ياريت لو في اوامر تجبر ميتاتريدر على وضع الهدف والاستوب
شكرا لكم
- 06-06-2013, 02:10 AM #6
رد:هل هذا خطأ من المنصه او من الكود
STP ECN لهما نفس الخواص ترفض الوقف والهدف يعني لازم يكون صفر
كود PHP:OrderSend(Symbol(),0,Lots,Ask,3,0,0,"My order",magic_no,0,Green);
OrderModify(int ticket,Ask,Ask-TakeProfit*Point,Ask+TakeProfit*Point,0,CLR_NONE);
يتم عمل دالة ordersend بهدف ووقف = 0
ثم يتبعها دالة ordermodify وتضع فيه الهدف والوقف
راجع الدوال في صفة شركة mql4 او يمكنك البحث في الجوجل عن الدالة وكيفية التعامل معها
- 06-06-2013, 02:15 AM #7
عندي حل بسيط طالما انت في طور التعلم مثل حالتي وهو
تعمل دالة comment وتضع بها بعض المتغيرات التي تعود بقيمة وتراقب على الشارت قيم المتغيرات حتى تعرف مدى فعالية برنامج ومواطن الخطا البرمجي يعني اعمل لوحة تحكم على الشارت
انا اععمل هذه الخطوة كثيرا عندما يحدث خطأ برمجي ولا اعرف ما السبب فاعمل دالة comment واضع بها متغيرات واراقف القيم على الشارت ومنها احدد ما المشكلة
- 06-06-2013, 02:21 AM #8
- 06-06-2013, 02:22 AM #9