رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة kira-h
جزاك الله خيرا أستاذي الفاضل
:00110: :00011:
أخى الفاضل kira-h اخى انا متابع حسابك الديمو فى شركة thi******* حساب رقم 40882 عذرا فى سؤالى
كيف تضع كل هذه الاوامر فى الحساب وكيف تغلق كل صفقتين مع بعض ؟؟
هل تستخدم اكسبيريت ؟
اذا كنت تستخدم الاكسبيريت ارجو ان تفيدنى بارك الله فيك
للضرورة أخى والشكر موصول لك وللجميع
فى انتظارك
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة سمير محمد ارمان
السلام عليكم وكل عام انتم بخير
سؤال برمجى
وارجو المساعدة
يوجد اكسبيرت
اول مايشتغل على الشارت يفتح صفقات
علشان اكيد الشرط متوفر
انا عايز طريقة تجعل الاكسبيرت لا يفتح صفقات غير بعد عدد معين من الشموع انا تحكم فيه
وهذه الطريقة تكون كل مايشتغل الاكسبيرت على الشارت يحدث ذلك
والف مليون شكر على المساعدة
وكل عام وانتم بخير
واستاذى الكريم مستر دولار يكون بخير وصحة واحسن حال
:eh_s(7)::eh_s(7)::eh_s(7):
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة سمير محمد ارمان
:eh_s(7)::eh_s(7)::eh_s(7):
عند بداية تفعيل الإكسبرت نحتاج إلى معرفة توقيت تفعيل الإكسبرت بالظبط لذلك يمكن أن نضيف كود في دالة init
كود PHP:
datetime InitTime=TimeCurrent();
ثم نريد كود لمعرفة كم التوقيت الذي مر منذ تفعيل الإكسبرت يمكن أن تضيف الشرط
كود PHP:
if((TimeCurrent()-InitTime)/60/Period()<WaitingCandles)return;
بحيث يقارن إذا كان الفرق بين توقيت تفعيل الإكسبرت و التوقيت الحالي / 60 ( للتحويل إلى دقائق ) / التايم فريم (للتحويل إلى عدد الشموع )
إذا كان أقل من المتغير المطلوب يتوقف الإكسبرت ولا يكمل الشروط
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة zzeyani
أستاد MR.dollar . إدا فتح 4 صفقات خاسرة يضاعف lots في الصفقة الخامسة فقط و أنا أريده أن يضاعفه في 4 صفقات أخرى .ولا يرجع إلى حجم lots الاول حتي يتحقق TakeProfit.
في هذه الحاله يجب أن تقرر
في حال خسرت أحد الصفقات المضاعفه هل يحسب الأربع صفقات المضاعفه من أول و جديد أم ماذا
في حال ربحت صفقة ثم خسرت صفقه هل يعيد العد من جديد حتى تخسر أربع صفقات أخرى ثم يضاعف
هل سيضاعف كل صفقة بحجم لوت أكبر أم بنفس حجم آخر مضاعفه
و بناء عليه ستقوم بتعديل دالة حساب الصفقات الرابحه و الخاسره
كود PHP:
int LostOrdersNum()
{
int Loss;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()<0)Loss++;
else return(Loss);
}
}
return(Loss);
}
بحيث يحسب آخر اربع صفقات ويقارن حسب الشروط الذي ستضعها
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة Ahmedmaths
السلام عليكم ورحمة الله وبركاته
أنا عندي مشكلة في دالة تغلق البيندينج اوردر حيث انها لا تغلق اول بيندنج اوردر وتغلق اي بينديج بعد كده بدون مشاكل
لذلك كتبت اكسبيرت صغير يفتح 2 بيندينج أوردر ....بعد كل صفقة نفذت الدالة.....ستجد انها تغلق الصفقة الثانية وأما الصفقة الاولى تبقى مفتوحة ولا يتم اغلاقها .....أريد معرفة السبب لو سمحتم
وعليكم السلام ورحمة الله وبركاته
الخطأ لديك في الحلقه
كود PHP:
for (int cnt = total ; cnt > 0 ; cnt--)
{
عدد الصفقات يبدأ من 0 حتى مجموع الصفقات - 1
بالتالي أنت وضعت في المقارنه أكبر من 0 أي أن العد سيقف عند الرقم 1 في حين أن الصفقة الأولى رقمها يكون 0 وليس واحد و بالتالي لا تغلق
التعديل
كود PHP:
for (int cnt = total-1 ; cnt >= 0 ; cnt--)
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
عند بداية تفعيل الإكسبرت نحتاج إلى معرفة توقيت تفعيل الإكسبرت بالظبط لذلك يمكن أن نضيف كود في دالة init
كود PHP:
datetime InitTime=TimeCurrent();
ثم نريد كود لمعرفة كم التوقيت الذي مر منذ تفعيل الإكسبرت يمكن أن تضيف الشرط
كود PHP:
if((TimeCurrent()-InitTime)/60/Period()<WaitingCandles)return;
بحيث يقارن إذا كان الفرق بين توقيت تفعيل الإكسبرت و التوقيت الحالي / 60 ( للتحويل إلى دقائق ) / التايم فريم (للتحويل إلى عدد الشموع )
إذا كان أقل من المتغير المطلوب يتوقف الإكسبرت ولا يكمل الشروط
السلام عليكم استاذى الكريم
اولا كل عام وانت بخير على العشرة الاواخر من رمضان
وعلى قدوم عيد الفطر المبارك وكل عام وانت بخير وصحة واحسن حال
وكل عام وكل من فى المنتدى بخير وصحة
استاذى الكريم
هذه هى البرمجة الاحترافية التى كنت فى دائما بطلب بيه ان يتم عمل دورة برمجة متقدمة الى اوائل الدورة الاولى والثانية
وشكرا على المساعدة الكريمة من شخصك الكريم
1 مرفق
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
في هذه الحاله يجب أن تقرر
في حال خسرت أحد الصفقات المضاعفه هل يحسب الأربع صفقات المضاعفه من أول و جديد أم ماذا
في حال ربحت صفقة ثم خسرت صفقه هل يعيد العد من جديد حتى تخسر أربع صفقات أخرى ثم يضاعف
هل سيضاعف كل صفقة بحجم لوت أكبر أم بنفس حجم آخر مضاعفه
و بناء عليه ستقوم بتعديل دالة حساب الصفقات الرابحه و الخاسره
كود PHP:
int LostOrdersNum()
{
int Loss;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()<0)Loss++;
else return(Loss);
}
}
return(Loss);
}
بحيث يحسب آخر اربع صفقات ويقارن حسب الشروط الذي ستضعها
أستاد MR.dollar سأقوم بشرح ما أريده بتفصيل و أتمنى أن تفهمني .
إدا دخلت أربع صفقات خاسرة متتالية بنفس lots يقوم بمضاعفت حجم lots في الاربع صفقات أخرى وإدى خسرة الاربع سفقات يقوم بمضاعفت حجم lots من lots التانية و في أربع صفقات أخري . وهكدا حتى يتحقق TakeProfit . وهدا متال لما أحتاجه .
حجم lots------------عدد الصفقات الخاسرة
0.1 ---------------------------4
0.2 ---------------------------4
0.4 ---------------------------4
0.8 ---------------------------4
و يرجع لحجم lots الاول بمجرد تحقق TakeProfit .
وشكرا على إهتمامك و مساعدتك .
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة ahmadwalwil
السلام عليكم
كل عام وانتم بالف خير
اذا امكن معرفه كيفيه اغلاق جميع العقود المفتوحه اذا اي عقد ضرب لستوب لوس
اريد معرفه الشرط فقط
الف شكر مقدما
اقتباس:
المشاركة الأصلية كتبت بواسطة ahmadwalwil
للتوضيح :اذا اخر عقد ضرب لستوب لوس نغلق جميع العقود مع مراعاه اني افتح عقدين بيع وشراء مع بعض لكن واحد منهم يوجد به ستوب لوس
وعليكم السلام ورحمة الله وبركاته
طريقة سهله بما أن الإكسبرت يقوم بفتح عقدين بيع و شراء مع بعض لذلك يمكنك وضع شرط
إذا كان عدد عقود الشراء المفتوحه = 0 هذا يعني أن عقود الشراء أغلقت بالتالي تغلق عقد البيع
و تضع شرط آخر أو إذا كان عدد عقود البيع المفتوحه = 0 هذا يعني أن عقد البيع أغلق بالتالي تغلق عقد الشراء
1 مرفق
رد:موضوع مخصص للأسئلة البرمجية
لم تجبني أخي MR.dollar على التوضيح الدي قدمته لك في التعليق رقم" 4209" .
دالة تقوم بمضاعفت حجم lot في كل 4 صفقات خاسرة ويعود lot إلى حجمه الأول كلما تحقق TakeProfit .
و ألف شكر على المساعدات القيمة التي تقدمها لنا أستاد MR.dollar .
1 مرفق
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة zzeyani
لم تجبني أخي MR.dollar على التوضيح الدي قدمته لك في التعليق رقم" 4209" .
دالة تقوم بمضاعفت حجم lot في كل 4 صفقات خاسرة ويعود lot إلى حجمه الأول كلما تحقق TakeProfit .
و ألف شكر على المساعدات القيمة التي تقدمها لنا أستاد MR.dollar .
يوجد فكرة جيده ستحتاج فقط إلى تعديل شرط الذي سيقوم فيه بالمضاعفه
فبدلا من الشرط
كود PHP:
if(LostOrdersNum()>=4)newlot=LastOrderLots()*2;
else newlot=Lots;
ستضع الشرط
كود PHP:
if(LostOrdersNum()%4==0&&LostOrdersNum()!=0)newlot=LastOrderLots()*2;
else if(LostOrdersNum()>0)newlot=LastOrderLots();
else newlot=Lots;
وهذا يعني إذا كان باقي قسمة عدد الصفقات الخاسره على 4 تساوي صفر سوف يقوم بالمضاعفه
بالتالي سوف يضاعف عندما تصبح عدد الصفقات الخاسره 4 أو 8 أو 12 أو 16 و هكذا أي كل أربع صفقات خاسره
مرفق الإكسبرت