السلام عليكم ورحمة الله
ما هو حل مشكلة عدم اشتغال ملف exe لمنصة ميتاتريدر قديمه على ويندوز 10..حيث البرنامج لا يقلع ولا يعطي رسائل خطا
شكرا جزيلا
Printable View
السلام عليكم ورحمة الله
ما هو حل مشكلة عدم اشتغال ملف exe لمنصة ميتاتريدر قديمه على ويندوز 10..حيث البرنامج لا يقلع ولا يعطي رسائل خطا
شكرا جزيلا
خلاص اخي مستر دولار عرفت الحل
اللغز في المقارنه على المؤشرات هو استدعاء الاستوكيستك مرتين وذلك اكبر واصغر للتقاطع
ومشكلتي مع البولينجر باند كانت كيف ساعرف الاكسبيرت ان الشمعه التى فتحت في خارج الحدود وايضا الاغلاق
وكان اللغز في هذه الدالة MODE_UPPER وعكسها شكرا لك مستر واذا فيه دروس
متسلسله لمثل هذه الدوال يكون ممتاز الداله ووظيفتها لاني تعبت الحقيقه وانا ابحث على مثل هذه الالغاز
لكن لي طلب اخر ارجو ان تساعدني فيه اخي الحبيب يسر الله امرك وفتح عليك
وهو
1- كود المضاعفات الخاص بالجمع مثال اللوت 0.01 - 0.02 - 0.03 - 0.05 وهكذا
2- كود فتح صفقة Buy وصفقة Sell بنفس اللحظه مع فارق نقاط بين السعرين وليكن 20 نقطه وهدف كل صفقة 40 نقاط
ولكن في حالة اصابة أحد الاهداف وليكن Buy يفتح من عن الهدف المصاب واحده اخرى Sell عكسيه بلوت مضاعف ومن نفس المكان ايضا
بعد 20 نقطه صفقه Buy اخرى بنفس الفارق الـ20 السابق واللوت السابق - ملوحظة الصفقات العكسيه تستمر حتى يتم اصابة احد الاهداف منها فتقفل كلها
ثم ويبدأ اللوت من البدايه وهو 0.01
استاذي الغالي دكتور اسامة السلام عليكم ورحمة الله
اتمنى ان تساعدني اخي في كود عجزت عن صياغته
اريد كلما تحرك السعر من نقطة معينة احددها من المدخلات 20 نقطة صعودا او هبوطا يحفظ لي الهاي واللو والتوقيت
مثال احدد من المدخلات قيمة 1.0620 اذا وصل السعر الى 1.0640 او 1.0600 يحفظ لي هاي الشمعة التي تحقق فيها الشرط واللو وتوقيتها
وجزاك الله كل خير اخي الكريم
بالنسبه لكود المضاعفات يمكنك عمل دالة لمعرفة حجم لوت آخر صفقه
ثم سيكون حجم اللوت التالي هو حجم اللوت الإبتدائي + LastLotكود PHP:double LastLot()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
return(OrderLots());
}
}
return(0);
}
مثال
كود PHP:double NewLot=LastLot()+Lots;
تفضل اخي اسامة
كما في الصورة اذا تحرك السعر من النقطة A الى النقطة B بمقدار 20 نقطة مثلا اريد الهاي واللو و الزمن للشمعة الموالية
اللي تحتها دائرة ونفس الشيئ بالنسبة للصعود
تقبل تحياتي
الملف المرفق 465751
بمعنى حجم اللوت التالي سيكون مجموع لوت آخر صفقتين
في هذه الحاله ستحتاج لعمل دالة أخرى تعود بقيمة حجم الوت العقد قبل الأخير
مثال
ثم سيكون حجم اللوتكود PHP:double PreviousLastLot()
{
int orders;
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
orders++;
if(orders==2)
return(OrderLots());
}
}
return(0);
}
كود PHP:double NewLot=LastLot()+PreviousLastLot();
يعني تقصد اخي الحبيب اجعل الدلتين معا
او الغى الاولى واخي الثانيه لان لم تعمل معي ايضا
واذا سمحت فضلا تضع لي الكود كامل حتى افهم المقصد
لاني حولت اضمهم اذا تعرف على واحده فلا يعمل بالاخرى
وكل الشكر والتقدير لك اخي الحبيب ولو فيه شرح لهذا الموضوع في المنتدى
ارجو ان تعطيني الرابط موضوع لاكواد الصفقات العكسيه والمضاعفات حتى اقرأ فيهم باستفاضه
وجزاك الله كل خير على كل ما تبذله من اجلنا كل الشكر والتقدير لك
سؤال برمجي لم أجد له جواب لحد الساعة
(((((ارجو التدقيق في الشروط)))))
1- اذا تحقيق لي شروط الدخول وليكن مثلا شراء (BUY) ......
2- وضع امر معلق بيع 1 (SELLSTOP) على بعد معين من النقاط ........
3- بعد تفعل الامر معلق بيع 1 (SELLSTOP) يضع مباشرة أمر معلق أخر وليكن معلق شراء 2 (BUYSTOP) على بعد عدد من النقاط ....
4- بعد تفعل الامر معلق شراء 2 (BUYSTOP)يضع مباشرة أمر معلق أخر وليكن معلق بيع 3 (SELLSTOP)على بعد معين من النقاط ........
5- بعد تفعل الامر معلق بيع 3 (SELLSTOP) يضع مباشرة أمر معلق أخر وليكن معلق شراء 4 (BUYSTOP) على بعد عدد من النقاط ....
6- بعد تفعل الامر معلق شراء 4 (BUYSTOP)يضع مباشرة أمر معلق أخر وليكن معلق بيع 5 (SELLSTOP)على بعد معين من النقاط ........
احتاج إلى الجملة الشرطية لهاته الشروط (أي عدم الاختلاط بين الامر العادي والامر المعلق) استعملت هذه الجملة ولم يزبط الامر
المشكلة عندي أنه بعد تفعل امر الشراء يعلق الاكسبيرت جمع الاوامر المعلقة وانا اريد كود لفلترتها أي ان تفتح الواحد تلو الاخر أو بالاصح بعد دخول الامر المعلق للسوق يعلق الاكسبيرت يعلق الامر الموالي
كود:void Exist(){
bool exists = false;
int arrId[] = { 0,1,2,3,4,5 };
int len = ArraySize(arrId);
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol())
{
for (int j=0; j < len; j++)
{
if (OrderMagicNumber() == arrId[j])
exists = true;
}
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}
if (exists)
{
}
}
أنا لا أريد اكسبيرت بالطبع أنا مبرمج ولكن اشتعل الرأس شبيا من هاته الجملة الشرطيةhttp://www.forexprog.com/vb/images/smilies/confused.png
في انتظار المبرمجين في حل المشكلة
سوف تستخدم داله لمعرفة نوع آخر صفقه مفتوحه
ودالة لمعرفة عدد الأوامر المعلقه المفتوحهكود PHP:double LastOpenedOrderType()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
return(OrderType());
}
}
return(-1);
}
ثم سيكون الشرطكود PHP:int TotalOrders(int type)
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&(OrderType()==type||type==-1)){
cnt++;
}
}
}
return(cnt);
}
كود PHP:if(LastOpenedOrderType()==OP_BUY)
{
if(TotalOrders(OP_SELLSTOP)==0)
{
// open sell stop order
}
}
else if(LastOpenedOrderType()==OP_SELL)
{
if(TotalOrders(OP_BUYSTOP)==0)
{
// open buy stop order
}
}