النتائج 3,931 إلى 3,945 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 30-05-2013, 05:51 AM #3931
- 30-05-2013, 09:06 AM #3932
بارك الله فيك اخي مستر دولار
طبعا لم اقم بتجربه الاكبسيرت بعد ولدي بعض الملاحظات وياريت ان لاتنسى ان ترد على كل الملاحظات.
السؤال الاول
يمكن شرح هذه المتغيرات في عمليه الهدج وهل سيكون الهيدج لمر واحده او يوجد مسافه بين كل هيدج واخر اي يعني ماذا تقصد بالضبط بهذه المتغيرات؟
extern bool OpenHedgeFirstTime=false;
extern double HedgeLots=0.1;
extern int HedgeTP=0;
extern int HedgeSL=0;
السؤال الثاني
هاذان المتغيران هل تقصد فيهما الاتي
extern bool AddOrdersAfterClose=true;
فتح الصفقه مرة أخرى بعد إغلاقها سواء أغلقت على ربح أو خساره وهل هذا هو الكود المسؤال عن ذلك void OpenClosedOrders(int type)؟
extern bool ReverseClosedOrders=false;
وضع أوامر بيع معلقه في حال أغلقت صفقة الشراء وأوامر شراء معلقه في حال أغلقت أوامر البيع و لكن ماهو الكود المسؤل عن هذه الوظيفه؟
السؤال الثالث
لتشابه المتغيرات اريد معرفه الفروقات بين هذه المتغيرات وماهو بالضبط؟
extern int DistanceFromCurrentPriceBS=0 و extern int Distance_AddBuyS=0
وكذلك بين المتغيرات
extern bool UseHourTrade = false; و extern bool OpenAtChoosenHour=false;
وكذلك بين المتغيرات
extern bool FridayCloseOrders=false;
extern int _Hour=20;
والمتغير
extern bool FridayCloseEA=false;
extern int Friday_CloseHour=20;
ملاحظه لم افهم بماذا ترمز ل CloseEA
السؤال الرابع
هل اذا قمت بحذف مايوجد بداخل وظيفه المقدمه والنهايه لم يؤثر على عمل الاكسبيرت؟
لاحظتك تكتب بعض الاحيان اكواد تبداء بكلمات متختلفه اما void او int او double او boole وهل يمكن استخدام كل منهما مكان الاخر وما تعني void؟
جزيت خيرا مقدماآخر تعديل بواسطة daod ، 30-05-2013 الساعة 09:14 AM
- 30-05-2013, 02:39 PM #3933
رد:موضوع مخصص للأسئلة البرمجية
لسلام عليكم ورحمة الله وبركاته
اشكركم على تعاونكم الدايم
ممكن كود الغاء الصفقه المرادفه
مثال وضع امرين معلقين شراء وبيع استوب لو تم تفعيل امر الشراء استوب وجاب الهدف او بخسارة اريد لما تتم الصفقه بربح اوخساره تغلق الصفقه المعلقه البيع المرادفه لها
ولكم جزيل الشكر
- 30-05-2013, 02:51 PM #3934
رد:موضوع مخصص للأسئلة البرمجية
أخي الكريم الاستاذ أسامه أو الاخ يوسف
قمت بعمل الداله السابق ذكرها كما تفضل الاستاذ يوسف ( xcv114 )
ولكني وجد
1- الاكسبرت يقوم بقراءة اللوت الموجود على المنصة سواء كان للصفقات المفتوحة او المعلقة
أنا أريدة فقط قراءة اللوت للصفقات المفتوحة فقط حتى أتمكن من عدم الدخول في مضاعفات اكبر من MaxLots وهو المتغير الموضوع من قبلي خارجيا
2- لاحظت أيضا الاكسبرت لا يقوم باغلاق جميع الصفقات دفعة واحده سواء كانت معلقة او مفتوحة عند الوصول للمضاعفة الممطلوبة بواسة المتغير الخارجي MaxLots بل يقوم باغلاق بعض منها والبقاء على الأخرى جربت كتابة الأمر التالي داخل الحلقة for ليصبح ما بداخل دالة ستارت كالتالي ولكن ايضا ما ظبطت معي
كود PHP:int start()
{
if(OrdersTotal()>0&&AccountProfit()>0){
for(int i=0;i<=OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderLots()>=MaxLotsToCloseALL){while(OrdersTotal()>0){CloseAllOrders();}}
}
}
return(0);
}
1- اكسبرت رقم واحد ( مغلق الكود ) يقوم بفتح اوامر طبقا لنظام المضاعفات 1248
2- كود الاكسبرت المطلوب عملة هو قراءة حجم اللوت للصفقات المفتوحة فقط وليست المعلقة من قبل اكسبرت رقم واحد ومن ثم وضع متغير خارجي اسميته MaxLotsToCloseALL وعند الوصول إلية يقوم باغلاق جميع صفقات المنصة ( المفتوحة والمعلقة )
3- عند وصول اللوت للاوامر ( المفتوحة فقط ) من قبل اكسبرت رقم واحد إلى الرقم المكتوب في الاكسبرت المطلوب MaxLotsToCloseALL يقوم باغلاق جميع الصفقات الموجودة على المنصة سواء معلقة او مفتوحة بشرط يكون صافي ربح الصفقات المفتوحة أكبر من الصفر وترك المجال للاكسبرت رقم واحد بدخول صفقات جديدة باللوت المبدئي له وطبقا لاستراتيجية عملة
جزاكم الله كل خيرآخر تعديل بواسطة waleedgadelmola ، 30-05-2013 الساعة 02:58 PM
- 30-05-2013, 02:52 PM #3935
- 30-05-2013, 03:42 PM #3936
رد:موضوع مخصص للأسئلة البرمجية
نعم أخي المشكلة إنه أثناء غلق العمليات قد يتحول AccountProfit إلي سالب (خسارة) فلا يتحقق الشرط لإغلاق باقي العمليات
أو قد يغلق العملية في البداية إللي فيها : اللوت أكبر من اللوت المحدد في المتغير الخارجي وبالتالي لا يتحقق الشرط لإغلاق باقي العمليات
--------------------------------
يمكنك التغلب على هذه المشكلة بتعريف متغير منطقي bool خارج الدوال وتعطيه قيمة true عندما تتحقق شروط الإغلاق في دالة إستارت
وتضع شرط في دالة إستارت إذا كان قيمة المتغير ==true فأنه يغلق جميع العمليات
وتضع شرط في إستارت بأن المتغير لا يعود للقيمة false إلا بعد إغلاق كل العمليات
كود PHP:bool CloseALL;
int init()
{
CloseALL=false;
if(Digits==3||Digits==5)D=10;
else D=1;
return(0);
}
int start()
{
if(OrdersTotal()>0&&AccountProfit()>0){
for(int i=0;i<=OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&& OrderType()<=1 && OrderLots()>=MaxLotsToCloseALL){
CloseALL=true;
}
}
}
if(CloseALL){CloseAllOrders();}
if(OrdersTotal()==0){CloseALL=false;}
return(0);
}
مرفق الإكسبيرت
- 30-05-2013, 04:49 PM #3937
- 30-05-2013, 07:13 PM #3938
رد:موضوع مخصص للأسئلة البرمجية
تسلم اخوي على سرعة الرد
لا المقصود كل الاتي
عند تحقق شرط معين يقوم بفتح 8 عقود معلقة اربعه شراء فوق السعر واربعه بيع تحت السعر بنفس السعر
عندما يتفعلو اوامر الشراء كل واحد هدفه مختلف المطلوب كل عقد يغلق بربح او خساره يغلق العقد المعاكس اللي هو البيع اللي بنفس الهدف
إن شاءالله وصلت الفكره
- 30-05-2013, 08:22 PM #3939
رد:موضوع مخصص للأسئلة البرمجية
انا جربتها كأختبار بسيط لغلق صفقة ووضعت صفقتين بيع وشراء لليورو دولار بنفس عدد اللوت وحذف الاثنين معا ولكن بنصف اللوت للاثنين
يعني اذا اغلت الاثنين معا سوف اخسر ضعف ما استخدمت تلك الخاصية. وليس شرط ان يكونو بنفس حجم اللوت ولكن يأخذ نفس النسبة يعني ان كانت الاولى ب 1 لوت والثانية 3 لوت يحذف من الثانية 1 لوت ويبقي 2 لوت فقط للثانية وستجد ان الاولى الخسارة صفر والثانية الخسارة * حجم اللوت المحذوف وهو 1
- 30-05-2013, 08:29 PM #3940
رد:موضوع مخصص للأسئلة البرمجية
في طرق كثيرة
بس إنت ممكن تجعل كل صفقتين متعاكستين برقم ماجيك نمبر مختلف
لكن لو بتستخدم ماجيك نمبر ثابت يمكنك إستخدام الكومنت بدل منه
يعني تجعل كل أمرين متعاكسين بنفس الكومنت يعني مثلا
كود PHP:OrderSend(Symbol(),OP_BUYSTOP,0.1,1.3200,30,SL,TP,"1",MagicNumber,0,Lime);
OrderSend(Symbol(),OP_SELLSTOP,0.1,1.3000,30,SL,TP,"1",MagicNumber,0,Red);
وتقوم بعمل دالة تأتي بعدد الأاوامر المفتوحة بنفس الكومنت
كود PHP:int OrdersMatching(string comment){
int cnt=0;
for(int i=0;i<=OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderComment()== comment){
cnt++
}
}
return(cnt);
}
كود PHP:if(OrdersMatching("1"))<2) CloseOrder("1");
if(OrdersMatching("2"))<2) CloseOrder("2");
if(OrdersMatching("3"))<2) CloseOrder("3");
if(OrdersMatching("4"))<2) CloseOrder("4");
كود PHP:void CloseOrder(string comment){
int _total=OrdersTotal();
if (_total==0) {return;}
int ticket;
for (int b=_total-1;b>=0;b--){
OrderSelect(b,SELECT_BY_POS);
if(OrderComment()==comment && OrderMagicNumber()== MagicNumber && Symbol()==OrderSymbol()){
ticket=OrderTicket();
if(OrderType()==OP_BUY){
OrderClose(ticket,OrderLots(),Bid,3*Q);}
if(OrderType()==OP_SELL){
OrderClose(ticket,OrderLots(),Ask,3*Q);}
if(OrderType()>1){
OrderDelete( OrderTicket() );}
}
}
}
كود PHP:OrderCloseBy(int ticket1, int ticket2);
لإن الأوامر المعلقة تحذف بـ OrderDelete ولا أعرف إذا كانت هذه الدالة تعمل على الأوامر المعلقة أم لا
أكيد أستاذ أسامة هيفيدك أكتر في الموضوع ده
- 30-05-2013, 10:55 PM #3941
- 30-05-2013, 11:39 PM #3942
رد:موضوع مخصص للأسئلة البرمجية
هذا الموضوع به شرح لجميع متغيرات الإكسبرت
https://forum.arabictrader.com/t96360.html
السؤال الأخير يجب أن تراجع دروس تعلم البرمج و طريقة تعريف المتغيرات والدوال
void تعني أن الداله لن تعود بأي قيمه لكن فقط ستنفذ الأوامر الموجوده بداخل الداله
بعكس int و double و bool فالداله سوف تعود بقيمة على حسب نوع البيانات التي قمت بتعريفها فإذا كنت قد عرفت الداله من نوع int فهذا يعني أن الداله ستعود بقيمة عدد صحيح
double تعني أن الداله ستعود بقيمة عدد عشري
bool تعني أن الداله ستعود بقيمة إما true أو false
- 31-05-2013, 12:41 AM #3943
هل اذا قمت بحذف مايوجد بداخل وظيفه المقدمه والنهايه لم يؤثر على عمل الاكسبيرت؟
اخي اسامه بعد ما قرات الموضوع هناك بعض الملاحظات
هناك بعض المتغيرات لم ارى له شرح بالموضوع وهي
extern bool FridayCloseEA=false
extern int Distance_AddBuyS=0
extern bool ReverseClosedOrders=false
extern bool OpenHedgeFirstTime=false;
extern double HedgeLots=0.1;
extern int HedgeTP=0;
extern int HedgeSL=0
,وقسم اخر من المتغيرات لا اعرف ايش الفرق بينها لتشابهها مع بعضها
منها
extern bool UseHourTrade = false; و extern bool OpenAtChoosenHour=false;
وكذلك ايش الفرق بين المتغيرايين
extern bool FridayCloseOrders=false;
extern int _Hour=20;
والمتغير
extern bool FridayCloseEA=false;
extern int Friday_CloseHour=20
بالنسبه بعد التجربه للاكسبيرت وجدت هنا ك عيب الى الان وهو انه احيانا وليس دائما يقوم بفتح الصفقه مرة أخرى بعد إغلاقها سواء أغلقت على ربح أو خسارةلكن بشكل مكرر او ثنائي اي امرين معلقين بنفس الوقت بدل من عقد واحد فقط والاصل هو ان يفتح امر معلق واحد فقط بدلا عن الامر الذي اغلق سواء على ربح اوخساره .آخر تعديل بواسطة daod ، 31-05-2013 الساعة 12:52 AM
- 31-05-2013, 10:26 AM #3944
- 31-05-2013, 01:02 PM #3945
رد:موضوع مخصص للأسئلة البرمجية
الأخ الكريم الاستاذ يوسف او الأخ الكريم الاستاذ مستر دولار
جزاك الله خير
قمت بتجربة الأكسبرت وفعلا قام بإغلاق جميع الصفقات دفعة واحده بعد اضافة المتغير
كود PHP:bool CloseALL;
ولكن تم اغلاق الصفقات على خسارة قليلة أتوقع أنها نتيجة إعادة التسعير ( ري كوت )
هل من حل برمجي لها لأغلاق الصفقات دفعة واحده بشرط ضمان أنها تكون اكبر من الصفر لأن الاكسبرت لم ينظر إلى الشرط أو سبب اعادة التسعير والحركة السريعة
كود PHP:if(OrdersTotal()>0&&AccountProfit()>0)
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM