النتائج 3,211 إلى 3,225 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 12-01-2013, 11:51 AM #3211
بارك الله فيك اخي اسامة
انا حاولة استعمل هذه الدوال ولم ينجح الامر
بالمختصر
انا اريد كود اكسبريت لفتح 3 صفقات اوامر معلقة في نفس الوقت
مثلا 2 buy وواحد sell
هناك مسافة بين صفقات buy
اذا تحقق اول هدف ل buy اغلق صفقة buy واترك باقي الصفقتين
اذا تحقق الهدف الثاني ل buy اغلق جميع الصفقات
- 12-01-2013, 10:07 PM #3212
رد:موضوع مخصص للأسئلة البرمجية
إذا كان عدد الأوامر المعلقه ثابت فالفكره ستكون أسهل ويمكنك إعتماد على شروط عدد الأوامر المعلقه فقط
ستستخدم دالتين واحده لمعرفة عدد الأوامر المعلقه وواحده لمعرفة هل الصفقه المغلقه حققت الهدف أم لا
كود PHP:int orderscnt(int type){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type){
cnt++;
}
}
}
return(cnt);
}
double LastOrderProfit(int type)
{
for(int i=OrdersHistoryTotal()-1;i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
return(OrderProfit());
}
return(0);
}
كود PHP:if(orderscnt(OP_BUYSTOP)==1&&LastOrderProfit(OP_BUY)>0)
{
// delete buystop
}
كود PHP:if(orderscnt(OP_BUYSTOP)==0&&LastOrderProfit(OP_BUY)>0)
{
// delete buystop
}
- 13-01-2013, 10:22 PM #3213
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم و رحمة الله و بركاته
ما هو الكود الذي يعرض ايداع الحساب على صورة تكست ؟
- 14-01-2013, 01:12 AM #3214
رد:موضوع مخصص للأسئلة البرمجية
وعليكم السلام ورحمة الله وبركاته
لمعرفة الإيداع الأصلي في الحساب سوف تطرح الحساب الحالي - الربح المحقق
كود PHP:double deposite=AccountBalance()-AccountProfit();
كود PHP:Comment(deposite);
كود PHP:double deposite=AccountBalance()-AccountProfit();
create("deposite","Deposite:"+DoubleToStr(deposite,2),Red,5,5,0,12);
void create(string name, string text, color color., int X, int Y,int Corner,int Size) {
if (ObjectFind(name) != -1) ObjectDelete(name);
ObjectCreate(name, OBJ_LABEL, 0, 0, 0);
ObjectSet(name, OBJPROP_CORNER, Corner);
ObjectSet(name, OBJPROP_COLOR, color.);
ObjectSet(name, OBJPROP_XDISTANCE, X);
ObjectSet(name, OBJPROP_YDISTANCE, Y);
ObjectSetText(name, text, Size, "Arial", color.);
}
- 14-01-2013, 07:21 PM #3215
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم وتحية طيبة للجميع
مستر دولار أساتذي العزيز أريد حل للمشكلة دي، ربنا يكرمك
عند تفعيل الاكسبيرت بالحساب الحقيقي ECN لم يظهر أي خطأ بالجورنال وظهر الخطأ ده ب الاكسبيرتس رغم أن التجربة بدون هدف وبدون ستوب والبروكر يقبل فرق الأوامر 10 نقاط :
كود PHP:OrderSend() error - expirations are denied by broker
وجربت اكسبيرت الأوامر المعلقة تبعك MR.dollar_Pending Orders EA V4.6 يعمل جيدا على الحقيقي بنفس المنصة
فأكيد الخطأ البرمجي عندي وليس بالشركة
أرجوك أخي الغالي حل المشكلة ضمنيا بالاكسبيرت للاستفادة والتعلم
وجزاك الله عنا كل خيرآخر تعديل بواسطة kira-h ، 14-01-2013 الساعة 07:25 PM
- 14-01-2013, 08:55 PM #3216
رد:موضوع مخصص للأسئلة البرمجية
علما أني عملت محاولة بحدف الكود الخاص بانتهاء صلاحية الأمر المعلق expiration
ونفس الخطأ
تم استبدلت المقطع الأخير من كود الأمر المعلق بالتالي
كود PHP:if (ticket <0)
{
Print("OrderSend failed with error #",GetLastError());
return(0);
}
}
كود PHP:OrderSend failed with error #147
- 14-01-2013, 09:28 PM #3217
رد:موضوع مخصص للأسئلة البرمجية
أنت جعلت الأمر المعلق بدون وضع مكان تاريخ الإنتهاء للأمر
كود PHP:int ticket = OrderSend(Symbol(), OP_BUYSTOP, Lots, price, Slippage, SL, TP, "My Expert", MagicNo, Blue);
مثل
كود PHP:int ticket = OrderSend(Symbol(), OP_BUYSTOP, Lots, price, Slippage, SL, TP, "My Expert", MagicNo,0, Blue);
- 14-01-2013, 10:14 PM #3218
رد:موضوع مخصص للأسئلة البرمجية
بارك الله فيك أستاذي
نعم يحدث نفس الخطأ وأنا حدفته لأني فهمت من اسم الخطأ 147 أن البروكر لا يقبل تاريخ الصلاحية للأوامر !!!
وكمان كان في مكان 0 متغير بإسم expiration وموجود خارجيا غيرته إلى 30 و 60 ونفس الخطأ
وعدلت الكود كالتالي
كود PHP:
void SellPendingOrder49()
{
double price = NormalizeDouble(Close[1], NDigits) - 11*PipValue*Point;
double SL = price + Stoploss*PipValue*Point;
if (Stoploss == 0) SL = 0;
double TP = price - Takeprofit*PipValue*Point;
if (Takeprofit == 0) TP = 0;
int ticket = OrderSend(Symbol(), OP_SELLSTOP, Lots, price, Slippage, SL, TP, "My Expert", MagicNo,0, Red);
if (ticket > -1)
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
}
غيرت الـ 0 إلى 60 و إلى 30 ولم تتفعل الصفقة المعلقة
كما حدفت الستوب والهدف من الكود ونفس المشكلة لا توجد استجابة
الاكسبيرت الذي يفعل الأمر المعلق ثم يختفي بالمرفقات
بانتظارك أخي العزيزآخر تعديل بواسطة kira-h ، 14-01-2013 الساعة 10:18 PM
- 14-01-2013, 10:58 PM #3219
رد:موضوع مخصص للأسئلة البرمجية
آخر تعديل بواسطة MohamedEgyForex ، 14-01-2013 الساعة 11:01 PM
- 15-01-2013, 03:07 AM #3220
رد:موضوع مخصص للأسئلة البرمجية
وعليكم السلام ورحمة الله وبركاته
نعم يبدو أن فهمت سؤالك خطأ
ستستخدم نفس الطريقة السابقه لكن ستحتاج لعمل دالة لمعرفة الربح المحقق في الحساب للصفقات التي أغلقت وليس الصفقات المفتوحه
فيمكنك عمل داله لحساب الربح في الصفقات المغلقه
كود PHP:double Profit()
{
double profit;
for(int i=0;i<OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
profit+=OrderProfit();
}
return(profit);
}
- 15-01-2013, 09:36 AM #3221
- 15-01-2013, 10:48 AM #3222
- 15-01-2013, 01:15 PM #3223
- 15-01-2013, 07:28 PM #3224
- 15-01-2013, 07:48 PM #3225
رد:موضوع مخصص للأسئلة البرمجية
تمام
بارك الله فيك أستاذي الكريم
التعديل المقترح من الأستاذ جميل بارك الله فيه اشتغل تمام على الحقيقي و يفتح الأوامر المعلقة كما أريد
والان أضفت أمر ماركت وليس معلق
كود PHP:void BuyOrder78()
{
double SL = Ask - Stoploss*PipValue*Point;
if (Stoploss == 0) SL = 0;
double TP = Ask + Takeprofit1*PipValue*Point;
if (Takeprofit1 == 0) TP = 0;
int ticket = -1;
if (ECNBroker)
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "My Expert", MagicNo, 0, Blue);
else
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, SL, TP, "My Expert", MagicNo, 0, Blue);
if (ticket > -1)
{
if (ECNBroker)
{
OrderSelect(ticket, SELECT_BY_TICKET);
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));
}
}
else
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
}
ونسخة منه بعد إضافة الأمر الماركت به شرط مودفاي للصفقة بعد تفعيلها لأن الحقيقي ECN ..
الاكسبيرت باسم 4
المشكلة الان يفتح الاكسبيرت صفقة ماركت ولا يفتح معه الأوامر المعلقة ، لا أعرف لما وأين الخلل
فالمرجو التكرم بالمراجحة وحل المشكلة جزاك الله خيرا
تحية ود وتقديرآخر تعديل بواسطة kira-h ، 15-01-2013 الساعة 07:52 PM
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM