النتائج 8,836 إلى 8,850 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 30-01-2018, 08:52 PM #8836
- 30-01-2018, 08:55 PM #8837
- 30-01-2018, 09:21 PM #8838
طيب دقايق وأجهزلك المطلوب أخي أسامة
- 30-01-2018, 09:54 PM #8839
المشكلة أخي أسامة كالتالي :
الكود :
عندي وظيفة خارجية بترسم الأعمدة بالشكل التالي :
كود PHP:void Volume_Bars_Creator()
{
int shift=2;
long VA1;
long VA2;
for(int i=1;i<Number_Of_Bars;i++)
{
VA1=0;
VA2=0;
for(int n=i;n<i+VAPeriod;n++)
{
VA1=Volume[n]+VA1;
}
VA1=VA1/VAPeriod;
VA2=Volume[i];
if(VA2<VA1*0.8) Buff1[shift]=Volume[i];
if(VA2>=VA1*0.8 && VA2<VA1*1.2)Buff2[shift]=Volume[i];
if(VA2>=VA1*1.2 && VA2<VA1*1.5)Buff3[shift]=Volume[i];
if(VA2>=VA1*1.5 && VA2<VA1*2.5)Buff4[shift]=Volume[i];
if(VA2>VA1*2.5) Buff5[shift]=Volume[i];
shift=shift+2;
}
}
كود PHP:int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int shift1=3;
for(int i=1;i<Number_Of_Bars;i++)
{
Buff1[shift1]=0;
Buff2[shift1]=0;
Buff3[shift1]=0;
Buff4[shift1]=0;
Buff5[shift1]=0;
shift1=shift1+2;
}
Volume_Bars_Creator();
}
بالطريقة دي زي الشارتات فوق لما بقفل المنصة وفتحها تاني لو كنت على فريم الدقيقة مثلا هلاقي أعمدة قديمة لان حلقة التصفير بتصفر بس على قد العدد الموجود في الـ Number_Of_Bars
جربت أصفر كل الأعمدة باستخدام Bars :
كود PHP:for(int i=1;i<Bars;i++)
{
Buff1[shift1]=0;
Buff2[shift1]=0;
Buff3[shift1]=0;
Buff4[shift1]=0;
Buff5[shift1]=0;
shift1=shift1+2;
}
arry out of range
مش عارف ليه
فالمشكلة إني عايز لو قفلت المنصة وفتحتها بعد فترة ألاقي بس أعمدة على قد الـ Number_Of_Bars
الكود طويل جدا لكني متأكد إن مافيش أي حاجة تانية متعلقة بالموضوع ده هما بس الوظيفة الخارجية وطريقة التصفير والإستدعاء إلى أرفقتهم فوق يعني المشكلة فيهم مش ببقية الكود أو ممكن مايكنش فيهم غلط المشكلة بالمبدء لو عندك طريقة أفضل للرسم بحيث تأدي المطلوب ياريت
بالإضافة كنت عايز منك بعد إذنك مثال على رسم الترندات في mql5 لاني واجهت مشكلة Price1 و Price2 و Time1 و Time2 غير موجودين زي mql4 فنرسم ترند إزاي باللغة الجديدة
وشكرا مقدما ياغالي
تحياتي
- 30-01-2018, 10:44 PM #8840
الخطأ لديك في كود التصفير لماذا تستخدم قيمة shift1 داخل المصفوفه ولا تستخدم قيمة i مباشرة
سبب الخطأ أنك في مرحلة سوف تصل إلى أن قيمة shift1 سوف تصبح أكبر من أقصى عدد بارات موجوده على الشارت لأنك في كل مرة تقوم بزيادتها بقيمة 2 وهذا خطأ
كود PHP:for(int i=1;i<Bars;i++)
{
Buff1[i]=0;
Buff2[i]=0;
Buff3[i]=0;
Buff4[i]=0;
Buff5[i]=0;
}
- 31-01-2018, 11:27 AM #8841
آسف ماكنتش واخد بالي من الموضوع ده لاني مش برسم الأعمدة تحت الشموع مباشرة في إزاحة زي ماشفت حضرتك
ظبطت التصفير وحاليا تحت التجربة خايف بس يبقى الكود تقيل ويسبب بطئ للمنصة
دلوقتي إن شاء الله مابقاش عندي مشكلة والكود جاهز تسلم إيديك يارب , بس بشكل عام نرجع للمشكلة الأساسية , أنا لو عايز كود معين مايتمش قرائته إلا مع إفتتاح شمعة جديدة أعملها إزاي دي ؟ زي مانتا شفت لما بقفل المنصة وبفتحها تاني هيغلط بحساب الشمعة رقم 0
وباقي بعد إذنك طريقة رسم الترندات في mql5 لاني محتاجه ضروري ومن غيره مش هعرف أعمل نسخة من المؤشر للميتا5
وشكرا مقدما
- 31-01-2018, 03:57 PM #8842
يمكنك تعريف متغير عام من نوع datetime
كود PHP:datetime Time0;
كود PHP:Time0=Time[0];
كود PHP:if(Time0!=Time[0])
{
}
- 31-01-2018, 05:13 PM #8843
سلام عليكم مستر دولار ارجو اعطلاع على هذه المشاركه #8821
- 31-01-2018, 10:01 PM #8844
وعليكم السلام ورحمة الله وبركاته
يمكنك عمل دالة لمعرفة عدد الصفقات المفتوحه الحاليه
كود PHP:int orderstotal()
{
int cnt=0;
for(int i=0;i<OrdersTotal();i++)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber())
{
cnt++;
}
}
return(cnt);
}
كود PHP:if(orderstotal()<MaxOrders)
{
// open order
}
مثال
كود PHP:bool PriceInsideRange()
{
if(MathAbs(Close[0]-open)<=100*Point)
{
return(true);
}
return(false);
}
- 31-01-2018, 10:51 PM #8845
- 01-02-2018, 04:45 PM #8846
- 01-02-2018, 06:07 PM #8847
سلام عيكم مستر دولار فكرة اكسبريت قائمه على المستويات نفسيه يعني 1.20000 او 1.21000 او 1.23000
اي رقم يوجد به اصفار
معرفة الية عمل الاكسبيرت على فرض انا واضع سعر بدية الصفقه وهو في الاعدادات open =1.30000
شرط الشراء :
اذا كان سعر الكلوز 0 اصغر من سعر open و كلوز 0 اصغر من اوبين 0 و tr== true تفعيل امر شراء معلق
ترجمة هذا الشرط
tr== true في الكود اسفل
كود PHP:double cloc44=iClose(Symbol(),PERIOD_H1,0););
double thr=(cloc44-open),thra=MathAbs( thr);
if(thra>=(Limitpip*Point)&&thra<=(((Limitpip+20)*Point)))bool tr=true;
هذا مثال مصوراسفل لعملية الشراء طبعا عكس هاد الكو لي بيع
وشكرا جزيلا
- 04-02-2018, 12:07 PM #8848
السلام عليكم ورحمة الله تعالى وبركاته
تحياتي أستاذ أسامة
حاولت أفهم الكود الي أرفقتهولي حضرتك لكن ماقدرتش اللغة كلها لسه جديدة عليا مش فاهم فيها حاجة
عملت بحث لقيت واحد كاتب عن الموضوع ده هنا :
https://www.mql5.com/en/blogs/post/681230
لكن كمان مش فاهم الأكواد إلي عاملها تتكتب فين وتشتغل إزاي
ياريت ياريس شرح للأكواد دي تشتغل إزاي إن كانت أفضل طريقة ولو في طريقة أفضل من عندك ياريت
It's important that there are no constants such as OBJPROP_TIME1 and OBJPROP_PRICE1 in mql5, and instead of OBJPROP_TIME1, OBJPROP_TIME2, OBJPROP_TIME3 one need to use the single constant OBJPROP_TIME and additional index. Price-related constants changed in the same way. How to emulate this? Well, by objects. Let's define 2 classes for properties of integer and double types (other types you can add yourself).
كود PHP:class OBJPROP_INTEGER_BROKER
{
public:
ENUM_OBJECT_PROPERTY_INTEGER p;
int i;
OBJPROP_INTEGER_BROKER(const ENUM_OBJECT_PROPERTY_INTEGER property, const int modifier)
{
p = property;
i = modifier;
}
};
class OBJPROP_DOUBLE_BROKER
{
public:
ENUM_OBJECT_PROPERTY_DOUBLE p;
int i;
OBJPROP_DOUBLE_BROKER(const ENUM_OBJECT_PROPERTY_DOUBLE property, const int modifier)
{
p = property;
i = modifier;
}
};
OBJPROP_INTEGER_BROKER OBJPROP_TIME1(OBJPROP_TIME, 0);
OBJPROP_DOUBLE_BROKER OBJPROP_PRICE1(OBJPROP_PRICE, 0);
OBJPROP_INTEGER_BROKER OBJPROP_TIME2(OBJPROP_TIME, 1);
OBJPROP_DOUBLE_BROKER OBJPROP_PRICE2(OBJPROP_PRICE, 1);
OBJPROP_INTEGER_BROKER OBJPROP_TIME3(OBJPROP_TIME, 2);
OBJPROP_DOUBLE_BROKER OBJPROP_PRICE3(OBJPROP_PRICE, 2);
Look how constants OBJPROP_TIMEn/OBJPROP_PRICEn "became" the objects storing corresponding index inside. Now we can implement new ObjectSet functions, and pass broker objects as parameters:
كود PHP:bool ObjectSet(const string name, const OBJPROP_INTEGER_BROKER &property, const long value)
{
return ObjectSetInteger(0, name, property.p, property.i, value);
}
bool ObjectSet(const string name, const OBJPROP_DOUBLE_BROKER &property, const double value)
{
return ObjectSetDouble(0, name, property.p, property.i, value);
}
كود PHP:ObjectSet(name, OBJPROP_TIME1, Time[0]);
ObjectSet(name, OBJPROP_PRICE1, price);
ومثال بسيط كده من غير أي شروط ترند يرتسم على لو الشمعة 1 والشمعة 2
وألف شكر ليك ياغالي
- 04-02-2018, 02:11 PM #8849
- 04-02-2018, 05:14 PM #8850
السلام عليكم ورحمة الله وبركاته
جزى الله الإخوة القائمين على هذا الموقع وخصوصاً الأخ مستر دولار
عندي طلب بسيط : كود يقوم بجمع أطوال الذيول العلوية والسفلية (بالنقاط طبعاً) .. ولتكن مجموع الذيول السفلية للشمعات الثلاث السابقة (DN)... ومجموع الذيول العلوية للشمعات الثلاث السابقة يوضع في (UP) .. طبعاً نعلم أنه بعض الشمعات رابحة وأخرى خاسرة وهنا المشكلة ... لذلك أريد كود يقوم بهذه المهمة مع الشكر
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM