المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : برمجة اكسبيرت للمؤشر SAR


sadik
17-04-2013, 05:59 PM
يعطيكون العافية شباب وخاصتا أخي المبرمج القدير مصطفى
أنا عم حاول أبرمج اكسبيرت للمؤشر باربوليك سار parabolic SAR
بحيث يفتح صفقة شراء عندما يتغير اتجاه المؤشر من فوق الشمعة السابقة الى تحت الشمعة الحالية
وبالعكس يفتح صفقة بيع عندما يتغير اتجاه المؤشر من تحت الشمعة السابقة الى فوق الشمعة الحالية
وهدفي هوو نقاط قليلة بحيث أحصل على ربح سريع

المشكلة أن الاكسبيرت يتأخر في فتح الصفقة كما هو موضح بالرسوم
http://www.fx-arabia.com/vb/uploaded/14484_11366209913.png

لاحظ أخي الغالي أنه فتح صفقة بيع في الشمعة قبل الأخيرة ولكن متأخر كثيرا
وفتح صفقة شراء بالشمعة الأخيرة ولكن متأخر أيضا

والكود الذي استخدمته لهذه العملية هو التالي:
double sar1=iSAR(NULL,0,Step,Maximum,1);
double close1=iClose(NULL,0,1);
double sar0=iSAR(NULL,0,Step,Maximum,0);
double open0=iOpen(NULL,0,0);


if((sar1<close1)&& (sar0>close1)&&(OrdersTotal()<=0)&&(alerttime!=Time[0]))
{
int opensell=OrderSend(Symbol(),OP_SELL,lot,Bid,slippa ge,NormalizeDouble(Bid+StopLoss*Point,Digits),Norm alizeDouble(Bid-TakeProfit*Point,Digits),"MY PROFIT trader sell order",0,0,Red);
alerttime=Time[0];
return(0);
}


if((sar0<close1)&&(sar1>close1)&&(OrdersTotal()<=0)&&(alerttime!=Time[0]))
{
int openbuy=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage ,NormalizeDouble(Ask-StopLoss*Point,Digits),NormalizeDouble(Ask+TakePro fit*Point,Digits),"MY1 trader buy order",0,0,Green);
alerttime=Time[0];
return(0);
}
أرجو المساعدة
وفي حال كان هناك حل للمشكلة حينها يكون من المجدي فتح ورشة لهذا الموضوع
وشكرا جزيلا

MOVING_AVERAGE
17-04-2013, 11:28 PM
يعطيكون العافية شباب وخاصتا أخي المبرمج القدير مصطفى
أنا عم حاول أبرمج اكسبيرت للمؤشر باربوليك سار parabolic SAR
بحيث يفتح صفقة شراء عندما يتغير اتجاه المؤشر من فوق الشمعة السابقة الى تحت الشمعة الحالية
وبالعكس يفتح صفقة بيع عندما يتغير اتجاه المؤشر من تحت الشمعة السابقة الى فوق الشمعة الحالية
وهدفي هوو نقاط قليلة بحيث أحصل على ربح سريع

المشكلة أن الاكسبيرت يتأخر في فتح الصفقة كما هو موضح بالرسوم
http://www.fx-arabia.com/vb/uploaded/14484_11366209913.png

لاحظ أخي الغالي أنه فتح صفقة بيع في الشمعة قبل الأخيرة ولكن متأخر كثيرا
وفتح صفقة شراء بالشمعة الأخيرة ولكن متأخر أيضا

والكود الذي استخدمته لهذه العملية هو التالي:
double sar1=iSAR(NULL,0,Step,Maximum,1);
double close1=iClose(NULL,0,1);
double sar0=iSAR(NULL,0,Step,Maximum,0);
double open0=iOpen(NULL,0,0);


if((sar1<close1)&& (sar0>close1)&&(OrdersTotal()<=0)&&(alerttime!=Time[0]))
{
int opensell=OrderSend(Symbol(),OP_SELL,lot,Bid,slippa ge,NormalizeDouble(Bid+StopLoss*Point,Digits),Norm alizeDouble(Bid-TakeProfit*Point,Digits),"MY PROFIT trader sell order",0,0,Red);
alerttime=Time[0];
return(0);
}


if((sar0<close1)&&(sar1>close1)&&(OrdersTotal()<=0)&&(alerttime!=Time[0]))
{
int openbuy=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage ,NormalizeDouble(Ask-StopLoss*Point,Digits),NormalizeDouble(Ask+TakePro fit*Point,Digits),"MY1 trader buy order",0,0,Green);
alerttime=Time[0];
return(0);
}أرجو المساعدة
وفي حال كان هناك حل للمشكلة حينها يكون من المجدي فتح ورشة لهذا الموضوع
وشكرا جزيلا






اخي هل تاجرت اعتمادا علي نقاط sar وحدها ؟؟؟؟

ام لم تتاجر من قبل عليها

sadik
18-04-2013, 10:39 AM
التجارة على نقاط ال SAR وحدها
أي لحظة حساب قيمة الSAR للشمعة الجديدة

MOVING_AVERAGE
18-04-2013, 01:02 PM
التجارة على نقاط ال SAR وحدها
أي لحظة حساب قيمة الSAR للشمعة الجديدة



اقصد لحضة ضهور النقطة المعاكسة

مثلا لو انا النقاط ضاهرة من اعلي

http://www.fx-arabia.com/vb/uploaded/8190_01366279175.jpg

فنقاط البرابوليك سار تعتبر كانها مقاومات او دعوم

اذا اخترقت مقاومة تصبح دعم واذا اخترق دعم يصبح مقاومات

نفس الام بالنسبة للضهور

تكون في الاعلي لما تتجاوزها الشمعة تصبح في الاسفل والعكس

يعني في اول نقطة برابوليك صار هي لم تضهر مباشرتا في المكان الذي رسمت عليه

sadik
18-04-2013, 03:38 PM
أخي الغالي مصطفى كلامك صحيح مية بالمية
بس اذا بتراقب التشارت وبتنتظر لحظة القلبان بتعت الSAR بتلاحظ انو بيفتح الصفقة برضو على مسافة كبيرة من لحظة حساب قيمة SAR
ولاحظت انو المسافة دي متنسبة مع طول الشمعة يعني لو الشمعة كبيرة حتكون المسافة أكبر
طبعا وفي حالات يقلب الSAR من الأول ومايغيرش اتجاهه وهي الحاله الغالبة
انت جربت الكود؟
وهل هناك خطأ برمجي مثلا أو منطقي؟
وشكرا لتعاونك أخي الغالي

MOVING_AVERAGE
19-04-2013, 11:09 AM
لاحظ اخي

ماهدف هذه المقارنة


sar0>close1

sadik
19-04-2013, 02:45 PM
لقد كانت sar0>open0
وبما أنا close1 تساوي عادتا open0
فوضعتها محاولتا مني تسريع اتخاذ القرار البرمجي
ولكن الاثنتين يعطو نفس النتيجة

MOVING_AVERAGE
20-04-2013, 10:59 AM
ارفق الاكسبريت لكي افحصه

sadik
20-04-2013, 01:16 PM
هذا هوو الاكسبيرت أخي مصطفى
http://www.fx-arabia.com/vb/uploaded/14484_11366452817.mq4
وعند التجريب لاحظ انه لولا مشكلة التأخير هذه لكان رابحا بشكل أكيد

وشكرا شكرا على وقت وجهدك أخي الغالي

sadik
24-04-2013, 04:33 PM
أتمنى ماتكون نسيتني أخي الغالي
:D

sadik
28-04-2013, 12:07 PM
يعطيك العافية أخي مصطفى
ياريت تخبرني اذا صار معك شي

abdullah90
28-04-2013, 02:46 PM
انا بالانتظار :) :p

عبد الجليل
01-11-2013, 02:28 AM
يعطيكون العافية شباب وخاصتا أخي المبرمج القدير مصطفى
أنا عم حاول أبرمج اكسبيرت للمؤشر باربوليك سار parabolic SAR
بحيث يفتح صفقة شراء عندما يتغير اتجاه المؤشر من فوق الشمعة السابقة الى تحت الشمعة الحالية
وبالعكس يفتح صفقة بيع عندما يتغير اتجاه المؤشر من تحت الشمعة السابقة الى فوق الشمعة الحالية
وهدفي هوو نقاط قليلة بحيث أحصل على ربح سريع

المشكلة أن الاكسبيرت يتأخر في فتح الصفقة كما هو موضح بالرسوم
http://www.fx-arabia.com/vb/uploaded/14484_11366209913.png

لاحظ أخي الغالي أنه فتح صفقة بيع في الشمعة قبل الأخيرة ولكن متأخر كثيرا
وفتح صفقة شراء بالشمعة الأخيرة ولكن متأخر أيضا

والكود الذي استخدمته لهذه العملية هو التالي:
double sar1=iSAR(NULL,0,Step,Maximum,1);
double close1=iClose(NULL,0,1);
double sar0=iSAR(NULL,0,Step,Maximum,0);
double open0=iOpen(NULL,0,0);


if((sar1<close1)&& (sar0>close1)&&(OrdersTotal()<=0)&&(alerttime!=Time[0]))
{
int opensell=OrderSend(Symbol(),OP_SELL,lot,Bid,slippa ge,NormalizeDouble(Bid+StopLoss*Point,Digits),Norm alizeDouble(Bid-TakeProfit*Point,Digits),"MY PROFIT trader sell order",0,0,Red);
alerttime=Time[0];
return(0);
}


if((sar0<close1)&&(sar1>close1)&&(OrdersTotal()<=0)&&(alerttime!=Time[0]))
{
int openbuy=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage ,NormalizeDouble(Ask-StopLoss*Point,Digits),NormalizeDouble(Ask+TakePro fit*Point,Digits),"MY1 trader buy order",0,0,Green);
alerttime=Time[0];
return(0);
}
أرجو المساعدة
وفي حال كان هناك حل للمشكلة حينها يكون من المجدي فتح ورشة لهذا الموضوع
وشكرا جزيلا





السلام عليكم اخي
انا وقعت معي نفس المشكلة
ولا ادري ما الحل
لولا تاخر فتح الصفقات لكان اكسبيرت ناجح جدا