النتائج 2,821 إلى 2,835 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 20-09-2012, 01:01 PM #2821
- 20-09-2012, 02:20 PM #2822
رد:موضوع مخصص للأسئلة البرمجية
سؤال تانى متأسف على الاطاله
هذه الداله على ما اظن انها صحيحه 100% ولاكن لا تشتغل فى كل الحالات
وهى داله لمعرفة نقاط الربح الحاليه
كود PHP:double pips4profit(){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magicnumber){
double p=OrderOpenPrice();
if(OrderType()==OP_BUY){
return((Ask-p)/Point);
}
if(OrderType()==OP_SELL){
return((p-Bid)/Point);
}
}
}
return(0);
}
- 20-09-2012, 08:46 PM #2823
رد:موضوع مخصص للأسئلة البرمجية
جزاك الله خيرا ، وأنا وضعت دالة إغلاق الصفقات داخل حلقة حتى أتأكد من إغلاق كل الصفقات إذا لم يتم إغلاقها من المرة الأولى ، ولكن استخدمت الحلقة أكثر من مرة ، فهل سيؤثر ذلك على عمل الاكسيبرت (يسبب بطئ للاكسيبرت) .
كود PHP:if(Use_USD_Profit_Global==true){//Close Total profit for all pairs >>> ACCount profit ||Close Total profit for one pair >>> profit2(OP_BUY)+profit2(OP_SELL)||***ADD Code to CloseOrders() Function
if(IsTradeContextBusy()){Sleep(1000);}
if(AccountProfit()>=USD_Profit && Use_USD_Profit==true){
signalbuy1=false;signalbuy2=false;signalsell1=false;signalsell2=false;
for(int i=OrdersTotal();i>0;i--){
CloseOrders();}
}
if(AccountProfit()<=-USD_Loss&&Use_USD_Loss==true){
signalbuy1=false;signalbuy2=false;signalsell1=false;signalsell2=false;
for(i=OrdersTotal();i>0;i--){
CloseOrders();}
}
if(AccountProfit()<=-(lossratio*AccountBalance()/100)&&LossRatio==true){
signalbuy1=false;signalbuy2=false;signalsell1=false;signalsell2=false;
for(i=OrdersTotal();i>0;i--){
CloseOrders();}
}
if(AccountProfit()>=(profitratio*AccountBalance()/100)&&ProfitRatio==true){
signalbuy1=false;signalbuy2=false;signalsell1=false;signalsell2=false;
for(i=OrdersTotal();i>0;i--){
CloseOrders();}
}
if(DayOfWeek()==5&&Hour()==CloseHour&&Closeby_EndofWeek==true){
signalbuy1=false;signalbuy2=false;signalsell1=false;signalsell2=false;
for(i=OrdersTotal();i>0;i--){
CloseOrders();}
}
}
- 21-09-2012, 11:27 AM #2824
- 21-09-2012, 05:01 PM #2825
- 21-09-2012, 09:31 PM #2826
هذه الداله ستعود بقيمة الربح بالنقاط لآخر صفقه فقط وليس لمجموع الصفقات المفتوحه
التعديل
كود PHP:double pips4profit(){
double profit;
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magicnumber){
double p=OrderOpenPrice();
if(OrderType()==OP_BUY){
profit+=(Ask-p)/point;
}
if(OrderType()==OP_SELL){
profit+=(p-Bid)/point;
}
}
}
return(profit);
}
- 21-09-2012, 09:35 PM #2827
نعم قد تزيد بطئ الإكسبرت خصوصا إذا كان عدد الصفقات المفتوحه كبير لكن غالبا لن يكون هذا البطئ ملحوظ
أنت إستخدمت الحلقه
كود PHP:for(i=OrdersTotal();i>0;i--){
CloseOrders();}
- 21-09-2012, 09:36 PM #2828
- 22-09-2012, 11:58 AM #2829
- 23-09-2012, 12:57 AM #2830
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم ورحمة الله وبركاته
هل يمكن ارجاع اكثر من قيمة من الدالة ام هي قيمة واحدة فقط
مثلا اريد معرفة الربح والخسارة بالنقاط والربح الخسارة بالدولار
فهل يجب علي عمل دالة لمعرفة الربح بالنقاط ودالة اخرى لمعرفة الربح بالدولار واخرى لمعرفة الخسارة
ام هناك طريقة لارجاع هذه القيم كلها من خلال دالة واحدة فقط
- 23-09-2012, 02:03 AM #2831
- 23-09-2012, 02:12 AM #2832
وعليكم السلام ورحمة الله وبركاته
الداله يمكنها أن تعود بقيمة واحده لكن يمكن عملها لكن بطرق أخرى بإستخدام نفس الداله
مثلا
كود PHP:double Orders_Info(int index){
double profit;
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(index==0)profit+=OrderProfit();
if(index==1){
if(OrderType()==OP_BUY)profit+=(Bid-OrderOpenPrice())/Point;
if(OrderType()==OP_SELL)profit+=(OrderOpenPrice()-Ask)/Point;
}
}
}
return(profit);
}
كود PHP:Orders_Info(0);
كود PHP:Orders_Info(1);
أو بطريقة أخرى يمكنك إستخدام المتغيرات الثابته static variables وما يميزها أن قيم هذه المتغيرات لا تتغير عند الخروج من الداله
مثال
كود PHP:static double profitdolar;
static double profitpips;
void Orders_Info(){
profitdollar=0;
profitpips=0;
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(index==0)profitdolar+=OrderProfit();
if(index==1){
if(OrderType()==OP_BUY)profitpips+=(Bid-OrderOpenPrice())/Point;
if(OrderType()==OP_SELL)profitpips+=(OrderOpenPrice()-Ask)/Point;
}
}
}
}
- 23-09-2012, 07:45 AM #2833
رد:موضوع مخصص للأسئلة البرمجية
ماشاء الله تبارك الله حلول وطرق ممتازة بارك الله فيك اخي الحبيب اسامة
- 24-09-2012, 08:38 AM #2834
السلام عليكم ورحمة الله وبركاته
استفسار بسيط بعد اذنك مستر دولار
انا عملت اكسبرت التارجت فيه قد الأستوب مرتين فكنت عايز بمجرد انى السعر يحقق مكسب قد الأستوب يتم تحريك الأستوب على نقطة الدخول
فأيه الكود اللى يخلينى احقق دة مع العلم انى الأستوب هو لو شمعة الواحد فى حالة
الشراء وهاى شمعة الواحد فى حالة البيع
ولكم جزيل الشكرآخر تعديل بواسطة Mohamed Ashraf ، 24-09-2012 الساعة 08:42 AM
- 24-09-2012, 06:16 PM #2835
رد:موضوع مخصص للأسئلة البرمجية
بعد إذن أستاذ أسامة
يمكنك يا أخ محمد وضع الحلقة دي في دالة إستارت
كود PHP:for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
if(OrderType()==OP_BUY && Bid-OrderOpenPrice()>=OrderOpenPrice()-OrderStopLoss()){
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,LawnGreen);}
if(OrderType()==OP_SELL && OrderOpenPrice()-Ask>=OrderStopLoss()-OrderOpenPrice()){
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,OrangeRed);}
}
}
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM