النتائج 4,741 إلى 4,755 من 10289
الموضوع: موضوع مخصص للأسئلة البرمجية
- 16-01-2014, 07:52 PM #4741
السلام عليكم ورحمة الله وبركاته
لو تكرمتم اخواني سؤال لو سمحتوا وهو ماهو الكود الذي ممكن ان يكون في الاكسبيرت والذي يستخدم previous indicator's data والمستخدم كأحد الخيارات الموجودة في مؤشر الموفينج افريج حيث اني اريد ان استعمله مع مؤشر RSI مثلا بحيث احصل مثلا على المتوسط البسيط لاخر 5 قراءات لل RSI .
جزاكم الله خيرا
- 16-01-2014, 10:20 PM #4742شكراً جزيلاً لك اخى الكريم
واعتقد انها فكره ممتازه
ومن فضلكم كان عندى سؤال هو
كيف يمكن حماية الكود فى الأكسبيرت
- 17-01-2014, 02:18 AM #4743
- 17-01-2014, 02:21 AM #4744
- 17-01-2014, 03:05 PM #4745
السلام عليكم على الاخوه الكرام واستاذ اسامه
اردت انا اعمل كود لمعرفة نسبة الربح وعند الوصول لنبة الربح المحدد يقوم بأغلاق جميع الصفقات
معادلة نسبة الربح
كود PHP:double profitprecent(){
for(int cnt=OrdersTotal();cnt>0;cnt--){
OrderSelect(cnt,SELECT_BY_POS);
double pc=OrderProfit()/AccountBalance()*100;
}
return(pc);
}
كود PHP:void CloseBuyOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*Q);
}
}
}
كود استدعاء المعادلات
[PHP]if(profitprecent()==precent){CloseBuyOrders();}
والنتيجه تكون انه يغلق ثلاثة صفقات فقط من خمس صفقات ولمره واحده فقط وبعد ذلك لا يغلق الصفقات الباقيه
ولا يتبع النسبه المحدده للربح
ارجوا المساعده
- 17-01-2014, 07:52 PM #4746
أولا بالنسبة لدالة حساب الربح فيجب أن تجمع أولا كل الربح ثم تقسمه على رأس المال
كود PHP:double profitprecent()
{
double pc;
for(int cnt=OrdersTotal()-1;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS);
pc+=OrderProfit();
}
return(pc/AccountBalance()*100);
}
كود PHP:void CloseBuyOrders()
{
for (int cnt = OrdersTotal()-1 ; cnt >=0;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*Q);
}
}
}
كود PHP:if(profitprecent()>=precent){CloseBuyOrders();}
- 17-01-2014, 09:49 PM #4747
لو عايز اى اكسبيرت اعمله يكون دخوله فى الشراء والبيع بناء على نسبه من رأس المال
ماهو الكود اللى اقدر استخدمه لذلك ؟
- 17-01-2014, 10:28 PM #4748
والله برنس ماحدش يقدر يقول غير كده
بس فيه كام حاجه خفيفة كده عايز اعرفها عشان استفاد من اللى عملته انت
هل معنى انك تكتب فى دالة البحث كده OrdersTotal()-1 انك عايز الصفقه اللى قبل الاخير فقط ولا ايه معناها
وكمان فى دالة الاغلاق كان فيه غلط ماكنش مشغل الصفقات حضرتك ما كنتش واخد بالك منه وهو cnt++ والمفروض يكون بالسالب cnt-- مش عارف ازاى
ثالثا معناها ايه انى احط موجب وبعد كده يساوىكود PHP:pc+=OrderProfit();
- 17-01-2014, 10:55 PM #4749
- 18-01-2014, 01:32 PM #4750
اذا كنت تقصد التحكم بحجم اللوت اوتوماتك حسب رأس المال فمثلا الدخول بنسبة 10% من رأس المال فهذا هو الكود والطريقه
1- نقوم بعمل خيار منطقى ببول ونسميه مثلا moneymanage
2- نعمل خيار لوضع القيمه الخاصه بالمخاطره ونسميه مثلا risckprecent
3- نعمل الداله الاساسيه بهذا الشكل
كود PHP:double LotManage()
{
double lot = MathCeil(AccountFreeMargin() * RiskPercent / 1000) / 100;
if(lot<MarketInfo(Symbol(),MODE_MINLOT))lot=MarketInfo(Symbol(),MODE_MINLOT);
if(lot>MarketInfo(Symbol(),MODE_MAXLOT))lot=MarketInfo(Symbol(),MODE_MAXLOT);
return (NormalizeDouble(lot,2));
}
كود PHP:If(moneymanage) Lots = LotManage();
- 18-01-2014, 02:53 PM #4751
عدد الصفقات يبدأ من 0 حتى ( مجموع الصفقات - 1 )
مثلا لو كان يوجد 5 صفقات مفتوحه فترتيبهم سيكون 0 , 1 , 2 , 3 , 4
لذلك استخدمت OrdersTotal-1 لأن الصفقة الأخيره رقمها 4 وليس 5
بالنسبه للجزء الثاني صحيح المفروض تجعلها بالسالب
معنى += هو تماما مثل
كود PHP:pc=pc+OrderProfit();
- 18-01-2014, 02:55 PM #4752
- 18-01-2014, 06:54 PM #4753
جزاك الله خيرا اخي
حاولت بالكود التالي وبعد عمل compile مازالت هناك اخطاء
الرجاء التوجيه بارك الله فيك
كود:int i,RSIBuffer,MAofRSIBuffer; int RSIPeriod=14; int MAofRSI=5; int MA_method=1; int limit; int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //--- main loops 1 and 2 for(i=0; i < limit; i++) { RSIBuffer[i]=iRSI(Symbol(),0,RSIPeriod,PRICE_CLOSE,i); } for(i=0; i < limit; i++) { MAofRSIBuffer[i]=iMAOnArray(RSIBuffer,0,MAofRSI,0,MA_method,i); }
- 18-01-2014, 09:47 PM #4754
السلام عليكم ورحمة الله
اريد ان انشئ دالة تاتي بسعر فتح الصفقة ما قبل الاخيرة من صفقات البيع المفتوحة فقط واخرى لصفقات الشراء فقط...استعملت هذه لكن نجحت في مواضع ولم تنجح في مواضع اخرى...مالحل وشكرا.
كود:double OpenorderBeforLastSell(){ double OpenorderBeforLastSell; for(int i=0;i<OrdersTotal()-2;i++){ OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_SELL){ OpenorderBeforLastSell=OrderOpenPrice(); } } return(OpenorderBeforLastSell); }
آخر تعديل بواسطة wahaab ، 18-01-2014 الساعة 09:59 PM
- 18-01-2014, 11:45 PM #4755
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM