1 مرفق
رد:موضوع مخصص للأسئلة البرمجية
أستاذ أسامة في الؤشر المرفق
أنا عايز لما الخط الأخضر في المؤشر إللي موجود تحت يكسر مستوى 30 صعودا ( يضع سهم شراء أسفل شمعة الكسر على الشارت نفسه )
ولو كسر مستوى -30 هبوطا يضع سهم بيع أعلى شمعة الكسر على الشارت نفسه
فهل ممكن عمل الموضوع ده ؟
http://www3.0zz0.com/2012/06/20/18/692639090.gif
----------------------------
عايزين بقى محاضرة المؤشرات
عشان عايز أبدء أتعلم C# بس بقول لسه ما أعرفش أعمل مؤشر وأروح أتعلم سي شارب :0010:
-----------
مرفق المؤشر
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
الخطأ 146 يحدث عندما يحاول أكثر من إكسبرت فتح صفقه في نفس الوقت لذلك تستخدم الداله
كود PHP:
IsTradeAllowed()
أو
كود PHP:
IsTradeContextBusy()
مثال
كود PHP:
if(IsTradeContextBusy())
Sleep(1000);
بحيث ينتظر قليلا ويعيد المحاوله لفتح الصفقه حتى يفرغ السيرفر من فتح باقي الصفقات الأخرى
خطأ 129 إعادة تسعير يجب أن تزيد عدد نقاط إعادة التسعير المسموحه أو تزيد عدد محاولات فتح الصفقه
خطأ 6 لا يوجد إتصال بالسيرفر في أثناء محاولة فتح الصفقه ربما السبب بطئ سرعة النت أو قطع طبيعي في الإتصال يحدث أو تعمد البروكر قطع الإتصال في بعض الأوقات
جزاك الله خيرا ، الآن لدى الجزء التالى الخاص بأمر Order Send وايضـا التنبيه
كود PHP:
int triednumber;
while(true)
{
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage*Q,0,0," EA",MagicNumber,0,Blue);
if(ticket<0)Alert("Order Send Error "+GetLastError(),"||","open price for the order"+Ask);
if(TP!=OrderTakeProfit()||SL!=OrderStopLoss())
{
OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Blue);
}
GlobalVariableSet("T"+Symbol(),Time[0]);
triednumber++;
if(ticket<=0){
Sleep(1);
RefreshRates();}
else
break;
if(triednumber>20)break;
}
هل أضع الشرط
كود PHP:
if(IsTradeContextBusy())
Sleep(1000);
داخل حلقة while فى اى مكان من الحلقة كمثال ..
كود PHP:
while(true)
{
if(IsTradeContextBusy())
Sleep(1000);
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage*Q,0,0," EA",MagicNumber,0,Blue);
if(ticket<0)Alert("Order Send Error "+GetLastError(),"||","open price for the order"+Ask);
ام اضعهـا خارج الحلقة مثل
كود PHP:
if(IsTradeContextBusy())
Sleep(1000);
int triednumber;
while(true)
{
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage*Q,0,0," EA",MagicNumber,0,Blue);
if(ticket<0)Alert("Order Send Error "+GetLastError(),"||","open price for the order"+Ask);
وأرجو الرد على مشاركتى السابقة استاذ اسامة
https://forum.arabictrader.com/showt...=1#post2441985
وايضـا الإطلاع على الرسائل الخاصة :eh_s(7):
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
السبب ليس في الكود لكن في طريقة ترتيبك للكود داخل الإكسبرت ترتيبك كان كالآتي
كود معرفة آخر صفقه رابحه أو خاسره
كود إغلاق الصفقه العكسيه
كود فتح الصفقات
فلو لاحظت في حال إغلاق صفقة عكسيه فسوف يمر الإكسبرت أولا على كود فتح الصفقات وبالتالي لم يتم المرور على كود معرفة آخر صفقه رابحه أو خاسره بالتالي إذا أغلقت الصفقه العكسيه على خساره فالصفقه التاليه لن تفتح مضاعفات
يجب أن تقوم بتعديل الإكسبرت وإجعل كود معرفة آخر صفقه رابحه أو خاسره قبل كود فتح الصفقات مباشرة
وسوف تحل المشكله
الله يبارك فيك أخي أسامه و تم التعديل و يعمل الآن و جزاك الله كل خير .
رد:موضوع مخصص للأسئلة البرمجية
أخي أسامه لو سمحت الداله الآتيه تقوم بحساب آخر صفقه أغلقت على ربح أو خساره
كود PHP:
double Last_lots;
string last;
for(int i=OrdersHistoryTotal();i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
//for buy order
if(OrderType()==OP_BUY && OrderClosePrice()>=OrderOpenPrice()) last="profit";
if(OrderType()==OP_BUY && OrderClosePrice()<=OrderOpenPrice()) last="loss";
Last_lots=OrderLots();
//for SELL order
if(OrderType()==OP_SELL && OrderClosePrice()<=OrderOpenPrice()) last="profit";
if(OrderType()==OP_SELL && OrderClosePrice()>=OrderOpenPrice()) last="loss";
Last_lots=OrderLots();
break;
}
}
فهل هذه الداله تحسب فقط الصفقات المغلقة لأني أريد إستخدام آخر لوت في آخر صفقه فهل ال Last_lots الموجوده بالداله تأتي بقيمة آخر لوت لآخر صفقة مغلقة ؟؟ أم ممكن إستخدامها لتأتي بقيمة لوت آخر صفقه عموما حتى لو مازلت مفتوحه .؟؟؟
و هل هذه الداله صحيحه و هي لتأتي بقيمة لوت آخر صفقه مفتوحه :
كود PHP:
int LastOpenedLot(){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
return(OrderType());
double lastopenedlot=OrderLots();
}
}
return(lastopenedlot);
}
وكنت أريد أستاذي لو تكرمت داله تقوم بحساب قيمة أدنى نقطة وصل لها السعر بمجرد فتح صفقة شراء ..أي أقل نقطه وصلها السعر قبل تفعل الشراء الحالي.
و داله أخرى تقوم بحساب قيمة أعلى نقطه وصل لها السعر قبل تفعل صفقة البيع الحاليه .
و شكرا جزيلا و بارك الله فيك .
رد:موضوع مخصص للأسئلة البرمجية
شباب لو سمحتم
ممكن كود الهيدج عند افتتاح شمعة جديدة