النتائج 2,941 إلى 2,955 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 12-10-2012, 03:12 AM #2941
رد:موضوع مخصص للأسئلة البرمجية
وهل كنت تقصد في المشاركه السابقه ان ادمجهم هكذا اولا اضع داخل داله البدايه
كود PHP:LotManage(RiskPercent1);
LotManage(RiskPercent2);
LotManage(RiskPercent3);
LotManage(RiskPercent4);
كود PHP:double LotManage(double riskpercent)
{
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 (MathMin(lot,200));
}
كود PHP:MoveTrailingStop( TrailingStop1);
MoveTrailingStop( TrailingStop2);
MoveTrailingStop( TrailingStop3);
MoveTrailingStop( TrailingStop4);
كود PHP:double MoveTrailingStop(double TrailingStop)
{
double TrailingStep;
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&(OrderMagicNumber()==Magicnumber1||OrderMagicNumber()==Magicnumber2
||OrderMagicNumber()==Magicnumber3||OrderMagicNumber()==Magicnumber4))
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,Digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(Bid-TrailingStop*point,Digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,Digits),OrderTakeProfit(),0,Blue);
return(0);
}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)>(NormalizeDouble(Ask+TrailingStop*point,Digits)))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,Digits),OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
ولكن كيف سيعرف الاكسبيرت اني اريد ان يتاجر 1% لBUY-STOP و 3% ل sell-limit و5% ل sell-stop وهكذا بالنسبه لكود الاستوب االمتحرك كيف سبتعرف على trailingstep لكل امر.
- 12-10-2012, 05:40 AM #2942
- 13-10-2012, 02:43 AM #2943
- 13-10-2012, 02:45 AM #2944
- 13-10-2012, 02:49 AM #2945
نعم صحيح
لكن سوف تجعله بهذا الشكل
كود PHP:double Lot1=LotManage(RiskPercent1);
double Lot2=LotManage(RiskPercent2);
double Lot3=LotManage(RiskPercent3);
double Lot4=LotManage(RiskPercent4);
كود PHP:double MoveTrailingStop(double TrailingStop,int Magic)
{
double TrailingStep;
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,Digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(Bid-TrailingStop*point,Digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,Digits),OrderTakeProfit(),0,Blue);
return(0);
}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)>(NormalizeDouble(Ask+TrailingStop*point,Digits)))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,Digits),OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
- 13-10-2012, 01:45 PM #2946
الله يخيك يامستر دولار شوف موضعي
والله يعلم الله اني محتاج اي مبرمج .. انا انتظرك على احر من الجمر
الله يرحم والديك ويحفظهم باذن الله
في امان الله
- 13-10-2012, 05:19 PM #2947
رد:موضوع مخصص للأسئلة البرمجية
الله يبارك فيك ويجعل علمك كما قال النبي او علم ينتفع به.
بعد التدقيق في التعديل لدي بعض ملاحظات.
الملاحظه الاولى
يرجى التعديل على الاكسبيرت لانه يقوم بحذف الامر المعلق الاخر بمجرد تفعيل الاول ..لكن انا قلت يجب ان تبقى الاوامر المعلقه ختى نهايه الاسبوع وان تفعل الامر الاول.
الملاحظه الثانيه.
كيف اجعل الكود يصل الى المضاعفه الرابعه لكل امر كحد اقصى؟
وماذا تقصد بالرقم 2 في اخر هذا الكود هل عدد المضاعفات ام ماذا؟
كود PHP:int LastOrdertype(){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
int t=OrderType();
if(OrderMagicNumber()==Magicnumber||OrderMagicNumber()==Magicnumber1||OrderMagicNumber()==Magicnumber2&&OrderSymbol()==Symbol()&&OrderType()<=OP_SELL){
return(t);
}
}
return(2);
}
الملاحظه الثالثه
وجدت بعض الاوامر في الاكسيبيرت فهل ترجمتي لهذ الاوامر صحيحه؟
كود PHP:if(MyPendingOrdersTotal(Magicnumber)==1)DeletePendingOrders(Magicnumber);
ولماذا لم تكتبه بهذا الشكل
كود PHP:if(MyPendingOrdersTotal(Magicnumber)==1){ DeletePendingOrders(Magicnumber);}
كود PHP:OrderType()<=OP_SELL
لكن ان كان مكتوب هكذا OrderType()==OP_SELL
هذا معناه اذاكانت الصفقه بيع سواء LIMIT OR STOP
الملاحظه الاخيره
اي الاكواد التي يتم التعديل فيها حسب نوع المضاعفه هل مو كود نوع اخر صفقه او حجم اخر صفقه او عدد الاوامر المعلقه؟
مثال اريد الدخول بعقد شراء وبيع من نقطه ما.... يعني هيدج
وبمجرد ان يصل كلاهما الى 50 نقطه نقفل الربح ويظل الخساره وبنفس اللاحظه نفتح عقدين من نفس نوع العقد المغلق فاذاو صلوا مره اخرى 50نقظه
تقفل الجميع............اما اذا عكسوا ووصلوا الى خساره 50 نقطه نقوم بفتح عقد اخر عكس نوعهم...فاذا واصلوا القدين في الخساره 50 نقطه اضافيه
يقفل الجميع.............ان شاء الله الفكره واضحهآخر تعديل بواسطة al_naser ، 13-10-2012 الساعة 05:40 PM
- 13-10-2012, 11:28 PM #2948
رد:موضوع مخصص للأسئلة البرمجية
الأخوة المبرمجين :
السلام عليكم ورحمة الله وبركاته ...
أرفق إليكم هذا الملف ، المتضمن لإكسبرت ناسخ للصفقات ، ومفتوح المصدر .
وأمل منكم التكرم بالاجابة على هذه الاسئلة :
1 - هل هذا الأكسبرت يعمل بصورة جيدة أم لا ؟ وماهي أفضل طريقة لتشغيله ؟
2 - ماهي عيوب ومميزات هذا الاكسبرت ؟
3 - هل يمكن إستخدام متغير على هيئة مصفوفة ، بدلاً عن الملف المشترك بين الماستر والسليف ، وذلك عن طريق المكتبة Kernel.dll ؟ وكيف ذلك إذا أمكن ؟
وأحسن الله عملكم وبارك فيكم ، ووفقكم لما يرضيه ويرضيكم .
- 14-10-2012, 12:48 AM #2949
- 14-10-2012, 02:28 AM #2950
بالنسبه للنقطة الأولى
في هذه الحاله قد تواجه مشكلة إذا تفعل الصفقتين معا فيجب أن تحدد كيف ستتم المضاعفات
أنا جعلت حذف الأمر المعلق الآخر حتى إذا بدأ الدخول في سلسلة المضاعفات يكون إغلاق الصفقات بشكل صحيح
بالنسبه للداله LastOrderType فهي تعود بالرقم 0 إذا كانت الصفقه شراء والرقم 1 إذا كانت الصفقه بيع
أما ستعود بالرقم 2 إذا لم تكون الصفقه شراء أو بيع ممكن إستبداله بأي رقم آخر المهم حتى أميز نوع الصفقه
بالنسبه للملاحظه الثالثه فسواء وضعت الأقواس {} أو لم تضعها فلن تختلف النتيجه لأن جسد الشرط أو الأمر الذي سينفذ هو أمر واحد أما إذا كان أكثر من أمر فيجب أن تضع الأوامر بداخل الأقواس
الترجمه الثانيه إذا كانت نوع الصفقه أقل من OP_SELL أي أنها ستكون OP_SELL أو OP_BUY
لأن أمر البيع يأخذ الرقم 1 والشراء يأخذ الرقم 0
فإذا قلت أقل من أو تساوي OP_SELL فهذا يعني أنني أقصد رقم 0 و 1 أي البيع والشراء
سوف تضع أوامر الهيدج مع أوامر المضاعفات وسوف تستخدم الداله LastOrderPrice لتحديد فرق النقاط بين آخر صفقه تم فتحها وبين السعر الحالي لتحديد عدد النقاط التي تريد فتح الهيدج عندها
- 14-10-2012, 01:38 PM #2951
من فضلكم اريد كود التعرف على القمه و القاع
جزاكم الله خيرا
- 14-10-2012, 08:16 PM #2952
رد:موضوع مخصص للأسئلة البرمجية
الأخوة المبرمجين
السلام عليكم ورحمة الله وبركاته
أرفق إليكم هذا الملف ، المتضمن لإكسبرت ناسخ للصفقات ، ومفتوح المصدر .
وأمل منكم التكرم بالاجابة على هذه الاسئلة :
1 - هل هذا الأكسبرت يعمل بصورة جيدة أم لا ؟ وماهي أفضل طريقة لتشغيله ؟
2 - ماهي عيوب ومميزات هذا الاكسبرت ؟
3 - هل يمكن إستخدام متغير على هيئة مصفوفة في هذا الاكسبرت ، بدلاً من الملف المشترك بين الماستر والسليف ، وذلك عن طريق المكتبة Kernel.dll أو غيرها ؟ وكيف ذلك إذا أمكن ؟
وأحسن الله عملكم وبارك فيكم ، ووفقكم لما يرضيه ويرضيكم .
- 14-10-2012, 08:29 PM #2953
وعليكم السلام ورحمة الله وبركاته
نعم الإكسبرت يعمل بشكل جيد
بشكل عام عيوب إكسبرتات الناسخه للصفقات هو إختلاف السعر بين البروكر الناسخ والمستقبل بالتالي قد يؤدي إلى إختلاف مناطق الدخول في كل صفقه
الحركة السريعة للعمله قد يؤدي إلى إعادة التسعير وعدم تفعيل الصفقه على أحد البروكرات
يوجد إكسبرتات أخرى تستخدم بدلا من ملف تكست الذي تكتب فيه إسم الصفقه يستخدم ملف الدل لنقل الصفقه مباشرة بشكل عام لا أجد إختلاف في النتيجه بين الإثنين
- 14-10-2012, 08:34 PM #2954
القمه هي التي يكون لها الهاي أكبر من الهاي للشمعه السابقه والهاي للشمعه التاليه
فيكون التعبير لها
مثال لمعرفة آخر قمة متكونه
كود PHP:for(int i=2;i<Bars;i++){
if(High[i]>High[i-1]&&High[i]>High[i+1]){
Top=High[i];
break;
}
}
مثال لمعرفة آخر لو متكون
كود PHP:for(int i=2;i<Bars;i++){
if(Low[i]<Low[i-1]&&Low[i]<Low[i+1]){
Bottom=Low[i];
break;
}
}
- 14-10-2012, 08:36 PM #2955
رد:موضوع مخصص للأسئلة البرمجية
كود PHP:كما قلت الفكره هوفتح اوامر معلقه يوميا عند فتح الساعه 17 ولاتقفل ولا تحذف هذه الاوامر الا نهايه الاسبوع فاذا تفعل امر ما يقوم كود المضاعفات بفتح عقود معاكسه مضاعفه و ان تبقى ايضا الى نهايه الاسبوع فاذا تفعلت هذه العقود المعاكسه يقوم كوذ المضاعفات مره اخرى بفتح عقود معاكسه مضاعفه وهكذا يبقى يضاعف الى ان يصل الى المضاعفه الثالثه او الرابعه او الخامسه حسب تغيرالضبط اوالتحكم في اقصى عدد للمضاعفات.
بمجرد ان يتفعل احد الامرين كما قلت لا نحذف الامر الاخر ولكن اقوم بفتح امرين معلقان معاكسين للامر الذي تفعل على بعد عدد ما من النقاظ فان وصل الامر الى هذيين الامرين وتفعلا اقوم مره
اخرى بفتح ثلاته اوامر معلقه عكس الامرين المعلقيين الاوليين وهذه تكون اخر مضاعفه حتى وان تحرك السعر ضدي لا يقوم بالمضاعفه يعني يصل الى المضاعفه الثالثه فقط...وزهكذ بالنسبه للاا مر
المعلق الاخر الذي فتحته اول مره.ان شاء الله الفكره وضحت
السوال الثاني كيف سيكون الشرط عندما اقول اذا تفعل الامرين المعاكسين للامر الاول وتحرك السعر فوقهما ب 50 نقطه او 50 نقطه تحتهما اغلق جميع الاوامر.
يمكن تعطيني كود LastOrderPrice.
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM