النتائج 7,201 إلى 7,215 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 21-03-2016, 08:25 PM #7201
فهمت قصدك . للأسف لا يمكن أن تغلق جميع الصفقات مره واحده في نفس الوقت فسيرفر البروكر لا يمكن أن يقبل أكثر من أمر واحد في المره سواء فتح صفقه أو إغلاقها وهذا سوف تلاحظه إذا جربت عمل إكسبرت يفتح صفقه في نفس الوقت ووضعته على عملتين مختلفتين فسوف تفتح أحد الصفقات والصفقه الأخرى سوف يعطي خطأ Trade context is busy
فسيرفر البروكر لا يقبل تنفيذ أمرين في نفس الوقت ونفس الأمر ينطبق على إغلاق الصفقات فيجب أن تغلق الصفقات واحده تلو الأخرى
- 22-03-2016, 07:02 PM #7202
- 23-03-2016, 11:30 PM #7203
السلام عليكم اخي اسامة
الق نظرة على الموضوع التالي رجاءا المشاركة رقم 18
https://forum.arabictrader.com/t235615-2.html
تحياتي
- 24-03-2016, 02:04 AM #7204
لوسمحت اخ MR.dollar عندي داتا واريد ان احملها على المنصة ممكن تشرحلي الطريقة هذا اسمه eurusd_d.csv
- 24-03-2016, 02:12 AM #7205
حاولت عدت مرات ارفعه لكن مساحته اكبر من المسموح بتحميله او اذا امكن تعطيني اسم موقع يمكنني ان احلل على الشارت لكن يكون فيه داتا قديمة مثلا 1970
- 24-03-2016, 06:23 AM #7206
السلام عليكم ورحمة الله وبركاته
استاذي العزيز مستر دولار تحية وبعد
فرضا عندنا مجموعة صفقات بيع خاسرة وبعدها حصل تصحيح لاخر 4 صفقات
الصفقة الأخيرة (أ) محققة 30 نقطة والصفقة اللي قبلها (ب) 20 نقطة واللي قبلها (ج) 10 نقاط واللي قبلها (د) نقطة واحدة
كيف يمكن عمل شرط اغلاق مثلا عند تحقق
Profit=45 يتم اغلاق الصفقتين أ و ب (لأنهما حققتا ربح اكثر من 45 نقطة ) ولا يتم اغلاق الصفقتين ج و د
أعتقد الأمر يحتاج إلى مصفوفة ارجو المساعدة جزاك الله خيراآخر تعديل بواسطة femtogold4 ، 24-03-2016 الساعة 06:39 AM
- 24-03-2016, 01:36 PM #7207
بعد اذن دكتور اسامة طبعا
يمكنك ذلك اخي الكريم بعدة طرق اعتقد ان اسهلها دالة لاغلاق الصفقة التي حققت ربح اكثر او يساوي من 45 نقطة كالتالي
كود PHP:void Close_Type_Profit(int type)
{
for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)
{
bool select=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
int ticket=OrderTicket();
double lots=OrderLots();
int Otype=OrderType();
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol()&&OrderType()==type&&OrderProfit()>=45)
{
if (Otype==OP_BUY)
{
bool action= OrderClose(ticket,lots,NormalizeDouble(Bid,Digits),3*P);
}
if (Otype==OP_SELL)
{
action= OrderClose(ticket,lots,NormalizeDouble(Ask,Digits),3*P);
}
}
}
}
بالتوفيق
- 24-03-2016, 05:47 PM #7208
هل تريد اغلاق الصفقة x و الصفقة y اذا كان مجموع الربح بينهما اكثر من 45 نقطة ام تريد اغلاق الصفقة التي حققت اكثر من 45 نقطة وترك الباقي
- 24-03-2016, 07:05 PM #7209
- 25-03-2016, 03:30 AM #7210
- 25-03-2016, 02:15 PM #7211
اخي الكريم تحتاح الى دالة و اول شيئ يتم الاعلان عن المتغيرات التالية هكذا
كود PHP:int orderstotal = OrdersTotal();
int size = 0;
double ArrayOrder[10];
int cnt = 0 ;
ثم تشيك على جميع الصفقات المفتوحة للاحتفاظ بالصفقات التي حققت ربح داخل المضفوفة كالتالي
كود PHP:for (cnt = orderstotal ; cnt > 0 ; cnt--)
{
bool sel = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() )
{
if(OrderProfit() > 0){
ArrayOrder[size] = OrderProfit();
size++;
}
}
}
الرابحة , ثم بعد ذلك نحتاج لحلقتين واحدة ضمن الثانية لضمان اضافة العنصر الاول للمصفوفة مع الاثاني والثاني مع الثالث وهكذا الى نهاية المصفوفة
مع وضع الشرط داخل الحلقة
كود PHP:for( int i = 0 ; i < size ; i++){
for(int j = i ; j <size ; j++){
if(ArrayOrder[i]+ ArrayOrder[j] >= 500){
كود PHP:if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),5,Violet);
if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),5,Violet);
كود PHP:void CloseOrderOnProfit()
{
int orderstotal = OrdersTotal();
int size = 0;
double ArrayOrder[10];
int cnt = 0 ;
for (cnt = orderstotal ; cnt > 0 ; cnt--)
{
bool sel = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() )
{
if(OrderProfit() > 0){
ArrayOrder[size] = OrderProfit();
size++;
}
}
}
if (size > 1)
{
ArrayResize(ArrayOrder,size);
ArraySort(ArrayOrder);
}
for( int i = 0 ; i < size ; i++){
for(int j = i ; j <size ; j++){
if(ArrayOrder[i]+ ArrayOrder[j] >= 500){
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),5,Violet);
if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),5,Violet);
}
}
}
}
تحياتي للجميع
بالتوفيق
- 25-03-2016, 04:51 PM #7212
جزاك الله خيرا اخي العزيز goldfile وكما توقعت الامر يحتاج إلى مصفوفة ولا افهم فيها مطلقا هههههه
سأجرب الكود وننتظر التصحيح من الأستاذ مستر دولار ان شاء الله
بارك الله فيكم
- 26-03-2016, 08:37 AM #7213
السلام عليكم الاخوة الكرام
هل يوجد داله تبحث فى فتره معينه انا احدده من بداية الى نهاية
فى حجم اللوت او عدد الصفقات او شئ من هذا
بمعنى اكثر
عايز ابحث مثلا من يوم 1/3/2016 الى 3.4/2014
مثل هذا كده
هل يوجد هذه الدالة
تحياتى لكم
- 26-03-2016, 03:06 PM #7214
- 26-03-2016, 06:21 PM #7215
بعد اذن الدكتور اسامة
نعم اخي يمكنك ذلك اعمل الاتي
تعريف المتغيرات جلوبال هكذا
كود PHP:string TimeBegin = "2015.11.09" ;
string TimeEnd = "2015.11.11" ;
string HourBegin = "7:42" ;
string HourEnd = "13:00" ;
ثم تنشأ الدالة التي ستقوم بعملية البحث هكذا
كود PHP:void SearchByTime()
{
datetime Begin=StrToTime(TimeBegin + " " + HourBegin);
datetime End=StrToTime(TimeEnd + " " + HourEnd);
int Total = OrdersTotal() ;
for(int cnt = 0 ; cnt < Total ; cnt++){
if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
if(OrderOpenTime()< End && OrderOpenTime()> Begin )
{
Print("OrderLot : " ,OrderLots() ," Orderprice : " ,OrderOpenPrice() ," OrderTime : " ,OrderOpenTime() ) ;
}
}
}
تحياتي
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM