النتائج 2,536 إلى 2,550 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 31-07-2012, 06:27 AM #2536
متشكر جدا واعذرنى لعدم التوفيق فى الكود وعدم تجربته ايضا ولكن للأسف انا محبط لأن كل محاولاتى مع اكسبيرت الايشيموكو تنجح برمجيا ولا تنجح ماديا والاكسبيرت يخسر او يكسب القليل جدا وما زادنى هذا الا حيرة وانا اعمل بنصيحتك واتعلم ولكن لضيق الوقت تركت التداول نهائيا واركز على الاكسبيرت والباك تيست وجزاك الله خيرا
- 31-07-2012, 06:48 AM #2537
رد:موضوع مخصص للأسئلة البرمجية
مستر دولار عفوا للأزعاج ارفقت لك صورة يمكن توضح هدفي اذا الشرح مش واضح ، في متغير بيحمل رقم 3333 ودا يعتبر ماجيك لأكسبيرت معين وبيتكرر عدة مرات في اماكن مختلفة داخل الأكسبيرت
فأنا اقدر اعدله يدوي لكن الموضوع متعب وممكن تفوت مني وحدة من المرات المتعددة ، فأضفت الماجيك الذي هو 215315 ، وعايزه يحتل كل الأماكن المكتوب فيها OrderId27 مثلا ، ياريت تشوف الصورة والخطاء اللي بيحصل لما بعمل كوميلر ، على فكرة لو حطيت الجملة دي تحت قسم int او قسم Start مابيعطي رسالة خطاء في الكومبيلر لكن مابيحصل التغيير الذي اهدف اليه ، ولو حطيته
في الجزء الأول من الأكسبيرت بيعطي رسالة الخطاء ، شكرا لتعاونك .
- 31-07-2012, 10:01 AM #2538
رد:موضوع مخصص للأسئلة البرمجية
تم التعديل ولى سؤال لماذا ظهر خطـأ OrderSend error 130 من قبل مع وجود او عدم وجود تارجت واستوب ولماذا فتح صفقات بيع وشراء (ليست معلقة) قبل التعديل ، المفترض لن يفتح اى صفقات طالمـا كان الخطـأ فـ نوع الأمر المعلق !!
وفـ حالة أمر أوردر سيند الخاص بالأوامر المعلقة هل يجب وضع كود المقارنة الخاص بالتارجت والاستوب قبل كل أمركود PHP:if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
نعم أريد إغلاق الصفقه على سعر إغلاق الشمعه السابقه للشمعه التي تم فتح الصفقه فيها بحيث لن تتغير حتى لو بعد مرور 10 شمعات ولم تغلق الصفقه بعد وقمت بتعديل الكود الخاص بالعطف .
بالنسبة لإضافة مضاعفات فيبوناتشي قمت بعمل دالة لحساب حجم اللوت الجديد خارج ستارت
كود PHP:double fibo_lots()
{
double newlot;
int N;
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
newlot+=OrderLots();
N++;
if(N==2)return(newlot);
}
}
return(newlot);
}
كود PHP:int i,j;
for(i=0,j=1;i<NumOF_Additional_LIMITSTOPLots;i++,j+=j){
double lot=fibo_lots();
if(OpenPrice(OP_BUY)!=0 &&orderstotal2(OP_BUYLIMIT)<i && NumOF_Additional_LIMITSTOP_Lots==true){
OrderSend(Symbol(),OP_BUYLIMIT,lot*j,OpenPrice(OP_BUY)-Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}
if(OpenPrice(OP_SELL)!=0 &&orderstotal2(OP_SELLLIMIT)<i && NumOF_Additional_LIMITSTOP_Lots==true){
OrderSend(Symbol(),OP_SELLLIMIT,lot*j,OpenPrice(OP_SELL)+Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Red);}
}
وليست مضاعفات فيبوناتشي .
ولى سؤال بخصوص الدالة fibo_lots
لماذا تم وضع الأمر return مرتين ، وفـ حالة الشرط
كود PHP:if(N==2)
- عند بداية العد ستصبح قيمة N =0 ثم بعد ذلك 1 ثم 2 ويتحقق شرط if
بعد ان تصبح قيمة N تساوى 3 ، 4 ، 5 ، ... لن يتحقق شرط if
فـ هذه الحالة ماذا ستكون القيمة الـتى يعود بها الأمر returnآخر تعديل بواسطة spiders101 ، 31-07-2012 الساعة 10:30 AM
- 01-08-2012, 04:53 AM #2539
أعتقد يا أخ جميل إن ما ينفعش تساوي رقمين ببعض
لإنك كده كإنك بتقول
3333=215315 وده مستحيل
بس إنتظر رأي أستاذ أسامة
-----------------------------
بس في ملحوظة :
إنت بدل ما تبحث عن OrderId27 بعينك
ممكن تضغط ctrl+f هيفتح لك نافذة بحث تكتب فيها OrderId27 وتضغط Next وكل ما تلاقي المتغير تغيره بمتغير الماجيك نمبر
حتى تصل إن البحث لا يجد المتغير OrderId27 في الإكسبيرت
- 01-08-2012, 05:21 AM #2540
رد:موضوع مخصص للأسئلة البرمجية
بالنسبة لتحديد حجم اللوت بواسطة الفيبوناتشي
يمكنك إستخدام رقم 1.618 مباشرة لتحديد حجم اللوت
عن طريق ضرب حجم أخر لوت × 1.618 وتقريب الناتج عن طريق MathRound() لأقرب عدد صحيح
ستقوم أولاً بعمل دالة لتأتي بقيمة أخر لوت
ثم تقوم بحساب اللوت الجديد بالشكل ده
كود PHP:double Lot=MathRound (LastLot()*1.618);
كود PHP:OrderSend(Symbol(),OP_BUYLIMIT,MathRound(LastLot()*1.618),OpenPrice(OP_BUY)-Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);
كود PHP:NormalizeDouble (LastLot()*1.618,1);
آخر تعديل بواسطة xcv114 ، 01-08-2012 الساعة 05:39 AM
- 01-08-2012, 05:27 AM #2541
- 01-08-2012, 05:34 AM #2542
الأخطاء التي تظهر هذا لأنك قمت بتعريف نفس المتغير مرتين
بداخل الداله init او الداله dienit سوف تقوم بإضافة عملية المساواه لكنك لن تقوم بتعريف المتغير مره أخرى
مثلا
كود PHP:extern int BuyOrderId27=3333;
extern int MagicNo=235434;
كود PHP:int init()
{
BuyOrderId27=MagicNo;
return(0);
}
- 01-08-2012, 06:00 AM #2543
الخطأ 130 إما خطأ في الهدف أو الأستوب أو خطأ في مكان وضع الأمر المعلق وبالتأكيد لم يفتح صفقات بيع وشراء بدلا من الأوامر المعلقه لكن تأكد من أن كود آخر في الإكسبرت هو السبب في فتح الصفقات
في حال أي أمر سواء معلق أو بسعر مباشر فيجب أن تضع شروط الهدف والأستوب لوز
لكن في الأمر المعلق لن تعتمد على سعر الأسك والبيك لكن ستعتمد على سعر وضع الأمر المعلق + أو - الهدف والأستوب
مثلا
كود PHP:if(StopLoss==0){SL=0;}else{SL=OpenPrice(OP_SELL)+StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=OpenPrice(OP_SELL)-TakeProfit*point;}
كود PHP:lot=fibo_lots();
OrderSend(Symbol(),OP_BUYLIMIT,lot,OpenPrice(OP_BUY)-Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}
في المره الأولى حتى بعد أن يجمع حجم لوت آخر صفقتين ويجد أن المقارنه N=2 أي أنه تم المرور على صفقتين فإنه يتوقف ويحفظ حجم اللوت
في المره الثانيه بحيث إذا كان عدد الصفقات المفتوحه واحد فقط بالتالي لن يتحقق الشرط وسوف تنتهي الحلقه فيقوم بحفظ حجم اللوت الأول فقط
أنا لا اريد إلا قيمة N=2 فقط حتى أتأكد من أن آخر صفقتين تم جمع حجم اللوت لهم وبالتالي تنتهي الحلقه
وقيمة N لن تزيد عن 2 أبدا لأني في كل مره أنهي الحلقه والداله
- 01-08-2012, 07:11 AM #2544
- 01-08-2012, 08:35 AM #2545
رد:موضوع مخصص للأسئلة البرمجية
طيب يا اخ جميل إنت ممكن تشيل المتغير BuyOrderId27 من المتغيرات الخارجية خالص
أولا ستقوم بتعريف المتغير خارج أي دالة يعني ضعه مثلا أسفل المتغيرات الخارجية وقبل init()
كود PHP:int BuyOrderId27;
كود PHP:BuyOrderId27=MagicNo;
آخر تعديل بواسطة xcv114 ، 01-08-2012 الساعة 08:38 AM
- 01-08-2012, 01:41 PM #2546
رد:موضوع مخصص للأسئلة البرمجية
تم التعديل والآن عرفت سبب عدم إغلاق الصفقات المعلقة بعد تفعيلها على الهدف .
وشروط الأوامر المعلقة الآن اصبحت هكذا
كود PHP://///////////////////////////////////// Delete pending Order //////////////////////////
if(orderstotal2(OP_BUY)+orderstotal2(OP_SELL)==0){
orderDelete(OP_BUYLIMIT);orderDelete(OP_SELLLIMIT);orderDelete(OP_BUYSTOP);orderDelete(OP_SELLSTOP);}
/////////////////////////////////////// Additional Buy & SELL Lots //////////////////////////
if(OpenPrice(OP_BUY)-Ask>Space*point && OpenPrice(OP_BUY)!=0 && Additional_Buy_SELL_Lots==true){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
OrderSend(Symbol(),OP_BUY,lot*2,NormalizeDouble(Ask,digits),5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}
if(Bid-OpenPrice(OP_SELL)>Space*point && OpenPrice(OP_SELL)!=0 && Additional_Buy_SELL_Lots==true){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELL,lot*2,NormalizeDouble(Bid,digits),5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Red);}
/////////////////////////////////////// Additional LIMIT & STOP Lots //////////////////////////
if(OpenPrice(OP_BUY)!=0 &&orderstotal2(OP_BUYLIMIT)<1 && Additional_LIMIT_STOP_Lots==true){
if(StopLoss==0){SL=0;}else{SL=(OpenPrice(OP_BUY)-Space*point)-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=(OpenPrice(OP_BUY)-Space*point)+TakeProfit*point;}
OrderSend(Symbol(),OP_BUYLIMIT,lot*2,OpenPrice(OP_BUY)-Space*point,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}
if(OpenPrice(OP_SELL)!=0 &&orderstotal2(OP_SELLLIMIT)<1 && Additional_LIMIT_STOP_Lots==true){
if(StopLoss==0){SL=0;}else{SL=(OpenPrice(OP_SELL)+Space*point)+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=(OpenPrice(OP_SELL)+Space*point)-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELLLIMIT,lot*2,OpenPrice(OP_SELL)+Space*point,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Red);}
///////////////////////////////////////NumOF_Additional_LIMITSTOP_Lots //////////////////////////
if(Fibo_NumOF_Additional_LIMITSTOP==false){
int i,j;
for(i=0,j=1;i<NumOF_Additional_LIMITSTOPLots;i++,j+=j){
if(OpenPrice(OP_BUY)!=0 &&orderstotal2(OP_BUYLIMIT)<i && NumOF_Additional_LIMITSTOP_Lots==true){
if(StopLoss==0){SL=0;}else{SL=(OpenPrice(OP_BUY)-Space*point*i)-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=(OpenPrice(OP_BUY)-Space*point*i)+TakeProfit*point;}
OrderSend(Symbol(),OP_BUYLIMIT,lot*j,OpenPrice(OP_BUY)-Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}
if(OpenPrice(OP_SELL)!=0 &&orderstotal2(OP_SELLLIMIT)<i && NumOF_Additional_LIMITSTOP_Lots==true){
if(StopLoss==0){SL=0;}else{SL=(OpenPrice(OP_SELL)+Space*point*i)+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=(OpenPrice(OP_SELL)+Space*point*i)-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELLLIMIT,lot*j,OpenPrice(OP_SELL)+Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Red);}
}}//set multiplier by 2,4,8,16 and if we need 2,4,6,8 use j=0 and j++ and lot*2*j
///////////////////////////////////////Fibo_NumOF_Additional_LIMITSTOP_Lots //////////////////////////
if(Fibo_NumOF_Additional_LIMITSTOP==true){
for(i=0;i<NumOF_Additional_LIMITSTOPLots;i++){
double lot=fibo_lots();
if(OpenPrice(OP_BUY)!=0 &&orderstotal2(OP_BUYLIMIT)<i){
if(StopLoss==0){SL=0;}else{SL=(OpenPrice(OP_BUY)-Space*point*i)-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=(OpenPrice(OP_BUY)-Space*point*i)+TakeProfit*point;}
OrderSend(Symbol(),OP_BUYLIMIT,lot,OpenPrice(OP_BUY)-Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}
if(OpenPrice(OP_SELL)!=0 &&orderstotal2(OP_SELLLIMIT)<i){
if(StopLoss==0){SL=0;}else{SL=(OpenPrice(OP_SELL)+Space*point*i)+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=(OpenPrice(OP_SELL)+Space*point*i)-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELLLIMIT,lot,OpenPrice(OP_SELL)+Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Red);}
}}
/////////////////////////////////////// Reversed Multiplier //////////////////////////
if(OpenPrice(OP_BUY)-Ask>Space*point&&OpenPrice(OP_BUY)!=0&&LastOrderType()==OP_BUY&&Reversed_Multiplier==true){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELL,lot*2,NormalizeDouble(Bid,digits),5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Red);}
if(Bid-OpenPrice(OP_SELL)>Space*point&&OpenPrice(OP_SELL)!=0&&LastOrderType()==OP_SELL&&Reversed_Multiplier==true){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
OrderSend(Symbol(),OP_BUY,lot*2,NormalizeDouble(Ask,digits),5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}
/////////////////////////////////////// Reversed Multiplier2 //////////////////////////
if(OpenPrice(OP_BUY)!=0&&orderstotal2(OP_SELLSTOP)<1&&LastOrderType()==OP_BUY&&Reversed_Multiplier2==true){
if(StopLoss==0){SL=0;}else{SL=(OpenPrice(OP_BUY)-Space*point)+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=(OpenPrice(OP_BUY)-Space*point)-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELLSTOP,lot*2,OpenPrice(OP_BUY)-Space*point,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Red);}
if(OpenPrice(OP_SELL)!=0&&orderstotal2(OP_BUYSTOP)<1&&LastOrderType()==OP_SELL&&Reversed_Multiplier2==true){
if(StopLoss==0){SL=0;}else{SL=(OpenPrice(OP_SELL)+Space*point)-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=(OpenPrice(OP_SELL)+Space*point)+TakeProfit*point;}
OrderSend(Symbol(),OP_BUYSTOP,lot*2,OpenPrice(OP_SELL)+Space*point,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}
//Hint:OrderOpenPrice For Pending Orders>Current price -- orders-->(OP_BUYSTOP&&OP_SELLLIMIT)
//Hint:OrderOpenPrice For Pending Orders<Current price -- orders-->(OP_BUYLIMIT&&OP_SELLSTOP)
///////////////////////////////////////////////////////////////////////////////////////////
وبالنسبة للاكسيبرت المرفق ، طلبي مرة أخرى ، أريد إغلاق الصفقه على سعر إغلاق الشمعه السابقه للشمعه التي تم فتح الصفقه فيها بحيث لن تتغير حتى لو بعد مرور 10 شمعات ولم تغلق الصفقه بعد .
وأنا قمت بوضع
كود PHP:double buys1=Close[1];
كود PHP:double SeLLsl=Close[1];
كود PHP:if(Ask==buys1||Ask==SeLLsl||Bid==buys1||Bid==SeLLsl){CloseOrders();}
- 01-08-2012, 02:24 PM #2547
رد:موضوع مخصص للأسئلة البرمجية
استاذ يوسف ، أرجو ان تعذرني لم انتبه للمشاركة إلا الآن ، الاكسيبرتات الرقمية متعبة وأفكارها صعبة برمجيـا وتأخذ وقت طويل
وجزاك الله خيرا على المساعدة ولكن انا أريد مضاعفات فيبوناتشي تكون كالتالى 1 - 1 - 2 - 3 - 5 - 8 - 13 - 21 - 34 - 55 - 89 اي يتم جمع حجم لوت آخر صفقتين ويكون هو حجم اللوت الجديد ، وليس عن طريق ضرب حجم أخر لوت × 1.618 لأنه فـ حالة الضرب والتقريب بـ NormalizeDouble مع فرض أول لوت = 1
باقى المضاعفات تكون كالتالى 1 ، 1.60 ، 2.60 ، 4.20 ، 6.80 ، ...
- 01-08-2012, 02:31 PM #2548
السلام عليكم ورحمة الله
لو سمحتو اريد كود الوقت لعمل الاكسبرت
المتغيرات الخارجية
use time
start time
end time
- 01-08-2012, 06:53 PM #2549
رد:موضوع مخصص للأسئلة البرمجية
أصلا يا محمد أي حاجة بتعتمد على الفيبوناتشي ... بتكون مستوحاه من الرقم ده 1.618
ولوتات الفيبوناتشي من الأساس محسوبة بالطريقة إللي بقولك عليها دي
تضرب أخر لوت × 1.618 وتقرب الناتج ستجد اللوتات 1 - 2 - 3 - 5 - 8 - 13 وهكذا
يعني جرب تضع أي حجم لوت في الكود ده وضع الكود في إكسبيرت وشوف هيطبع إية
كود PHP:double c=NormalizeDouble (0.5*1.618,1);
Print(c);
هتلاقي في كل مرة بيطبع حجم لوت الفيبوناتشي التالي
- 01-08-2012, 07:41 PM #2550
رد:موضوع مخصص للأسئلة البرمجية
أنا فاهم الفكرة ياغالى ، لكن المشكلة فـ التقريب عن طريق الـ NormalizeDouble
أمر الأوردر سيند بعد التعديل
كود PHP:OrderSend(Symbol(),OP_BUYLIMIT,NormalizeDouble(lastlot2()*1.618,1),OpenPrice(OP_BUY)-Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);
كود PHP:lastlot2()
ولكن النتيجة بعد الباك تست مع لوت 1 لأول عقد
والمفترض المضاعفات كالتالى 1 - 1 - 2 - 3 - 5 - 8 - 13 - 21 - 34آخر تعديل بواسطة spiders101 ، 01-08-2012 الساعة 07:47 PM
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM