النتائج 4,411 إلى 4,425 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 11-10-2013, 01:55 PM #4411
- 11-10-2013, 05:14 PM #4412
جزاك الله خيرا على المساعدة
قمت باستبدال الوظيفة MathMin بالوظيفة MathMax وبعد التجربة بالباكتيست لم يفتح أي مضاعفات (1.5x) دائما يفتح بلوت 0.01 !!!
أيضا استبدلت lotvalue بـ CurrentLots نفس الشيء لم تعمل المضاعفات
علما أني أريد ان تبقى الخاصية MaxLots كما هي، كي يبدأ الاكسبيرت من جديد عند خسارة المضاعفة الأخيرة
- 11-10-2013, 06:58 PM #4413
السلام عليكم
حياكم الله
اذا امكن ما معنى هذا الخطا
using of decompiled source code is prohibited
وبارك الله فيكم
- 11-10-2013, 07:43 PM #4414
عزيزي المشكلة ليست مشكلتك في البرمجة لكن المشكلة في اللوت 0.01 فالمنصات لاتقبل اللوت ب 15 سنت مالم يكن اللوت في المنصة يقبل السنت الواحد ، جرب نفس الكود وضع اللوت اكبر مثلا اللوت الأبتدائي الى 0.02 وسيعمل جيدا ، ثانيا لاتحتاج اضافة MathMax يوجد في كودك MarketInfo(Symbol(), MODE_MINLOT وهذه تعني اقل لوت تقبله المنصة بعد العملية الحسابية .
- 11-10-2013, 07:56 PM #4415
- 11-10-2013, 08:14 PM #4416
- 11-10-2013, 08:40 PM #4417
- 11-10-2013, 09:20 PM #4418
رد:موضوع مخصص للأسئلة البرمجية
بارك الله فيك
فعلا بدون أي تعديل على الكود الأصلي وباستخدام اللوت 0.02 تعمل مضاعفات النسبة 1.5 بكفاءة
لكن ماذا عن هذه الصورة وهي نتيجة باكتيست لاكسبيرت مستر دولار الشهير للاوامر المعلقة
يعمل جيدا بمضاعفات النسبة 1.5 وبلوت ابتدائي 0.01 وفي نفس المنصة (ستاندرد) !!!!
أيضا نفس الشيء باكسبيرت الأخ الكريم Spiders102 يعمل بكفاءة (بالمرفقات)
استخرجت كود المضاعفات من الاكسبيرت لكن لم أعرف كيف أدمجه مع اكسبيرتي
كود PHP:if(UseMultiplier){
if(WinorLoss()==false){Lots=MathMin(lastlot()*Multiplier,MarketInfo(Symbol(),MODE_MAXLOT));}
if(WinorLoss()==true){Lots=Firstlot;}
}
كود PHP:// Limiting Orders
int orderstotal(){
int cnt=0;
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
int OrdershistoryTotal(){
int cnt=0;
for(int i=0;i<OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//+------------------------------------------------------------------+
// OrdersHistoryTotal -- MODE_HISTORY -- Closed Orders //
// OrdersTotal -- MODE_TRADES -- Opend Orders //
//+------------------------------------------------------------------+
// lastlot & WinorLoss Functions //
// Lot Multiplier for Closed Lots //
double lastlot(){
for(int i=0;i<OrdershistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
double lotsnumber=OrderLots();
}
}
return(lotsnumber);
}
// Lot Multiplier for Opened Lots //
double lastlot2(){
for(int i=0;i<orderstotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
double lotsnumber=OrderLots();
}
}
return(lotsnumber);
}
bool WinorLoss(){
bool win=true;
for(int i=0;i<OrdershistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
if(OrderProfit()>0){
win=true;
}
else{
win=false;
}
}
}
return(win);
}
double LastLot(int M,int Q){
int d;
for(int i=OrdershistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
double L=OrderLots();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==M){
d++;
if(d==Q)return(L);
}
}
}
int NumberOfLosses(){
int N;
for(int i=OrdershistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
if(OrderProfit()>0){
return(N);
}
else{
N++;
}
}
}
return(N);
}
بالمرفقات اكسبيرت تجريبي test ياريت تضيف له الكود فضلا وشكرا جزيلا
تحياتيآخر تعديل بواسطة kira-h ، 11-10-2013 الساعة 09:27 PM
- 12-10-2013, 05:58 PM #4419
رد:موضوع مخصص للأسئلة البرمجية
تمت اضافة النص المقترح لكن لايعطي المطلوب ربما يوجد صيغة برمجية أخرى لا أعرفها ويفيدنا بها أستاذي الفاضل أسامة .
- 12-10-2013, 06:38 PM #4420
رد:موضوع مخصص للأسئلة البرمجية
- 12-10-2013, 07:32 PM #4421بارك الله فيك أستاذ جميل ما قصرت
اشتغلت المضاعفات النصفية 1.5x ويوجد فقط خطأ حسابي مثلا ينتقل من اللوت 0.03 إلى اللوت 0.06
علما أن اللوت 0.03 مضروب في 1.5 = 0.045 إذن من المفترض أن يفتح المضاعفة الموالية بلوت 0.05
......
منتظرين أستاذنا الفاضل مستر دولار
بالمرفقات اكسبيرت معدل لطريقة الدخول بصفقة واحدة لتتضح متوالية المضاعفات
تحياتي وشكرا جزيلا مرة أخرى
آخر تعديل بواسطة kira-h ، 12-10-2013 الساعة 07:48 PM
- 13-10-2013, 06:48 AM #4422
رد:موضوع مخصص للأسئلة البرمجية
ينقصك فقط أن تستخدم الداله NormalizeDouble لتقريب حجم اللوت إلى الرقم العشري المسموح به في الصفقه
مثال
كود PHP:lotvalue=MathMin(NormalizeDouble(CurrentLots*LotsMpOnLoss,2),MarketInfo(Symbol(),MODE_MAXLOT)) ;
- 13-10-2013, 06:53 AM #4423
- 13-10-2013, 04:42 PM #4424
- 13-10-2013, 05:40 PM #4425
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM