وعليكم السلام ورحمة الله وبركاته
مثال
كود PHP:
void delete(){
for(int i=0;i<OrdersTotal()-2;i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderType()>3){
OrderDelete(OrderTicket());
}
}
}
Printable View
السلام عليكم ورحمة الله وبركـــــــاته
أستاذ أسامة جزاك الله عنا كل خير لما تقدمه لإخوانك من عطاء لا حدود له،،،
أرجو أستاذي تعديل اكسبيرت من برمجتك والذي قمت بتعديله سابقا (اكسبيرت الأخ فارس) به إدارة مالية غير سليمة
الشرح بالتفصيل بالمشاركة رقم 421 على الرابط التالي : https://forum.arabictrader.com/showt...=1#post2493914
بانتظار لمستك الفنية مشرفنا الغالي :)
والله الموفق
استاذي مستر دولار في انتظار التعديل
https://forum.arabictrader.com/showt...=1#post2492920
اتفضل يا باشا الداله انا شغال بيها بالشكل ده
ونكتب الشرط داخل الدالة start بالشكل دهكود:double dayProfit(){
double pips,pipsb,pipss;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(iTime(Symbol(),1440,0)<OrderOpenTime()&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderType()==OP_BUY)pipsb+=(OrderClosePrice()-OrderOpenPrice());
if(OrderType()==OP_SELL)pipss+=(OrderOpenPrice()-OrderClosePrice());
pips=pipsb+pipss;
}
}
return(pips);
}
طبعا DailyTP ده متغير هاتعرفه خارج الداله ستارتكود:if (dayProfit()>=(DailyTP-1)*point&&UseDialyTP==true)return(0);
سوف تقوم بعمل داله لمعرفة الربح بالنقاط لهذا اليوم
ثم ستضيف الشرطكود PHP:
double ProfitToDay(){
double profit;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderOpenTime()>=iTime(Symbol(),1440,0)){
if(OrderType()==OP_BUY)profit+=(OrderClosePrice()-OrderOpenPrice())/Point;
if(OrderType()==OP_SELL)profit+=(OrderOpenPrice()-OrderClosePrice())/Point;
}
}
return(profit);
}
50 هي عدد النقاط على سبيل المثالكود PHP:
if(ProfitToDay()>=50)return;
لماذا لا تبدأ في العد من بداية الحد (1,1) وتستمر إلى (1,2) ثم (1,3) وهكذا كلما تنتهي من الصف الأول تنقل إلى الصف التالي وتبدأ العد
مثل
ومع بداية كل سطر جديد ستقوم بعمل الحسابات الرياضية أم أن المشكله لديك في عمل معادلة تحسب تعطي علاقة في حساب كل مربعكود PHP:
int array[24][24];
for(int i=1;i<24;i++){
for(int j=1;j<24;j++){
array[i][j]=//Num;
}
}
مثلا أنت تريد زيادة حجم اللوت كلما زاد الربح العائم الإكوتي حسب الكود الذي أرفقته
الأفضل أولا أن تقوم بالإعتماد على الربح وليس حجم الحساب الحالي فتستخدم AccountPofit
الآن تريد زيادة حجم اللوت كلما زاد الربح أكبر من المتغير Money_Account الذي قمت بوضعه
يمكن تمثيلها بالعلاقة
بحيث سيقسم الربح الحالي على الربح المحدد في المتغيرات مثلا لو كان الربح الحالي 150 دولار وأنت حددت زيادة حجم اللوت إذا كان يساوي 150 دولار فسوف يكون حجم اللوت = اللوت الإبتدائي + (1)* اللوت المضافكود PHP:
double profitNumber=AccountProfit()/Money_Account;
if(profitNumber>=1)Lots=Firstlot+profitNumber*Add_Lot;
لو زاد الربح وأصبح 300 دولار فسوف تكون العلاقة
حجم اللوت = اللوت الإبتدائي + (2) * اللوت المضاف
وهكذا
نعم التعديل صحيح
الداله OrdersTotal تعود بعدد الصفقات الكلية المفتوحه سواء بإكسبرت أو يدويا لذلك نقوم بعمل دالة اخرى لمعرفة عدد الصفقات التي فتحها الإكسبرت
كود PHP:
int orderscnt(int type){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol()&&OrderType()==type && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
}
return(cnt);
}
وإذا إستخدمت فريم أقل أيضا يمكنك مثلا تثبت الإشاره لكن على أي شمعة ربع ساعه مغلق سوف تأخذ البيانات
لو مثلا الفريم الحالي هو الساعه والفريم الأقل هو فريم الربع ساعه
في فريم الساعه الحالي سوف تتكون أربع شمعات ربع ساعه مع كل إغلاق شمعه الإشاره سوف تتغير فيمكنك إعتماد مثلا أول شمعة ربع ساعه تغلق في هذه الشمعه (شمعة الساعه )
مثال
لكن السؤال ليس في هل ستثبت الإشاره أم لا لكن السؤال هل في هذه الحاله ستكون الإشارات صادقه هل إهمالي لشموع معينه والإعتماد على شموع أخرى سيعطي مصداقه للإشاره أم لاكود PHP:
double array[];
for(int i=0;i<Bars;i++){
int shift=iBarShift(Symbol(),15,Time[i],false);
array[i]=iRSI(Symbol(),15,14,PRICE_CLOSE,shift);
}
تم التعديل ولكن فـ هذه الحالة قيمة الـ profitNumber قد تكون أرقام عشرية
مثل 1.1 ، 3.7 ، 6.9 ، ....
وأنا أريد القيم صحيحة حتي يكون حجم اللوت الجديد
أرقام صحيحة ، هل أقوم بإضافة
أم إضافةكود PHP:
NormalizeDouble(AccountProfit()/Money_Account)
ولي سؤال ما الخطـأ فـ الحلقة التي وضعتها بالمشاركة السابقة ولماذا لم تعمل !!كود PHP:
MathFloor(profitNumber)*Add_Lot