...@@ مساعده برمجيه @@...
السلام عليكم ورحمة الله وبركاته
الاخوة الكرام اتمني ان يكون الجميع بخير حال
وارجو المعذره في قلة مشاركاتي هذه الفتره نظرا لظروف الدراسه فأنا الان بدأت المرحلة الحاسمه في حياتي وهي الامتحانات النهائيه لسنه سادسه طب ...... رحلة فعلا كانت طويله جدا جدا ............. علي كل حال ان شاء الله انهي الامتحانات ولي عوده قويه بأذن الله.
والان كان في مشكله برمجيه احتاج فيها مساعده بسيطه ........ الاكسبيرت بعد ان انهيت تصميمه من قرابة الثلاث اشهر وانا انشغلت جدا في الدراسه بعدها ولم اكن قد وضعته علي اي حساب ولكن فقط قمت بعمل باك تيست له ووجدته يعمل بكفائه عاليه كما اريد ........ و هذه الايام عندما وضعته علي الحساب الشخصي وجدته لا يفتح بعض الاوامر ويتجاهل سطورها كما لو انها لا توجد..... حتي انه لا يعطي اي تنبيه في الجورنال او خلافه ......انا من طبعي البحث والتنقيب والتفكير في الحلول ونظرا لضيق الوقت كل ما استطعت ان اخرج به هو الاتي
الاكسبيرت لا ينقصه شئ فقط السطور الاتيه هي التي بها المشكله وهي تتلخص في الاتي لماذا ينفذ الاكسبيرت هذه الاوامر علي الباك تيست فقط ولا ينفذها عندما يوضع علي الحساب الحقيقي ؟؟؟؟؟
هذه هي الاوامر التي تحدث فيها المشكله
كود:
if ( Close[0]>=sellstop)
{
OrderSend(Symbol(),OP_BUY,lotsize2,Bid,slippage*pt,0,0,"",magicn,0,Red);
OrderClose(OrderTicket(),OrderLots(),Ask,slippage*pt);
}
if (Close[0]<=sellprofit)
{
OrderClose(OrderTicket(),OrderLots(),Ask,slippage*pt);
}
ويتضح من هذا الكود البسيط انه يحتوي علي شرط وعند تحققه يفتح صفقه لها لوت محدد ويغلق صفقه اخري
المشكله هنا ان الاكسبيرت علي الباك تيست يعمل بكفائه ولكن علي الحساب الحقيقي او حتي علي الديمو يصر ان يتجاهل امر فتح الصفقه وينفذ امر الاغلاق فقط ......... و كأن امر ordersend غير موجود في هذا الكود اساسا..... فما الخطأ البرمجي في هذه السطور التي تمنع الاكسبيرت من فتح ما بها من اوامر علي الحساب الحقيقي او الديمو و ينفذها عادي جدا علي الباك تيست ..؟؟؟
حتي اذا اخذت هذه السطور ووضعتها ضمن اي اكسبيرت اخر مهما كان سوف يتجاهل امر ordersend الموجود بداخلها وينفذ امر orderclose فقط فما الخطأ البرمجي في هذه السطور .........
ارجو من الاخوة المساعده جازاكم الله خيرا
والسلام عليكم ورحمة الله وبركاته
رد:...@@ مساعده برمجيه @@...
اقتباس:
المشاركة الأصلية كتبت بواسطة batttot
السلام عليكم ورحمة الله وبركاته
الاخوة الكرام اتمني ان يكون الجميع بخير حال
وارجو المعذره في قلة مشاركاتي هذه الفتره نظرا لظروف الدراسه فأنا الان بدأت المرحلة الحاسمه في حياتي وهي الامتحانات النهائيه لسنه سادسه طب ...... رحلة فعلا كانت طويله جدا جدا ............. علي كل حال ان شاء الله انهي الامتحانات ولي عوده قويه بأذن الله.
والان كان في مشكله برمجيه احتاج فيها مساعده بسيطه ........ الاكسبيرت بعد ان انهيت تصميمه من قرابة الثلاث اشهر وانا انشغلت جدا في الدراسه بعدها ولم اكن قد وضعته علي اي حساب ولكن فقط قمت بعمل باك تيست له ووجدته يعمل بكفائه عاليه كما اريد ........ و هذه الايام عندما وضعته علي الحساب الشخصي وجدته لا يفتح بعض الاوامر ويتجاهل سطورها كما لو انها لا توجد..... حتي انه لا يعطي اي تنبيه في الجورنال او خلافه ......انا من طبعي البحث والتنقيب والتفكير في الحلول ونظرا لضيق الوقت كل ما استطعت ان اخرج به هو الاتي
الاكسبيرت لا ينقصه شئ فقط السطور الاتيه هي التي بها المشكله وهي تتلخص في الاتي لماذا ينفذ الاكسبيرت هذه الاوامر علي الباك تيست فقط ولا ينفذها عندما يوضع علي الحساب الحقيقي ؟؟؟؟؟
هذه هي الاوامر التي تحدث فيها المشكله
كود:
if ( Close[0]>=sellstop)
{
OrderSend(Symbol(),OP_BUY,lotsize2,Bid,slippage*pt,0,0,"",magicn,0,Red);
OrderClose(OrderTicket(),OrderLots(),Ask,slippage*pt);
}
if (Close[0]<=sellprofit)
{
OrderClose(OrderTicket(),OrderLots(),Ask,slippage*pt);
}
ويتضح من هذا الكود البسيط انه يحتوي علي شرط وعند تحققه يفتح صفقه لها لوت محدد ويغلق صفقه اخري
المشكله هنا ان الاكسبيرت علي الباك تيست يعمل بكفائه ولكن علي الحساب الحقيقي او حتي علي الديمو يصر ان يتجاهل امر فتح الصفقه وينفذ امر الاغلاق فقط ......... و كأن امر ordersend غير موجود في هذا الكود اساسا..... فما الخطأ البرمجي في هذه السطور التي تمنع الاكسبيرت من فتح ما بها من اوامر علي الحساب الحقيقي او الديمو و ينفذها عادي جدا علي الباك تيست ..؟؟؟
حتي اذا اخذت هذه السطور ووضعتها ضمن اي اكسبيرت اخر مهما كان سوف يتجاهل امر ordersend الموجود بداخلها وينفذ امر orderclose فقط فما الخطأ البرمجي في هذه السطور .........
ارجو من الاخوة المساعده جازاكم الله خيرا
والسلام عليكم ورحمة الله وبركاته
وعليكم السلام ورحمة الله اولا دعواتي لك بالتوفيق في دراستك وهي الأهم ،
في هذا الكود ملاحظة سريعة في الشرط الأول
كود PHP:
if ( Close[0]>=sellstop*Point)
وانا مش عارف كم قيمة Point عندك ، ثاني ملاحظة مع الشراء نستخدم ASK
1 مرفق
رد:...@@ مساعده برمجيه @@...
اقتباس:
المشاركة الأصلية كتبت بواسطة batttot
السلام عليكم ورحمة الله وبركاته
الحمد لله الملاحظه الت يذكرها الاخ جميل فعلا كانت هي المشكله والان الاكسبيرت يفتح الصفقات تمام ..... الف شكر ليك اخي جميل بارك الله فيك ..........والان ظهرت حاجه غريبه ايضا لم تكن تحدث في الباك تيست ......... الاكسبيرت بيفتح اكثر من صفقه عند نفس النقطه ونفس السعر ...........لماذا ؟؟؟؟؟ لقد وجدت الاكسبيرت يقوم بتنفيذ الشروط كا هي اعلاه بالضبط فعند وصول السعر الي قيمه الاستوب التي حددتها في المتغير sell stop اجد الاكسبيرت يفتح اكثر من صفه جديده ويغلق الصفقه المفتوحه ....... اي انه فعلا ينفذ الاوامر ولكن لماذا يكرر فتح الصفقه وكيف اجعله يفتحها مره واحده فقط ؟؟؟؟؟؟ جازاكم الله خيرا
استخدم دالة لتأكيد عدم وجود صفقة مفتوحة مثل fOrderDoesNotExist
ارفقت لك اكسبيرت وفيه الحلقة وستجد فيه اشياء اخرى إن شاء الله تفيد .
رد:...@@ مساعده برمجيه @@...
اهلا دكتور تفضل هذا الكود تضعه في دالة int وحسب مسمى الذهب في المنصة عندك وبالنسبة للنقاط تتصرف حسب المتغيرات عندك والمنصة اذا كانت 5 او 4 ارقام .
كود PHP:
if(Symbol()=="XAUUSDpro")points=points*100;