أريد المساعدة عاجل جداًَ !!!
السلام عليكم ورحمة الله وبركاته
أخواني واخواتي الأعزاء
اريد مساعدتي بالتعديل على اكسبيرت تم اخذه من صديق لي وتم التعديل عليه وهو الأن يعمل بكفائة على اليورو دولار على اي شركة لديها GMT+2 ولديها أربع ارقام بعد الفاصلة المهم :-
الطلبات التي اريدها:-
1- اريد كود لكي يعمل على 5 أرقام بعد الفاصلة. (يعمل اتوماتيكياً)
2-أريد كود لكي استطيع تحديد بداية اليوم بدلاً من 00:00 لأن الأكسبيرت يعتمد على الهاي واللوي لشمعة اليوم
هذا هو كود جزئي للأكسبيرت
اقتباس:
double l_ihigh_0 = iHigh("EURUSD", PERIOD_D1, 2);
double l_ilow_8 = iLow(NULL, PERIOD_D1, 2);
double l_iclose_16 = iClose(NULL, PERIOD_D1, 2);
double ld_24 = NormalizeDouble((l_ihigh_0 + l_ilow_8 + l_iclose_16) / 3.0, Digits);
double l_ihigh_32 = iHigh(NULL, PERIOD_D1, 1);
double l_ilow_40 = iLow(NULL, PERIOD_D1, 1);
double l_iclose_48 = iClose(NULL, PERIOD_D1, 1);
double l_price_64 = NormalizeDouble((l_ihigh_32 + l_ilow_40 + l_iclose_48) / 3.0, Digits);
double ld_72 = l_ihigh_32 - l_ilow_40;
double l_iopen_56 = iOpen(NULL, PERIOD_D1, 0);
double l_price_88 = NormalizeDouble(2.0 * l_price_64 - l_ihigh_32, Digits);
double l_price_96 = NormalizeDouble(l_price_64 - (l_ihigh_32 - l_ilow_40), Digits);
double l_price_104 = NormalizeDouble(2.0 * l_price_64 - (2.0 * l_ihigh_32 - l_ilow_40), Digits);
double l_price_112 = NormalizeDouble(2.0 * l_price_64 - l_ilow_40, Digits);
double l_price_120 = NormalizeDouble(l_price_64 + (l_ihigh_32 - l_ilow_40), Digits);
double l_price_128 = NormalizeDouble(2.0 * l_price_64 + (l_ihigh_32 - 2.0 * l_ilow_40), Digits);
واسف لعدم تفرغي هذه الأيام وعدم مشاركتي بشكل فعال وذلك بسبب قدوم امي من ارض الصمود غزة والحمد لله على سلامتها.
وتقبلوا تحياتي
أخوكم حماد حجازي:icon26:
رد: أريد المساعدة عاجل جداًَ !!!
هل طلباتي اصبحت صعبة الأن ؟؟؟؟؟؟
سبحان الله
اتقي شر من احسنت اليه ،،،
رد: أريد المساعدة عاجل جداًَ !!!
اقتباس:
المشاركة الأصلية كتبت بواسطة loveh999
هل طلباتي اصبحت صعبة الأن ؟؟؟؟؟؟
سبحان الله
اتقي شر من احسنت اليه ،،،
صبراً أخي
إن شاء الله سوف تجد من يساعدك
رد: أريد المساعدة عاجل جداًَ !!!
في حل بالنسبة للارقام الاربعه والخمسة الي بعد الفاصلة
مثلا ستوب لوس 50 نقطة تحطها 500 نقطة بحيث تكون 50
مثلا الهدف 100 تحط الهدف 1000 نقطة
وبهذا تقدر تحل مشكله الخمسة ارقام
أخوك عبدالله
رد: أريد المساعدة عاجل جداًَ !!!
اخي الكريم love،، انت عرضت لنا الكود الغير مهم، اذا لا ترغب بعرض الكود كله، فيمكنك ان تعرض الاسطر الاولى فقط لغاية قبل start() ليسهل ما اللذي نريد تغييره
هذه احد الطرق السهلة للتعامل مع الارقام العشرية:
كود:
int init()
{
if (Digits==3 || Digits==5)
{
TakeProfit=TakeProfit*10;
StopLoss=StopLoss*10;
}
}
رد: أريد المساعدة عاجل جداًَ !!!
بالنسبة للطلب الثاني، هل تريد حساب اعلى واقل سعر خلال الـ24 ساعة قبل ساعة تحددها انت؟
مثلاً، اذا حددت الساعة 06:00، سيعطيك اعلى وأقل سعر ما بين الساعة السادسة صباحاً من اليوم السابق حتى الساعة السادسة صباحاً لليوم الحالي
اذا اللذي ذكرته غير صحيح ارجو ان توضح طلبك بدقة
رد: أريد المساعدة عاجل جداًَ !!!
أولاً جزاكم الله خير
اقتباس:
if (l_iopen_56 - l_price_64 <= 0.0014 && l_iopen_56 - l_price_64 > 0.0 && l_price_64 - l_price_104 > 0.0125) return (0);
if (l_iopen_56 > l_iclose_48 && l_iopen_56 - l_iclose_48 >= 0.0014) OrderSend(Symbol(), OP_SELLSTOP, Lot_size, l_iopen_56 - 15.0 * Point, 2, l_price_112, l_iclose_48, "HSH FOR ALL", 32165498, 0, Red);
OrderSend(Symbol(), OP_BUYSTOP, Lot_size, l_price_112, 2, l_price_64 - 15.0 * Point, l_price_120 - 10.0 * Point, "HSH FOR ALL", 32165498, 0, Blue);
هذا كود اخر استاذ صانع القرار وجزاك الله خير
رد: أريد المساعدة عاجل جداًَ !!!
اقتباس:
المشاركة الأصلية كتبت بواسطة صانع قرار
بالنسبة للطلب الثاني، هل تريد حساب اعلى واقل سعر خلال الـ24 ساعة قبل ساعة تحددها انت؟
مثلاً، اذا حددت الساعة 06:00، سيعطيك اعلى وأقل سعر ما بين الساعة السادسة صباحاً من اليوم السابق حتى الساعة السادسة صباحاً لليوم الحالي
اذا اللذي ذكرته غير صحيح ارجو ان توضح طلبك بدقة
هذا ما قصدته بالفعل
مثلاً، اذا حددت الساعة 06:00، سيعطيك اعلى وأقل سعر ما بين الساعة السادسة صباحاً من اليوم السابق حتى الساعة السادسة صباحاً لليوم الحالي
وجزاك الله خير
1 مرفق
رد: أريد المساعدة عاجل جداًَ !!!
هذا هو الأكسبيرت بس ليس كامل أرجوا التعديل عليه
رد: أريد المساعدة عاجل جداًَ !!!
اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب
انا في انتظاركم ،،،
رد: أريد المساعدة عاجل جداًَ !!!
ودي ادخل وساعدك لكن الموضوع اكبر مني
رد: أريد المساعدة عاجل جداًَ !!!
اقتباس:
المشاركة الأصلية كتبت بواسطة loveh999
السلام عليكم ورحمة الله وبركاته
أخواني واخواتي الأعزاء
اريد مساعدتي بالتعديل على اكسبيرت تم اخذه من صديق لي وتم التعديل عليه وهو الأن يعمل بكفائة على اليورو دولار على اي شركة لديها GMT+2 ولديها أربع ارقام بعد الفاصلة المهم :-
الطلبات التي اريدها:-
1- اريد كود لكي يعمل على 5 أرقام بعد الفاصلة. (يعمل اتوماتيكياً)
عندك خيارات هنا: https://forum.arabictrader.com/t69600.html
2-أريد كود لكي استطيع تحديد بداية اليوم بدلاً من 00:00 لأن الأكسبيرت يعتمد على الهاي واللوي لشمعة اليوم
سؤالك غير مفهوم أليست الساعة 00:00 هي بداية اليوم؟
هذا هو كود جزئي للأكسبيرت
من الصعب مساعدتك وأنت تعرض كودا ناقصا وليس عندك المام بالبرمجة فتعرف كيف تسأل. ينبغي أن تسأل سؤالا واضحا محددا وتعرف كيف تقوم بالتعديل بعدما تحصل على الإجابة ما دمت لا تريد عرض الكود كاملا. ثم الكود لإكسبرت واضح أنه كان مغلقا فكسر فهل يليق التكتم الشديد من قبل صديقك على اكسبرت ملطوش؟
واسف لعدم تفرغي هذه الأيام وعدم مشاركتي بشكل فعال وذلك بسبب قدوم امي من ارض الصمود غزة والحمد لله على سلامتها.
قرت عينك
وتقبلوا تحياتي
أخوكم حماد حجازي:icon26:
الأجوبة فوق.
رد: أريد المساعدة عاجل جداًَ !!!
اقتباس:
المشاركة الأصلية كتبت بواسطة vipvip
ودي ادخل وساعدك لكن الموضوع اكبر مني
جزاك الله خير اخي
اقتباس:
المشاركة الأصلية كتبت بواسطة ساق الجواء
الأجوبة فوق.
شكراً لدعمك أخي ولاكن هذا هو الأكسبيرت https://forum.arabictrader.com/attac...41163600-h.mq4
رد: أريد المساعدة عاجل جداًَ !!!
اقتباس:
المشاركة الأصلية كتبت بواسطة loveh999
هذا ما قصدته بالفعل
مثلاً، اذا حددت الساعة 06:00، سيعطيك اعلى وأقل سعر ما بين الساعة السادسة صباحاً من اليوم السابق حتى الساعة السادسة صباحاً لليوم الحالي
وجزاك الله خير
اخي الكريم، القي نظرة على هذا الكود، اذا فهمتك بشكل صحيح فهذا ان شاء الله يفي بالغرض، التغييرات في اللون الاحمر، اما اللون الازرق فهي الوظيفة لحساب high, low, close, open لليوم السابق واليوم اللذي قبله.
كود:
int day00hour=6;
int start()
{
double l_ihigh_0 = GetRate('H',2);
double l_ilow_8 = GetRate('L',2);
double l_iclose_16 = GetRate('C',2);
double ld_24 = NormalizeDouble((l_ihigh_0 + l_ilow_8 + l_iclose_16) / 3.0, Digits);
double l_ihigh_32 = GetRate('H',1);
double l_ilow_40 = GetRate('L',1);
double l_iclose_48 = GetRate('C',1);
double l_price_64 = NormalizeDouble((l_ihigh_32 + l_ilow_40 + l_iclose_48) / 3.0, Digits);
double ld_72 = l_ihigh_32 - l_ilow_40;
double l_iopen_56 = iOpen(Symbol(), PERIOD_H1, 0);
double l_price_88 = NormalizeDouble(2.0 * l_price_64 - l_ihigh_32, Digits);
double l_price_96 = NormalizeDouble(l_price_64 - (l_ihigh_32 - l_ilow_40), Digits);
double l_price_104 = NormalizeDouble(2.0 * l_price_64 - (2.0 * l_ihigh_32 - l_ilow_40), Digits);
double l_price_112 = NormalizeDouble(2.0 * l_price_64 - l_ilow_40, Digits);
double l_price_120 = NormalizeDouble(l_price_64 + (l_ihigh_32 - l_ilow_40), Digits);
double l_price_128 = NormalizeDouble(2.0 * l_price_64 + (l_ihigh_32 - 2.0 * l_ilow_40), Digits);
}
double GetRate(int type, int shift)
{
double rates[48][6],dayhigh[24],daylow[24];
int i=0,j=0,h1=0,h2=0;
if (shift==1)
{j=0;h1=0;h2=24;}
if (shift==2)
{j=24;h1=24;h2=48;}
if (Hour()==day00hour){
ArrayCopyRates(rates,Symbol(),PERIOD_H1);
for (i=h1;i<=h2;i++)
dayhigh[i-j]=rates[i][3];
for (i=h1;i<=h2;i++)
daylow[i-j]=rates[i][2];
switch(type) {
case 'H' : return(dayhigh[ArrayMaximum(dayhigh)]);
case 'L' : return(daylow[ArrayMinimum(daylow)]);
case 'C' : if(shift==1)return(rates[1][4]);
if(shift==2)return(rates[24][4]);
case 'O' : if(shift==1)return(rates[24][1]);
if(shift==2)return(rates[48][1]);
default : return(0);
}
}
}
بالتوفيق
رد: أريد المساعدة عاجل جداًَ !!!
اقتباس:
المشاركة الأصلية كتبت بواسطة صانع قرار
اخي الكريم، القي نظرة على هذا الكود، اذا فهمتك بشكل صحيح فهذا ان شاء الله يفي بالغرض، التغييرات في اللون الاحمر، اما اللون الازرق فهي الوظيفة لحساب high, low, close, open لليوم السابق واليوم اللذي قبله.
كود:
int day00hour=6;
int start()
{
double l_ihigh_0 = GetRate('H',2);
double l_ilow_8 = GetRate('L',2);
double l_iclose_16 = GetRate('C',2);
double ld_24 = NormalizeDouble((l_ihigh_0 + l_ilow_8 + l_iclose_16) / 3.0, Digits);
double l_ihigh_32 = GetRate('H',1);
double l_ilow_40 = GetRate('L',1);
double l_iclose_48 = GetRate('C',1);
double l_price_64 = NormalizeDouble((l_ihigh_32 + l_ilow_40 + l_iclose_48) / 3.0, Digits);
double ld_72 = l_ihigh_32 - l_ilow_40;
double l_iopen_56 = iOpen(Symbol(), PERIOD_H1, 0);
double l_price_88 = NormalizeDouble(2.0 * l_price_64 - l_ihigh_32, Digits);
double l_price_96 = NormalizeDouble(l_price_64 - (l_ihigh_32 - l_ilow_40), Digits);
double l_price_104 = NormalizeDouble(2.0 * l_price_64 - (2.0 * l_ihigh_32 - l_ilow_40), Digits);
double l_price_112 = NormalizeDouble(2.0 * l_price_64 - l_ilow_40, Digits);
double l_price_120 = NormalizeDouble(l_price_64 + (l_ihigh_32 - l_ilow_40), Digits);
double l_price_128 = NormalizeDouble(2.0 * l_price_64 + (l_ihigh_32 - 2.0 * l_ilow_40), Digits);
}
double GetRate(int type, int shift)
{
double rates[48][6],dayhigh[24],daylow[24];
int i=0,j=0,h1=0,h2=0;
if (shift==1)
{j=0;h1=0;h2=24;}
if (shift==2)
{j=24;h1=24;h2=48;}
if (Hour()==day00hour){
ArrayCopyRates(rates,Symbol(),PERIOD_H1);
for (i=h1;i<=h2;i++)
dayhigh[i-j]=rates[i][3];
for (i=h1;i<=h2;i++)
daylow[i-j]=rates[i][2];
switch(type) {
case 'H' : return(dayhigh[ArrayMaximum(dayhigh)]);
case 'L' : return(daylow[ArrayMinimum(daylow)]);
case 'C' : if(shift==1)return(rates[1][4]);
if(shift==2)return(rates[24][4]);
case 'O' : if(shift==1)return(rates[24][1]);
if(shift==2)return(rates[48][1]);
default : return(0);
}
}
}
بالتوفيق
جزاك الله خير كمل جميلك وادمجه مع الاكسبيرت بالأضافة خليه يشتغل على 5 ارقام بعد الفاصلة
من هنا الأكسبيرت https://forum.arabictrader.com/attac...41163600-h.mq4
وشكراً لدعمك المستمر