قبل أن أناقش الأفكار الأخرى ...
هذه النسخة فيها معالجة لحجم اللوت هل هو من فئة 0.01 أو من فئة 0.1 .. عندما يقوم بعملية التهديج ... وذلك لكل عملة منفصلة .
فقد تكون هذه أحد أسباب المشكلة التي تحصل معك .
جربها الآن وأعطني رأيك .
Printable View
قبل أن أناقش الأفكار الأخرى ...
هذه النسخة فيها معالجة لحجم اللوت هل هو من فئة 0.01 أو من فئة 0.1 .. عندما يقوم بعملية التهديج ... وذلك لكل عملة منفصلة .
فقد تكون هذه أحد أسباب المشكلة التي تحصل معك .
جربها الآن وأعطني رأيك .
شاكرا جهودك
سأجربها باذن الله
---
لم افترض اني سأغلق الجهاز
لكن مقصدي في الحالات الطارئة فقط
ربما يمكن له ان يسجل القيمة (كتست على الشارت ) ثم يستدعيها متى ما احتاج
-------
كنت اتمنى ان يشارك بعض الاخوة في التجارب معنا
فالسكربت مفيد جدا جدا للجميع
يمس حاجة الكثيرين
---------
لازال في الجعبة بعض الافكار
انتظر نقاشك لها
أكرر شكري لوقتك وجهدك الثمينين
مرة يشتغل زي العسل يهدج ويغلق
ومرة يتوقف
ما ادري ايش المشكلة
سؤال : هل لقرب السعر من الـBid سبب في ذلك ؟؟
حيث البروكر يمنع اغلاق الصفقة يدويا في حدود معينة
الخطأ الأخير يستمر في التكرار الآف المرات بدون توقف
الملف المرفق 451025
استاذي الفاضل
اعلم ان المبرج لا يعجبه ان يتدخل احد في اكواده اثناء العمل
فسامحني
عدلت في الكود كما في المرفق
وجربت عدة تجارب (اكثر من 10 ) بلا اي مشاكل في اغلاق الصفقات حتى الآن
ارجوا الاطلاع وابداء رايك
الملف المرفق 451027
كود:
input int Slippage=0;
كل النسخ اشتغلت اليوم بدون اي مشاكل
وحتى مع ال Slippage
لا يوجد اي مشاكل
لم اجد اي تفسير منطقي
اشكرك استاذي الكريم
النسخة الأخيرة التي رفعتها لي
ابدعت اليوم
بدون اي اخطاء
ارجوا ان تستمر هكذا
هل نكمل نقاش الهيدج
وضعت كود يهدج بعد 300
ثم يهدج بعد 400 اي 100 زيادة وهكذا
سأجربه الاسبوع القادم على الديمو
جزاك الله خيرا على جهودك واعتذر عن الازعاجات
استخدم إكسبيرت واستخدم خاصية اون تايمر لحل تلك المشكلة
حيث ان التايمر يعمل وتستدعى الدالة كل فترة محددة سواء تغير السعر او ظل كما هو
كود PHP:
int OnInit(){
EventSetMillisecondTimer(20);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer(){
}
أستاذ وضاح ، انا اهتم بكود اغلاق الصفقات السريع هذا لاني احتاجه وابحث عنه من فترة
وجربت الاسكربت الذي ارفقته
ووجدت انه اذا كان لدي 10 صفقات شراء مفتوحة بلوت 1 لكل احدة
فإن الاسكربت يفتح صفقة جديدة أخرى بيع بلوت 10
ثم يبدأ في اغلاق صفقات الشراء واحدة واحدة مع اغلاق جزئي لصفقة البيع التي فتحها
وبهذا يكون الاغلاق كما هو صفقة صفقة بل وتحملنا اسبريد فتح صفقة أخرى بيع بلوت كبير
فهل يعمل الاسكربت هكذا ام انه يعمل بطريقة خاطئة عندى.
وجدت امر يمكنه فتح عدة صفقات معا
واغلاق عدة صفقات معا
فهل يمكن الاستفادة منه بطريقة معينة لاغلاق جميع الصفقات معا بأمر واحد
لفتح عدة صفقات معا
كود PHP:int ticket=OrderSend("EURUSD",OP_SELL,0.01,MarketInfo("EURUSD",MODE_BID),3,0,0,"My EA",12345,0,Red)
& OrderSend("GBPUSD",OP_SELL,0.01,MarketInfo("GBPUSD",MODE_BID),3,0,0,"My EA",12345,0,Red)
& OrderSend("GBPJPY",OP_SELL,0.01,MarketInfo("EGBPUSD,MODE_BID),3,0,0,"My EA",12345,0,Red);
ولاغلاق عدة صفقات معا
كود PHP:int ticket1=OrderSend("EURUSD",OP_SELL,0.01,MarketInfo("EURUSD",MODE_BID),3,0,0,"My EA",12345,0,Red) ;
int ticket2=OrderSend("GBPUSD",OP_SELL,0.01,MarketInfo("GBPUSD",MODE_BID),3,0,0,"My EA",12345,0,Red);
int ticket3=OrderSend("GBPJPY",OP_SELL,0.01,MarketInfo("GBPJPY",MODE_BID),3,0,0,"My EA",12345,0,Red);
bool b=OrderClose(ticket1,0.01,MarketInfo("EURUSD",MODE_ASK),3000)
& OrderClose(ticket2,0.01,MarketInfo("GBPUSD",MODE_ASK),3000)
& OrderClose(ticket3,0.01,MarketInfo("GBPJPY",MODE_ASK),3000);
أهلا بك عزيزي
يبدو لي ان اهمية السكربت تكمن بالتعامل المباشر مع AccountProfit()
بعيدا عن المؤشرات والضغط على الشارت
نعم هو يهدج أولا (جميع الصفقات الرابحة والخاسرة )
ثم يغلق
خاصية كلوز باي لا تحسب سبريد اضافي
قد تكون هنالك فوارق بسيطة وصلت الى -50$ كأقصى ما رأيت (لوتات كبيرة)
بين الربح مع بدء عملية الاغلاق وبين المحصلة النهائية
ايضا الصفقات الخاسرة رأيت زيادة الى 10$ بدل 200 $ اصبحت 210 تقريبا
--
لكن السكربت يعتبر كنز مهم لكل سكالبر بلوتات جيدة
---
سعيد أن وجدت مهتم بموضوع الاغلاق ليساعدني في التجارب
السلام عليكم
ما اعلمه أن عملية فتح أو اغلاق الصفقة لن تتم إلا بعد تحرك السعر على الاقل تكة واحدة،،،
وبالتالي لن يتم تنفيذ الأمر على مختلف الأزواج دفعة واحدة، لأن هناك أزواج لم تتحرك في نفس حركة زوج الشارت المستخدم،،،
إذا كان البروكر يتوفر على خاصية الإغلاق "بواسطة" فالافضل أن يتم المرور بدالة "الكلوزباي" أولا ثم يليه الاغلاق العادي سيكون التنفيذ أسرع وأقل تكلفة من ناحية السبريد،،،
مع مراعاة إعادة التسعير فإذا جعلتها 0 قد لا يتم إغلاق العديد من الصفقات في حال حدوث حركة سريعة السعر،،،
السكريب أسرع من الاكسبيرت في معالجة الشروط والتنفيذ ولكن يعيبه الاستخدام لمرة واحدة،،،
هذه الطريقة في الإغلاق أسرع طريقة ممكنة على الميتاتريدر لإغلاق أي عدد من الصفقات عند ربح معين ...
ولكنها مشروطة بوجود ميزة كلوز باي في السيرفر .. وإلا فإنها ستصبح مثل أي طريقة إغلاق أخرى صفقة بصفقة ... دون الحفاظ على قيمة الربح المحصل . (إلا إذا أردت دفع سبريد إضافي مقابل عملية تثبيت الربح )
الآن لنفترض أن السيرفر فيه ميزة الكلوز باي ... ولدينا 100 صفقة على خمسة أزواج مثلا .
ووصل الربح إلى 1000 وأردنا إغلاق جميع الصفقات .
ببساطة شديدة فإن السكريبت يقوم بفتح خمسة صفقات أول شيء لتثبيت الربح بواسطة الهيدج .
فعليا هذا الأمر يعتبر إغلاق ... لأنه الآن مهما تحرك السعر فأنت ربحك لن يتغير ...
بعد ذلك يقوم السكريبت بإغلاق الصفقات فعليا بتقنية الكلوز باي والتي لن تكلفك أي سبريد إضافي أبدا .
أما إذا أردت إغلاق الصفقات صفقة صفقة لمائة صفقة فتخيل الزمن المستغرق في ذلك مقارنة بفتح خمس صفقات فقط .
طبعا الزمن النهائي لإغلاق الصفقات هو واحد دائما ...
ولكن مع فرق أننا ثبتنا الربح مع هذا السكريبت ... بدل تركه عائما ... حتى انتهائنا من إغلاق الكل .