النتائج 2,731 إلى 2,745 من 10363
الموضوع: موضوع مخصص للأسئلة البرمجية
- 05-09-2012, 09:47 AM #2731
- 05-09-2012, 12:24 PM #2732
السلام عليكم أستاذ أسامه .. أنا في إنتظار الرد على هذه المشاركه بارك الله فيك
https://forum.arabictrader.com/t37612-181.html#2704
- 05-09-2012, 01:14 PM #2733
رد:موضوع مخصص للأسئلة البرمجية
- 05-09-2012, 06:43 PM #2734
رد:موضوع مخصص للأسئلة البرمجية
استاذ جميل أعتقد انك تريد تعريف دالة بداخل دالة أخرى وهذا غير صحيح لأن الاكسيبرت لن يقوم بإستدعاء هذه الدلة إلا بإستدعاء الدالة الخارجية أولا ولذلك يجب عدم تعريف دالة داخل دالة أخرى .
الخطـأ بالدالة التالية
وبالنسبة لتوقف الأكسبيرت لباقي اليوم اذا المحصلة ربح لا أعلم أين المشكلة ، استاذ اسامة سوف يفيدك أكثر مني لمراجعة الدالةكود PHP:void CustomCode10()
{
double dayProfit(){
double pips,pipsb,pipss;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(iTime(Symbol(),1440,0)<OrderOpenTime()&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderType()==OP_BUY)pipsb+=(OrderClosePrice()-OrderOpenPrice());
if(OrderType()==OP_SELL)pipss+=(OrderOpenPrice()-OrderClosePrice());
pips=pipsb+pipss;
}
}
return(pips);
}
- 05-09-2012, 08:13 PM #2735
رد:موضوع مخصص للأسئلة البرمجية
يا أخ جميل الدالة كما وضحها أستاذ أسامة ( وخد بالك إنك بعد ما تطرح سعر إغلاق الصفقة من سعر الإفتتاح لازم تقسم ÷ point ) عشان ينتج لك فرق النقاط لتستطيع مقارنته مع DailyTp
وكما قال لك أخونا إسبايدر ما ينفعش تعرف دالة داخل دالة يعني ما ينفعش الشكل ده
يعني المفروض الدالة تكون بالشكل دهكود PHP:void CustomCode10()
{
double dayProfit(){
وبالنسبة لسؤالك إنك محتاج دالة void CustomCode10() عشان بتستدعيها في دالة إستارتكود PHP:double dayProfit(){
double profit;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderOpenTime()>=iTime(Symbol(),1440,0)){
if(OrderType()==OP_BUY)profit+=(OrderClosePrice()-OrderOpenPrice())/Point;
if(OrderType()==OP_SELL)profit+=(OrderOpenPrice()-OrderClosePrice())/Point;
}
}
return(profit);
}
دي بسيطة ما تستديعهاش
وإستدعي بدل منها dayProfit()
بالشكل ده بدل من إسم الدالة المحذوفة
وعلى فكرة إنت أصلا مش محتاج تستعي دالة dayProfit() في دالة void OnEveryTick7كود PHP:void OnEveryTick7()
{
if (true == false && false) PipValue = 10;
if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10;
dayProfit();
TechnicalAnalysis2x15();
TechnicalAnalysis2x16();
}
لإنك إستدخمتها في دالة إستارت بالشكل ده
وبالتالي لن تحتاج لإستدعائها مرة أخرىكود PHP:if (dayProfit()>=(DailyTP-1)*Point&&UseDialyTP==true)return(0);
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
وده هيكون الكود من أول دالة إستارت حتى دالة حساب النقاط
لغاية كده الكود إللي فوق ده تمام . بس في ملحوظة بسيطةكود PHP:int start()
{
if (Bars < 10)
{
Comment("Not enough bars");
return (0);
}
if (Terminated == true)
{
Comment("EA Terminated.");
return (0);
}
if (dayProfit()>=(DailyTP-1)*Point&&UseDialyTP==true)return(0);
OnEveryTick7();
}
void OnEveryTick7()
{
if (true == false && false) PipValue = 10;
if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10;
dayProfit();
TechnicalAnalysis2x15();
TechnicalAnalysis2x16();
}
///////////////////////////////////////////////Void//////////////////Void//////////////////Void//////////////////Void/////////
double dayProfit(){
double profit;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderOpenTime()>=iTime(Symbol(),1440,0)){
if(OrderType()==OP_BUY)profit+=(OrderClosePrice()-OrderOpenPrice())/Point;
if(OrderType()==OP_SELL)profit+=(OrderOpenPrice()-OrderClosePrice())/Point;
}
}
return(profit);
}
لما تيجي تعمل دالة بتعرفها حسب نوع الرقم الناتج منها
يعني لو الدالة ستعود بناتج صحيح يبقى تعرفهالو هتعود برقم عشري يبقى تعرفهاكود PHP:int dayProfit(){
ولو مش هتعود بأي رقم يبقى تعرفهاكود PHP:double dayProfit(){
يعني ما ينفعش تعرف الدالة كده void CustomCode10() وتضع في الأخر return(pips);كود PHP:void dayProfit(){
وأسف على الإطالة
- 05-09-2012, 09:11 PM #2736
شكرا اخي سبايدر و شكرا استاذ يوسف على التفاعل الرائع والفكرة وصلت وخاصة تسمية الدوال int or double ولي عودة في موضوع تجميد عمل الأكسبيرت بعد الوصول لأهدافه اليومية . تحياتي
- 06-09-2012, 02:19 AM #2737
- 06-09-2012, 02:44 AM #2738
في البداية دالة حفظ بيانات آخر صفقه لا تحتاج إلى كتابة حجم اللوت وسعر الإفتتاح أكثر من مره
أما بالنسبه للخطأ لديك فهو شرط وضع الأوامر المعلقهكود PHP:string lastM;
for(int ii=OrdersHistoryTotal();ii>=0;ii--)
{
OrderSelect(ii, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
double LastM_lots,LastM_SL,LastM_openprice, LastM_ordertype;
//for buy order
if(OrderType()==OP_BUY && OrderClosePrice()>=OrderOpenPrice()) lastM="profit";
if(OrderType()==OP_BUY && OrderClosePrice()<=OrderOpenPrice()) lastM="loss";
//for SELL order
if(OrderType()==OP_SELL && OrderClosePrice()<=OrderOpenPrice()) lastM="profit";
if(OrderType()==OP_SELL && OrderClosePrice()>=OrderOpenPrice()) lastM="loss";
LastM_lots=OrderLots();
LastM_SL=OrderStopLoss();
LastM_openprice=OrderOpenPrice();
LastM_ordertype=OrderType() ;
break;
}
}
بهذه الطريقة أنت لم تضع الأوامر إعتمادا على الشروط الصحيحكود PHP:if( lastP=="profit" && LastPend()==OP_BUYSTOP )
double bl=LastP_openprice ;
{
OrderSend(Symbol(),OP_BUYLIMIT,Lots,bl,3,SL,TP,"Expert EA",MagicNumberP,0,Red);
}
if( lastP=="profit" && LastPend()==OP_BUYLIMIT )
double bss=LastP_openprice ;
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,bss,3,SL,TP,"Expert EA",MagicNumberP,0,Red);
}
باقي الأكواد صحيحهكود PHP:if( lastP=="profit" && LastPend()==OP_BUYSTOP )
{
double bl=LastP_openprice ;
OrderSend(Symbol(),OP_BUYLIMIT,Lots,bl,3,SL,TP,"Expert EA",MagicNumberP,0,Red);
}
if( lastP=="profit" && LastPend()==OP_BUYLIMIT )
{
double bss=LastP_openprice ;
OrderSend(Symbol(),OP_BUYSTOP,Lots,bss,3,SL,TP,"Expert EA",MagicNumberP,0,Red);
}
//============================
///////////////////===3-RE PUT SELL PENDING===////////////
if( lastP=="profit" && LastPend()==OP_SELLSTOP )
{
double sll=LastP_openprice ;
OrderSend(Symbol(),OP_SELLLIMIT,Lots,sll,3,SL,TP,"Expert EA",MagicNumberP,0,Red);
}
if( lastP=="profit" && LastPend()==OP_SELLLIMIT )
{
double sss=LastP_openprice ;
OrderSend(Symbol(),OP_SELLSTOP,Lots,sss,3,SL,TP,"Expert EA",MagicNumberP,0,Red);
}
- 06-09-2012, 07:27 AM #2739
- 06-09-2012, 11:07 AM #2740
رد:موضوع مخصص للأسئلة البرمجية
- 06-09-2012, 06:51 PM #2741
رد:موضوع مخصص للأسئلة البرمجية
استاذ اسامة ، لدي مشكلة بالاكسيبرت المرفق ، انا قمت بعمل بعض التعديلات على الاكسيبرت وإضافة بعض الأكواد وعمل في الباك تست ولكن عند متابعة الاكسيبرت لايف يعمل بعد وضعه مباشرة على الشارت وبعدها بفترة يتوقف الاكسيبرت ولايستجيب لأى شيء حتى خصائص الاكسيبرت لا أستطيع فتحها من على الشارت !! ، هل المشكلة من الاكسيبرت ام من المنصة !!
- 06-09-2012, 09:49 PM #2742
- 08-09-2012, 12:41 AM #2743
عندما قمت بكتابة الجمله الشرطيه
إستخدمت
وبما أنك لم تضع الأقواس فبهذا تكون إنتهت الجمله الشرطيه ويبقى تنفيذ الأمركود PHP:if( lastP=="profit" && LastPend()==OP_SELLSTOP )
double sll=LastP_openprice ;
فهذا الأمر لن يكون مرتبط بالجمله الشرطيه السابقه والتعديل الذي قمت بوضعه جعلت الأقواس تابعه للجمله الشرطيهكود PHP:{
OrderSend(Symbol(),OP_SELLLIMIT,Lots,sll,3,SL,TP,"Expert EA",MagicNumberP,0,Red);
}
حتى ينفذ الأمرين بداخلهاكود PHP:if( lastP=="profit" && LastPend()==OP_SELLSTOP )
{
double sll=LastP_openprice ;
OrderSend(Symbol(),OP_SELLLIMIT,Lots,sll,3,SL,TP,"Expert EA",MagicNumberP,0,Red);
}
- 08-09-2012, 01:04 AM #2744
- 08-09-2012, 03:39 AM #2745
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM
الأكثر زيارة

رد مع اقتباس