النتائج 8,431 إلى 8,445 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 29-08-2017, 03:45 PM #8431
- 29-08-2017, 04:11 PM #8432
سوف تقوم بعمل دالة لمعرفة نوع آخر صفقه أغلقت والهدف والأستوب لها
كود PHP:double LastClosedOrderInfo(string info)
{
for(int i=0;i<OrdersHistoryTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(info=="Type")return(OrderType());
else if(info=="Lot")return(OrderLots());
else if(info=="TP")return(OrderTakeProfit());
else if(info=="SL")return(OrderStopLoss());
}
}
return(-1);
}
كود PHP:if(LastClosedOrderInfo("Type")==OP_BUY)
{
if(LastClosedOrderInfo("Close")==LastClosedOrderInfo("SL"))
{
double TP=Bid-MathAbs(LastClosedOrderInfo("Open")-LastClosedOrderInfo("SL"))*2;
double SL=LastClosedOrderInfo("Open");
int ticket=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),3*P,SL,TP,"EA",MagicNumber+1,0,Red);
}
}
فيجب أن نقوم بتمييز الصفقه العكسيه بماجيك نمبر آخر حتى لا يعتمدها في البحث وأيضا أن نضع دالة للبحث هل تم فتح صفقة عكسيه للصفقه الأساسيه أم لا
سوف أقوم بعمل دالة للبحث عن عدد الصفقات المفتوحه بالماجيك نمبر الجديد
كود PHP:int TotalOrders(int type=-1)
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber+1&&(OrderType()==type||type==-1)){
cnt++;
}
}
}
return(cnt);
}
كود PHP:if(LastClosedOrderInfo("Type")==OP_BUY&&TotalOrders(OP_SELL)==0)
مثال
كود PHP:double LastClosedOrderInfo(string info)
{
for(int i=0;i<OrdersHistoryTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber+1)break;
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(info=="Type")return(OrderType());
else if(info=="Lot")return(OrderLots());
else if(info=="TP")return(OrderTakeProfit());
else if(info=="SL")return(OrderStopLoss());
else if(info=="Close")return(OrderClosePrice());
else if(info=="Open")return(OrderOpenPrice());
}
}
return(-1);
}
- 29-08-2017, 04:52 PM #8433
- 30-08-2017, 01:50 AM #8434السلام عليكم
شكرا اخي الكريم على ردك واهتمامك
انا ضفت الكود وطلعلي كام error للمتغيرات التي لم يتم تعريفها وعرفتها
وحاليا فيه 4 errors في دالة for لا اعرف كيف احلهم
هذا هو الكود ومرفق ملف Mql4
كود PHP:
int MagicNumber = 0;
double LastClosedOrderInfo(string info)
{
for(int i=0;i<OrdersHistoryTotal()-1;i>=0;i--)
//expression has no effect
//';' - unexpected token
//'i' - undeclared identifier
//')' - unexpected token
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber+1)break; //';' - 'break' must be used within some loop or switch statement
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(info=="Type")return(OrderType());
else if(info=="Lot")return(OrderLots());
else if(info=="TP")return(OrderTakeProfit());
else if(info=="SL")return(OrderStopLoss());
else if(info=="Close")return(OrderClosePrice());
else if(info=="Open")return(OrderOpenPrice());
}
}
return(-1);
}
int TotalOrders(int type=-1)
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber+1&&(OrderType()==type||type==-1)){
cnt++;
}
}
}
return(cnt);
}
datetime Time0 = 0;
void OnTick()
{
//---
if (Time0 != Time[0])
{
if(LastClosedOrderInfo("Type")==OP_BUY&&TotalOrders(OP_SELL)==0)
{
if(LastClosedOrderInfo("Close")==LastClosedOrderInfo("SL"))
{
double TP=Bid-MathAbs(LastClosedOrderInfo("Open")-LastClosedOrderInfo("SL"))*2;
double SL=LastClosedOrderInfo("Open");
int ticket=OrderSend(Symbol(),OP_SELL,(AccountBalance()/100)/(1000*((MathAbs(LastClosedOrderInfo("Open")-LastClosedOrderInfo("SL"))))),NormalizeDouble(Bid,Digits),30,SL,TP,"EA",MagicNumber+1,0,Red);
}
}
if(LastClosedOrderInfo("Type")==OP_SELL&&TotalOrders(OP_BUY)==0)
{
if(LastClosedOrderInfo("Close")==LastClosedOrderInfo("SL"))
{
double TP=Ask+MathAbs(LastClosedOrderInfo("SL")-LastClosedOrderInfo("Open"))*2;
double SL=LastClosedOrderInfo("Open");
int ticket=OrderSend(Symbol(),OP_BUY,(AccountBalance()/100)/(1000*((MathAbs(LastClosedOrderInfo("SL")-LastClosedOrderInfo("Open"))))),NormalizeDouble(Ask,Digits),30,SL,TP,"EA",MagicNumber+1,0,Blue);
}
}
double cc = iCCI(NULL,0,14,PRICE_TYPICAL,1);
//buy
if(cc < -100 &&
Close[1] > Open[2] &&
Close[1] > Open[1] &&
Close[2] < Open[2]
){
OrderSend(NULL,OP_BUY,(AccountBalance()/100)/(100000*((Close[1]-Low[1])*1)),Ask,3,Low[1],Close[1]+((Close[1]-Low[1])*2),NULL);
}
//sell
if(cc > 100 &&
Close[1] < Open[2] &&
Close[1] < Open[1] &&
Close[2] > Open[2]
){
OrderSend(NULL,OP_SELL,(AccountBalance()/100)/(100000*((High[1]-Close[1])*1)),Bid,3,High[1],Close[1]-((High[1]-Close[1])*2),NULL);
}
Time0 = Time[0];
}
}
//+------------------------------------------------------------------+
- 30-08-2017, 03:03 AM #8435
السلام عليكم ورحمة الله وبركاته
استفسار استاذ اسامه
كيف نقوم بالتبريد وفقا لاجمالى الخساره بالنقاط وليس انعكاس عدد من النقاط
بحيث يكون التبريد لاجمالى الخساره متزايد كل مره
مثال
لدينا 3 صفقات بيع اجمالى خسارة الثلاث صفقات 70 نقطه
وقمنات بتحديد الخساره 100 نقطه
فاذا وصلت اجمالى الخساره 100 نقطه ندخل بيع
واذا وصلت اجمالى الخساره 200 نقطه ندخل بيع مره اخرى
واذا وصلت اجمالى الخساره 300 نقطه ندخل بيع مره اخرى
وهكذا كل دخول نضيف ال 100 نقطه للخساره السابقه
- 30-08-2017, 03:18 PM #8436
- 30-08-2017, 03:21 PM #8437
وعليكم السلام ورحمة الله وبركاته
قم بعمل دالة تحسب مجموع الخساره بالنقاط لجميع الصفقات
مثال
كود PHP:double TotalLossPips(int type)
{
double pips;
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
{
if(OrderType()==OP_BUY)
{
pips+=(Bid-OrderOpenPrice());
}
else if(OrderType()==OP_SELL)
{
pips+=(OrderOpenPrice()-Ask);
}
}
}
return(pips/Point);
}
- 31-08-2017, 03:13 AM #8438
جزاك الله كل خير اخي على مساعدتك
الحمد لله الكود يعمل الآن
ولكن لاحظت شئ
الصفقة العكسية لا تفتح وقت اغلاق الصفقة الاولى وانما بعد اغلاق الشمعة التي حدث فيها اغلاق الامر
مما يؤدي لتقليل الارباح هل هناك حل لهذة المشكلة ؟ بان يفتح الفقة العكسية لحظة اغلاق الصفقة الاخرى ؟
وكل عام وانت بخير
- 31-08-2017, 08:33 PM #8439
السلام عليكم
استاذي مستر دولار
اريد وضيفه او داله تمنع الاكسبيرت من ارسال امر معلق اذا تم فتح صفقه بنفس السعر او قريب منها مثلا بمدى نقطتين خلال 24 ساعه
وتعود بقيمه لكي ادرجها بشروط ارسال الامر
مثلا
كود PHP:int openbefore;
if (openbefore !=0&& الشرووط الاخرى) OrderSend(Symbol(),OP_BUYSTOP,NewLot,Ask,3*P,SL,TP,"EA",MagicNumber,0,Blue);
آخر تعديل بواسطة السمحان ، 31-08-2017 الساعة 08:35 PM
- 01-09-2017, 12:06 AM #8440
بارك الله فيك استاذنا
تم عمل الداله وتعمل بنجاح
استفسار تعليمى عن المؤشرات
هذا الكود يبحث عن كل شمعتين متتاليتين فى نفس الاتجاه
ويتم رسم خط على الهاى وخط على اللو
المطلوب عدم تداخل الخطوط لكل الفرص
بمعنى تكون نهاية الترند لاين عند بداية الفرصه التاليه له
ويكون ترند اخر فرصه فقط هو الممتد
هذا هو الكود
كود:int cnt=0; //---- for(int i=1;i<=Bar_History;i++) { if(High[i+1]>High[i+2]&&Low[i+1]>Low[i+2]) { cnt++; double high =High[i+1],low=Low[i+2]; datetime T1=Time[i+2],T2=Time[i+1],T3=Time[0]+24*60*60; string x=IntegerToString(i); line("Egy_Buy "+x,T1,high,T3,Blue); line("Egy_Sell"+x,T1,low,T3,Red); if(cnt>=Bar_Back)break; }
مرفق صوره توضح تداخل المستوياتآخر تعديل بواسطة abo_samar ، 01-09-2017 الساعة 12:11 AM
- 01-09-2017, 12:47 AM #8441
- 01-09-2017, 09:26 AM #8442
- 03-09-2017, 01:01 AM #8443
السلام عليكم
ما هما هذين الأمرين Orderprint و OrderComment وما الفرق بينهما
- 03-09-2017, 12:06 PM #8444
مرحبا أ. أسامة
كيف أقرا قيم من مؤشر لا يخزن قيمه في Buffers
مرفق مؤشر لحساب نقاط البايفوت، أريد منه القيم التالية
DM1,DM2,DM3,DM4,DM5,DM6,Pivot,S1,S2,S3,R1,R2,R3
لاستخدمها في اكسبرت
ممنونة لك
- 03-09-2017, 09:07 PM #8445
لدي سؤال من فضلك
أريد أن أقول للإكسبيرت إذا تم ضرب ستوب لوز لعملية Buy قم بوضع أمر معلق في نقطة X
كيف يمكنني كتابة هذا الكود
شكرا لك ولمجهودك سيدي
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM