النتائج 31 إلى 45 من 378
- 05-03-2020, 08:26 AM #31
ولأن الوقت جزء أصيل في الفوركس وبالتالي لكثير من العمليات البرمجية نطرح السؤال: هل يوجد انترفيسات أخرى ترث من ITimeDat
دائما جواب مثل هذا النوع من الأسئلة هو الرجوع للمباشر لـ دوكاسكوبي API
ج: نعم وتجدها هنا:
https://www.dukascopy.com/client/jav...dukascopy/api/ITimedData.html
وهي ولايوجد غيرها:
IBar, IKagi, ILineBreak, IPointAndFigure, IPriceAggregationBar, IRangeBar, IRenkoBar, ITick, ITickBar
كلها ترث دالة getTime() من هنا.
ردد بشجن التالي:
class extends class
class implements interface
interface extends interface
الأخيرة تحديدا هي المعنية بـ IBar extends ITimeData
ولايوجد ابداً في الدنيا أشياء مثل:
interface extends class
أو interface implements class
أو class implements class
أو interface implements interfaceآخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 08:30 AM
- 05-03-2020, 08:32 AM #32
الآن انت اصبحت تعرف كل شيء له علاقة بالنوع IBar وهو نوع كائني "نوع معقد" مجاله قيم البارة وتبين لنا ان عددها ستة.
وننتقل الان الى ITick ونعيد نفس الثرثرة السابقة لكي نفهمها 100% لأهميتها أيضا
قد كنت تشاهد هذا السطر كثيراً:
كود:public void onTick(Instrument instrument, ITick tick) throws JFException {}
جملة الطباعة println انسخها الان الى دالة OnTick
واعد نفس الخطوات واستكشف.
ردد:
OnTick دالة
ITick نوع
tick متغيرآخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 08:37 AM
- 05-03-2020, 08:42 AM #33
في IBar هل تحدثنا عن ask و bid ؟؟
لا, ولكن تحدثنا عن O-H-C-L وهل هذه القيم الأربعة مبنية على سعر الاسك ام على سعر البد -- (يعني تحدثنا عن أسعار انتهت)
ولكن الاسك نفسه والبد نفسه لم نتحدث عنه.
ركز رجاء.
ask و bid نفسها تستخرج من خلال ITick
وكما يقتضي الاسم نتحدث عن التكات(وليس عن الافتتاح والاغلاق والهاي واللو), والتكة اما عرض او طلب -- اما bid او ask
لطباعة كل قيم tick ضعها دون نقطة استدعاء لدوالها
ستجدها تطبع 3 قيم, الوقت الموروث من اعلى و البد والاسك. (هل ITick لها 3 دوال فقط؟؟ ج: ماهو شرط)
ثم بعد ذلك باستخدام النقطة اطبع قيمة محددة؟
هنا تتوقف--ماهي الدالة التي تعبر عن ask وماهي الدالة التي تعبر عن bid
ودائما جوابنا ارجع لموقع API دوكاسكوبي واحضرها من هناك. (تذهب مباشرة الى com.dukascopy.api)
https://www.dukascopy.com/client/jav...api/ITick.htmlآخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 08:47 AM
- 05-03-2020, 08:56 AM #34
فهناك 11 دالة نصل لها من خلال اي متغير من نوع ITick --
10 مباشرى و 1 موروثة
انظر لأهمية الوراثة في الجافا inheritance , فبدلا من اعادة تصميم برنامج لمعرفة لوقت getTime مع كل اختراع جديد, جعلوا المشترك بين كل الاختراعات في مكان واحد دون الحاجة لاعادة كتابته كل مرة.
الملف المرفق 520980
- 05-03-2020, 09:22 AM #35
Heap Memory in JVA
هل لاحظ الدالة getBids()
مصفوفة "array" ??? اليس كذلك؟
لو اخترت طباعتها هل سيطبع عدة قيم للبد--اقرب 10 لـ بد عليها طلب؟؟ ام سيطبع قيمة واحدة غريبة؟؟
الملف المرفق 520981
سيطبع حرف D ثم علامة @ ثم رقم صحيح طويل,
D تأتي في مكان التعبير عن اسم الكلاس الذي يوجد فيه المتغير في الجافا العادية "يعني يفترض مكانها اسم الكلاس" ولكن مع دوكاسكوبي ولأنها built-in خصيصا لمنصتهم تجد حرف D اختصار Dukascopy
ناتج هذا الكود:
كود:context.getConsole().getOut().println("OnBar: "+instrument+" "+tick.getBids());
الملف المرفق 520982
- 05-03-2020, 09:26 AM #36
لأنها مصفوفة--حدد العناصر بإضافة الاندكس بعد الدالة بين قوسين []
كود:public void onTick(Instrument instrument, ITick tick) throws JFException { context.getConsole().getOut().println("OnTick: 0 "+instrument+" "+tick.getBids()[0]); context.getConsole().getOut().println("OnTick: 1 "+instrument+" "+tick.getBids()[1]); context.getConsole().getOut().println("OnTick: 2 "+instrument+" "+tick.getBids()[2]); }
- 05-03-2020, 09:29 AM #37
هل سنستمر الى ما لانهاية نضيف في الاندكس؟ ام لها عدد محدد؟ وماهي فلسفتها اساسا؟
واذا كان لها عدد محدد؟ وتجاوزته دون قصد--مثلا عدد العناصر 11 وانا طلبت طباعة العنصر 21 ؟؟؟ ماذا سيحدث؟
- 05-03-2020, 09:33 AM #38
تخيل الكود التالي يطبع 12 عنصر ---- من 0 وحتى 11:
كود:public void onTick(Instrument instrument, ITick tick) throws JFException { context.getConsole().getOut().println("OnTick: 0 "+instrument+" "+tick.getBids()[0]); context.getConsole().getOut().println("OnTick: 1 "+instrument+" "+tick.getBids()[1]); context.getConsole().getOut().println("OnTick: 2 "+instrument+" "+tick.getBids()[2]); context.getConsole().getOut().println("OnTick: 0 "+instrument+" "+tick.getBids()[3]); context.getConsole().getOut().println("OnTick: 1 "+instrument+" "+tick.getBids()[4]); context.getConsole().getOut().println("OnTick: 2 "+instrument+" "+tick.getBids()[5]); context.getConsole().getOut().println("OnTick: 0 "+instrument+" "+tick.getBids()[6]); context.getConsole().getOut().println("OnTick: 1 "+instrument+" "+tick.getBids()[7]); context.getConsole().getOut().println("OnTick: 2 "+instrument+" "+tick.getBids()[8]); context.getConsole().getOut().println("OnTick: 0 "+instrument+" "+tick.getBids()[9]); context.getConsole().getOut().println("OnTick: 1 "+instrument+" "+tick.getBids()[10]); context.getConsole().getOut().println("OnTick: 2 "+instrument+" "+tick.getBids()[11]); }
06:29:52 java.lang.ArrayIndexOutOfBoundsException: 10 @ jforex.SalmanExpert_04.onTick(SalmanExpert_04.java :28)
جربت 11 عنصر, واتى الرسالة أعلاه: ومختصرها: ArrayIndexOutOfBoundsException -- يعني هناك مشكلة سببها انني طلبت طباعة عنصر خارد حدود المصفوفة -- يعني array index is out of bounds
وبالتالي ننتبه لهذه النقطة لابد نعلم سلفا اعلى اندكس, او لانطبعها بهذا الشكل العبثي ونختار فلسفة foreach التي بشكل اوتوماتيكي تعرف عدد عناصر المصفوفة وتفر عليها بالترتيب.
- 05-03-2020, 09:45 AM #39
- 05-03-2020, 09:47 AM #40
اذن عرفنا الان ان منصة دوكاسكوبي للفوليوم توفر فوليوم اقرب 10 أسعار عليها عرض وطلب.
لاحظ الأسعار المسافة بينها بالنقاط (يعني بين كل امرين متتالين ) ماهو شرط متساوية
وهنا دوكاسكو تعرض السيولة الحقيقة للعرض والطلب من خلال حوض السيولة الذي تحت رؤويتهم.
- 05-03-2020, 09:49 AM #41
عرض اليورو دولار فقط لأننا تعمدنا تفعيله لوحده وشرحنا التفعيل يوم أمس بما لامزيد عليه.
- 05-03-2020, 09:57 AM #42
لماذا سنستخدم هذه الفترة for المطورة كثيراً؟
ل 3 أسباب:
1) انت تتعلم الان كمبتدئ
2) تسعى لاستكشاف اكثر معطيات دوكاسكوبي تحت العناوين المختلفة
3) توفر علينا وجع الرأس في البحث عن عدد عناصر المصفوفة لنتحاشى الخطأ "ArrayIndexOutOfBoundsException" ومشكلته أنه runtime-error
تركيبة مابين قوسي for
متغير من نوع قيم المصفوفة--في المثال السابق النوع double لأن أسعار البد من نوع double ثم متغير تضعه انت ليحمل قيم واحدة من قيم عناصر المصفوفة
ثم نقطتين فوق بعض ":"
ثم المصفوفة وهي في المثال أعلاه tick.getBids() دون قوسي المصفوفةآخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 10:01 AM
- 05-03-2020, 10:03 AM #433) توفر علينا وجع الرأس في البحث عن عدد عناصر المصفوفة لنتحاشى الخطأ "ArrayIndexOutOfBoundsException" ومشكلته أنه runtime-error
وعلى فرض أنك بعت هذا البرنامج كمنتج, الزبون سيعاني, سيظهر له مشكلة الاندكس! ثم سيرمي منتجك عليك ويتعوض الله.
حيث ظهرت المشاكل اثناء run للبرنامج "اثناء تشغيل البرنامج" --- تسمى run-time errors or exceptions
- 05-03-2020, 10:10 AM #44
تمرين: باستخدام for اطبع العملات المفعلة مرقمة؟
الأفضل نضع الطباعة تحت دالة OnStart--مرة واحدة
لو مسحتها من الكونسوال فقط اعد إطفاء ثم تشغيل الخبير لطباعتها مرة أخرى
على الكونسول اضغط رايت كلك ثم clear messages لتمسح أي محتوى سابق.
كود:package jforex; import java.util.*; import com.dukascopy.api.*; public class SalmanExpert_05 implements IStrategy { private IContext context; public void onStart(IContext context) throws JFException { this.context=context; int j=0; for( Instrument i : context.getSubscribedInstruments() ) { j++; context.getConsole().getOut().println("onStart: "+j+" "+i); } } public void onAccount(IAccount account) throws JFException {} public void onMessage(IMessage message) throws JFException { } public void onStop() throws JFException {} public void onTick(Instrument instrument, ITick tick) throws JFException { } public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException{ } }
الناتج:
آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 10:13 AM
- 05-03-2020, 10:14 AM #45