النتائج 4,096 إلى 4,110 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 30-06-2013, 11:07 AM #4096
رد:موضوع مخصص للأسئلة البرمجية
الآن وصلنا الى لحظة تنفيذ ثاني بيع وأصبح لدينا عقدين شراء ولدينا عقدين بيع لكن نريد اغلاق عقد الشراء الثاني فقط ، سنحتاج الى دالتين ، دالة ستأتي لنا بتوقيت فتح اخر عقد شراء ونفس الدالة ستأتي بتوقيت بآخر عقد بيع ، وهذه هي الدالة
كود PHP:datetime LastOrderOpenTimeA(int type){
for(int i=OrdersTotal()-1; i>=0; i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo&&OrderType()==type){
return(OrderOpenTime());
}
}
return(0);
}
كود PHP:datetime LastOrderOpenTimeB(int type){
for(int i=OrdersTotal()-2; i>=0; i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo&&OrderType()==type){
return(OrderOpenTime());
}
}
return(0);
}
كود PHP:if(LastOrderOpenTimeA(OP_BUY)<LastOrderOpenTimeB(OP_SELL)&&LastOrderOpenTimeA(OP_BUY)>LastOrderOpenTimeA(OP_SELL)) Go2CloseSell();
- 30-06-2013, 02:33 PM #4097
- 01-07-2013, 04:14 PM #4098
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم ورحمة الله وبركاته
أستاذ جميل كيف حالك ؟ أتمنى أن تكون في أفضل صحة وحال
الدوال السابقة لم تعمل ولا يحدث الإغلاق (بواسطة) Close By
قمت بتفصيل الدوال لكل حالة لأن ترتيب الصفقات للسوق الهابط ليس كالسوق الصاعد
حالة السوق الهابط
كود PHP:datetime FirstSellTimeDown(int Type)
{
for(int i=OrdersTotal()-3; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_SELL)
{
return(OrderOpenTime());
}
}
return(0);
}
datetime LastBuyTimeDown(int Type)
{
for(int i=OrdersTotal()-2; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUY )
{
return(OrderOpenTime());
}
}
return(0);
}
datetime LastSellTimeDown(int Type)
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_SELL)
{
return(OrderOpenTime());
}
}
return(0);
}
void CloseDown()
{
if(LastBuyTimeDown(OP_BUY)<FirstSellTimeDown(OP_SELL)&&LastSellTimeDown(OP_SELL)<LastBuyTimeDown(OP_BUY))
{
ClosebyDown();
}
}
كود PHP:int GetLastBuyTicketNumber()
{
for(int i=OrdersTotal()-3; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUY)
{
return(OrderTicket());
}
}
return(-1);
}
int GetFirstSellTicketNumber()
{
for(int i=OrdersTotal()-2; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_SELL)
{
return(OrderTicket());
}
}
return(-1);
}
void ClosebyDown()
{
int ticket1=GetLastBuyTicketNumber();
int ticket2=GetFirstSellTicketNumber();
OrderCloseBy(ticket1,ticket2,Red);
}
الفكرة هي دائما الخروج من الهيدج بإغلاق موجب (ربح) والاغلاق من نوع (بواسطة Closeby) كي نستفيذ من سبريد صفقة
الاكسبيرت بالمرفقات
تحياتي أستاذي الكريمآخر تعديل بواسطة kira-h ، 01-07-2013 الساعة 04:18 PM
- 01-07-2013, 05:05 PM #4099
كان ردي لمشاركتك على اساس اوامر تم تنفيذها ولأن الأوامر المعلقة تستطيع الغائها عند شرط معين تحدده فلماذا تربطها مع كلوز باي
- 01-07-2013, 06:55 PM #4100
رد:موضوع مخصص للأسئلة البرمجية
- 01-07-2013, 07:32 PM #4101
استاذ kira رجوا منك فتح موضوع مخصص للباك تست 99% حيث اعلم انه لديك خبرة في هذا لمجال وشكرا (كما تطلب من مستر دولار والسيد جميل سوف نطلب منك ايضا هههه)
- 01-07-2013, 08:16 PM #4102
- 02-07-2013, 01:05 AM #4103
- 02-07-2013, 10:39 AM #4104
رد:موضوع مخصص للأسئلة البرمجية
الطريقة الذي وضحتها لك تنطبق على الجانب الأيمن من الصورة ، ولتجعلها تنطبق على الجانبين لكون الأمر الأعلى هو سل ليميت سنعدل في شرط المقارنة
كود PHP:if((LastOrderOpenTimeA(OP_BUY)<LastOrderOpenTimeB(OP_SELL)&&LastOrderOpenTimeA(OP_BUY)>LastOrderOpenTimeA(OP_SELL))||(LastOrderOpenTimeA(OP_BUY)<LastOrderOpenTimeB(OP_SELL)&&LastOrderOpenTimeA(OP_BUY)>LastOrderOpenTimeA(OP_SELLSTOP)))
Go2CloseSell();
- 02-07-2013, 05:25 PM #4105
جزاك الله خيرا
عملت التعديلات بدون أخطاء في الكمبيل ـ غيرت التيكت بالتوقيتاتـ... وللأسف لا يعمل الكلوزباي
وأظن أن الخطأ في جزئية شروط الاغلاق لأن الاكسبيرت يضع أوامر كثيرة مثلا 20 فوق و20 تحت باي ستوب وسيل ليميت وسيل ستوب وباي ليميت
أما دالة الاغلاق الكلوز باي فهي تعمل باكسبيرت آخر
يبدو أنه لا مفر من العمل اليدوي المتعب
- 02-07-2013, 08:50 PM #4106
اخوتي المبرمجين هل هناك اي دالة لحساب هاي او للو لفترة معينة وليس لشمعة اي مثلا الهاي للفترة من الساعة 7 للساعة 11 ؟
- 03-07-2013, 12:56 AM #4107
- 03-07-2013, 01:13 AM #4108
- 03-07-2013, 05:08 PM #4109
رد:موضوع مخصص للأسئلة البرمجية
استاذ جميل استخدمت الدوال المستخدمة في اكسبيرت مستر دولار لصنع مؤشر دايلي كاماريلا باعددات خارجية لتغير وقت البدء ووقت الانتهاء للهاي واللو المستخدمة في الحسابات الداخلية ولكن لم ينجح معي ممكن احد يفيدني في هذا الموضوع؟
//+------------------------------------------------------------------+
//| new_cam.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window
extern int StartHour=21;
extern int EndHour=20;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("H4 Label");
ObjectDelete("H4 Line");
ObjectDelete("H3 Label");
ObjectDelete("H3 Line");
ObjectDelete("H2 Label");
ObjectDelete("H2 Line");
ObjectDelete("H1 Label");
ObjectDelete("H1 Line");
ObjectDelete("L1 Label");
ObjectDelete("L1 Line");
ObjectDelete("L2 Label");
ObjectDelete("L2 Line");
ObjectDelete("L3 Label");
ObjectDelete("L3 Line");
ObjectDelete("L4 Label");
ObjectDelete("L4 Line");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
if(StartHour>EndHour)
{
datetime TimeStart=StrToTime(TimeToStr(iTime(Symbol(),1440, 1),TIME_DATE)+" "+StartHour);
int BarStart=iBarShift(Symbol(),0,TimeStart,false);
}
else
{
TimeStart=StrToTime(TimeToStr(TimeCurrent(),TIME_D ATE)+" "+StartHour);
BarStart=iBarShift(Symbol(),0,TimeStart,false);
}
datetime TimeEnd=StrToTime(TimeToStr(TimeCurrent(),TIME_DAT E)+" "+EndHour);
int BarEnd=iBarShift(Symbol(),0,TimeEnd,false);
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);
Comment("highDay :",highDay,"\n","lowDay :",lowDay,"\n","closeDay :",closeDay) ;
double Q = highDay - lowDay;
double H1 =closeDay+ (Q * 0.09);
double L1 = closeDay - (Q * 0.09);
//----
double H2 = closeDay + (Q * 0.18);
double L2 = closeDay - (Q * 0.18);
//----
double H3 = closeDay + (Q * 0.27);
double L3 =closeDay - (Q * 0.27);
//----
double H4 = closeDay + (Q * 0.55);
double L4 = closeDay - (Q * 0.55);
//----
if(ObjectFind("H4 label") != 0)
{
ObjectCreate("H4 label", OBJ_TEXT, 0, Time[10], H4);
ObjectSetText("H4 label", "H4 ", 9, "Arial", Yellow);
}
else
{
ObjectMove("H4 label", 0, Time[10], H4);
}
if(ObjectFind("H3 label") != 0)
{
ObjectCreate("H3 label", OBJ_TEXT, 0, Time[10], H3);
ObjectSetText("H3 label", "H3 ", 9, "Arial", Aqua);
}
else
{
ObjectMove("H3 label", 0, Time[10], H3);
}
if(ObjectFind("H2 label") != 0)
{
ObjectCreate("H2 label", OBJ_TEXT, 0, Time[10], H2);
ObjectSetText("H2 label", "H2 ", 9, "Arial", Lime);
}
else
{
ObjectMove("H2 label", 0, Time[10], H2);
}
if(ObjectFind("H1 label") != 0)
{
ObjectCreate("H1 label", OBJ_TEXT, 0, Time[10], H1);
ObjectSetText("H1 label", "H1 ", 9, "Arial", Magenta);
}
else
{
ObjectMove("H1 label", 0, Time[10], H1);
}
if(ObjectFind("L1 label") != 0)
{
ObjectCreate("L1 label", OBJ_TEXT, 0, Time[10], L1);
ObjectSetText("L1 label", "L1 ", 9, "Arial", Magenta);
}
else
{
ObjectMove("L1 label", 0, Time[10], L1);
}
if(ObjectFind("L2 label") != 0)
{
ObjectCreate("L2 label", OBJ_TEXT, 0, Time[10], L2);
ObjectSetText("L2 label", "L2 ", 9, "Arial", Red);
}
else
{
ObjectMove("L2 label", 0, Time[10], L2);
}
if(ObjectFind("L3 label") != 0)
{
ObjectCreate("L3 label", OBJ_TEXT, 0, Time[10], L3);
ObjectSetText("L3 label", "L3 ", 9, "Arial", Aqua);
}
else
{
ObjectMove("L3 label", 0, Time[10], L3);
}
if(ObjectFind("L4 label") != 0)
{
ObjectCreate("L4 label", OBJ_TEXT, 0, Time[10], L4);
ObjectSetText("L4 label", "L4 ", 9, "Arial", Yellow);
}
else
{
ObjectMove("L4 label", 0, Time[10], L4);
}
if(ObjectFind("H4 line") != 0)
{
ObjectCreate("H4 line", OBJ_HLINE, 0, Time[40], H4);
ObjectSet("H4 line", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("H4 line", OBJPROP_WIDTH, 1);
ObjectSet("H4 line", OBJPROP_COLOR, Yellow);
}
else
{
ObjectMove("H4 line", 0, Time[40], H4);
}
if(ObjectFind("H3 line") != 0)
{
ObjectCreate("H3 line", OBJ_HLINE, 0, Time[40], H3);
ObjectSet("H3 line", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("H3 line", OBJPROP_WIDTH, 1);
ObjectSet("H3 line", OBJPROP_COLOR, Aqua);
}
else
{
ObjectMove("H3 line", 0, Time[40], H3);
}
if(ObjectFind("H2 line") != 0)
{
ObjectCreate("H2 line", OBJ_HLINE, 0, Time[40], H2);
ObjectSet("H2 line", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("H2 line", OBJPROP_WIDTH, 1);
ObjectSet("H2 line", OBJPROP_COLOR, Lime);
}
else
{
ObjectMove("H2 line", 0, Time[40], H2);
}
if(ObjectFind("H1 line") != 0)
{
ObjectCreate("H1 line", OBJ_HLINE, 0, Time[40], H1);
ObjectSet("H1 line", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("H1 line", OBJPROP_WIDTH, 1);
ObjectSet("H1 line", OBJPROP_COLOR, Magenta);
}
else
{
ObjectMove("H1 line", 0, Time[40], H1);
}
if(ObjectFind("L1 line") != 0)
{
ObjectCreate("L1 line", OBJ_HLINE, 0, Time[40], L1);
ObjectSet("L1 line", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("L1 line", OBJPROP_WIDTH, 1);
ObjectSet("L1 line", OBJPROP_COLOR, Magenta);
}
else
{
ObjectMove("L1 line", 0, Time[40], L1);
}
if(ObjectFind("L2 line") != 0)
{
ObjectCreate("L2 line", OBJ_HLINE, 0, Time[40], L2);
ObjectSet("L2 line", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("L2 line", OBJPROP_WIDTH, 1);
ObjectSet("L2 line", OBJPROP_COLOR, Red);
}
else
{
ObjectMove("L2 line", 0, Time[40], L2);
}
if(ObjectFind("L3 line") != 0)
{
ObjectCreate("L3 line", OBJ_HLINE, 0, Time[40], L3);
ObjectSet("L3 line", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("L3 line", OBJPROP_WIDTH, 1);
ObjectSet("L3 line", OBJPROP_COLOR, Aqua);
}
else
{
ObjectMove("L3 line", 0, Time[40], L3);
}
if(ObjectFind("L4 line") != 0)
{
ObjectCreate("L4 line", OBJ_HLINE, 0, Time[40], L4);
ObjectSet("L4 line", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("L4 line", OBJPROP_WIDTH, 1);
ObjectSet("L4 line", OBJPROP_COLOR, Yellow);
}
else
{
ObjectMove("L4 line", 0, Time[40], L4);
}
return(0);
}
//+------------------------------------------------------------------+
- 04-07-2013, 02:44 AM #4110
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM