النتائج 136 إلى 150 من 378
- 07-03-2020, 04:25 PM #136
لو كنا محتاجينها في البرنامج, نضع ايضا تلك الدالة في بلوك الكلاس--يعني نضيفها للبرنامج,
اذا ما كنا محتاجينها نحذف هذا الانترفيس من رأس البرنامج مع بقاء IIndicator فقط.
- 07-03-2020, 04:31 PM #137
المتغير indicatorInfo
الآن افتح محرر مؤشر جديد "new indicator" وأعد تسميته بما يلزم ثم احفظه من خلال ايقونة save as , وأريد منك التركيز التام في تعاريف المتغيرات "variable declarations"
وليكن في ذهنك أو مفتوح أمامك الرد السابق رقم # 132
لاحظ هذا المتغير الكائني "Object or reference type" باسم: indicatorInfo
كود:private IndicatorInfo indicatorInfo;
ارجع للصورة في الرد #132 -- أداة التعريف هنا وهي IndicatorInfo - هل هي كلاس أم انترفيس؟؟
وماذا يعني الأمر في كل حالة؟آخر تعديل بواسطة سلمان_العتيبي ، 07-03-2020 الساعة 04:41 PM
- 07-03-2020, 04:37 PM #138
indicatorInfo
indicatorInfo -- الذي يبدأ بحرف i صغير, هو المتغير الذي انت اخترت ان يكون هكذا, يعني من وضع المستخدم -- يعني ممكن تغيره لو حبيت لما هو اريح لك, مجرد اسم متغير.
تخيل int x=1 ---- سهل عليك ان تقول ان اسم المتغير x وان نوعه int أي يحمل أي عدد صحيح, بما فيها القيمة 1 وهي عدد صحيح ولا تقول أكثر من ذلك,
بنفس الصياغة,
indicatorInfo هو اسم المتغير وأن نوعه IndicatorInfo أي يحمل القيم من نوع IndicatorInfo ؟؟؟؟
هذا متغير كائني: وبالتالي عبارة عن مجموعة قيم تجعله على ماهو عليه
عندما تذهب لدوكاسكوبي API تعرف ماذا يحمل هذا المتغير تحته--ربما عشرات الدوال وعشرات الانواع الاخرى! ويتم المرور لها من خلال أهم شيء في الجافا وهو النقطة "."
حسب الصور في الرد #132 فإن IndicatorInfo عبارة عن class وبالتالي . . .آخر تعديل بواسطة سلمان_العتيبي ، 07-03-2020 الساعة 04:41 PM
- 07-03-2020, 04:43 PM #139
إذن أنت الآن تعرف أن IndicatorInfo عبارة عن class وبالتالي يمكن استخدامها لـ 1) تعريف المتغيرات 2) انشائها او خلقها من خلال أداة انشاء الكائنات "new"
ليش؟ لأنها أساسا class
إسأل نفسك: لو أن هناك دالة من نوع IndicatorInfo فماهو نوع القيمة التي ستعيدها؟
ج: قيم من نوع IndicatorInfo --- لاحظ ليست بسهولة دالة من نوع double مثلا -- نعلم انها ستعيد قيمة عشرية.
هذه الدالة IndicatorInfo وحسب موقع دوكاسكوبي API تحتها التالي: (يعني كل ماهو أسفل يمكن معرفته من خلال أي متغير تم انشائه من خلال هذه الكلاس)
+ ناهيك عن دوال set-get
set-get يسمونها accessors/mutators
ولهذه الكلاس 3 كونستركتورات --- three constructors
وقلنا سابقا ان الكوسنتركتور هو اسم الكلاس نفسه بقوسين ويستخدم للأنشلة غالبا initialzation وهو إعطاء قيم اولية او تحديث قيم المتغيرات الكلاس التي قلنا سابقا انها fieldsآخر تعديل بواسطة سلمان_العتيبي ، 07-03-2020 الساعة 04:51 PM
- 07-03-2020, 05:43 PM #140هذه الدالة IndicatorInfo وحسب موقع دوكاسكوبي API تحتها التالي: (يعني كل ماهو أسفل يمكن معرفته من خلال أي متغير تم انشائه من خلال هذه الكلاس)
https://www.dukascopy.com/client/jav...catorInfo.html
ونحن من خلال الكود الديفولت سنمر عليها واحد واحد,
لاحظ المسمى IndicatorInfo وبالتلي نتوقع انه يتعامل مع الأشياء ذات العلاقة على المؤشر, مثل لونه عرضه, القيم المستخدمة لرسمه هكذا مثل عدد المدخلات والمخرجات, اللفل level وألوانها (اللفل هي الخطوط الافقية المستقيمة مثل 30 و 70 لـ RSI ) وطبعا لاننسى اسم المؤشر وأيضا اسم كل خط output وهلم جراً
---
للتفكير:
الماكد اعدادته 12 و 26 للمتوسطات و 9 للسقنال(السقنال=متوسط المتوسط نفسه)
هذه الأرقام 12 و 26 و 9 -- أنت من اختارها او لفقها وبالتالي انت قد تغيرها--تحت سيطرتك
بينما اذا اردت حساب متوسط 26 --- تحتاج 26 سعر -- هذه الـ 26 سعر ليس انت من اختارها او حددها وليس بمقدروك تغييرها ابدا
اذن لدينا مدخلات تحتاجها المؤشرات ونحن نتحكم بها
ولدينا مدخلات لن تستطيع تعديلها حتى يلج الجمل في سم الخياط.
الأولى نسميها متغيرات optInputParameter
بينما الثانية InputParameter من غير optآخر تعديل بواسطة سلمان_العتيبي ، 07-03-2020 الساعة 05:54 PM
- 07-03-2020, 05:50 PM #141
هل لاحظت أنني وضعت كلمة للتفكير في الرد السابق كبيرة وباللون الأحمر--رجاء لاتتجاوزها حتى القراءة المتأنية 7 مرات اخرها بتركيز شديد
- 07-03-2020, 05:52 PM #142
تمرين غير محلول:
InputParameterInfo هل هي على الأرجح, مدخلات من النظام (التشارت ) أم منك أنت كمتسخدم؟
optInputParameterInfos هل هي على الأرجح, مدخلات من النظام (التشارت ) ام منك أنت كمتسخدم؟آخر تعديل بواسطة سلمان_العتيبي ، 07-03-2020 الساعة 05:58 PM
- 07-03-2020, 05:56 PM #143
توضيح أكثر:
نريد حسابات الماكد لاخر 100 يوم مثلا---ماذا نحتاج؟
ج:
1) القيمة 26
2) القيمة 12
3) القيمة 9
4) الاسعار لاخر 126 شمعة
دون هذه المتغيرات الأربعة لايمكن ابدا رسم الماكد (الأخيرة طبعا مصفوفة لأننا نتحدث عن 126 سعر --- 100+26)
اول ثلاثة انت ممكن تغيرها من 26-12-9 الى 10-8-34 مثلا
بينما الاسعار انت تحصل عليها من السستم "السستم هنا هو التشارت"
الاولى لك حق الخيار opt
الثانية لايمكنآخر تعديل بواسطة سلمان_العتيبي ، 07-03-2020 الساعة 05:59 PM
- 07-03-2020, 06:08 PM #144
IndicatorInfo نعود لتكلمة الحديث عنها
خرجنا قليلا لأننا اردنا تمييز هذا المتغير عن المتغيرات الثلاث الاخرى وهي InputParameterInfo و OptInputParameterInfo و OutputParameterInfo
التي سنتحدث عنها لاحقاً
لابد تعرف كيف تميز المتغير عن الاخر--مالهدف من وجوده؟
احذر ان تفكر انه قد يكون هناك اهداف او قواسم مشتركة بين متغيرين---اذا فكرت هكذا انت تعبث والبرمجة نفسها تصبح مجرد عبث وبزرميط!
من أسس مفاهيم الـ OOP عدم تكرار الأفكار!
فهذه المتغيرات الأربع الرئيسية هي البنية التحتية لأي مؤشر نريد تصميمه,
وحسب المصطلح نقول: Fields ولا نقول variables ولانقول parameters ولا نقول arguments
وأيضا قد نقول Members مع العلم ان هذه الأخيرة تشمل أيضا الدوال methods
وتم جعلها كلها private بحيث ان قيمها لا يمكن أن ترى خارج هذا الكلاس "هذا المؤشر" -- يعني كل ماهنا خاص بهذا المؤشر فقط.
لو جعلتها مثلا public وهناك مؤشر اخر يستخدم نفس أسماء المتغيرات تحت نفس البكج او الفولدر, تحدث الخربطة والتضارب.آخر تعديل بواسطة سلمان_العتيبي ، 07-03-2020 الساعة 06:20 PM
- 07-03-2020, 06:23 PM #145
قلنا أن IndicatorInfo لها ثلاثة كونستركتورات؟ وبالتالي هناك 3 طرق لبناء المعلومات "الأنشلة" للمتغيرات أو الدوال المنتمية لهذا النوع,
في كل البرامج وجدتهم يستخدمون الكوسنتركتور التفصيلي, سنخالفهم ونستخدم الكوسنتركتور الفارغ -- لأنك في مرحلة المبتدئين وبالتالي لو استخدمنا الفارغ نجد أنفسنا مضطرين لاستخدام كثير من دوال IndicatorInfo لتجهيز أو إعداد بيانات المؤشر قبل القيام بالحسابات التي تصنع المؤشر كما نريد رؤيته على التشارت. وهذا ما نريده وهو أن تتعلم هذه الدوال وماذا تعني.
أحد الثلاثة كتبوا تحته deprecated -- يعني "تحت الترحيل" -- يعني بعد مدة راح يشيلونه من مكتبة دوكاسكوبي--مثل المتخلفين من الحجاج اللي مسكتهم وزارة الداخلية وتسفرهم لبلدانهم!
تاركينه الان لان هناك برامج قديمة مبنية عليه--حاول تتحاشى استخدامها- والميت ماتجوز عليه الا الرحمة.
فأي دالة تحتها Deprecated لاتستخدمها واستخدم البديل الذي نصحوا به تحتها.آخر تعديل بواسطة سلمان_العتيبي ، 07-03-2020 الساعة 06:28 PM
- 07-03-2020, 06:32 PM #146
IndicatorInfo Constructors
الملف المرفق 521151
ولايجب أن اعيد مرة أخرى أن IndicatorInfo عبارة عن كلاس
وأن الـ Constructor هو نفسه اسم الكلاس ولكن مع قوسين, وهذين القوسين قد تكون فارغة وقد يكون بينها معطى أو أكثر (paramerters)
ولاتخلط بينها وبين الدوال--طالما هي تشبه الدوال في تركيبتها---اعتبرها دوال خاصة جدا
لاحظ لايستخدم معها أي return type بما ذلك النوع void وبالتالي هي ليست دوال methods
حتى كلمة دوال خاصة تعتبر تسمية خاطئة ولكنها تشبه الدوالآخر تعديل بواسطة سلمان_العتيبي ، 07-03-2020 الساعة 06:37 PM
- 07-03-2020, 06:46 PM #147
تأمل لقد استخدموا اسفل الكونستركتور التفصيلي, داخله 9 معطيات (9 arguments) ---أرجو أن تعدها؟
كود:indicatorInfo = new IndicatorInfo("EXAMPIND", "Sums previous values", "My indicators", false, false, false, 1, 1, 1);
قيمة null مع الكائنات مثل قيمة 0 مع الأعداد الصحيحة, وتعني "الكائن العدمي" !!!!
- 07-03-2020, 06:48 PM #148
كلمة new نعلم انها تستخدم جافويا لخلق الكائنات -- هذا الكلام اذا اردته بلغة علمية صارمة يعني "هذه الكلمة new تستخدم جافوياً لاستدعاء الكوسنتركتور" -- واستعداء الكوسنتركتور هو نفسه مانعني به خلق او انشاء الكائنات objects
لاحظ الفعل construct وتعني بناء او انشاء
- 07-03-2020, 06:50 PM #149
- 07-03-2020, 07:00 PM #150
ثم قارنها بالسطر البرمجي في السطر السابق,
لاحظ أول معطى يجب ان يكون name وهو اسم نمنحه للمؤشر وهو من نوع string, ثاني معطى عنوان المؤشر من نوع string أيضا, والثالث من نوع string للمجموعة التي نريده ا نيكون ضمنها "مثلا مع momentums" او مع ال "trends" وماشابه من هه العناوين الرئيسية او حتى تنصع مجموعة لامعنى لها!
وبعده 3 قيم منطقية من نوع Boolean--هل هو سيكون على التشارت --سيكون على الفوليوم -- سيشمل الفترات المضطربة -- ؟
وأخيرا 3 متغيرات من نوع int وهي حسب الصورة أعلاه وبالرتيب:
1) عدد ال inputs القسرية
2) عدد ال inputs الخيارية
3) عدد ال outputs - يعني عدد خطوط المؤشر التي نريد رسمها على التشارت.
قلنا الغ السطر السابق واستخدم الكوسنتركتور الفارغ؟
اذا استخدمت الكوسنتركتور الفراغ انت فقط خلقت كائن من نوع IndicatorInfo ولكن للأسف لايمكنك الأنشلة--- يعني لايمكنك منح القيم للبيانات الضرورية لتصميم أي مؤشر