ما تطلبه لا يمكن.
Printable View
صباح الخير
اليوم خطرت لي فكره لكنني لم اعرف كيف انفذها برمجياً يرجى المساعده بتطبيق هذه الفكرة بشكل فونكشن
اتمنى استطيع توضيح الفكرة
الملف المرفق 545964
عندما ادخل الصفقة رقم 1 هدفي 10 نقاط الى 20 نقطة على حسب السوق
عكس علي السعر دخلت صفقه رقم 2 هدفي هنا تحدده الفونكشن التي سوف استدعيها بعد قليل بوضحها
طيب السعر استمر بالهبوط دخلت شراء رقم 3 سحبني اكثر دخلت 4 و 5 و 6
الأن بعد الصفقة رقم 6 لو ارتفع السوق فوق رقم الصفقة 3 سوف نجد انه الحساب حقق ربح مع انه الصفقة 1 و 2 خسرانه
هذا شي معروف .. الأن دور الفونكشن كالتالي
1- بتاخذ بارمتر بمرر فيه عدد النقاط التي اريد تحققيها
2- لو كان البارمتر 0 لاتعمل هذه الفونكشن لو اكبر من ذلك فرضاً 10 هذا يعني اريد ان اخرج بربح 10 نقاط بمعنى مجموع الصفقات يحققون لي ربح ماهو مقداره 10 نقاط
3- لحساب عدد النقاط هو حسب لوت الصفقة رقم 1 فرضا لوت كان 0.10 تقوم الفونكشن بحساب الارباح المحققه من الصفقات التي حققت ربح
هل هي فعلا قامت بتحقيق ربح يقدر بـ 10 نقاط او لا يعني قامت بتعويض الصفقات الخسرانه + حققت ربح يقدر بالرقم الذي مررته لي هو 10 نقاط او ممكن بمرر 20 .. الخ
4- فرضا اريد الخروج بربح 10 نقاط الفونكشن قلنا تخرج عند تحقيق الرقم + تعويض الكومشن الذي تم سحبه بكل الصفقات + تعويض السبريد بكل الصفقات بحيث بالنهايه تخرج فعلاً على ربح صافي :0031:
5- تقوم الفونكشن بنقل اهداف جميع الصفقات المفتوحه على الزوج الحالي الى نقطة تحقق فيها هدف بعدد النقاط الذي مررته للفونكشن
6- بمجرد الوصول للهدف تغلق جميع الصفقات على الزوج الحالي
7- تضع خط على الشارت بحيث توضح لي هذه النقطة التي سوف تخرج من السوق بحيث اقدر اميزها بالعين بسرعه
الفكرة تشبه بريك ايفن لكن بريك ايفن يخرجك على نقطة تعادل لكن انا اريد اخرج على ربح مقدر بالنقاط
حيث اذا دخلت بنقطة دعم او مقاومة قويه وعكس علي السعر بدخل من مناطق ثانيه
ليس شرط اني بحقق هدف الصفقة الاولى لانه الصفقة الثانية ممكن تحقق ربحها لي هو 10 نقاط او 20 نقطة + تعوض خساره الصفقة الاولى
السعر سحبني اكثر ودخل من مستوى قوي بحجم لوت اكبر او بعده صفقات بنفس حجم لوت من مناطق متقاربه بمجرد مايصعد السوق ويحقق ارباح يعوض كل خسارتي
بعتذر على الاطاله
لله الحمد وجدت مؤشر نفس الفكرة بالضبط يظهر لك خط تخرج عند نقطة التعادل
كل ماتفتح صفقه غير الفريم ورجع بحيث يتحدث الخط لانه يبقى ثابت
اذا ممكن احد يعدل عليه بحيث يضع الخط عند ربح عدد معين من النقاط وليس نقطة التعادل + تعويض الكومشن + تعويض السبريد
بحيث اذا وصل السعر للخط المرسوم تكون خرجت بربح وصبرك على الصفقه ماراح بلاش :0031:
السلام عليكم
الرجاء المساعده بداله تعمل الاتى كما فى الصوره
فى الصور خط عمودى رقم 1 وخط اخر عمودى 2
المسافه بين خطين معلومه
اريد رسم خط عمودى رقم 3 فى المستقبل يبعد عن الخط رقم 1 مسافه متساويه مع المسافه المعلومه
السلام عليكم
استاذى الفكره عمل ترند فى المستقبل عكس الترند الموجود
بمعنى اخر ان اعلى نقطه في موجوده في خط عمودى رقم 1
وصلها اقل نقطه في خط عمودى رقم 2
ترند OBJ_TREND
يبقى كده مثلث 90 درجه
هنعمل مثلث معكوس في المستقبل
اذا السعر اخترق الترند المستقبل دخول صفقه هى دى الفكره
دي بعض محاولات الفاشله
انا استخدم الوقت
جمع الوقت وطرحه مش كل مره تكون تمامكود PHP:
(iTime(NULL,0,1)-iTime(NULL,0,2)+iTime(NULL,0,1))
لم تنجح
كما عدد الشموع النتيجه فى بعض الاحيان تكون بالسالب
لم تنجحكود PHP:
iBarShift(NULL,0,iTime(NULL,0,1))
iBarShift(NULL,0,iTime(NULL,0,2))
في بعض الاحيان تكون ناجحه على زوج
وزوج فاشله
بالنسبه لعدد الشموع او الوقت
اي شى ممكن توصلني الهدف بتاعك
كيف اجيب السعر الحاليه على ترند؟ شاكر ليك استاذى
السلام عليكم
بعد ما عرفت ان الحساب الوقت يحسب الايام الاجازات اذن الحساب بعدد الشموع هو الافضل
المشكله ان الشموع فى المستقبل بتكون بالسالب ولكن عند استدعاء الوقت بعدد سالب لا ينجح رسم خط عمودى
يكون الناتج هو
00:00:00 1970.01.01
هل يوجد حل للمشكله دى؟
كيف استعلم عن السعر الحاليه على ترند؟
السلام عليكم
مستر دولار والاخوه المبرمجين مطلوب داله اذا كانت الصفقات اكبر من صفر
تبحث عن الصفقات المغلقه من نوع شراء وتخلى امر معلق باي لمت على نفس سعر فتح الصفقه المغلقه ونفس حجم الللوت
تبحث عن الصفقات المغلقه من نوع بيع وتخلى امر معلق سل لمت على نفس سعر فتح الصفقه المغلقه ونفس حجم الللوت
ينتهي عمل الداله عند عدد الصفقات المفتوحه يساوي صفر
ويبداء عمله من جديد عند اغلاق صفقه جديده مع العلم الصفقات كثيره وقد يعلق كثير من الصفقات
ولكم جزيل الشكر
او يخليها امر مباشر عند تحقق الشرط
السلام عليكم
كيف اتغلب على اقصى حجم لوت بالمنصه ؟
نعرف انه كل شركة لديها Max Lot
ماذا لو اريد جعل الاكسبيرت يفتح صفقه اعلى من حجم لوت
خصوصا انك تحلل وتدخل سكالبينج على هدف قليل وتدخل بلوت عالي وبعض الشركات حجم اقصى لوت لديهم قليل
فكرت انه بدخل عدة مرات بحجم لوت اصغر من اقصى حجم
لكني لا اعرف كيف انفذ هذا الكود
ممكن فونكشن مرر لها حجم لوت "الكبير" وهي تلقائيا تقوم بحساب كم صفقة تدخل وتوزع حجم لوتات على الصفقات بحيث
تعوض حجم اللوت الكبير بعدد صفقات بدل صفقه واحده والبارمتر الثاني هو هل تدخل شراء او بيع
مثال لو شركة فيها اقصى حجم لوت هو 10 وانا اريد فتح 105 هذه الفونكشن تقوم بفتح 11 صفقة اخر صفقة بحجم 5 بحيث تعوض حجم اللوت الكبير
طبعا هذا كمثال فقط :012:
اعتقد اغلب الشركات عندها اكثر من نوع حساب وتقدر تفتح احجام اكبر لاكن اذا تريد فتح اكثر من صفقه لتعويض حجم اللوتاولا تخلى فى خيارات الاكسبرت
ثم الداله اعتقد بتكون موجوده عندككود PHP:
input int Maxorder=1;
ثم عند فتح الامر تضيف الشرط مثلا للبيعكود PHP:
int orderscnt(int type)
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber&&OrderType()==type){
cnt++;
}
}
}
return(cnt);
}
ونفس الشي للشراء بس تغيرOP_SELL الى OP_BUY ةيصير يفتح على الرقم الموجود input int Maxorder=1;كود PHP:
if(orderscnt(OP_SELL)<=Maxorder){
لاكن تاكد عدم وجود شرط الشمعه الواحد للاكسبرت مثالTime0=Time[0]; يجب الا تكون موجوده
جزاك الله خير اخي الحبيب
حاولت اعملها بدخول مباشر لكن لايفتح بنفس السعر عند الحركة السريعه يقفز سعر الدخول :Emoticon1:
قمت باستخدام while وفحص اللوت اذا اكبر من Max Lot طلع هنالك بارمتر في MrketInfo يجلب MaxLot هذا سهل علي الموضوع
الحمد لله لحل هذه المشكلة اكتفيت بالاوامر المعلقه بشوف انها اضمن
تحيتي لك
السلام عليكم
شباب اذا ممكن كود تنبيه صوتي عند اغلاق الصفقة على الهدف
في هذا الكود ولكنه اذا غلقت المنصه ورجعت فتحتها يتنفذ التنبيه او عند حذف امر معلق يتنفذ التنبيه الصوتي
صراحه مزعج :CEDP_Stealer_Animat
انا اريده يتفعل الصوت فقط عند تحقيق الهدف لانني احيانا افتح صفقه بهدف قليل والسوق اذا مافيه سيوله ياخذ وقت حتى يحقق الهدف
المهم هذا هو الكود الذي وجدته
كود:int Orders;
bool justStarted=true;
//+------------------------------------------------------------------+
int start()
{
if (Orders<OrdersHistoryTotal() && !justStarted) AlertOrder();
Orders=OrdersHistoryTotal();
justStarted=false;
return(0);
}
//+------------------------------------------------------------------+
void AlertOrder()
{
string txt;
double OCP;
int i=OrdersHistoryTotal()-1;
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{
OCP=OrderClosePrice();
if (OCP==OrderStopLoss() ) txt="SL";
if (OCP==OrderTakeProfit()) txt="TP";
Alert("Order N ",OrderTicket()," close in ",txt," ",
DoubleToStr(OCP,Digits)," profit ",DoubleToStr(OrderProfit(),2));
} }