لا تحول الناتج إلى رقم صحيح وإلا فإنه يتم تقريب الرقم
Printable View
أولا جزاك الله خيرأستاذ أسامة على اهتمامك وردك الدائم عى تلاميذك بالبرمجة
شوف أستاذ أسامة انا عملت بالفعل زي ما حضرتك قلت لي بالظبط وجربت على فريم الدقيقه وفعلا الاشارة إلى حد ما ظبطت بس لاحظت الاتي :
1- مره يدخل مع الاشارة بشكل صحيح ومره لا واضح انه بيستخدم أكثر من اندكس لنفس الاشارة هل هذا ممكن ؟؟؟
2- توجد نقطة صغيره باللون الاسود تظهر على الشارت عند وضع المؤشر ومرات الاكسبيرت يدخل معاها مع اني وضعت رقم الاندكس الخاص باللون الازرق ( شراء ) برقم اندكس 0 ورقم اندكس للون الأحمر ( بيع ) برقم اندكس 1
3- إشارات البيع ادق من الشراء بشكل كبير ولا أعرف ما السبب
قمت بعمل الآتي :
قمت بالاعلان عن داله للمؤشر كالتالي :
ثم قمت بوضع شروط الشراء كالتالي :كود:double VB(int index,int shift)
{
double vb=iCustom(Symbol(),0,"Vulkan Profit",index,shift);
return(vb);
}
ثم شروط البيع كالتالي :كود:if(VB(0,1)!=EMPTY_VALUE && Timee!=Time[0])
{
if(CloseInReverse)CloseOrders(OP_SELL);
if(orderscnt()<MaxTrades)
{
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
// if(VBAutoStopLoss)SL=AutoStopLoss("L");
ticket=OrderSend(Symbol(),OP_BUY,NewLot,NormalizeDouble(Ask,Digits),3*P,SL,TP,"EA",MagicNumber,0,Blue);
PlaySound("Alert.wav");
Timee=Time[0];
}
}
فهل توجد خطأ في الأوامر أو شيءكود:if(VB(1,1)!=EMPTY_VALUE && Timee!=Time[0])
{
if(CloseInReverse)CloseOrders(OP_BUY);
if(orderscnt()<MaxTrades)
{
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
//if(VBAutoStopLoss)SL=AutoStopLoss("H");
ticket=OrderSend(Symbol(),OP_SELL,NewLot,NormalizeDouble(Bid,Digits),3*P,SL,TP,"EA",MagicNumber,0,Red);
PlaySound("Alert.wav");
Timee=Time[0];
}
}
}
جزاك الله كل خير
السلام عليكم ورحمة الله وبركاته
استاذنا القدير اسامه
محتاج كود او داله لاستخراج بيانات من ملف اكسل
مع شرح طريقة استخراج بيان من خليه معينه فى شيت الاكسل
السبب فى ذلك معادلات معقده لم استطيع تنفيذها برمجيا بالمؤشر
شكرا اخي اسامة
اقصد اضع تاريخ معين مثلا 01-02-2017 00:00 فيرسم خط على
افتتاح هذا اليوم واليوم اللي قبله واليوم الاخر
يعني افتتاح اليوم الذي احدده من المدخلات فيضع خط ثم يوم قبله فيضع خط ويوميين فيضع خط وهكذا
كلما احدد تاريخ معين يقوم بنفس العملية
وشكرا لك اخي اسامة على تعبك
السلام عليكم م اسامة
ما هو الكود الذي يوضع بكود اكسبرت ليكون true او false(متغير خارجي لكل منهما ) للمؤشرات لاكسبرت يعتمد عمله علي أكثر من مؤشر
سلام عليكم يا المبرمجبن الكرام
ارجو شرح Bitwise Operations
مع اعطاء مثال لفهمها اكثر وشكرا
لا يمكن أن يأخذ السهم أكثر من رقم إندكس لكن يمكن أن يستخدم إشارات مختلفه فتأكد متى تظهر إشارة النقطه السوداء ومتى تظهر أسهم الدخول وعلى أي أساس تريد الدخول فيهم ؟
قم بعمل visual backtest للمؤشر ومنه ستعرف فعلا متى تظهر النقطه السوداء ومتى تظهر إشارة المؤشر
بالنسبه للكود فهو صحيح لكن العيب فعلا أن الإشارة أحيانا تظهر متأخره بالتالي أنت تستخدم كود البحث عن الإشارة في الشمعه رقم 1 في حين أن الشمعه ظهرت مثلا في الشمعه رقم 3 بالتالي لن يكتشفها الإكسبرت أبدا بالتالي يمكنك إستخدم الحلقه for للبحث عن إشارة المؤشر وتضع مجال محدد للبحث مثلا آخر 5 شمعات فإذا ظهرت الإشارة في أي شمعه منهم وكانت إشارة جديده يتم الدخول في الصفقه
أما ن سبب أن إشارات البيع أدق من الشراء فالسبب غالبا من الكود وللاسف ليس لدينا ملف مفتوح حتى نطلع على الكود
وعليكم السلام ورحمة الله وبركاته
تفضل راجع هذا الموضوع
https://forum.arabictrader.com/t236940.html
في البداية سوف تقوم بتعريف متغير لتضع فيه التاريخ الذي تريده
ودالة رسم الخط ستكونكود PHP:datetime Time_=D'2017.02.01 00:00';
int shift=iBarShift(Symbol(),1440,Time_,false);
for(int i=shift;i<iBars(Symbol(),1440);i++)
{
datetime Time_D=iTime(Symbol(),1440,i);
DrawVLine("VLine"+string(Time_D),Time_D,Red,1);
}
كود PHP:void DrawVLine(string name,datetime time,color col,int width)
{
if(ObjectFind(name)==-1)
{
ObjectCreate(name,OBJ_VLINE,0,time,0);
ObjectSet(name,OBJPROP_COLOR,col);
ObjectSet(name,OBJPROP_WIDTH,width);
ObjectSet(name,OBJPROP_STYLE,Line_Style);
}
else if(ObjectGet(name,OBJPROP_TIME1)!=time)
{
ObjectSet(name,OBJPROP_TIME1,time);
}
}
السلام عليكم
استاذي مستر دولار
كيف اجعل هذا الناتج رقم صحيح لكي اضيفه لسعر العمله
كود PHP:double H=High[iHighest(Symbol(),0,MODE_HIGH,14,1)];
double L=Low[iLowest(Symbol(),0,MODE_LOW,14,1)];
double HL = (L - H)/14 ;//اريد الناتج عدد نقاط بدون اعداد عشريه تزيد عن الاعداد العشريه للعمله