النتائج 4,996 إلى 5,010 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 17-03-2014, 11:48 PM #4996
- 18-03-2014, 09:25 AM #4997السلام عليكم أيها الأحبة الكرام
أرجو المساعدة أستاذي الكريم
عند كل تكة يتم مراجعة شروط الدخول وبعدد لا نهائي من الصفقات بصفقة واحدة لكل شمعة ، وبالتالي سيتم الاستغناء عن شرط تحديد أقصى عدد الصفقات يعني لابد من استخدام شرط التايم0 كالتالي :
كود PHP://+------------------Local variables------------------------------------------------+
datetime BarTime = 0;
//+------------------Expert Start------------------------------------------------+
void OncePerBar()
{
if (BarTime < Time[0])
{
// we have a new bar opened
BarTime = Time[0]; // keep the new bar open time
BuyOrder();
}
}
المشكلة عند إعادة تشغيل المنصة يفقد الاكسبيرت ما احتفظ به، وبالتالي يتم تكرار فتح الصفقة!
فهل يوجد حل؟
مثلا قبل مراجعة شروط الدخول يتم مراجعة أقصى عدد الصفقات في كل شمعة وليس في كل الشموع!
أو أي حل آخر جزاكم الله خيرا
تحياتي وتقديريآخر تعديل بواسطة kira-h ، 18-03-2014 الساعة 09:28 AM
- 18-03-2014, 08:30 PM #4998
وعليكم السلام ورحمة الله وبركاته
يمكنك عمل دالة تحسب عدد الصفقات المفتوحه في آخر شمعه مثال
كود PHP:int LastCandleOrders()
{
int cnt;
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderOpenTime()>=Time[0])cnt++;
else return(cnt);
}
}
return(cnt);
}
كود PHP:if(LastCandleOrders()==0)
- 18-03-2014, 10:39 PM #4999
- 19-03-2014, 07:13 PM #5000
أستاذ MR.dollar أحتاج دالة . إذا وصل السكربت إلى 5 صفقات خسرة متتالية يتوقف السكربت عن العمل و تصبح أيقونت expert advisors الموجودة في أعلى برنامج MT4 حمراء.
ولا يعمل السكربت إلى بعد أن أضغط عليها
- 21-03-2014, 05:19 AM #5001
ستقوم بعمل دالة لمعرفة عدد الصفقات الخاسره المتتاليه
مثال
كود PHP:int Cnt_Lossing()
{
int cnt;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()<0)cnt++;
else return(cnt);
}
}
return(cnt);
}
كود PHP:if(Cnt_Lossing()>=5)
{
ExpertRemove();
}
- 21-03-2014, 11:33 AM #5002
أخى مستر دولار وضعت دالة جعل هدف الصفقات المفتوحة نفس هدف أخر صفقة ولكنها لاتعمل (الأوامر التى أضعها أوامر معلقة)
كود PHP:double LastOrderProfit(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magicnumber&&OrderType()==type)
{
return(OrderTakeProfit());
}
}
return(0);
}
void ModifyOrders(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magicnumber&&OrderType()==type)
{
if(OrderTakeProfit()!=LastOrderProfit(type))
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),LastOrderProfit(type),0);
}
}
}
}
آخر تعديل بواسطة sameh ، 21-03-2014 الساعة 11:36 AM
- 21-03-2014, 10:39 PM #5003
- 22-03-2014, 01:08 AM #5004
لا توجد أخطاء ولكن لا يقوم الإكسيبرت بتغيير أهداف الصفقات
أخى بارك الله فيك إن لم يكن فيه تعب لك هذا الإكسيبرت قمت بعمله ووضعت فيه دالة الصفقات فمن فضلكم أخى أرجو أن تنظر إن كان مكان دالة الصفقات فى مكانه الصحيح أم لا وهذا هو الإكسيبرت الذى قمت بعمله يقوم بوضع أوامر معلقة ولكنه لا يغير هدف الصفقات وأرجو أن يعمل على سلة عملات فى أن واحد وجزاكم الله خيرا
كود PHP:int start()
{
if(Hour()==0 && Minute()<5 && MyOrdersTotal(Magicnumber)>0)
{
DeletePendingOrders(Magicnumber);
CloseOrders(Magicnumber);
}
if(Hour()==0 && Minute()>5 && MyOrdersTotal(Magicnumber)==0)
{
double AAA1=ObjectGet("AAA1",OBJPROP_PRICE1);
double AAA2=ObjectGet("AAA2",OBJPROP_PRICE1);
double AAA3=ObjectGet("AAA3",OBJPROP_PRICE1);
double AAA4=ObjectGet("AAA4",OBJPROP_PRICE1);
double AAA5=ObjectGet("AAA5",OBJPROP_PRICE1);
double AAA6=ObjectGet("AAA6",OBJPROP_PRICE1);
double AAA7=ObjectGet("AAA7",OBJPROP_PRICE1);
double AAA8=ObjectGet("AAA8",OBJPROP_PRICE1);
double AAA9=ObjectGet("AAA9",OBJPROP_PRICE1);
double AAA10=ObjectGet("AAA10",OBJPROP_PRICE1);
double AAA11=ObjectGet("AAA11",OBJPROP_PRICE1);
double AAA12=ObjectGet("AAA12",OBJPROP_PRICE1);
OrderSend(Symbol(),OP_BUYLIMIT,Lots,AAA1,3,AAA11,AAA2,"",Magicnumber,0,Green);
OrderSend(Symbol(),OP_BUYLIMIT,Lots,AAA8,3,AAA11,AAA1,"",Magicnumber,0,Green);
OrderSend(Symbol(),OP_BUYLIMIT,Lots,AAA9,3,AAA11,AAA10,"",Magicnumber,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots_s,AAA11,3,AAA1,AAA12,"",Magicnumber,0,Green);
OrderSend(Symbol(),OP_SELLLIMIT,Lots,AAA2,3,AAA6,AAA1,"",Magicnumber,0,Red);
OrderSend(Symbol(),OP_SELLLIMIT,Lots,AAA3,3,AAA6,AAA2,"",Magicnumber,0,Red);
OrderSend(Symbol(),OP_SELLLIMIT,Lots,AAA4,3,AAA6,AAA5,"",Magicnumber,0,Red);
OrderSend(Symbol(),OP_BUYSTOP,Lots_s,AAA6,3,AAA2,AAA7,"",Magicnumber,0,Red);
}
return(0);
}
double LastOrderProfit(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magicnumber&&OrderType()==type)
{
return(OrderTakeProfit());
}
}
return(0);
}
void ModifyOrders(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magicnumber&&OrderType()==type)
{
if(OrderTakeProfit()!=LastOrderProfit(type))
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),LastOrderProfit(type),0);
}
}
}
}
int MyOrdersTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
c++;
}
}
return(c);
}
int DeletePendingOrders(int Magic)
{
int total = OrdersTotal()-1;
for (int cnt = total ; cnt > 0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY || OrderType()!=OP_SELL))
{
OrderDelete(OrderTicket());
}
}
return(0);
}
int CloseOrders(int Magic)
{
int total = OrdersTotal()-1;
for (int cnt = total ; cnt > 0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
return(0);
}
- 24-03-2014, 07:40 AM #5005
- 24-03-2014, 04:24 PM #5006
جزاك الله خيرا أستاذى الحبيب سوف أقوم بتعديل الأمر
- 25-03-2014, 10:02 PM #5007
- 28-03-2014, 02:38 PM #5008
السلام عليكم ورحمة الله وبركاته
تحية طيبة أستاذي الكريم
أستاذي أريد دالة تحسب البروفيت الاجمالي للصفقات المغلقة من أول صفقة باللوت الابتدائي إلى آخر صفقة مضاعفة ( آخر صفقة مضاعفة سواء رابحة أو خاسرة) جزاك الله خيرا
وجمعة مباركة للجميع
- 28-03-2014, 11:51 PM #5009
السلام عليكم
الكود التالي يدخل شراء اذا افتتاح الشمعه الحالية اعلى من افتتاح الشمعة السابقة ويدخل لمرة واحدة فقط
ما هوه التعديل لكي يدخل في كل شمعه تحقق الشرط
int start()
{
//----
if (iOpen(0,0,0)>iOpen(0,0,1)&& OrdersTotal()==0)
OrderSend(Symbol(),OP_BUY,0.1,Ask,30,0,0,"",1234,0 ,Green);
//----
return(0);
}
- 29-03-2014, 03:40 AM #5010
ممكن كود يحسب ارباح صفقات الشراء فقط ويغلقها على ربح محدد
ويحسب ارباح صفقات البيع فقط ويغلقها على ربح محدد
وشكرا جزيلا مقدما
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM