النتائج 4,051 إلى 4,065 من 10285
الموضوع: موضوع مخصص للأسئلة البرمجية
- 18-06-2013, 05:28 PM #4051
- 19-06-2013, 01:20 AM #4052
رد:موضوع مخصص للأسئلة البرمجية
وعليكم السلام ورحمة الله وبركاته
ستستخدم نفس الكود السابق لكن التعديل فقط سيكون في متغير حجم اللوت
أولا إجعل لصفقات كل إتجاه كومنت معين لأنك ستحتاجه عند تحديد حجم اللوت
فبدلا من
كود PHP:double newLot=LastLot()*2;
كود PHP:double newLot=LastLot()+Lots;
مثال
كود PHP:////////////////////
int orderscnt(int type)
{
int cnt;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
{
cnt++;
}
}
return(cnt);
}
double LastLot(string comment)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
double L=OrderLots();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic&&OrderType()==type&&OrderComment()==comment||OrderComment()=="EA")
{
return(L);
}
}
}
double LastOpenPrice(string comment)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic&&OrderType()==type&&OrderComment()==comment||OrderComment()=="EA")
{
return(OrderOpenPrice());
}
}
}
كود PHP:if((Ask-LastOpenPrice("EALoss")>=Step*Point)&&orderscnt(OP_SELL)>0)
{
newLot=LastLot("EALoss")+Lots;
OrderSend(Symbol(),OP_SELL,newLot,NormalizeDouble(Bid,Digits),3,0,0,"EALoss",MagicNumber,0,Blue);
}
if((LastOpenPrice("EAProfit")-Ask>=Step*Point&&OpenWinMultiplier)&&orderscnt(OP_SELL)>0)
{
newLot=LastLot("EAProfit")+Lots;
OrderSend(Symbol(),OP_SELL,newLot,NormalizeDouble(Bid,Digits),3,0,0,"EAProfit",MagicNumber,0,Blue);
}
الصفقه الرئيسيه المفروض الكومنت لها سيكون بإسم EA
- 19-06-2013, 01:33 AM #4053
السلام عليكم اخ اسامه لقد وضعت ردا كما قلت لي وفي انتظارك هناك في موضوع اكسبيرت المضاعفات من اجل اضافه المناقصات .
- 19-06-2013, 01:37 AM #4054
رد:موضوع مخصص للأسئلة البرمجية
يجب أن تحسبها بطريقة أخرى فمثلا أريد حساب اليوم بدءا من الساعه 11 وليس الساعه 0 وينتهي الساعه 3 في اليوم التالي
وهذه الفكره إستخدمتها سابقا في إكسبرت قمت ببرمجته
أولا بداية اليوم ستصبح
كود PHP:datetime TimeStart=StrToTime(TimeToStr(iTime(Symbol(),1440,1),TIME_DATE)+" "+2);
int BarStart=iBarShift(Symbol(),60,TimeStart,false);
كود PHP:datetime TimeEnd=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+1);
int BarEnd=iBarShift(Symbol(),60,TimeEnd,false);
كود PHP:double highDay=High[iHighest(Symbol(),0,MODE_HIGH,BarStart-BarEnd,BarEnd)];
double lowDay=Low[iLowest(Symbol(),0,MODE_LOW,BarStart-BarEnd,BarEnd)];
double closeDay=iClose(Symbol(),60,BarEnd);
double openDay=iOpen(Symbol(),60,BarStart);
- 19-06-2013, 01:38 AM #4055
- 19-06-2013, 02:36 AM #4056
السلام عليكم ورحمه الله
تحية طيبة للجميع
هذا هو الكود المطلوب وسوف اتعلم منه الكثير
جزاك الله كل خير استاذي اسامة وزادك من فضلة وعلمه
مع تمنياتي للجميع بالتوفيق
لاتنساني من دعائك
- 19-06-2013, 01:25 PM #4057
- 19-06-2013, 11:10 PM #4058
- 20-06-2013, 03:39 AM #4059
https://forum.arabictrader.com/t37612-184.html " 184 185 188 196 197 220 221 222 223 261 262 269 "
- 20-06-2013, 09:42 PM #4060
- 21-06-2013, 09:25 PM #4061
السلام عليكم رحمة الله
لقد قمت بعمل أكسبرت على الماكد وكانت شروط الشراء عندما يكون قيمة (الماكد >السجنال ) < الصفر
وشروط البيع عندما يكون قيمة ( الماكد< السيجنال) > الصفر
وأشتغل معى الاكسبرت .
وقمت بأضافة شرط اخر للشراء عندما يكون قيمة ( الماكد > السيجنال ) > الصفر
وللبيع عندما يكون قيمة ( الماكد < السيجنال) < الصفر
لم يعمل معى بعد أضافة الشروط الجيدة
أطلب منك أخى الفاضل أسامة أن توضح لى كيف أن أكتبها وجزاك الله كل الخير
مرفق لكم الكسبرت قبل التعديل
- 22-06-2013, 08:46 PM #4062
- 23-06-2013, 05:25 AM #4063
- 23-06-2013, 10:03 PM #4064
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم ورحمة الله وبركاته
نفترض اكسبيرت مضاعفات يعمل على أزواج مختلفة وكل زوج وصل لعدد مضاعفات معينة
الفكرة هي عند تحقق ربح مثلا 10% من الحساب أو الاكويتي يتم إغلاق كل الصفقات سواء المفتوحة أو المعلقة والبدء من جديد باللوت الابتدائي على الأزواج
مبدئيا كل زوج له اكسبيرت وكل اكسبيرت به دالة المضاعفات
قمت بحذف الماجيك نمبر ويكفي الـ Symbol يفصل العمليات لكل زوج
هل الدالة صحيحة ؟؟
كود:// exported variables extern double Lots = 0.01; extern double LotsMpOnLoss = 2; double LotsMpOnProfit = 1; extern double MaxLots = 100; bool LotsResetOnProfit = true; bool LotsResetOnLoss = false; extern int ProfitRatio = 10;
كود:void TechnicalAnalysis1() { if (Close[1]<Open[1]) { double profit = 0; int cnt = OrdersHistoryTotal(); for (int i=cnt-1; i >= 0; i--) { if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; if ((OrderType() == OP_BUY || OrderType() == OP_SELL) && OrderSymbol() == Symbol()) { profit = OrderProfit(); CurrentLots = OrderLots(); // take lots from the last order break; } } if(AccountProfit()>=(ProfitRatio*AccountBalance()/100) if(AccountProfit()>=(ProfitRatio*AccountEquity()/100) { CurrentLots = Lots; } if (profit > 0) // had profit { CurrentLots = CurrentLots * LotsMpOnProfit + 0; if (LotsResetOnProfit) CurrentLots = Lots; } else if (profit < 0) // had loss { CurrentLots = CurrentLots * LotsMpOnLoss + 0; if (LotsResetOnLoss) CurrentLots = Lots; } if (CurrentLots > MaxLots) { CurrentLots = Lots; } double lotvalue = CurrentLots; if (lotvalue < MarketInfo(Symbol(), MODE_MINLOT)) // make sure lot is not smaller than allowed value { lotvalue = MarketInfo(Symbol(), MODE_MINLOT); } if (lotvalue > MarketInfo(Symbol(), MODE_MAXLOT)) // make sure lot is not greater than allowed value { lotvalue = MarketInfo(Symbol(), MODE_MAXLOT); } int expire = TimeCurrent() + 60 * Expiration; double price = (NormalizeDouble(Close[1], NDigits) - (Step*PipValue*Point)); double SL = price + Sellloss*PipValue*Point; if (Sellloss == 0) SL = 0; double TP = price - Sellprofit*PipValue*Point; if (Sellprofit == 0) TP = 0; if (Expiration == 0) expire = 0; int Tries; int ticket = -1; if (ECNBroker) { ticket = OrderSend(Symbol(), OP_SELLSTOP, lotvalue, price, Slippage, 0, 0, "Kira-h", MagicNo, expire, Red); if(ticket>-1 && Tries<10) { OrderSelect(ticket, SELECT_BY_TICKET); OrderModify(ticket, OrderOpenPrice(), SL, TP, 0, Blue); Tries++;Sleep(1000); } } else ticket = OrderSend(Symbol(), OP_SELLSTOP, lotvalue, price, Slippage, SL, TP, "Kira-h", MagicNo, expire, Red); } }
- 24-06-2013, 12:42 AM #4065
رد:موضوع مخصص للأسئلة البرمجية
وعليكم السلام ورحمة الله وبركاته
لنفرض أن الإكسبرتات أغلقت على ربح والحساب الآن أصبح الربح 50% من الحساب وتم البدء بلوت جديد لكن الصفقات التاليه أغلقت على خساره فأصبح ربح الحساب 30% أي نقص في هذه الحاله الشرط
كود PHP:if(AccountProfit()>=(ProfitRatio*AccountBalance()/100)
if(AccountProfit()>=(ProfitRatio*AccountEquity()/100)
{
CurrentLots = Lots;
}
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM