الطريقة الأولى هذه هي الأسهل لكن شرطها أن يكون شغال قبل الشمعة المطلوبة ستضع الكود في دالة OnTich
كود PHP:
if(Hour()==17)
{
double ahi=High[1];
if(Ask>ahi) {
Comment(ahi);
// do buy
}
}
Printable View
للأسف اعاني صعوبة شديدة جدا في المشاركة في المنتدى فاذا كتبت المشاركة لا أستطيع كتابة كود فيها الا بعد محاولات واعيد الكتابة مرات حتى اكره المشاركة .اقتباس:
اقتباس المشاركة الأصلية كتبت بواسطة nofx مشاهدة المشاركة
السلام عليكم ورحمة الله وبركاته
لو تكرمتم بشرح وعمل الكود التالي : الحصول على معلومات معينه من شمعة محددة ، مثلا اريد احدد الهاي واللو لأي شمعه سابقه مثلا الساعة 15 لكل يوم.
واذا كان هناك شرح وامثله للدوال الزمنية بارك الله فيكم
تفضل هذا الكود الثاني يستخدم اذا اردت تعليق اوردر بناء على شمعة سابقة ولنفترض اها الشمعة الرابعة قبل الحالية
وهذا الكود شرحه أستاذي مستر دولار في آخر رد له في هذه الصفحة يمكنك الرجوع اليه بالتفصيل .كود PHP:
for(int i=0; i<iBarShift(Symbol(),0,iTime(Symbol(),1440,0),false); i++)
{
if(i==4){
double hi= NormalizeDouble(iHigh (Symbol(),0,i),Digits);
Comment(hi);
}}
الكود الثالث وهم الأهم سنحدد في المتغيرات وقت لبداية الفترة ووقت لنهايتها واذا اردنا مثلا شمعة واحدة مثلا الساعة 7 سنضع البداية 7 والنهاية 8اقتباس:
اقتباس المشاركة الأصلية كتبت بواسطة nofx مشاهدة المشاركة
السلام عليكم ورحمة الله وبركاته
لو تكرمتم بشرح وعمل الكود التالي : الحصول على معلومات معينه من شمعة محددة ، مثلا اريد احدد الهاي واللو لأي شمعه سابقه مثلا الساعة 15 لكل يوم.
واذا كان هناك شرح وامثله للدوال الزمنية بارك الله فيكم
ثم نضع الكود في دالة OnTickكود PHP:
extern string BreakTime_Start="6";
extern string BreakTime_End ="7";
كود PHP:
double H_Price,L_Price;
datetime F_T,E_T;
int F_D,E_D,L_D,H_D;
F_T =StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + BreakTime_Start );
E_T =StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + BreakTime_End );
F_D=iBarShift(Symbol(),0,F_T);
E_D=iBarShift(Symbol(),0,E_T)+1;
L_D=iLowest(Symbol(),0,MODE_LOW,F_D-E_D+1,E_D);
H_D=iHighest(Symbol(),0,MODE_HIGH,F_D-E_D+1,E_D);
H_Price=High[H_D];
L_Price=Low[L_D];
Comment(H_Price," ",L_Price);
جزاكم الله خير اخي جميل وكل الاخوة .
كود حساب خطوط الدعم و المقاومه منفصل عن كود البحث عن الشموع التي تحققت عندها الشروط كما إستخدمتها أنت
والمفروض الآن أنك ستستخدم رقم إزاحة الشمعه shift عند البحث أيضا عن شموع اليومكود PHP:
close =NormalizeDouble(iClose(Symbol(),period,shift),Digits); /// اغلاق اليوم السابق
wp75 = close+t2; // wp75 اسم خط المقاومه الاول
// وهو عباره عن او يساوى قيمه اغلاق الامس او الشمعه 1لليومى مضاف اليها تى2 وهى عدد النقاط وهى 30 نقطه
wpp75 = close-t2;
wp112=close+t6; // 112
wpp112=close-t6;
wp180 =close+t9; // 180
wpp180 = close-t9;
والصحيح أنك أيضا لن تبدأ بالبحث عن رقم الشمعه 1 لكن ستستخدم أيضا الإزاحة حسب رقم شمعة اليومي
راجع هذا الموضوع يشرح كيفية عمل إكسبرت يعتمد على مؤشر يستخدم الاسهمكود PHP:
for(int i=iBarShift(Symbol(),0,iTime(Symbol(),1440,shift-2);i<iBarShift(Symbol(),0,iTime(Symbol(),1440,shift-1),false);i++)
https://forum.arabictrader.com/t93175.html
اشكرك اخى الكريم مستر دولاراقتباس:
كود حساب خطوط الدعم و المقاومه منفصل عن كود البحث عن الشموع التي تحققت عندها الشروط كما إستخدمتها أنت
كود PHP:
close =NormalizeDouble(iClose(Symbol(),period,shift),Digits); /// اغلاق اليوم السابق
wp75 = close+t2; // wp75 اسم خط المقاومه الاول
// وهو عباره عن او يساوى قيمه اغلاق الامس او الشمعه 1لليومى مضاف اليها تى2 وهى عدد النقاط وهى 30 نقطه
wpp75 = close-t2;
wp112=close+t6; // 112
wpp112=close-t6;
wp180 =close+t9; // 180
wpp180 = close-t9;
والمفروض الآن أنك ستستخدم رقم إزاحة الشمعه shift عند البحث أيضا عن شموع اليوم
والصحيح أنك أيضا لن تبدأ بالبحث عن رقم الشمعه 1 لكن ستستخدم أيضا الإزاحة حسب رقم شمعة اليومي
كود PHP:
for(int i=iBarShift(Symbol(),0,iTime(Symbol(),1440,shift-2);i<iBarShift(Symbol(),0,iTime(Symbol(),1440,shift-1),false);i++)
راجع هذا الموضوع يشرح كيفية عمل إكسبرت يعتمد على مؤشر يستخدم الاسهم
تحويل مؤشر إلى اكسبيرت
ارجوا منك تعديل المؤشر لكى لا يظهر اى سهم الا فى حاله ضرب الهدف او الاستوب 10 نقاط
بمعنى اذا اكتملت شروط الشراء ورسم السهم ... لا يرسم سهم اخر سواء سهم صاعد او هابط
الا بعد ان يضرب الهدف 10 نقاط او استوب 10 نقاط
وبدلا من ذلك اذا تحققت الشروط ولم يكن قد حقق الهدف او الاستوب يرسم
(علامه اكس خضراء لاشاره الشراء وعلامه اكس حمراء لاشاره البيع)
وارجوا الا اكون قد خالفت قواعد الموضوع بطلب التعديل
ولكنى لم اطلب الا بعد استنفاذ كل المحاولات الممكنه لتعديله بنفسى
تحياتى
السلام عليكم ورحمة الله وبركاتة
اساتذتي الكرام
اريد ان يتحرك الاستوب لوز على مسافة ثابتة من السعر في حالة فتح صفقة شراء او بيع
فما هو الكود المستعمل
بارك الله فيكم جميعا
السلام عليكم
اخواني ارجو المساعدة في كود لاكسبيرت يتعامل مع اوردرات متعددة بشكل منفصل لكل اوردر . حيث ان الاكسبيرت سيفتح اكثر من اوردر في اوقات مختلفة لكن يجب ان يتعامل مع كل اوردر بشكل منفصل من حيث الهدف ووقف الخسارة و التريلنج ستوب وغيرها لانه اذا خسر اي اوردر سنطبق عليه المضاعفات اما الرابح فيغلق.
انا طلبت هذا الااكسبيرت كاملا لكن يظهر ان الاخوه مشغوليين اعانهم الله ، فلو حصلت على هذا الكود ممكن ان اجرب برمجته بمعلوماتي البسيطة واعرضه للاخوة لاحقا للتصحيح والاستفادة منهم.
جزاكم الله خيرا
وعليكم السلام ورحمة الله
تفضل هذه دالة تريلنج ستوبفي قائمة OnTick ستضيف الشرطكود PHP:
void TrailingStopp()
{
if(TotalOrder()>1) return;
for (int i=OrdersTotal()-1; i >= 0; i--)
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
double takeprofit = OrderTakeProfit();
if (OrderType() == OP_BUY && Ask - OrderOpenPrice() > TrailingStop*points)
{
if ((OrderStopLoss() < Ask-(TrailingStop+TrailingStep)*points) || (OrderStopLoss()==0))
{
if (TrailingProfit != 0) takeprofit = Ask+(TrailingProfit + TrailingStop)*points;
bool ret1 = OrderModify(OrderTicket(), OrderOpenPrice(), Ask-TrailingStop*points, takeprofit,0, White);
if (ret1 == false)
Print(" OrderModify() error - , ErrorDescription: ",(GetLastError()));
}
}
if (OrderType() == OP_SELL && OrderOpenPrice() - Bid > TrailingStop*points)
{
if ((OrderStopLoss() > Bid+(TrailingStop+TrailingStep)*points) || (OrderStopLoss()==0))
{
if (TrailingProfit != 0) takeprofit = Bid-(TrailingProfit + TrailingStop)*points;
bool ret2 = OrderModify(OrderTicket(), OrderOpenPrice(), Bid+TrailingStop*points, takeprofit, 0, White);
if (ret2 == false)
Print("OrderModify() error - , ErrorDescription: ",(GetLastError()));
}
}
}
}
else
Print("OrderSelect() error - , ErrorDescription: ",(GetLastError()));
}
في المتغيرات ستضيف هذا الكودكود PHP:
if (TrailingStop>0) TrailingStopp();
وطبعا ستغير الأرقام كماتريدكود PHP:
int TrailingStop=0;
int TrailingStep=15;
int TrailingProfit=10;
جزاك الله خيرا استاذي جميل
السلام عليكم أستاذي العزيز
أرجو أن تكون في تمام الصحه و العافية
رجاء أستاذي مراجعة وتصحيح الخطأ بهذا المؤشر بارك الله فيك
وجزاكم الله كل خير .
شكرا أخي جميل ..
المؤشر كما هو يرسم الكثير من الأسهم و أسهم البيع فقط دون الإلتزام بالشروط
هل الدوال صحيحه ؟ المفروض أن كل داله خارجيه تبحث عن تحقق الشروط الموضوعه بداخلها خلال 5 شمعات سابقه و هم ّأربع دوال
ووضعت شرط رسم السهم لو عادت كل داله بترو يرسم سهم شراء و فولص يرسم سهم بيع .. ولكن المؤشر لا يفعل >لك !!
هل من الممكن مراجعته مره أخرى أخي جميل
وشكرا مره أخرى .