نعم هذه الطريقة ممتازه وتستخدم في إكسبرتات نسخ الصفقات بحيث لا يحتاج إلى الإنتظار كل تك لكن يقوم بالتحقق كل فتره محدده
طبعا يعيب هذه الطريقة فقط في الإكسبرتات المعقده قد تزيد من تهنيج الكمبيوتر أ الميتاتريدر وتحتاج إلى إمكانيات أعلى للجهاز
Printable View
ألف شكر يا أستاذ أسامة
تمام بدأ يفتح نافذة المتغيرات
طب الكود كده شغال والمفروض يفتح صفقة ولا فيه غلط لاني دست على ok لكن مش بيفتح صفقة :(
استاذ اسامة ، اين اضع هذا التعريف
اذا وضعته خارج كل الدوال أسفل المتغيرات الخارجيه ، تظهر أخطـاء ، واذا وضعته داخل دالة ستارتكود PHP:
double lot=OrderLots();
تظهر أخطـاء فـ الجورنالكود PHP:
int start()
{
double SL,TP;
double lot=OrderLots();
مرفق ، الاكسيبرت ، ارجو التعديل مع شرح كيفية التعديل الصحيح للكود ، بارك الله فيك .
جزاك الله كل خير استاذى ، ولكن بعد التعديل ظهرت الأخطـاء التاليه .
OrderSend error 4051
invalid lots amount for OrderSend function
انا أحاول التعديل منذ اسبوع ولكنى فشلت بظهور الأخطـاء المتكرره ولا أعلم السبب وأخر تعديل ،
هو التعديل الذى تفضلت وذكرته ..
تعريف lot أسفل المتغيرات الخارجية
وايضـا وضع lot مباشرة داخل الدالة بدون تعريفكود PHP:
double lot;
كود PHP:
double OpenPrice(int type){
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&& type==OrderType()){
double openprice=OrderOpenPrice();lot=OrderLots(); //// ****************////
}
}
return(openprice);
}
مرفق الاكسيبرت بعد التعديل ، وأرجو مساعدتى فـ معرفة الخطـأ وتصحيحه ، بارك الله فيك .
السلام عليكم
أثناء تصميمي لإكسبرت وجدت أنه يفتح أكثر من صفقة في نفس الشمعة كلما تحقق الشرط
-هل يوجد حل بحيث أنه يفتح صفقة واحدة فقط على الشمعة التي تحقق فيها الشرط ؟ علما أن OrdersTotal()>1
وشكرا للجميع.
يمكنك تعريف متغير int time;
وتجعله يأخذ قيمة الوقت الحالي [Time[0 بعد فتح أي عملية
بالشكل ده
وتضعها أيضا بعد البيعكود PHP:
OrderSend(Symbol(),OP_BUY,Lots,Ask,3*Q,0,0,"EA",MagicNumber,0,Blue);
time=Time[0];
-------------------------------
وتضع في شروط البيع والشراء أن [time!= Time[0
بالشكل ده مثلا في الشراء
ونفس الكلام في البيعكود PHP:
if(OrdersTotal()>1 && time!=Time[0]){
OrderSend(Symbol(),OP_BUY,Lots,Ask,3*Q,0,0,"EA",MagicNumber,0,Blue);
time=Time[0];}
ممكن اعرف ايه فايدة الكود ده
كود:int f0_4() {
if (gi_152) MyPair = StringSubstr(gs_gbpusd_156, 0, 6);
else MyPair = StringSubstr(Symbol(), 0, 6);
int li_0 = SessionInit(AccountNumber(), IsTesting(), IsDemo(), WindowHandle(Symbol(), Period()), MyPair, TimeCurrent());
if (li_0 == -8 && StringFind(",GBPUSD,", "," + MyPair + ",") >= 0) {
Comment("\nUpdating settings (" + MyPair + ")...");
li_0 = SessionDeinit(AccountNumber(), IsTesting(), IsDemo(), WindowHandle(Symbol(), Period()), MyPair);
Sleep(3000);
li_0 = SessionInit(AccountNumber(), IsTesting(), IsDemo(), WindowHandle(Symbol(), Period()), MyPair, TimeCurrent());
}
شكرا لك أخي الكريم xcv114 جاري التجربة
السلام عليكم ورحمة الله تعالى وبركاته
تحياتي للكل
إزاي اعمل أكتر من كومنت على الشارت واتحكم بلون الخط والحجم
ولا في الحجات دي بندخل على ادوات الـ text والـ label
وبكل الأحوال إيه الدوال بتوعها
وشكرا
عليكم السلام ورحمة الله وبركاته
لعمل الكومنت على الشارت تستخدم أمر
وتضع بين القوسين الكومنت الذى تريد وضعه على الشارت كمثال ..كود PHP:
Comment();
ويتم وضع علامة تنصيص لكل جملة ، و "\n" تقوم بكتابة الجملة التالية اسفل الجملة الأولى .كود PHP:
Comment("My Name" ,"\n" , "is" ,"\n" ,"صاحب هدف" );
أستاذ أسامة الإكسبيرت إللي أنا عملته للموضوع
شغال معي تمام من غير أي مشاكل
بس في ناس عندها أسماء العملات مختلفة ذي EURUSDm أو EURUSDFXF أو EURUSDpro
أنا عرفت متغيرات خارجية بحيث كل واحد يكتب إسم العملة إللي موجودة عنده في المنصة
بس لما جيت أجربه على منصة IBFX وهي بيكون إسم العملة + حرف m
طلع لي أخطاء في خانة الإكسبيرتات
strong VS weak EA-YousefH-v2: symbol name for OrderSend function must be a string
وخطأ تاني كمان إن لازم يكون إسم العملة string في Marketinfo()
وبصراحة دايخ من إمبارح مش عارف السبب إية ؟
مرفق الإكسبيرت
المشكله لديك ليست في حجم اللوت لكن المشكله لديك في الشرط نفسه الذي وضعته
حيث أن الشرط سيتحقق إذا لم تكن هناك صفقات بيع مفتوحه فسوف يصبح سعر دخول صفقة البيع 0كود PHP:
Bid-OpenPrice(OP_SELL)>Space*point
بالتالي Bid-0 أكبر من Space الشرط سوف يتحقق دائما وسوف يجد أن حجم اللوت 0 فيظهر هذا الخطأ
لذلك ضع شرط إضافي
حتى تتأكد أن هناك صفقة بيع مفتوحه ولها سعر أو يمكنك وضع شرط أن عدد صفقات ابيع أكبر من صفر أيضا حتى تتأكد أن هناك صفقة بيع مفتوحهكود PHP:
OpenPrice(OP_SELL)!=0