النتائج 2,371 إلى 2,385 من 10363
الموضوع: موضوع مخصص للأسئلة البرمجية
- 03-07-2012, 12:06 AM #2371
واضح الآن أن السبب ليس في الشروط لأنه قام بتنفيذ أمر الطباعه لذلك الخطأ في الأمر OrderModify نفسه
ضع الكود
ثم إستخدام عدد المحاولات أكثر من مره لعمل مودفاي للأمر طالما أن قيمة modified تساوي فولس بنفس الطريقه التي إستخدمتها في أوامر فتح الصفقاتكود PHP:bool modified=OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Red);
if(modified==false)Print("Modify error :",GetLastError());
- 03-07-2012, 12:14 AM #2372
- 03-07-2012, 01:37 AM #2373
- 03-07-2012, 01:48 AM #2374
رد:موضوع مخصص للأسئلة البرمجية
قمت بعمل التعديل المطلوب ولكن هل الجزء الخاص بإستخدام عدد المحاولات لعمل مودفاى صحيح !!
وهل يجب تعريف متغير آخر مختلف لحلقة while الثانية أم أكتفى بالمتغير المستخدم سابقـا triednumberكود PHP:int triednumber;
while(true)
{
if(IsTradeContextBusy()){Sleep(1000);}
else {
int ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),slippage*Q,0,0," EA",MagicNumber,0,Blue);
if(ticket<0)Alert("Order Send Error "+GetLastError(),"||","open price for the order"+Ask);}
if(TP!=0||SL!=0&&ticket>0)
{
while(true)
{
bool modified=OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Blue);
if(modified==false)Print("Modify error :",GetLastError());
triednumber++;
if(ticket<=0){
Sleep(500);
RefreshRates();}
else
break;
if(triednumber>20)break;
}
}
GlobalVariableSet("T"+Symbol(),Time[0]);
triednumber++;
if(ticket<=0){
Sleep(500);
RefreshRates();}
else
break;
if(triednumber>20)break;
}
آخر تعديل بواسطة spiders101 ، 03-07-2012 الساعة 01:58 AM
- 03-07-2012, 01:53 AM #2375
رد:موضوع مخصص للأسئلة البرمجية
استاذ اسامة ، انا استخدم الكود التالى لعمل المضاعفات العادية 2 ، 4 ، 8 ، ...
أريد معرفة كيف يمكن ان استخدم طريقة مضاعفات أخرى مثلكود PHP:if(UseMultiplier){
if(WinorLoss()==false){Lots=lastlot()*Multiplier;}
if(WinorLoss()==true){Lots=Firstlot;}
}
1 - 1 - 2 - 3 - 5 - 8 - 13 - 21 - 34 - 55 - 89
أرجو شرح كيفية عمل ذلك .
- 03-07-2012, 03:17 AM #2376
لديك خطأ في الجزء
ticket ليس لها علاقة بالموضوعكود PHP:if(ticket<=0){
Sleep(500);
RefreshRates();}
الداله OrderModify تعود بقيمتين ترو في حال تم عمل مودفاي بشكل صحيح وفولس في حال حدوث خطأ
لذلك قمت بتعريف المتغير modified
بالتالي بدلا من ticket سوف تجعلكود PHP:bool modified=OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Blue);
كود PHP:if(modified==false){
Sleep(500);
RefreshRates();}
)
- 03-07-2012, 03:19 AM #2377
راجع الإكسبرت المرفق سوف تجد هذا الكود
الفكره في هذه المضاعفات هو أن حجم اللوت للمضاعفه التاليه تساوي مجموع حجم لوت آخر صفقتينكود PHP:if(UseFiboMultiplier_Sell){newLot=LastLot(OP_SELL,MagicNumber,1)+LastLot(OP_SELL,MagicNumber,2);}
لذلك قمت بعمل داله لمعرفة حجم لوت آخر صفقتين ويتم جمعهم
- 03-07-2012, 08:00 AM #2378
رد:موضوع مخصص للأسئلة البرمجية
اطلعت على الاكسيبرت ولكن وجدت المضاعفات تكون لصفقات البيع فقط وانا اريد المضاعفات لأى صفقة خاسرة بيع أو شراء ، ولذلك حذفت الجزء الخاص بنوع الصفقة من دالة LastLot كالتالى ..
ووضعت الشروط ..كود PHP:double LastLot(int M,int Q){
int d;
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
double L=OrderLots();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==M){
d++;
if(d==Q)return(L);
}
}
}
ولكن ظهر خطـأ عند عمل الاكسيبرت ولم يفتح المضاعفاتكود PHP:if(UseFiboMultiplier_Sell){
if(WinorLoss()==false){Lots=LastLot(MagicNumber,1)+LastLot(MagicNumber,2);}
if(WinorLoss()==true){Lots=Firstlot;}
}
كود PHP:OrderSend error 4051
invalid lots amount for OrderSend function
- 03-07-2012, 08:52 AM #2379
رد:موضوع مخصص للأسئلة البرمجية
تمام أخي أسامه كان لدي مشكله في وضع الأقواس وشكرا جزيلا لتنبيهك و قمت بمراجعة كل الأكواد بالإكسبيرت لأظبط الاقواس فرجاء الإطلاع لأن الإكسبيرت عند تفعيله على الشارت ورسم الخطين لا يقوم بوضع الأوامر ..
الإكسبيـــــــرت
وجزاك الله كل خير
- 03-07-2012, 11:52 AM #2380
السلام عليكم
MetaEditor is crashed
هل واجهتم هذه المشكلة
كل ما فتح اى اكسبيرت بصيغة mq4 تواجهنى هذه المشكلة
حملت المنصة مرة ثانية نفس المشكلة
هل من حل
- 03-07-2012, 11:57 AM #2381
السلام عليكم ورحمة الله تعالى وبركاته
أستاذ أسامة أثناء الباكتست السبريد او الفرق بين الـ Ask والـ Bid بيتجاب منين ؟
- 03-07-2012, 06:14 PM #2382
- 03-07-2012, 06:29 PM #2383
هذا لإنك تعتمد في المضاعفات على الصفقات التي تغلق على خساره لكن لو لاحظت الداله التي تبحث عن حجم اللوت
فهي تبحث في الصفقات المفتوحه فيجب أن تقوم بتعديلهاكود PHP:
double LastLot(int M,int Q){
int d;
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
double L=OrderLots();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==M){
d++;
if(d==Q)return(L);
}
}
}
كود PHP:double LastLot(int M,int Q){
int d;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
double L=OrderLots();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==M){
d++;
if(d==Q)return(L);
}
}
}
- 03-07-2012, 07:40 PM #2384
لديك أخطاء أخرى في شروط وضع الهدف والأستوب لوز
فما إنك ستضع الأوامر معلقه فلن تستخدم سعر البيد والأسك لكن ستستخدم سعر وضع الأمر المعلق وتضيف عليه عدد نقاط الهدف أو الأستوب لوزكود PHP:if(UseRecTP)TP=(Ask+TP_R);
if(UseRecSL)SL=(Ask-SL_R);
أيضا إستخدم الداله NormalizeDouble مع السعر
مثلا
حتى تحل مشاكل الأخطاء في الأسعاركود PHP:OrderSend(Symbol(),OP_BUYSTOP,Lots1,NormalizeDouble(buy,Digits),3,SL,TP,"first",MagicNumber,0,Green);
- 03-07-2012, 07:48 PM #2385
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM
الأكثر زيارة


رد مع اقتباس