• 4:57 مساءاً




أسئلة فى البرمجة

إضافة رد
Like Tree1Likes

الصورة الرمزية simous
عضو جديد
تاريخ التسجيل: Aug 2010
المشاركات: 52
خبرة السوق : 6 شهور الى سنة
العمر: 33
معدل تقييم المستوى: 14
simous is on a distinguished road
11 - 04 - 2013, 05:17 PM
  #1
simous غير متواجد حالياً  
افتراضي أسئلة فى البرمجة
السلام عليكم و رجمه الله و بركاته

انا عندى كام سؤال كدة ححاول اسألهم لأستاذ سمير و طبعا ممكن أى حد كويس فى البرمحة يرد مشكور ..

طبعا بعد كل سؤال حسأل سؤال تانى بسبب انى عندى كمية كبيرة من الأسئلة و طرحها مرة واحدة سيكون صعبا و غير احترافى فى الفهم على الاطلاق.

نبدأ السؤال الأول 1

فى أمر فتح الصفقات
OrderSend

أول متغير هو symbol و دائما ما يضعه المبرمجون Symbol() لكى يقوم بفتح الصفقات على الشارت المفتوح عليه.

ماذا اذا أردت أن أفتح صفقة على زوج اخر غير المفتوح عليه الشارت.

مثال (1)

اقتباس:
الأكسبرت سيكون موضوع على شارت اليورو دولار EURUSD
و انا اريد يقوم بفتح الصفقة على الدولار ين USDJPY

ماذا اكتب مكان المتغير symbol بدلا من symbol() ؟
أرجو ان تكون الاجابة كاملة بالتعديل على الكود المرفق

الكود
اقتباس:
OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green)
فى انتظار الاجاية لطرح السؤال التالى.

التوقيع



رد مع اقتباس

الصورة الرمزية سمير محمد ارمان
مشرف سابق
الصورة الرمزية سمير محمد ارمان
 
تاريخ التسجيل: Nov 2009
المشاركات: 33,660
معدل تقييم المستوى: 48
سمير محمد ارمان will become famous soon enough
افتراضي رد: أسئلة فى البرمجة
2#
11 - 04 - 2013, 06:33 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة simous مشاهدة المشاركة
السلام عليكم و رجمه الله و بركاته

انا عندى كام سؤال كدة ححاول اسألهم لأستاذ سمير و طبعا ممكن أى حد كويس فى البرمحة يرد مشكور ..

طبعا بعد كل سؤال حسأل سؤال تانى بسبب انى عندى كمية كبيرة من الأسئلة و طرحها مرة واحدة سيكون صعبا و غير احترافى فى الفهم على الاطلاق.

نبدأ السؤال الأول 1

فى أمر فتح الصفقات
OrderSend

أول متغير هو symbol و دائما ما يضعه المبرمجون Symbol() لكى يقوم بفتح الصفقات على الشارت المفتوح عليه.

ماذا اذا أردت أن أفتح صفقة على زوج اخر غير المفتوح عليه الشارت.

مثال (1)



أرجو ان تكون الاجابة كاملة بالتعديل على الكود المرفق

الكود


فى انتظار الاجاية لطرح السؤال التالى.
السلام عليكم اخى الكريم
وشكرا على فتح هذا الموضوع
الذى سوف يكون مفيد الى الجميع ان شاء الله
وارجو من كل له اى خبرة فى موضوع البرمجة
ان يساهم معنا فى هذا الموضوع
تحياتى لك والى الجميع
وعلى اجابة هذا السؤال
تجد هذه الاجابة
فى هذا الاكسبيرت
ارجو مشاهدة الاكسبيرت
واى تعليق او سؤال انا متابع معك ان شاء الله
تحياتى لك
الملفات المرفقة
نوع الملف: mq4 Hedging_Arman_3.mq4‏ (9.2 كيلوبايت, المشاهدات 4)
سمير محمد ارمان غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية simous
عضو جديد
الصورة الرمزية simous
 
تاريخ التسجيل: Aug 2010
العمر: 33
المشاركات: 52
خبرة السوق: 6 شهور الى سنة
معدل تقييم المستوى: 14
simous is on a distinguished road
افتراضي رد: أسئلة فى البرمجة
3#
11 - 04 - 2013, 07:33 PM
أستاذ سمير تم تحميل الأكسبيرت بالفعل و لكنى لم أجد اى امــر Ordersend()
على الأطلاق. و لكن على أى حال أعتقد اننى رأيت تسميه بهذا الشكل "USDJPY" هل هذه هى الأجابة؟

أعنى ان يكون الكود بالشكل التالى:

اقتباس:
OrderSend("USDJPY",OP_BUY,lot,Ask,3,Ask-25*Point,Ask+25*Point,"comment ",Magic number,0,color)
ليقوم بفتح الأوامر على زوج الدولار ين USDJPY ؟

و برجاء ان ترد على قطعة قطعة لاننى لست محترفا على الأطلاق و أحاول الوصول لعدد من الأجابات.. أرجو المرة القادمة ان تعدل الكود الذى ارفقه لى تصل لى الفكرة بشكل سريع لان الكود الذى أرفقه يكون بسيطا جدا و سهل على فى الفهم.

شكرا جدا ليك .. فى انتظار تأكيد الأجابة قبل البدء فى الأسئلة التالية.

التوقيع



simous غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية simous
عضو جديد
الصورة الرمزية simous
 
تاريخ التسجيل: Aug 2010
العمر: 33
المشاركات: 52
خبرة السوق: 6 شهور الى سنة
معدل تقييم المستوى: 14
simous is on a distinguished road
افتراضي رد: أسئلة فى البرمجة
4#
11 - 04 - 2013, 08:10 PM
السؤال الثانى: 2

الكثير من الأكسبرتات تحتاج الى التأكد انه ليس هناك صفقات مفتوحة لكى يقوم بفتح الصفقة حتى لا يقوم بفتح الصفقة أكثر من مرة.

و غالبا يستخدم المبرمجون السطر التالى:


اقتباس:
if( Orderstotal()==0)
{
OrderSend("USDJPY",OP_BUY,lot,Ask,3,Ask-25*Point,Ask+25*Point,"comment ",Magic number,0,color);
}
السؤال هنا: ماذا اذا اردت من الأكسبرت ان يتأكد انه ليست هناك صفقات مفتوحة من خلاله فقط؟ بمعنــى .. انه لا يحتسب الصفقات التى افتحها يدويا او عن طريق اكسبرت اخر و ينظر فقط الى الصفقات التى قام هو بفتحها؟

أعلم انه يتم استخدام خاصية الماجيك نمبر هنا و لكن كيف يتم كتابة الكود هنا؟
alfredkamal likes this.

التوقيع



simous غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية alfredkamal
عضو نشيط جدا
الصورة الرمزية alfredkamal
 
تاريخ التسجيل: May 2012
الدولة: Cairo . Egypt
العمر: 43
المشاركات: 964
خبرة السوق: 5 الى 10 سنوات
معدل تقييم المستوى: 12
alfredkamal is on a distinguished road
افتراضي رد: أسئلة فى البرمجة
5#
11 - 04 - 2013, 09:21 PM
أول شئ تعمل دالة كهذه
[PHP]
void ActualizarOrdenes(int magic , int ty)
{
int ordenes=0;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() ==magic&&OrderType()==ty)
{
ordenes++;
}
}
}
return (ordenes);
}

[/PHP]

و بعدها تكتب هذ الأمر فى حالة الشراء و فى حالة البيع تغير OP_BUY إلى OP_SELL :

[PHP]
if(ActualizarOrdenes(magic , OP_BUY)==0)
OrderSend("USDJPY",OP_BUY,lot,Ask,3,Ask-25*Point,Ask+25*Point,"comment ",Magic number,0,color);
[/PHP]

التوقيع

اي استراتيجية في العالم اذا بتريد الحكم عليها فلتصنع لها اكسبيرت

alfredkamal غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية simous
عضو جديد
الصورة الرمزية simous
 
تاريخ التسجيل: Aug 2010
العمر: 33
المشاركات: 52
خبرة السوق: 6 شهور الى سنة
معدل تقييم المستوى: 14
simous is on a distinguished road
افتراضي رد: أسئلة فى البرمجة
6#
11 - 04 - 2013, 09:47 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة alfredkamal مشاهدة المشاركة
أول شئ تعمل دالة كهذه
[PHP]
void ActualizarOrdenes(int magic , int ty)
{
int ordenes=0;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() ==magic&&OrderType()==ty)
{
ordenes++;
}
}
}
return (ordenes);
}

[/PHP]

و بعدها تكتب هذ الأمر فى حالة الشراء و فى حالة البيع تغير OP_BUY إلى OP_SELL :

[PHP]
if(ActualizarOrdenes(magic , OP_BUY)==0)
OrderSend("USDJPY",OP_BUY,lot,Ask,3,Ask-25*Point,Ask+25*Point,"comment ",Magic number,0,color);
[/PHP]
رائع جدا .. تسلم أيدك على الرد .. هنا أنا ارجو ان استغل كرمك و اطلب منك ان تشرح لنا الكود الذى كتبته سطرا سطرا .. اى ماذا يفعل كل سطر بطريقة بسيطة ..

و شكرا جزيلا لك.

التوقيع



simous غير متواجد حالياً  
رد مع اقتباس
عضو نشيط جدا
 
تاريخ التسجيل: Sep 2012
المشاركات: 648
معدل تقييم المستوى: 12
Mohamed_Amr is on a distinguished road
افتراضي رد: أسئلة فى البرمجة
7#
11 - 04 - 2013, 10:00 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة simous مشاهدة المشاركة
رائع جدا .. تسلم أيدك على الرد .. هنا أنا ارجو ان استغل كرمك و اطلب منك ان تشرح لنا الكود الذى كتبته سطرا سطرا .. اى ماذا يفعل كل سطر بطريقة بسيطة ..

و شكرا جزيلا لك.
ياريت والله يتم الشرح
وياريت الموضوع دة يبقى للاسئله البرمجيه
وبالتوفيق
Mohamed_Amr غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية alfredkamal
عضو نشيط جدا
الصورة الرمزية alfredkamal
 
تاريخ التسجيل: May 2012
الدولة: Cairo . Egypt
العمر: 43
المشاركات: 964
خبرة السوق: 5 الى 10 سنوات
معدل تقييم المستوى: 12
alfredkamal is on a distinguished road
افتراضي رد: أسئلة فى البرمجة
8#
11 - 04 - 2013, 10:28 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة alfredkamal مشاهدة المشاركة
أول شئ تعمل دالة كهذه
[PHP]
void ActualizarOrdenes(int magic , int ty)
{
int ordenes=0;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() ==magic&&OrderType()==ty)
{
ordenes++;
}
}
}
return (ordenes);
}

[/PHP]

و بعدها تكتب هذ الأمر فى حالة الشراء و فى حالة البيع تغير OP_BUY إلى OP_SELL :

[PHP]
if(ActualizarOrdenes(magic , OP_BUY)==0)
OrderSend("USDJPY",OP_BUY,lot,Ask,3,Ask-25*Point,Ask+25*Point,"comment ",Magic number,0,color);
[/PHP]

الداله ActualizarOrdenes
وظيفتها عد عدد الصفقات المفتوحة من نوع شراء إذا كان ty=OP_BUY و من نوع بيع إذا كان ty=OP_SELL و المفتوحة بماجيك نمبر معين للعملة الموجود عليها الإكسبيرت

و بعد ذلك جملة الــ IF هى لكى تنادى الدالة ActualizarOrdenes و ترسل لها الماجيك نمبر و نوع الصفقات المرغوب عدها إذا كانت بيع أو شراء فإذا كان ناتج الدالة 0 هذا يعنى أنه لا يوجد صفقات مفتوحة من النوع الذى طلبت عده .

أرجوا أن أكون قد أوفيت بالشرح

التوقيع

اي استراتيجية في العالم اذا بتريد الحكم عليها فلتصنع لها اكسبيرت

alfredkamal غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية simous
عضو جديد
الصورة الرمزية simous
 
تاريخ التسجيل: Aug 2010
العمر: 33
المشاركات: 52
خبرة السوق: 6 شهور الى سنة
معدل تقييم المستوى: 14
simous is on a distinguished road
افتراضي رد: أسئلة فى البرمجة
9#
11 - 04 - 2013, 11:32 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة alfredkamal مشاهدة المشاركة
الداله ActualizarOrdenes
وظيفتها عد عدد الصفقات المفتوحة من نوع شراء إذا كان ty=OP_BUY و من نوع بيع إذا كان ty=OP_SELL و المفتوحة بماجيك نمبر معين للعملة الموجود عليها الإكسبيرت

و بعد ذلك جملة الــ IF هى لكى تنادى الدالة ActualizarOrdenes و ترسل لها الماجيك نمبر و نوع الصفقات المرغوب عدها إذا كانت بيع أو شراء فإذا كان ناتج الدالة 0 هذا يعنى أنه لا يوجد صفقات مفتوحة من النوع الذى طلبت عده .

أرجوا أن أكون قد أوفيت بالشرح
نعم أخــى أوفيت تماما بارك الله فيك.
أخيرا يجب ان أقوم بتعريف الماجيك نمبر فى بداية الأكسبرت هكذا
extern int magic=12345;

ام انه سيحصل خطأ حيث لاحظت ان magic معرفة فى الدالة الخارجية
void ActualizarOrdenes(int magic , int ty

هل سيعتبر وقتها الاكسبيرت ان magic معرفة مرتين؟ و يجب ان أغير التعريف الاول فى بداية الأكسبرت ليصبح البرنامج كالتالى:

extern int magicnumber=12345;

و أقوم بأرسال القييمة الى الدالة هكذا:

if(ActualizarOrdenes(magicnumber , OP_BUY)==0)

بدلا من

if(ActualizarOrdenes(magic , OP_BUY)==0)

ام اقوم بأضافتها كما وضعتها انت لى مع تعريف الماجيك نمبر فى البداية هكذا
extern int magic=12345;

و شكرا لك

التوقيع



simous غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية simous
عضو جديد
الصورة الرمزية simous
 
تاريخ التسجيل: Aug 2010
العمر: 33
المشاركات: 52
خبرة السوق: 6 شهور الى سنة
معدل تقييم المستوى: 14
simous is on a distinguished road
افتراضي رد: أسئلة فى البرمجة
10#
13 - 04 - 2013, 03:10 AM
السلام عليكم و رحمه الله و بركاته

قمت بمراجعة الكود الذى تم أرفاقه عن طريق alfredKamal مشكورا و وجدت به هذه الأخطاء

أولا يجب ان تكون الدالة من نوع int و ليس void حيث انها سترجع قيمة عدد صحيح و بالتالى يجب ان تكتب هكذا :

int ActualizarOrdenes(int magic , int ty)

بدلا من

void ActualizarOrdenes(int magic , int ty)

أضافة الى انه يجب ان يكون تعريف الماجيك نمبر فى البداية بأسم أخر غير magic
مثال:

extern int MagicNumber=123;

و فى الأكسبرت نقوم بكتابته هكذا

if(ActualizarOrdenes(MagicNumber , OP_BUY)==0)

أرجو ممن له الخبرة أن يؤكد هذه التغييرات او يوضح خطأها.

التوقيع



simous غير متواجد حالياً  
رد مع اقتباس


إضافة رد

أدوات الموضوع


جديد مواضيع منتدى المؤشرات و الاكسبرتات

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
أسئلة مش عالبال badr assaf استراحة بورصات 1 24 - 04 - 2017 05:49 AM


04:57 PM