النتائج 1,381 إلى 1,395 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 21-11-2011, 12:01 AM #1381
وعليكم السلام ورحمة الله وبركاته
إذا اردت معرفة معلومات آخر صفقة مفتوحه فسوف تحتاج إلى البحث عن آخر عقد مفتوح بإستخدام الحلقات
وباقي الأوامر ستكون سهلة
مثال : حجم آخر لوت
كود PHP:double LastLot(){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
return(OrderLots());
}
}
return(0);
}
كود PHP:double LastPrice(){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
return(OrderOpenPrice());
}
}
return(0);
}
كود PHP:datetime OpenTime(){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
return(OrderOpenTime());
}
}
return(0);
}
كود PHP:double ProfitPips(){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
double p=OrderOpenPrice();
if(OrderType()==OP_BUY){
return((Ask-p)/Point);
}
if(OrderType()==OP_SELL){
return((p-Bid)/Point);
}
}
}
return(0);
}
كود PHP:int ordertype(){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
return(OrderType());
}
}
return(-1);
}
- 21-11-2011, 09:59 PM #1382
جزاك الله خيرا ورفع قدرك
لكني حتى الآن لم احصل على مااريد
نتائج الاكسبيرت مختلفه
هل انت متأكد من ان حلقة التكرار صحيحه وتعود بقيمة آخر عقد ؟
حسب فهمي ان التكرار سوف يبدأ بقيمة آخر عقد , ولكن شرط التكرار i>=0 فسوف يستمر بالتناقص i--
فلو كان عندنا عشر عقود فسوف تستمر الحلقه بالتنفيذ من آخر عقد وحتى اول عقد
وسوف تاخذ المتغيرات قيمة اول عقد عند الخروج من الحلقه !
هل فهمي صحيح ؟
سؤال آخر لو تكرمت ... لو استخدمت الداله بهذا الشكل
OrderSelect(OrdersTotal(),SELECT_BY_POS,MODE_TRADE S);
هل تكون صحيحه ام لابد من الحلقات ؟
هل استطيع استخدام While بدلا من For مع الداله السابقه ؟
شاكر ومقدر جهودك واسأل اللله سبحانه ان يجعلها في موازين حسناتك
- 21-11-2011, 11:28 PM #1383
نعم ستعود بقيمة آخر عقد
وتفكيرك صحيح لكن لو لاحظت في الداله أنها بمجرد تحقق الشروط فهي تقوم بإنهاء الحلقة بإستخدام الأمر return وتعود بالقيم المحفوظه لذلك فشرط التناقص i-- سوف يستمر ما دامت الداله لم تجد بعد الصفقة التي تنطبق عليها الشروط
وبمجرد أن تجد هذه الصفقة تقوم بإنهاء الحلقه
بالنسبة لإستخدام للداله بهذا الشكل فهو صحيح لكن إذا كان هناك صفقات أخرى مفتوحه ليست تابعة للإكسبرت فلن تؤدي الغرض
ويمكنك إستخدام الحلقه while بدلا من for كلاهما سيؤدي نفس النتيجة
- 23-11-2011, 10:07 PM #1384
ماذا يقصد بالدرداون للاكسبيرت ومتى يكون الدرداون مقبول وهل من توضيح بالصوره للحالتين ، وما علاقته بالارباح
- 23-11-2011, 11:47 PM #1385
النسبة بين أكبر إكوتي وصل له الحساب وأقل إكوتي وصل له الحساب في الصفقه التاليه
بالنسبه لي فأنا أعتبر أن نسبة 20 إلى 25% الدروداون تعتبر نسبة مقبوله لأنه كلما زاد الدروداون زادت نسبة المخاطره فمثلا إذا قلت لك أن الدروداون لهذا الإكسبرت هو 70% فهذا يعني هل أنت مستعد أن يخسر الإكسبرت 70% من الحساب ثم بعد ذلك يحقق أرباح طبعا ستكون المخاطره كبيره في هذه الحاله
- 25-11-2011, 09:52 PM #1386
اريد كود للمضاعفات العكسية مع تحديد اقصى مضاعفة
بمعنى اذا كانت الصفقة الحالية بيع وضربت الاستوب لوز الصفقة التالية تكون شراء
مع تحديد اقصى مضاعفة
- 26-11-2011, 12:51 PM #1387
راجع الإكسبرت المرفق
سوف تجد الداله لمعرفة آخر صفقه هل حققت ربح أم خساره
كود PHP:bool LastOrderProfit(int magic)
{
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magic){
if(OrderProfit()>=0)return(true);
else return(false);
}
}
return(true);
}
كود PHP:int LastOrderType(int magic)
{
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magic){
return(OrderType());
}
}
return(2);
}
- 30-11-2011, 02:02 AM #1388
السلام عليكم اخواني الكرام
مستر دولار من فضلك
اريد كود انهاء عمل الاكسبيرت اذا وصل الايكوتي لأحد رقمين
بمعنى ...
رصيدي الآن 1000 دولار
اقوم بتحديد رقمين 1100 دولار ، 900 دولار
يقوم الاكسبيرت بغلق جميع الصفقات وانهاء العمل اذا وصل الايكوتي ل 1100 دولار او الى 900 دولارآخر تعديل بواسطة حسن الهلالي ، 30-11-2011 الساعة 02:04 AM
- 30-11-2011, 04:30 PM #1389
وعليكم السلام ورحمة الله وبركاته
أولا ستحتاج إلى عمل دالة لإغلاق الصفقات بيع وشراء
كود PHP:void CloseBuyOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*Q);
}
}
}
}
void CloseSellOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*Q);
}
}
}
}
كود PHP:if(AccountEquity()>1100||AccountEquity()<900){
CloseBuyOrders();
CloseSEllOrders();
return(0);
}
- 30-11-2011, 07:11 PM #1390
- 01-12-2011, 02:26 PM #1391
- 02-12-2011, 12:09 AM #1392
السلام عليكم ورحمة الله وبركاته
أخي العزيز مستر دولار جزاك المولى خيراً
لدي سؤال وهو:
كيف يعمل هذاكود PHP:maxma=MathMax(mov1,MathMax(mov2,MathMax(mov3,MathMax(mov4,MathMax(mov5,mov6)))));
- 02-12-2011, 12:36 AM #1393
وعليكم السلام ورحمة الله وبركاته
الداله MathMax تقوم بمعرفة أكبر قيمة بين قيميتن
الآن لنفرض على سبيل المثال أني سأجعلها بهذه الطريقه
كود PHP:double maxma=MathMax(ma1,ma2)
لكن لنفرض أنني لدي أكثر من قيمه
كود PHP:double maxma=MathMax(ma1,MathMax(ma2,ma3));
لنفرض أن قيمة ma1=5 و ma2=7 و ma3=3
فسوف تكون المقارنه بين ma2 و ma3 فالقيمة الأكبر هي ma2
ثم يقارن بين ma2 و ma1
فتصبح القيمة الأكبر هي ma2
وهكذا
- 02-12-2011, 01:03 AM #1394
- 02-12-2011, 11:08 AM #1395
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM