النتائج 9,826 إلى 9,840 من 10283
الموضوع: موضوع مخصص للأسئلة البرمجية
- 04-03-2020, 03:48 PM #9826
- 04-03-2020, 03:59 PM #9827
هذه هي الObjects التي تقوم برسم الدوائر على الشارت
كما تلاحظ الإسم العام لها هو PERFZONES_SRZHLL بالتالي يمكنك البحث في جميع الObjects الموجوده على الشارت ولها هذا الإسم
مثال
كود PHP:for(int i=ObjectsTotal()-1;i>=0;i--)
{
string name=ObjectName(i);
if(StringFind(name,"PERFZONES_SRZHLL",0)>=0)
{
datetime time=ObjectGet(name,OBJPROP_TIME1);
double price=ObjectGet(name,OBJPROP_PRICE1);
if(time==Time[1])
{
//do something
}
}
}
- 05-03-2020, 07:23 PM #9828
ستصل
لكي تفهمها جرب الكود من دون وجود OrderSelect
هذه دالة اجبارية --لانك تريد ان تتعامل مع امر, وبالتالي لابد ان تختاره او تحدده--ولايمكن ذلك الا من خلال OrderSelect
اذا حددته بشكل دقيق -- اصبح السيرفر مثلا علم اي امر تريد اغلاقه او حذفه او تعديل التيك بروفت له او معرفة ربحه او اسم الزوج او نوع الامر وهلم جراً.
وبناء على هذا الكلام هي تتعامل مع اوامر موجودة مسبقاً
اقرا بين السطور---جميع الدوال المحوطة باالأحمر لايمكن ان تعرفها او تتعامل معها--لأنها كلها تتحدث عن أمر جاهز وموجود مسبقاً, الا اذا حددت الأمر بدالة OrderSelect
آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 07:27 PM
- 09-03-2020, 07:03 AM #9829
السلام عليكم
لو ممكن سؤال برمجى
الان هذه الدالة تظهر لى رقم التكيت الى اكبر خسارة
المطلوب الان معرفة رقم التكيت للصفقة اقل خسارة من الاكبر خسارة
وشكرا على المساعدة
كود PHP:int Tick_A_L(int Type){ int i,ticket=0; double max=0; RefreshRates(); for(i=0;i<OrdersTotal();i++){ if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){RefreshRates();return false;} if(OrderSymbol()==Symbol()&&OrderType()==Type&&OrderMagicNumber()==MagicNumber){ if(OrderProfit()<max){max=OrderProfit();ticket=OrderTicket();} } } return(ticket);}
- 09-03-2020, 08:45 AM #9830
الكود ملتبس شوي,
هل تريد اخي ترتيب التكتات في جدول مثلا, من الاكبر خسارة الى الاصغر خسارة لزوج محدد في اتجاه محدد؟
ام تريد رقم تكت ثاني اسؤا صفقة.
ملاحظة-1: RefreshRates() لاداعي لاستخدامها لانها مجرد تحديث للمعطيات الشهيرة لكل الأزواج وانت هنا تتعامل مع قيم OnAccount Events --مثل تغير الربح والخسارة وليس الأسعار--يعني يستحسن عدم استخدامها الا مع الدخول ماركت ordersend او الاغلاق ماركت او الموديفاي في حالات خاصة جدا
ملاحظة-2: اللووووب بدأته من 0 الى اخر اورود OrdersTotal-1
ويفترض تبدأه بالعكس مع دكرمنت i--
كود:for(OrdersTotal()-1;i>=0;i--)
لأنك في الحالة الأولى لو صادف واغلق صفقة لاي سبب اخر بماجك نمبر اخر اثناء اللوب , فإنه سيقفز صفقة ولن يراها اللوووب
ولكن الحالة الأخيرة امنة ضامنة للمرور على كل الصفقات--تأخذها من فوق الى تحت
+ اسرع للبرنامج لأن دالة OrderTotal في حالتي يستدعيها البرنامج مرة واحدة
في حالتك يستدعيها البرنامج مرات كثيرة تساوي عدد الاوردرز
ملاحظة-3: orderelct المنفية وإعادة false الخ
تصور لاي سبب اخر, فشل اختيار احد الأوامر --لن يكمل اللوب!!
والافضل حسب وجهة تظري, orderselect كبلوك لبقية الكودآخر تعديل بواسطة سلمان_العتيبي ، 09-03-2020 الساعة 09:06 AM
- 09-03-2020, 09:11 AM #9831كود:
int MagicNumber; int Tick_A_L(int Type) { int ticket=0; int ticketSecond=0; double max=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol()&&OrderType()==Type&&OrderMagicNumber()==MagicNumber) { if(OrderProfit()<max) { ticketSecond=ticket; ticket=OrderTicket(); max=OrderProfit(); } } } } Print(ticketSecond+" "+ticket); return(ticket); }
- 09-03-2020, 12:19 PM #9832
السلام عليكم اخى الكريم
شكرا على المساعدة
الان الدالة الخاص بيك تظهر لى رقم تكيت اكبر خسارة
المطلوب هو دالة تظهر لى رقم تكيت الاخسارة الاقل من الاولى
بمعنى الدالة الخاص بيك
تظهر اكبر خسارة مثلا -100
يوجد صفقة ايضا خاسرة -90
وصفقة خاسرة -80
انا اريد دالة تظهر لى تكيت الخسارة الاقل من الاخير وهى -90
اعتقد كده وضحت الفكرة
وشكرا على المساعدة
- 09-03-2020, 12:36 PM #9833
نعم وضحت جدا اخي
في هذه الحالة في ال return
ضع ticketSecond بدلا من ticket
لانه المتغير الذي يحقظ القيمة السابقة ل تكت لو جد فعلا ان هناك صفقة اكبر خسارة مما سبق.
واذا كنت تريد إعادة القيمتين! -- هيكلة الدالة تتغير--لابد تخليها كحل م نضمن عدة حلول من نوع void
والمتغيرين تخليهم global (خارج الدوال) مع تصفير قيمهم اثناء دخول الدالة وقبل اللووووووووووبنق
انا افضل -1 بدلا من 0 (التصفير) لتكتات الأوامر عند الأنشلة.آخر تعديل بواسطة سلمان_العتيبي ، 09-03-2020 الساعة 12:40 PM
- 09-03-2020, 12:41 PM #9834
اذا كنت تريد تكرار الامر لكل الصفقات هناك مفهوم الريكيرشن recursion في البرمجة ولابد من مصفوفة
-
ticketSecond=ticket;
ticket=OrderTicket();
لو بدلت السطرين مكان بعض
سيكون نفس القيمة الأخيرة--زي بعض---ننتبه لهذه الامور
- 09-03-2020, 01:02 PM #9835
- 09-03-2020, 01:03 PM #9836
- 09-03-2020, 01:04 PM #9837
سمير ما فائدة معرفة ثاني اسؤا صفقة؟
قد اتفهم اسؤا صفقة ولكن ثاني صفقة--لماذا؟
اكيد لديك هدف منها
- 09-03-2020, 01:39 PM #9838
كود سورتنق لصفقات منتقاة لزوج محدد باتجاه محدد بماجك نمبر محدد
كود:int MagicNumber=0; int tick[]; double LossInUSD[]; void Tick_A_L(int Type) { ArrayResize(tick,0); ArrayResize(LossInUSD,0); int ordTotal=OrdersTotal(); int m=-1; for(int k=0;k<ordTotal;k++) { if(OrderSelect(k,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol()&&OrderType()==Type&&OrderMagicNumber()==MagicNumber) { m++; ArrayResize(tick,m+1); ArrayResize(LossInUSD,m+1); tick[m]=OrderTicket(); LossInUSD[m]=OrderProfit()+OrderCommission()+OrderSwap(); } } } for(int i=0;i<m;i++) { for(int j=i+1;j<=m;j++) { if(LossInUSD[i]<LossInUSD[j]) { int temp=tick[i]; tick[i]=tick[j]; tick[j]=temp; double temd=LossInUSD[i]; LossInUSD[i]=LossInUSD[j]; LossInUSD[j]=temd; } } } for(int n=0;n<=m;n++) { Print(n," ",tick[n]," ",LossInUSD[n]); } } int OnInit() { Tick_A_L(OP_BUY); return(INIT_SUCCEEDED); } void OnTick() { }
وثاني اسؤا صفقة تكت في اندكس رقم m-1
وثالث اسؤا صفقة بتكتب بالاندكس رقم m-2
وهكذا
صورة توضح ناتج البرنامج:
آخر تعديل بواسطة سلمان_العتيبي ، 09-03-2020 الساعة 01:44 PM
- 09-03-2020, 01:43 PM #9839
داخل if لو عكست اصغر من > الى اكبر من < ----- تصبح الامور اسهل تصبح اسواء صفقة في الاندكس رقم 0 و ليس m ---- m هي اخر اندكس لاخر عنصر في المصفوفة
وهكذا
حيث طول المصفوفة m+1
- 09-03-2020, 03:44 PM #9840
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM