النتائج 31 إلى 45 من 61
- 29-10-2021, 03:39 PM #31
رجاء ممن يتابع ويتعلم معنا هنا يسجل اسمه
- 29-10-2021, 03:52 PM #32
نحتاج متغيرين:
متغير ل RSI الشمعة قبل السابقة
متغير RSI للشمعة السابقة لكي نقارن بينهما هل تم قطع 70 او 30؟؟
دعنا نسمي المتغير للشمعة قبل السابقة--شمعة رقم 2 باسم rsi1 والشمعة المغلقة الاخيرة باسم rsi1
يتم هذا على النحو التالي:
صورة:
لاحظ وضعنا pairs و FRAME وهي متغيرات مصفوفة بدلا من NULL و 0 كما جرت العادة
لو وضعت NULL و 0 -- انت هكذا تجبره على زوج التشارت
- 29-10-2021, 03:56 PM #33
- 29-10-2021, 04:06 PM #34ايضا نريد من الخبير ان يطبع في خانة كومنت في المنصة: الفريم الذي تسبب في دخول الصفقة.
سيحفظ الفريم الذي تحقق شرطه يوضيفه في خانة كومنت الامر.
نستخدم نفس عبارة EnumToString السابقة ولكن ننقلها داخل اللوب الداخلي لووووووووب i المخصص للأزواج'
صورة:
هل سنستخدم هذه الكومنت كعنصر مؤثر في الصفقات ام لا؟
الجواب لاحقاًآخر تعديل بواسطة سلمان_العتيبي ، 29-10-2021 الساعة 04:09 PM
- 29-10-2021, 04:11 PM #35
- 30-10-2021, 12:06 AM #36
فقط تضيف تحت شرطي ال rsi الدوال التنفيذية, ستكون القيم صريحة لأن الموضوع تعليمي -
- يعني مثلا اللوتات نضع 1 لوت
دون تيك بروفت ووقف -- للتبسيط وهي اشياء معتادة وخارج صلب الموضوع
- 30-10-2021, 01:27 AM #37كود:
string pairs[5]; ENUM_TIMEFRAMES FRAME[9]; datetime time[9]; int OnInit() { EventSetTimer(1); ////////////////////////STEP 01////////////// pairs[0]="CHFJPY"; pairs[1]="GBPCHF"; pairs[2]="EURAUD"; pairs[3]="GBPUSD"; pairs[4]="AUDCAD"; ////////////////////////STEP 02////////////// FRAME[0]=PERIOD_M1; FRAME[1]=PERIOD_M5; FRAME[2]=PERIOD_M15; FRAME[3]=PERIOD_M30; FRAME[4]=PERIOD_H1; FRAME[5]=PERIOD_H4; FRAME[6]=PERIOD_D1; FRAME[7]=PERIOD_W1; FRAME[8]=PERIOD_MN1; return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { EventKillTimer(); } void OnTimer() { for(int k=0;k<ArraySize(FRAME);k++) { if(time[k]!=iTime(NULL,FRAME[k],0)) { time[k]=iTime(NULL,FRAME[k],0); for(int i=0;i<ArraySize(pairs);i++) { double rsi2=iRSI(pairs[i],FRAME[k],14,PRICE_CLOSE,2); double rsi1=iRSI(pairs[i],FRAME[k],14,PRICE_CLOSE,1); if(rsi2<70 && rsi1>70) { string comment_Buy=EnumToString(FRAME[k]); int tickBuy=OrderSend(pairs[i],OP_BUY,1.00,MarketInfo(pairs[i],MODE_ASK),3,0,0,comment_Buy,1234,0,clrBlue); } else if(rsi2>30 && rsi1<30) { string comment_Sell=EnumToString(FRAME[k]); int tickSell=OrderSend(pairs[i],OP_SELL,1.00,MarketInfo(pairs[i],MODE_BID),3,0,0,comment_Sell,1234,0,clrRed); } } } } }
- 30-10-2021, 01:29 AM #38
انتهى
الان انت تستطيع اضافة اشياء كمالية مثل التيك بروفت الخ او الخروج الفني
ايضا كماليات ك داش بورد
ايضا كماليات تعطيل فريمات محددة او تفعيلها بالماوس
الخ
ايضا للمناسبة السعيدة بطرد سفير لبنان ساجيب الاسئلة حتى نهاية تداولات الاثنين القادم
- 30-10-2021, 09:19 PM #39
طبعا اخي ممكن و ممكن جدا ... في هذه الحالة يسمى هذا الاكسبرت داشبورد .. يقرا بيانات كل الازواج و بامكانه فتح اوامر شراء بيع الخ على اي زوج ... اذا بحثت عن داشبورد ستجد كثير من المواقع فيها امثلة .. لا يمكن ذكر مواقع هنا .
ايضا الاخ العتيبي لم يقصر .. اراد ان يعلمك الصيد و لم يعطك السمكة ... اكسبرت المليونير خاصة الاستاذ العتيبي هو مثال على هذا الداشبورد و يستطيع فتح اوامر على 100 زوج دفعة واحدة و من كل الانواع ...
تحياتي ...
- 30-10-2021, 10:39 PM #40
آخر تعديل بواسطة سلمان_العتيبي ، 30-10-2021 الساعة 10:59 PM
- 30-10-2021, 10:59 PM #41
صحيح اخي العتيبي .. سؤال الاخ كان عن الازواج والفريمات .. و اجابتي تخص الازواج فقط ...كمبرمجين نتفق ان الامكانية متوفرة للازواج و الفريمات ايضا ..
- 31-10-2021, 01:04 AM #42
- 31-10-2021, 01:06 AM #43
ولكن الكود أعلاه مكتمل ونموذجي -- فقط تضيف الجماليات والكماليات لمن يحب ولكن دونها سيعمل
وممكن داخل شروط الدخول تغير الحالة الفنية من RSI الى اي مؤشر اخر--سواء مؤشر مشهور مثل الماكد او من فكرة المتداول
وغالبا جميع الافكار الفنية مبنية على الفريمات -- وليست برايس اكش مثل المليونير
- 31-10-2021, 10:11 PM #44
كلام جميل و اتفق معك ...
- 31-10-2021, 11:19 PM #45
بما انك من يرد هنا---فليكم النقاش اكثر عمقا وفلسفيا
ماهي بيئة التطبيق للكود اعلاه؟
ج: اي تشارت
مثلا طبقته على تشارت اليورو دولار سيعمل لكل الازواج وكل الفريمات.
اخي عمر رجاء اقرأ التالي عدة مرات.
كيف نطبقه على كل التشارتات ذات العلاقة ولكن من خلال تشارت واحد؟
هذا السؤال يقول بوضوح ان الكود السابق قد يصاحبع بعض المشاكل لمن لايفهم خفايا المنصات
يعني مثلا انظر للسطر:
كود:if(time[k]!=iTime(NULL,FRAME[k],0)) { time[k]=iTime(NULL,FRAME[k],0);
لتتصور المشكلة فلسفيا--تخيل طبقته على تشارت الذهب او الناسدك
لن تشعر بأي مشكلة حتى ساعة توقف التداول على لذهب او الناسدك اخر الليل -- يتوقف السوق ساعة كاملة وبناء عليه الكود هنا تحت رحمة هذا التوقف
ولكن لو طبقته على اي من العملات الشهيرة لن تشعر بوجود المشكلة لا برمجيا ولا عمليا -- ولكن حقيقة هناك مشكلة
تخيل واحد قال لك انا لاحظت عطل في الساعة 00:00 الى الساعة 01:00 - وانه لم ينفذ صفقة تحققت شروطها على فريم ال 5 دقائق؟ - اخبره فورا انك تعرف انه سيكون عطل واخبره انه طبق على تشارت توقف التداول على زوجه وليكن الناسدك.
وهنا نعود للسؤال الوردي: انت تسحب الخبير الى تشارت واحد--كيف برمجيا نجعل تلك السحبة وكأنها على كل الازواج وكل الفريمات؟ وتحل كل المشاكل الخفية؟
نعيد السؤال الوردي:
كيف نطبقه على كل التشارتات ذات العلاقة ولكن من خلال تشارت واحد؟
ج: نذهب لمصدر المشكلة وهو عبارة: iTime(NULL,FRAME[k],0))
كلمة NULL
وهذا يقودنا من أجل الكمال لتحويل المتغير مصفوفة الوقت time من مصفوفة ذات بعد واحد وهو الفريم الى مصفوفة من بعدين
البُعدين: الزوج و الفريم
يعني من مصفوفة أحادية الى مصفوفة ثنائية.آخر تعديل بواسطة سلمان_العتيبي ، 31-10-2021 الساعة 11:25 PM