النتائج 1 إلى 8 من 8
- 08-06-2013, 03:54 PM #1
ورشة برمجة أشارات الدخول والأستراتيجيات
بهذا الموضوع نريد برمجة الكثير الكثير من أشارات الدخول والخروج للأستراتيجيات ونريد ان يكون لدينا هدف لا نخرج منه بهذا الموضوع والهدف هو برمجة أشارات الدخول والخروج فقط ومقارنتها بالأشارات التي نحلل بها يدوي عن طريق مؤشرات توضح مكان الأشارة وليس صنع أكسبرتات.
وسيكون هدف الموضوع هو:
1- تعليمي وسنتحاور عن طريقة كتابة الأشارات التي نراها على الشارت بأعينناالى أشارات برمجة يفهمها الاكسبرت.
2- مصدر يمكن الرجوع اليه لو واحد أراد ان يعمل أكسبرت لأستراتيجية معينة وواجهته صعوبة بتحويل بعض المؤشرات الى أشارات.
3- تجهيز قاعدة بيانات ممكن ان نعمل بها مستقبلاً برامج تقارن اشارات الدخول والخروج وتختار أفضل الأستراتيجيات كل فترة معينة.
وقبل أن نبدأ سيكون هدفنا هو تجميع أشارات عن:
1- اشارات بداية الترند.
2- اشارات التشبع أو مناطق الدخول عند المستويات القوية.
3-اشارات الخروج.
وسنفرض أن كل أستراتيجية تحتاج الى
اشارة بداية الترند + اشارة تشبع او منطقة دخول قوية
بالاضافة الى اشارة خروج فلو كانت اشارة الترند قوية ومبكرة وكانت اشارة التشبع قوية وكانت اشارة الخروج مناسبة وتحقق اكبر قدر ممكن من الارباح نجحت الاستراتيجية هذه هي فرضيتنا الانآخر تعديل بواسطة Ram22 ، 08-06-2013 الساعة 04:13 PM
- 08-06-2013, 04:10 PM #2
رد:ورشة برمجة أشارات الدخول والأستراتيجيات
أشارة بداية الترند الاولى: وهي تقاطع الموفنج أفرج وسيكون لدينا 2 مؤشرات موفنج واحد بطئ وواحد سريع
وسنفرض أن السريع 13 والبطئ 21
أشارة الشراء
كود:double Q1=iMA(NULL, 0, 13, 0, 0, 0,count); double Q2=iMA(NULL, 0, 21, 0, 0, 0,count); double Q3=iMA(NULL, 0, 13, 0, 0, 0,count+2); double Q4=iMA(NULL, 0, 21, 0, 0, 0,count+2); double Q5=iMA(NULL, 0, 13, 0, 0, 0,count+1); double Q6=iMA(NULL, 0, 21, 0, 0, 0,count+1); if(Q1>Q2&&Q3<Q4&&Q5<Q6)
كود:double Q1=iMA(NULL, 0, 13, 0, 0, 0,count); double Q2=iMA(NULL, 0, 21, 0, 0, 0,count); double Q3=iMA(NULL, 0, 13, 0, 0, 0,count+2); double Q4=iMA(NULL, 0, 21, 0, 0, 0,count+2); double Q5=iMA(NULL, 0, 13, 0, 0, 0,count+1); double Q6=iMA(NULL, 0, 21, 0, 0, 0,count+1); if(Q1<Q2&&Q3>Q4&&Q5<Q6)
- 08-06-2013, 04:34 PM #3
رد:ورشة برمجة أشارات الدخول والأستراتيجيات
اشارة بداية الترند 2: تحرك مؤشر cci وتخطيه للمستوى 0
شراء
كود:double Q1=iCCI(NULL, 0, 14, PRICE_CLOSE, count); double Q2=iCCI(NULL, 0, 14, PRICE_CLOSE, count+1); double Q3=iCCI(NULL, 0, 14, PRICE_CLOSE, count+2); if(Q1>Q2&&Q2>Q3&&Q1>0&&Q3<0)
كود:double Q1=iCCI(NULL, 0, 14, PRICE_CLOSE, count); double Q2=iCCI(NULL, 0, 14, PRICE_CLOSE, count+1); double Q3=iCCI(NULL, 0, 14, PRICE_CLOSE, count+2); if(Q1<Q2&&Q2<Q3&&Q1<0&&Q3>0)
- 08-06-2013, 04:38 PM #4
وطبعاً لو واحد عنده ملاحظة على أي أشارة ولديه طريقة اخرى أفضل منها فليكتبها لأن الهدف من هذا الموضوع هو تجميع كل الأشارات المحتملة وتقسيمها لاجزاء ، جزء يخص اشارات بداية الترندات وجزء يخص اشارات التشبع وكذلك لو واحد لديه استراتيجية بها اشارات فليكتبها ايضاً.
- 08-06-2013, 04:45 PM #5
رد:ورشة برمجة أشارات الدخول والأستراتيجيات
أشارة الترند 3 : تحرك مؤشر cci لأعلى او لاسفل
شراء
كود:double Q1=iCCI(NULL, 0, 14, PRICE_CLOSE, count); double Q2=iCCI(NULL, 0, 14, PRICE_CLOSE, count+1); double Q3=iCCI(NULL, 0, 14, PRICE_CLOSE, count+2); if(Q1>Q2&&Q2>Q3)
كود:double Q1=iCCI(NULL, 0, 14, PRICE_CLOSE, count); double Q2=iCCI(NULL, 0, 14, PRICE_CLOSE, count+1); double Q3=iCCI(NULL, 0, 14, PRICE_CLOSE, count+2); if(Q1<Q2&&Q2<Q3)كود:#property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_color2 Red int D1=10,D2=10; int p=1; double R1[]; double R2[]; int init() { SetIndexStyle(0,DRAW_ARROW,3,3); SetIndexArrow(0,236); SetIndexBuffer(0,R1); SetIndexStyle(1,DRAW_ARROW,3,3); SetIndexArrow(1,238); SetIndexBuffer(1,R2); if(Point==0.00001||Point==0.001)p=10; return(0); } int deinit() { Comment(""); return(0); } int start() { Comment("ورشة تجميع أشارات الدخول والخروج"); if(Bars<3) return(0); int Total=Bars-10; for(int j=Total; j>0; j--){ if(Signal1(j))R1[j-1]=Low[j-1]-D1*Point*p; if(Signal2(j))R2[j-1]=High[j-1]+D2*Point*p; D1=Convert(D1);D2=Convert(D2); } return(0); } bool Signal1(int count){double Q1=iCCI(NULL, 0, 14, PRICE_CLOSE, count); double Q2=iCCI(NULL, 0, 14, PRICE_CLOSE, count+1); double Q3=iCCI(NULL, 0, 14, PRICE_CLOSE, count+2); if(Q1>Q2&&Q2>Q3) return(true);else return(false); } bool Signal2(int count){double Q1=iCCI(NULL, 0, 14, PRICE_CLOSE, count); double Q2=iCCI(NULL, 0, 14, PRICE_CLOSE, count+1); double Q3=iCCI(NULL, 0, 14, PRICE_CLOSE, count+2); if(Q1<Q2&&Q2<Q3) return(true);else return(false); } int Convert(int A){ int A1=10; if(A==10)A1=15; if(A==15)A1=10; return(A1); }
- 08-06-2013, 04:56 PM #6
رد:ورشة برمجة أشارات الدخول والأستراتيجيات
اشارة بداية الترند 4:تحرك مؤشرالمومنتيوم لاعلى او لاسفل
شراء
كود:double Q1=iMomentum(NULL, 0, 14, PRICE_CLOSE, count); double Q2=iMomentum(NULL, 0, 14, PRICE_CLOSE, count+1); double Q3=iMomentum(NULL, 0, 14, PRICE_CLOSE, count+2); if(Q1>Q2&&Q2>Q3)
كود:double Q1=iMomentum(NULL, 0, 14, PRICE_CLOSE, count); double Q2=iMomentum(NULL, 0, 14, PRICE_CLOSE, count+1); double Q3=iMomentum(NULL, 0, 14, PRICE_CLOSE, count+2); if(Q1<Q2&&Q2<Q3)كود:#property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_color2 Red int D1=10,D2=10; int p=1; double R1[]; double R2[]; int init() { SetIndexStyle(0,DRAW_ARROW,3,3); SetIndexArrow(0,236); SetIndexBuffer(0,R1); SetIndexStyle(1,DRAW_ARROW,3,3); SetIndexArrow(1,238); SetIndexBuffer(1,R2); if(Point==0.00001||Point==0.001)p=10; return(0); } int deinit() { Comment(""); return(0); } int start() { Comment("ورشة تجميع أشارات الدخول والخروج"); if(Bars<3) return(0); int Total=Bars-10; for(int j=Total; j>0; j--){ if(Signal1(j))R1[j-1]=Low[j-1]-D1*Point*p; if(Signal2(j))R2[j-1]=High[j-1]+D2*Point*p; D1=Convert(D1);D2=Convert(D2); } return(0); } bool Signal1(int count){double Q1=iMomentum(NULL, 0, 14, PRICE_CLOSE, count); double Q2=iMomentum(NULL, 0, 14, PRICE_CLOSE, count+1); double Q3=iMomentum(NULL, 0, 14, PRICE_CLOSE, count+2); if(Q1>Q2&&Q2>Q3) return(true);else return(false); } bool Signal2(int count){double Q1=iMomentum(NULL, 0, 14, PRICE_CLOSE, count); double Q2=iMomentum(NULL, 0, 14, PRICE_CLOSE, count+1); double Q3=iMomentum(NULL, 0, 14, PRICE_CLOSE, count+2); if(Q1<Q2&&Q2<Q3) return(true);else return(false); } int Convert(int A){ int A1=10; if(A==10)A1=15; if(A==15)A1=10; return(A1); }آخر تعديل بواسطة Ram22 ، 08-06-2013 الساعة 04:59 PM
- 08-06-2013, 07:47 PM #7
رد:ورشة برمجة أشارات الدخول والأستراتيجيات
وهذه مجموعة أشارات بداية الترند للمؤشرات التالية:
1-الموفنج افرج.
2-الجيتار.
3-Accelerator Oscillator.
4-cci.
5-ماكد.
6-مومنتيوم.
7-اغلاق الشمعة.
طريقة حساب اشارة الدخول :
بحالة الشراء:
يراجع أخر 4 قيم للمؤشر للشمعات السابقة ولو وجد المؤشر ارتفع خطوة عن الشمعة التي تسبقها احسب نقطة ولو وصلت النقاط الى رقم اكبر من او يساوي Goal فان الأشارة تحققت وسندخل رقم المؤشر الذي نريد التحقق من اشارته من الاعدادات من Typeوالعكس بيع.
شراء
كود:int RR=0; for(int j=count; j<=count+4; j++){if(parameter(j,type)>parameter(j+1,type))RR++;} if(RR>=Goal)
بيع
كود:for(int j=count; j<=count+4; j++){if(parameter(j,type)<parameter(j+1,type))RR++;} if(RR>=Goal)كود:double parameter(int count,int n){ n--; double G1[7]; G1[0]=iMA(NULL, 0, 13, 0, 0, 0,count); G1[1]=iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW,count); G1[2]=iAC(NULL, 0, count); G1[3]=iCCI(NULL, 0, 14, PRICE_CLOSE, count); G1[4]=iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, count); G1[5]=iMomentum(NULL, 0, 14, PRICE_CLOSE, count); G1[6]=iClose(NULL,0,count); return(G1[n]); }كود:#property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_color2 Red extern int type=1; extern int Goal=3; int D1=10,D2=10; int p=1; double R1[]; double R2[]; int init() { SetIndexStyle(0,DRAW_ARROW,3,3); SetIndexArrow(0,236); SetIndexBuffer(0,R1); SetIndexStyle(1,DRAW_ARROW,3,3); SetIndexArrow(1,238); SetIndexBuffer(1,R2); if(Point==0.00001||Point==0.001)p=10; return(0); } int deinit() { Comment(""); return(0); } int start() { Comment("ورشة تجميع أشارات الدخول والخروج"); if(Bars<3) return(0); int Total=Bars-10; for(int j=Total; j>0; j--){ if(Signal1(j))R1[j-1]=Low[j-1]-D1*Point*p; if(Signal2(j))R2[j-1]=High[j-1]+D2*Point*p; D1=Convert(D1);D2=Convert(D2); } return(0); } bool Signal1(int count){ int RR=0; for(int j=count; j<=count+4; j++){if(parameter(j,type)>parameter(j+1,type))RR++;} if(RR>=Goal)return(true);else return(false); } bool Signal2(int count){ int RR=0; for(int j=count; j<=count+4; j++){if(parameter(j,type)<parameter(j+1,type))RR++;} if(RR>=Goal) return(true);else return(false); } int Convert(int A){ int A1=10; if(A==10)A1=15; if(A==15)A1=10; return(A1); } double parameter(int count,int n){ n--; double G1[7]; G1[0]=iMA(NULL, 0, 13, 0, 0, 0,count); G1[1]=iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW,count); G1[2]=iAC(NULL, 0, count); G1[3]=iCCI(NULL, 0, 14, PRICE_CLOSE, count); G1[4]=iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, count); G1[5]=iMomentum(NULL, 0, 14, PRICE_CLOSE, count); G1[6]=iClose(NULL,0,count); return(G1[n]); }آخر تعديل بواسطة Ram22 ، 08-06-2013 الساعة 08:00 PM
- 08-06-2013, 07:59 PM #8
الاشارات التي نريد ان نتعاون ونجمعها بهذا الموضوع لها فائدة كبيرة جداً ولا يظن البعض انها أضاعة للوقت ، فبعد تجميع أشارات كثيرة وتقسيمها الى أقسام قسم يخص بداية الترند مثلاً وقسم يخص اشارات التشبع مثلاً فمن الممكن الأستفادة من هذه الاشارات بوضعها بقاعدة بيانات تجعل برنامج يقارن أشارات كثيرة ويختار افضلها لكل عملة ولكل فترة من الوقت وهذه الفكرة ممكنة وجربتها وليست صعبة ايضاً بامكان اي واحد لا يفهم بالبرمجة شئ أن يدرس اي لغة برمجة شهر ويكون قادر على عمل برنامج ينفذ ذلك وهذا هو الامل الوحيد لمن أراد ان يستمر يربح بالفوركس لأنه لو ظن واحد أنه سيعمل بأكسبرت باستراتيجية واحدة وسيربح فترة طويلة فلا يضيع وقته لأنه لن يجد اي ربح مستمر.