
12-11-2013, 12:40 PM
|
|
رد: سؤال برمجي
 |
 |
|
 |
|
اهلين بالجميع
عندي مشكله بسيطه
وحابه اعرف كيف ابرمجها بالاكسبيرت
كيف اكتب هاد الكود
انا ابغا من الاكسبيرت عند تقاطع الموفينج
يفتح ليا عقد = لحد هنا عارفه
لكن ابغاه لكما ارتفع عدد نقاط يفتح عقد جديد
متلا
وادا ارتفع بـ 5 نقاط ابغي يفتح عقد شراء جديد
وادا ارتفع بـ 5 نقاط تانيه يفتح عقد شراء تاني الخ
فكيف احطي صيغه ليها؟ |
|
 |
|
 |
،،،اولا يلزم عمل دالتين لمعرفة سعر اخر صفقة بيع وسعر اخر صفقة شراء،،،
كود:
double FindLastBuyPrice() {
كود:
double l_ord_open_price_0;
int l_ticket_8;
double ld_unused_12 = 0;
int l_ticket_20 = 0;
for (int l_pos_24 = OrdersTotal() - 1; l_pos_24 >= 0; l_pos_24--) {
OrderSelect(l_pos_24, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != gi_356) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == gi_356 && OrderType() == OP_BUY) {
l_ticket_8 = OrderTicket();
if (l_ticket_8 > l_ticket_20) {
l_ord_open_price_0 = OrderOpenPrice();
ld_unused_12 = l_ord_open_price_0;
l_ticket_20 = l_ticket_8;
}
}
}
return (l_ord_open_price_0);
}
double FindLastSellPrice() {
double l_ord_open_price_0;
int l_ticket_8;
double ld_unused_12 = 0;
int l_ticket_20 = 0;
for (int l_pos_24 = OrdersTotal() - 1; l_pos_24 >= 0; l_pos_24--) {
OrderSelect(l_pos_24, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != gi_356) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == gi_356 && OrderType() == OP_SELL) {
l_ticket_8 = OrderTicket();
if (l_ticket_8 > l_ticket_20) {
l_ord_open_price_0 = OrderOpenPrice();
ld_unused_12 = l_ord_open_price_0;
l_ticket_20 = l_ticket_8;
}
}
}
return (l_ord_open_price_0);
}
،،،وتقومين بمساواه الدالتين بمتغيرين داخل ستارت ثم تقومين بوضع شرط فتح الصفقات الجديدة،،،
كود:
double lastbuyprice = FindLastBuyPrice();
كود:
double lastsellprice = FindLastSellPrice();
كود:
if (lastbuyprice == ASK-(5*point)) OrderSend(Symbol(),OP_BUY,Lots,lastbuyprice ,3,0,0,"",Magicnumber,0,Green);
،،،ونفس الامر بالنسبة للبيع،،،
|