النتائج 1,471 إلى 1,485 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 02-01-2012, 09:31 PM #1471
- 03-01-2012, 08:19 AM #1472
شكرا" اخي اسامه على مساعدتك
واعتذر عن وضع الموضوع في المكان الخاطى
والله الموفق
- 03-01-2012, 02:19 PM #1473
- 06-01-2012, 02:18 AM #1474
الاخ مستر دولار
في هذا الكود:
كود:void CloseSellOrders() { for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol()) { if (OrderType()==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),Ask,3); } } }
سؤال ثاني
في دالة الوقف المتحرك في اكسبيرت السابق ما هو TrailingStep
ايضا لماذا أضفت شرط التحقق من نوع العقد هنا:
كود:{ OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_BUY)
OrderType()<=OP_SELL
صحيح ، أليس معناه أن العقد شراء .
أخيرا
ما هو الفرق بين MoveBreakEven() و دالة الوقف المتحرك
شكرا مسبقاآخر تعديل بواسطة mohammed.elhadi ، 06-01-2012 الساعة 02:21 AM
- 06-01-2012, 04:05 AM #1475
https://forum.arabictrader.com/attac...csar-ea-v2.mq4
في الكود الخاص بالمضاعفة :
for(s=0;s<OrdersTotal();s++)
{
OrderSelect(s,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gicNumber&&OrderType()==OP_SELL)
{
openprice=OrderOpenPrice(); lots=OrderLots();
}
}{
newLot=Multiplier*lots;
if(Bid>=openprice+Step*point&&orderstotal()>=1){
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
OrderSend(Symbol(),OP_SELL,newLot,NormalizeDouble( Bid,digits),3,0,TP,"MR.dollar EA",MagicNumber,0,Red);
}
}
}
- 06-01-2012, 09:15 PM #1476
بالنسبه للسؤال الأول
لا يوجد فرق فقط هو ترتيب للكود فلكل مبرمج طريقة كتابه للكود مختلفه ويراها أسهل وأوضح عند مراجعتها لاحقا إذا أراد التعديل عليه
بالنسبه ل التريلينج ستيب إذا راجعت الكود الخاص بهذا الجزء
كود PHP:if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,digits))
الشرط
OrderType()<=OP_SELL
يعني أن العقد بيع أو شراء فلاحظ يوجد علامة يساوي وهذا حتى نتأكد أن الصفقة ليست أمر معلق
البريك إيفن تقوم بتنفيذ أمر نقل السعر مره واحد فقط فمثلا عند ربح 30 نقطه يتم نقل الأستوب لوز إلى نقطه الدخول فقط ثم يتوقف عملها هنا أما التريلينج ستوب فهو يظل يقدم الأستوب لوز إلى ربح كلما تحرك السعر في إتجاه الصفقه
- 06-01-2012, 09:20 PM #1477
الجزء الأول هو هذا
كود PHP:for(s=0;s<OrdersTotal();s++){
OrderSelect(s,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUY){
openprice=OrderOpenPrice();lots=OrderLots();
}
}
ثم الجزء الثاني
كود PHP:{
newLot=Multiplier*lots;
if(Ask<=openprice-Step*point&&orderstotal()>=1){
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
OrderSend(Symbol(),OP_BUY,newLot,NormalizeDouble(Ask,digits),3,0,TP,"MR.dollar EA",MagicNumber,0,Blue);
}
}
كود PHP:}{
كود PHP:}
{
- 08-01-2012, 07:43 PM #1478
السلام عليكم ورحمة الله وبركاته
اشكر الاخوة على هذا الموضوع الرئع والتفاني الرائع بالمساعدة
ان تكرمتم أنا استخدم آلية المضاعفات عند الستوب لوز وابحث عن آلية أو كود يساعدني بمعرفة التالي:
1- كود يحصي عدد مرات ضرب التيك بروفت بشكل متتالي لنفس العملة والماجيك نمبر ونفس حجم اللوت بحيث ان وصل للعدد (X) المحدد ضمن المعطيات تفتح الصفقة التالية من حجم اول مضاعفه
2- كود يتابع حجم الرصيد ولكن بطريقة لم اعثر عليها بحيث انه يحتفظ بقيمة الرصيد عند افتتاح التداول وليس خلال التداول يعني اني اريد ان يكون مجموع ارباح اليوم فقط 300 بعدها اوقف الاكسبرت
ولكم جزيل الشكر
- 08-01-2012, 10:29 PM #1479
وعليكم السلام ورحمة الله وبركاته
بالنسبه للجزء الأول فيمكنك عمل داله لحساب هذا الأمر بحيث يقوم بالبحث في الصفقات التي أغلقت إذا كانت الصفقه رابحه وحجم اللوت لها مساوي لحجم آخر لوت يقوم بحسابها كمثال
كود PHP:double GetLastLot(){
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
return(OrderLots());
}
}
return(0);
}
int ConsWinsNumber(){
int Number;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderLots()==GetLastLot()&&OrderProfit()>0)
Number++;
else return(Number);
}
}
return(Number);
}
كود PHP:double ProfitToday(){
double P;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderOpenTime()<=iTime(Symbol(),1440,0)){
P+=OrderProfit();
}
}
return(P);
}
- 08-01-2012, 10:40 PM #1480
جازاك الله كل خير على سرعة ردك... لكن لدي استفسار واعذرني وبصراحه انا تلميذك بالبرمجة بطارد مشاركاتك من موضوع لموضوع الله يرزقك الجنة انت وكل الاخوة
استفساري بخصوص الكود الأول انا بدي ياه يكون يحسب من الهستوري عدد X من الصفقات السابقة والعدد X هو متغير انا بحدده من الاعدادات ، انا متأكد انت فاهم علي بس انا بعدني مش فاهم عليك...
الخلاصة انا بهمني انه أوصل لشرط معناه ( اذا ربحت العدد X من الصفقات بشكل متتالي) انفذ موضوع الشرط
وشكرا على الكود الثاني هو المطلوب بالتمام والكمال بس شدلي حيلك وفهمني الاولاني
- 09-01-2012, 12:00 AM #1481
استفسار اخر لو سمحت بالنسبة للكود الأول احنا لازم نبحث بالهستوري صح؟ اذا لماذا استخدمت MODE_TRADES ولم نستخدم MODE_HISTORY
- 09-01-2012, 07:52 AM #1482
الداله الأول ConsWinsNumber سوف تقوم بحساب عدد الصفقات الرابحه المتتاليه بنفس حجم اللوت والماجيك نمبر
فعندما تريد وضع الشرط سيكون كالآتي
كود PHP:if(ConsWinsNumber()>X)
{
// Do something
}
- 09-01-2012, 08:42 AM #1483
جازاك الله كل خير... من الصبح وانا اسوي رفرش للصفحه ما شاء الله عليك وجاري التجربة وانا متأكد انها حتكون ناجحه ان شاء الله
- 09-01-2012, 09:34 AM #1484
السلام عليكم
اخي Mr.Dollar اتمنى تستحملني شوي انا سويت التالي:
عرفت المتغير:
كود PHP:extern int ConsecutiveProfit=3; //اقصى عدد للربح المتوالي
كود PHP:if(ConsWinsNumber()>=ConsecutiveProfit) { تنفيذ الامر; }
بعدين وضعت الدالة لكني عدلت عليها اني مش بحاجه انها تقارن حجم اللوت لان الصفقة ان خسرت مرة اللوت حيتضاعف بينما ان ربح 3 مرات متتالية فهو حيكون بنفس الحجم بشكل طبيعي:
كود PHP:int ConsWinsNumber()
{
int Number;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderProfit()>0)
Number++;
else return(Number);
}
}
return(Number);
}
ولكن لا يوجد نتيجة ، وقمت بعرض الـConsWinsNumber() على التشارت حتى اتابعه اثناء سير التست إلا انه لم يتغير وكان دائما صفر فهل السبب اني عبعمل باك تست؟؟ ولا في خطأ تاني
- 09-01-2012, 03:02 PM #1485
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM