النتائج 5,851 إلى 5,865 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 22-08-2014, 10:04 PM #5851
السلام عليكم جميع مبرمجين وزوار المنتدى
قمت بعمل اكسبيرت للبريك ايفن
وهو لعمل بريك ايفن مرة واحدة
واريد اضافة كود لجعل البريك ايفن يحدث اكثر من مرة مع تحرك السعر
الرجاء المساعدة بارك الله فيكم جميعا
كود PHP:extern int Breakeven_Pips = 5; // عدد النقاط التي سيعمل عندها البريك ايفن
extern int Magic_Number = 123456;
//متغير قيمة النقطة
double T;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
double Ticksize = MarketInfo (Symbol(),MODE_TICKSIZE); //كود حساب قيمة النقطة
if(Ticksize == 0.00001 || 0.001)
T = Ticksize*10;
else
T = Ticksize;
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(Breakeven_Pips > 0)BreakEven(); //--- استدعاء دالة البريك ايفن
}
//+------------------------------------------------------------------+
void BreakEven() //---وظيفة لتحريك البريك ايفن
{
for(int b = OrdersTotal()-1; b >= 0; b--) // حلقة تكريرية للبحث عن الصفقات المطلوبة
{
if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES)) // البحث في الصفقات المفتوحة
if(OrderSymbol()== Symbol()) // البحث عن زروج العملات المشغل علية الاكسبيرت
if(OrderMagicNumber()== Magic_Number) // لها نفس المجك نمر للاكسبيرت
if(OrderType()== OP_BUY) // البحث في صفقات اشراء
if(Bid-OrderOpenPrice() > Breakeven_Pips*T) // اذا كان السغر اكبر من عدد نقاط تحريك البريك
if(OrderOpenPrice() > OrderStopLoss()) // نتاكد من عدم عمل بريك ايفن من قيل
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,CLR_NONE); //-امر مودي فاي بريك ايفن
}
for(int i = OrdersTotal()-1; i >= 0; i--) // حلقة تكريرية للبحث عن الصفقات المطلوبة
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // البحث في الصفقات المفتوحة
if(OrderSymbol()== Symbol()) // البحث عن زروج العملات المشغل علية الاكسب
if(OrderMagicNumber()== Magic_Number) // لها نفس المجك نمر للاكس
if(OrderType()== OP_SELL) // البحث في صفقات البيع
if(OrderOpenPrice()-Ask > Breakeven_Pips*T) // اذا كان السغر اكبر من عدد نقاط تحريك البر
if(OrderOpenPrice() < OrderStopLoss()) // نتاكد من عدم عمل بريك ايفن من قيل
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,CLR_NONE); //-امر مودي فاي بريك ايفن
}
}
- 24-08-2014, 01:04 AM #5852
وعليكم السلام ورحمة الله وبركاته
البريك إيفن وظيفته يحدث مره واحده فقط كما ذكرت أما ما تريده فهو التريلينج ستوب وهذا كوده
مثال
كود PHP:void MoveTrailingStop()
{
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
bool select=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask,Digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(Bid-TrailingStop*point,Digits))||(OrderStopLoss()==0))
{
bool action=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,Digits),OrderTakeProfit(),0,Blue);
}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid,Digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)>(NormalizeDouble(Ask+TrailingStop*point,Digits)))||(OrderStopLoss()==0))
{
action=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,Digits),OrderTakeProfit(),0,Red);
}
}
}
}
}
}
- 24-08-2014, 01:06 AM #5853
- 24-08-2014, 07:59 PM #5854ارجوا منك تعديل المؤشر لكى لا يظهر اى سهم الا فى حاله ضرب الهدف او الاستوب 10 نقاط
بمعنى اذا اكتملت شروط الشراء ورسم السهم ... لا يرسم سهم اخر سواء سهم صاعد او هابط
الا بعد ان يضرب الهدف 10 نقاط او استوب 10 نقاط
وبدلا من ذلك اذا تحققت الشروط ولم يكن قد حقق الهدف او الاستوب يرسم
(علامه اكس خضراء لاشاره الشراء وعلامه اكس حمراء لاشاره البيع)
وارجوا الا اكون قد خالفت قواعد الموضوع بطلب التعديل
ولكنى لم اطلب الا بعد استنفاذ كل المحاولات الممكنه لتعديله بنفسى
تحياتى
- 24-08-2014, 11:23 PM #5855
بارك الله فيك مستر دولار
- 25-08-2014, 11:23 AM #5856
- 27-08-2014, 03:21 PM #5857
- 29-08-2014, 11:55 AM #5858
- 29-08-2014, 03:46 PM #5859
جمعه مباركه باشمهندس أسامه ..
هم أربع شروط وكل داله تبحث عن تحقق شرط في خمس شمعات سابقه ;
- تقاطع الموفينج 4 مع منتصف البولنجر لأعلى ..
- مؤشر القوة النسبيه يقطع مستوى ال50 لأعلى ..
- تكون نقطة بارابوليك اسفل الشمعة ..
- تخترق شمعه منتصف البولنجر ..
و العكس في السهم الأحمر .
- 30-08-2014, 01:00 PM #5860
السلام عليكم الاخوة الكرام
عندى سؤال برمجى
فى المرفقات مؤشر الماكد
كيف يتم عمل تغير لون بار المؤشر عندما يكون اكبر من صفر يكون لونه اخضر وتحت الصفر يكون احمر
ولكم الشكر والتقدير
- 31-08-2014, 12:51 AM #5861
طيب سآخذ دالة واحده فقط كمثال دالة تحقق شرط الآر إس آي
كود PHP:bool rsi(int shift){
bool CASE;
for(int i=shift;i>shift-5;i--){
double rsi1=iRSI(NULL, 0, 14, PRICE_CLOSE,i);
double rsi2=iRSI(NULL, 0, 14, PRICE_CLOSE,i+1);
if(rsi2<50 && rsi1>50){CASE=true;}
else if(rsi2>50 && rsi1<50){CASE=false;}
}
return(CASE);
}
سوف تجعل الشروط
كود PHP:bool rsi(int shift){
bool CASE;
for(int i=shift;i>shift-5;i--){
double rsi1=iRSI(NULL, 0, 14, PRICE_CLOSE,i);
double rsi2=iRSI(NULL, 0, 14, PRICE_CLOSE,i+1);
if(rsi2<50 && rsi1>50){return(true);}
else if(rsi2>50 && rsi1<50){CASE=false;}
}
return(CASE);
}
- 31-08-2014, 01:00 AM #5862
سوف تقوم بعمل مخزن آخر buffer ويكون لكل مخزن لون محدد فإذا كانت قيمة الماكد أكبر من صفر سوف يأخذ المخزن الأخضر مثلا هذه القيمه ويصبح المخزن الثاني يساوي صفر
وإذا كانت القيمة الماكد أصغر من صفر سوف يأخذ المخزن الأحمر هذه القيمه ويصبح المخزن الأخضر يساوي صفر
مثال راجع المؤشر المرفق
- 31-08-2014, 03:09 AM #5863
السلام عليكم و رحمة الله وبركاته
اخي و استادي الفاضل لي طلب و اتمنى ان تساعدني فيه و هو :
كيف استطيع ان اجعل الاكسبرت يفتح مجموعة من الصفقات لكن بالترتيب التالي:
عند ظهور الاشارة المعتمدة يفتح ثلات صفقات مثلا
buy 1
buy 2
buy 3
ثم يتوقف و ينتظر ظهور الاشارة مرة اخرى و يفتح :
buy 4
buy 5
buy 6
ثم يتوقف و ينتظر ظهور الاشارة مرة اخرى و يفتح :
buy 7
buy 8
buy 9
ثم يتوقف و ينتظر ظهور الاشارة مرة اخرى و يعيد الكرة من جديد اي يفتح :
buy 1
buy 2
buy 3
* و ان يكون لكل صفقة ماجين نامبر خاص بها
فالكسبرت الدي صنعته لم استطع جعله يفتح الصفقات بهدا الترتيب فيقوم بفتحها كلها عند ظهور الاشارة اول مرة :buy 1-buy 2-buy 3-buy 4-buy 5-buy 6-buy 7-buy 8-buy 9
اتمنى من كل قلبي ان تتكرم علي بالحل
ونفعنا الله بعلمك وشكرا...آخر تعديل بواسطة brahimoooo ، 31-08-2014 الساعة 03:15 AM
- 31-08-2014, 04:40 AM #5864
شكرا أستاذ أسامه
و جزاك الله كل خير
بدأ يرسم السهم حسب الشروط و لكن بعض الأحيان لا يرسم السهم رغم توفر الشروط و أحيانا يرسمه متأخر قليلا و يقوم بتكرير الأسهم الحمراء كثيرا و الحمراء فقط !!
حاولت ان أجعل الداله هكذا
كود PHP:bool rsi(int shift){
for(int i=shift;i>shift-5;i--){
double rsi1=iRSI(NULL, 0, 14, PRICE_CLOSE,i);
double rsi2=iRSI(NULL, 0, 14, PRICE_CLOSE,i+1);
if(rsi2<50 && rsi1>50){return(true);}
else if(rsi2>50 && rsi1<50){return(false);}
break ;
}
return(-3);
}
- 31-08-2014, 11:19 AM #5865
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM