وعليكم السلام
يمكنك معرفة توقيت اخر تقاطع للموفينجين متوافق مع شرط الموفيج بآخر شمعة مغلقة حسب الفريم كالتالي:
مثال :
ثم فرق التوقيت كالتالي :
عرض للطباعة
وعليكم السلام
يمكنك معرفة توقيت اخر تقاطع للموفينجين متوافق مع شرط الموفيج بآخر شمعة مغلقة حسب الفريم كالتالي:
مثال :
ثم فرق التوقيت كالتالي :
السلام عليكم اخي حسن
كنت عاوز اعرف اذاي اضييف مؤشر خارجي الي الاكسبيرت بعد التحديثات الاخيرة .. لأني لما جيت اضيف مؤشر عن طريق الالوان لم يعمل ؟؟
وهل هناك طرق اخري لإضافة مؤشر غير استخدام الوان الخطوط الموجودة بالمؤشر ؟؟
وسؤال اخير استاذ حسن كيف اقوم بتغيير مدخلاته الافتراضية ؟؟
ولك جزيل الشكر
السلام عليكم اخي حسن
شكرا علي مجهودك الكبير في مساعدتنا في مجال البرمجة
عاوز اعرف هل ممكن اعمل اكسبيرت يعتمد علي مناطق العرض و الطلب
بيتم تحديد المناطق مثلا بطريقة معينة...يعني في قاعدة ثابتة لتحديد هذة المناطق
هل يمكن تحديدها و التداول عليها و تحديد امتي ادخل و امتي اخرج مناطق زي في الشارت هكذا
بسألك علي المبدأ نفسه بما ان المناطق تاريخية (يعني تكونت سابقا منذ فترة ) زي اللي معمول عليها دائرة
https://d.top4top.net/p_9745on221.png
سلام عليكم فضلا وليس امرا اريد دالة حتى يعمل الاكسبيريت على الحسابات الديمو فقط ولا يعمل على الحسابات الحقيقية اطلاقا
اخي الفاضل ارجو المساعدة
ابحث عن كود يعرف الاكسبرت , من خلاله الصفقة رابحة او خاسرة
بغض النضر على البرمجه الخاصه هل تستطيع برمجتها ؟
انا قصدت بالبرمجه الخاصه هو صعوبه برمجتها و الوقت التي ستاخده و بالتالي قد يرفض طلب البرمجه في القسم العام على هدا الاساس ليس إلا٠
السلام اخي الكريم حسن ,
اعرف اخي ان هذا الموضوع مخصص للاسئلة البرمجية ,هذا الاكسبيرت المرفق ,فقط اتدرب عليه لا غير .
اولا اريد ان اعرف ,اذا سمحت, الفرق بين input و extern . لاني استعين بموقع للبرمجة , ولاحظت ان الكود مختلف شيئا ما عن ما تكتبه انت.
ثانيا لم اتوفق في اضافة دالة المضاعفة حيث لم اعرف المكان الذي يجب علي وضعها فيه و كذلك الشروط .
اذا تكرمت اخي ان تصحح لي الاخطاء , لانه فيه 6 انظارات ثم تضيف اليه دالة المضعفات بالضرب . و الشروط كالتالي : اذا اغلقة الصفقة على ربح , تفتح الصفقة الموالية بنفس اللوت , اما اذا اغلقت على خسارة فتضاعف حتى تربح او يصل عدد الصفقات الخاسرة على التوالي (5) فتعود للوت الاول .
شكرا اخي الكريم.
أعلم والرد كان واضح، اختصاصي فقط لغة mql4
وعليكم السلام
استخدم الشرط التالي ببداية عمل الدالة الرئيسية OnTick
السلام عليكم
الدالة التالية تعود بقيمة ربح آخر صفقة مغلقة:
وعليكم السلام
هذا على حسب معادلة العرض والطلب الغير ثابثة، فهناك من يعتمد على الزيجزاج ومنهم من يعتمد على عدد الشموع أو معادلة رياضية وهكذا...
المهم تستخدم تلك الدالة مباشرة بالاكسبيرت أو تستخرج قيمة المستطيل التي يعتمدها المؤشر باستخدام الوظيفة :
وعليكم السلام
راجع المشاركة التالية:
https://www.fxprg.com/vb/showthread.php?t=31457&page=74&p=874388&viewfull=1 #post874388
السلام عليكم أخ حسن
هل الكود هذا صحيح حيث ابغى عندما يتحقق هدف الشراء يدخل شراء , وعندما يتحقق هدف البيع يدخل بيع
عندما يضرب وقف الشراء يدخل شراء, وعندما يضرب وقف البيع يدخل بيع
تسلم اخي حسن
جزاك الله كل خير .. بس كده مش هقدر اغير في متغيرات المؤشر ؟؟ يعني هعتمد على متغيراته الافتراضية والا ايه ؟؟
السلام عليكم.
الاخوان المنخرطين في هذا المنتدى ,لماذا لا احد يشارك تجاربه البرمجية و التداولية على صفحة المنتدى في الفايس بوك؟؟؟؟؟
https://www.facebook.com/fxprg/
هكذا ستعم الفائدة اكثر و نستفيد من تجارب بعضنا البعض.
شكرا
إذا كان المؤشر من نوع أندكس ستكتب بدالة المؤشر المتغيرات تباعا بعد اسمه
مثال نفترض انه لدينا مؤشر باسم Arrow به متغيرين period و alert، ستكون دالة أندكس الـ 0 كالتالي:
بحيث period و alert متغيرين خارجيين كالتالي :
أما إذا كان المؤشر من نوع أوبجكت ستضع المؤشر على الشارت به إعداداتك الخاصة، والاكسبيرت يستطيع قرائتها مباشرة من خلال الوظيفة ObjectGet
بالتوفيق إن شاء الله
وعليكم السلام
جرب التالي:
مشكور جدا اخ حسن على المجهود العظيم
وبعد ان أعطيتنى هذا الكود تم اضافتة على الكسبرت أرجوا الأطلاع علية وعلى شروط( )void Buy و ()void Sell وهل هى صحيحة
وفقكم الله
جزاك الله خيرا عنا اخي حسن
بالتوفيق ان شاء الله
نعم صحيح ويمكنك التجربة للتأكد من صحة الشروط
بالتوفيق ان شاء الله
السلام عليكم استاذي
كنت عاوز اسأل حضرتك .. هل لو عملت اكسبيرت يشتغل حسب افتتاح واغلاق الشموع ممكن يشتغل علي شارت الرينكو .. والا شموع الرينكو لها برمجة مختلفة ؟؟؟ خاصة وان الشارت بيكون اوف لاين
ولك جزيل الشكر
وعليكم السلام
نعم ممكن، فلا يوجد اختلاف بينهما
السلام عليكم ورحمة الله وبركاته
أخي حسن
إذا أردنا معرفة أعلا سعر في عدد من الشموع فأننا نستخدم iHighest
ولكن أنا أريد معرفة أعلا إفتتاح أو إغلاق في مجموعة شموع فما هي الدالة المناسبه لذلك ؟
وعليكم السلام
كالتالي:
تسلم والله يعطيك العافية
السلام عليكم,
أنا عم حاول اعمل اكسبيرت مبدؤه انو لما يفتح صفقات لازم يتم يزيد على اللوت لحتى يكون مجموع كل الصفقات المغلقة على ربح اعلى من ال AccountBalance يلي بلشنا فيه قبل فتح الصفقات, و بس يكون حاصل الصفقات المغلقة صار رابح , بدي الاكسبيرت يبلش من اول و جديد باللوت الاساسي المحدد له.
مثال:
حساب فيه 100 دولار قبل فتح اي صفقة,
الصفقة الاولى شراء بلوت 0.01 اغلقة على خسارة 1 دولار,
الصفقة الثانية بيع بلوت 0.02 اغلقة على خسارة 2 دولار,
الصفقة الثالثة شراء بلوت 0.03 اغلقة على ربح 5 دولار,
الحساب صار رابح و فيه الان 102 دولار و الصفقة الرابعة لازم تفتح بلوت 0.01
المشكلة لما حاول جمع ارباح الصفقات المغلقة ما عم لاقي طريقة خلي اللوت يبلش من اول و جديد على اللوت الاساسي بعد الربح,
هاي الدالة يلي عم استخدمها لحساب الارباح من الخسائر
و هذه الطريقة يلي جربتها مشان اجدد اللوت بعد الربح , بس ما شتغلة لان بعد الربح الاكسبيرت تم عم يزيد على اللوت
بالنهاية انا ما عندي خبرة كتير بالبرمجة بس عم حاول, بس اذا في مجال انك تعدل على الاكواد السابقة, او تدلني على دالة جديدة, او حتى بتعلمني كيف حقق مطلبي, انا بكون ممنونك كتير يا استاذ حسن و الله يجعله بميزان حسناتك و يوفقك.
وإياك أخي الكريم
وعليكم السلام
أخي الكريم ماذا تعني بكلمة "بلش"! ارجو الكتابة بالعربية الفصحى قدر الامكان
تلك الدالة تحسب إجمالي الصفقات المغلقة دون اعتبار البالنس
عموما حسب ما فهمت انك تريد كلما زاد البالنس بربح محدد بالاعدادات يتم البدء من جديد باللوت الأساسي وهكذا كل ربح بالبالنس ، تمام ؟
إذا كان كذلك فيجب ان تستخدم دوال الجلوبال لحفظ قيمة البالنس ، وبعد تحقيق الربح المطلوب يقوم مرة أخرى بحفظ البالنس الجديد، ومع كل حفظ يتم الدخول باللوت الأساسي
مثال :
يمكنك مراجعة شرح حول دوال الجلوبال على الرابط التالي :
Global Variables
شكرا حسن ،،، و لا تؤاخذني على الشرح باللغة العربية العامية (معنى بلش = بداء )....
بالعموم انت فهمتني صح ، بس ما قدرة اطبق شرحك بس انا كمان رح حاول اكتر اذا ما مشي الحال معي من بعد اذنك سوف اطلب المساعدة مرة اخرى. و مرة ثانية شكرا حسن و الله يوفقك على اعمالك الطيبة.
بالتوفيق إن شاء الله
السلام اخي الكريم حسن ,
حاولت لكن لم اتوفق في اضافة دالة المضاعفة حيث لم اعرف المكان الذي يجب علي وضعها فيه و كذلك الشروط .
اذا تكرمت اخي ان تصحح لي الاخطاء , لانه فيه 6 انذارات ثم تضيف اليه دالة المضعفات بالضرب . و الشروط كالتالي : اذا اغلقة الصفقة على ربح , تفتح الصفقة الموالية بنفس اللوت , اما اذا اغلقت على خسارة فتضاعف حتى تربح او يصل عدد الصفقات الخاسرة على التوالي (5) فتعود للوت الاول .
شكرا اخي الكريم.
extern int MagicNumber=1;
extern double Lots =0.01;
extern double StopLoss=20;
extern double TakeProfit=20;
extern int TrailingStop=0;
extern int Slippage=3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
if((Open[0]<Close[1])) // Here is your open buy rule
{
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage ,0,0,"essai1",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(TheStopLoss,Digits),NormalizeDouble(TheTa keProfit,Digits),0,Green);
}
return(0);
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyP oint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
معذرة ,لم اعرف كيفية كتابة الكود بالشكل الصحيح , رغم اني اعمل نسخ ولسق , لكن يطبع بذاك الشكل!!!!!!؟
السلام عليكم استاذ حسن
كيف اجعل الاكسبيرت يدخل باكبر لوت يسمح به الرصيد
مشكور جدا اخ حسن
سلام عليكم اخ حسن
كيف اعرف قيمة اخير تقاطع لي استوكاستك في حال تقاطع كان شراء ام بيع وشكرا
اي السعر عندتقاطع في شمعه 1