النتائج 2,701 إلى 2,715 من 10328
الموضوع: موضوع مخصص للأسئلة البرمجية
- 01-09-2012, 01:54 PM #2701
- 01-09-2012, 06:56 PM #2702
قد يحدث خطأ أن السيرفر مشغول نظرا لتنفيذ إكسبرت أمر آخر ولذلك يمكنك إستخدام الداله للتأكد
كود PHP:IsTradeContextBusy()
كود PHP:IsTradeAllowed()
مثال
كود PHP:int Tried;
if(OrdersTotal()>0&&Tried<20){
//close Orders
Tried++;
}
- 01-09-2012, 09:16 PM #2703
رد:موضوع مخصص للأسئلة البرمجية
رجاءا اخي مستر دولار الرد على هذه المشاركة فانا لا اريد ان اتعبك حتى تعملي الكود الكامل لمربع التسعة ولكن كان تساؤلي (لماذا بقيت قيم المصفوفة تساوي الصفر)
https://forum.arabictrader.com/showt...=1#post2491917آخر تعديل بواسطة turkm ، 01-09-2012 الساعة 09:19 PM
- 02-09-2012, 11:45 AM #2704
رد:موضوع مخصص للأسئلة البرمجية
أليس من الممكن أستاذ أسامه أن أعطي للصفقات التي تفتح عن طريق الأوامر المعلقه ماجيك نمبر يختلف عن الصفقات التي تفتح ماركت وتدخل في المضاعفات و أستخدم دوال لكل منهما وكل بالماجيك نمبر الخاص به
مثلا إستخدام دالتين خاصه بماجيك نمبر الأوامر المعلقه و دالتين لأوامر الماركت للبحث في التاريخ عن آخر و أول صفقات :
كود PHP:////// HISTORICAL LAST ONES FOR PENDING ORDERS BY MAGIC ///
string lastP;
for(int i=OrdersHistoryTotal();i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumberP)
{
double LastP_lots,LastP_SL,LastP_openprice, LastP_ordertype;
//for buy order
if(OrderType()==OP_BUY && OrderClosePrice()>=OrderOpenPrice()) lastP="profit";
if(OrderType()==OP_BUY && OrderClosePrice()<=OrderOpenPrice()) lastP="loss";
LastP_lots=OrderLots();
LastP_SL=OrderStopLoss();
LastP_openprice=OrderOpenPrice();
LastP_ordertype=OrderType() ;
//for SELL order
if(OrderType()==OP_SELL && OrderClosePrice()<=OrderOpenPrice()) lastP="profit";
if(OrderType()==OP_SELL && OrderClosePrice()>=OrderOpenPrice()) lastP="loss";
LastP_lots=OrderLots();
LastP_SL=OrderStopLoss();
LastP_openprice=OrderOpenPrice();
LastP_ordertype=OrderType() ;
break;
}
}
//============================
////// HISTORICAL LAST ONES FOR MARKET ORDERS BY MAGIC ///
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";
LastM_lots=OrderLots();
LastM_SL=OrderStopLoss();
LastM_openprice=OrderOpenPrice();
LastM_ordertype=OrderType() ;
//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;
}
}
//========================
////// HISTORICAL FIRST ONES FOR MARKET ORDERS BY MAGIC ///
string firstM ;
for(int iii=OrdersHistoryTotal();iii<=1;iii--)
{
OrderSelect(iii, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
double firstM_lots,firstM_SL,firstM_openprice, firstM_ordertype;
//for buy order
if(OrderType()==OP_BUY && OrderClosePrice()>=OrderOpenPrice()) firstM="profit";
if(OrderType()==OP_BUY && OrderClosePrice()<=OrderOpenPrice()) firstM="loss";
firstM_lots=OrderLots();
firstM_SL=OrderStopLoss();
firstM_openprice=OrderOpenPrice();
firstM_ordertype=OrderType() ;
//for SELL order
if(OrderType()==OP_SELL && OrderClosePrice()<=OrderOpenPrice()) firstM="profit";
if(OrderType()==OP_SELL && OrderClosePrice()>=OrderOpenPrice()) firstM="loss";
firstM_lots=OrderLots();
firstM_SL=OrderStopLoss();
firstM_openprice=OrderOpenPrice();
firstM_ordertype=OrderType() ;
break;
}
}
//===========================
////// HISTORICAL FIRST ONES FOR PENDING ORDERS BY MAGIC ///
string firstP ;
for(int iiii=OrdersHistoryTotal();iiii<=1;iiii--)
{
OrderSelect(iiii, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumberP)
{
double firstP_lots,firstP_SL,firstP_openprice, firstP_ordertype;
//for buy order
if(OrderType()==OP_BUY && OrderClosePrice()>=OrderOpenPrice()) firstP="profit";
if(OrderType()==OP_BUY && OrderClosePrice()<=OrderOpenPrice()) firstP="loss";
firstP_lots=OrderLots();
firstP_SL=OrderStopLoss();
firstP_openprice=OrderOpenPrice();
firstP_ordertype=OrderType() ;
//for SELL order
if(OrderType()==OP_SELL && OrderClosePrice()<=OrderOpenPrice()) firstP="profit";
if(OrderType()==OP_SELL && OrderClosePrice()>=OrderOpenPrice()) firstP="loss";
firstP_lots=OrderLots();
firstP_SL=OrderStopLoss();
firstP_openprice=OrderOpenPrice();
firstP_ordertype=OrderType() ;
break;
}
}
كود PHP:
double LastPend(){
for(int i=0;i<OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && MagicNumberP==OrderMagicNumber()&& (OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT)){
double LastPend=OrderType();
}
}
return(LastPend);
}
كود PHP:///////////////////4-RE PUT BUY PENDING////////////
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);
}
//=======================
و تكون شروط مضاعفة العقود الخاسرة هكذا :
كود PHP:////////////////////////6-MULTIPLIERS FOR LOSS BUY//////////////////////
if( X_Multiplier && lastP=="loss" && LastPend()==OP_BUYSTOP||LastPend()==OP_BUYLIMIT )
double newLot1=Multiplier*LastP_lots;
{
if(StopLoss==0||HideSL){SL=0;}else{SL=Ask-StopLoss*point;}
if(TakeProfit==0||HideTP){TP=0;}else{TP=Ask+TakeProfit*point;}
OrderSend(Symbol(),OP_BUY,newLot1,Ask,3*Q,SL,TP,"Expert EA",MagicNumber,0,Blue);
PlaySound("Alert.wav");
Time0=Time[0];
}
/////////
if( X_Multiplier && lastM=="loss" && LastM_ordertype==OP_BUY )
double newLot2=Multiplier*LastM_lots;
{
if(StopLoss==0||HideSL){SL=0;}else{SL=Ask-StopLoss*point;}
if(TakeProfit==0||HideTP){TP=0;}else{TP=Ask+TakeProfit*point;}
OrderSend(Symbol(),OP_BUY,newLot2,Ask,3*Q,SL,TP,"Expert EA",MagicNumber,0,Blue);
PlaySound("Alert.wav");
Time0=Time[0];
}
////////////////////////5-MULTIPLIERS FOR LOSS SELLS//////////////////////
if( X_Multiplier && lastP=="loss" && LastPend()==OP_SELLSTOP||LastPend()==OP_SELLLIMIT )
double newLot3=Multiplier*LastP_lots;
{
if(StopLoss==0||HideSL){SL=0;}else{SL=Bid+StopLoss*point;}
if(TakeProfit==0||HideTP){TP=0;}else{TP=Bid-TakeProfit*point;}
OrderSend(Symbol(),OP_SELL,newLot3,Bid,3*Q,SL,TP,"Dentist_Hussein EA",MagicNumber,0,Red);
PlaySound("Alert.wav");
Time0=Time[0];
}
/////////
if( X_Multiplier && lastM=="loss" && LastM_ordertype==OP_SELL )
double newLot4=Multiplier*LastM_lots;
{
if(StopLoss==0||HideSL){SL=0;}else{SL=Bid+StopLoss*point;}
if(TakeProfit==0||HideTP){TP=0;}else{TP=Bid-TakeProfit*point;}
OrderSend(Symbol(),OP_SELL,newLot4,Bid,3*Q,SL,TP,"Dentist_Hussein EA",MagicNumber,0,Red);
PlaySound("Alert.wav");
Time0=Time[0];
}
//================================
كود PHP://////////////////8- PUT BUY PENDING AFTER PROFIT /////////////
if( lastM=="profit" && LastM_ordertype==OP_BUY )
double bsss=firstP_openprice ;
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,bsss,3,SL,TP,"Expert EA",MagicNumberP,0,Red);
}
//////////////////7- PUT BUY PENDING AFTER PROFIT /////////////
if( lastM=="profit" && LastM_ordertype==OP_SELL )
double ssss=firstP_openprice ;
{
OrderSend(Symbol(),OP_SELLSTOP,Lots,ssss,3,SL,TP,"Expert EA",MagicNumberP,0,Red);
}
//====================
و جزاك الله كل خير .
[/PHP]profit
- 02-09-2012, 06:07 PM #2705
السلام عليكم
أريد المساعدة في إيجاد كود يقوم بإغلاق جميع الأوامر المعلقة(OP_BUYSTOP,OP_SELLSTOP) مع الإبقاء على الأمرين المعلقين الأخيرين فقط.
وشكرا للجميع
- 02-09-2012, 11:12 PM #2706
الكود تقوم بعمله بناء على الشرط فلا يوجد ما يسمى دالة للمضاعفات مع الهيدج
مثلا لو تريد فتح مضاعفه وفي نفس الوقت تفتح معها صفقة هيدج بنصف حجم لوت المضاعفه
مثال
كود PHP:double lastlot(int type){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type){
return(OrderLots());
}
}
return(0);
}
double lastopenprice(int type){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type){
return(OrderOpenPrice());
}
}
return(0);
}
if(Ask-lastopenprice(OP_SELL)>50*Point&&lastopenprice(OP_SELL)!=0){
OrderSend(Symbol(),OP_BUY,lastlot(OP_SELL),NormalizeDouble(Ask,Digits),3,0,0,"Hedge",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_SELL,lastlot(OP_SELL)*2,NormalizeDouble(Bid,Digits),3,0,0,"Multiplier",MagicNumber,0,Red);
}
- 02-09-2012, 11:17 PM #2707
رد:موضوع مخصص للأسئلة البرمجية
استاذي مستر دولار عندي مشكلة في دالة ايقاف الأكسبيرت لباقي اليوم بعد تحقيق الربح ، على ان يعاود العمل في اليوم التالي دون تدخل يدوي لتشغيله ، برجاء تجربته والتعديل وشكرا
مرفق الأكسبيرت
- 03-09-2012, 12:00 AM #2708
عمل الحلقات هي التي بها أخطاء لكن المصفوفه صحيحه
أولا بالنسبه للحلقه التي ستبحث عن العناصر
كود PHP:for(int i=1; i<=23; i++)
فعند البحث سوف تجعل الحلقه
كود PHP:for(int i=0; i<23; i++)
مثلا
كود PHP:for(int i_1=0; i_1<i; i_1++)
{
counter++;
array[class_H-i_1][class_V+i_1]= counter;
}
ولا يوجد ترتيب لعنصر مصفوفه بالسالب
فلو جربت أن تقوم بطباعة جميع العناصر سوف تجد أن بعضها يأخذ القيم الصحيحه له وبعضها يأخذ القيم صفر
كود PHP:for(int i_1=0; i_1<i; i_1++)
{
counter++;
array[class_H-i_1][class_V+i_1]= counter;
Print(array[class_H-i_1][class_V+i_1]);
}
ما هي الفكره التي تريد عملها وسوف أساعدك لمعرفة كيفية تنفيذها
- 03-09-2012, 06:10 AM #2709
نعم سوف تقوم بتغيير عدد الشموع بدلا من 5 إلى 3
أيضا الفكره الثانيه رائعه لكن لا أعتقد أنها ستحل مشكلة تكرار الإشارات لأنك إذا كنت ستضع شرط أن آخر إشارة كانت للشمعه السابقه فما الفائده من البحث عن باقي الشموع يكفي فقط المقارنه مع آخر شمعه والتأكد من تحقق الشرط فيها
- 03-09-2012, 08:33 AM #2710
غلبتك معاي استاذ اسامه واشكرك علي سرعة الرد اعيد صياغة الفكرة يمكن التبس الوضع القصد هو مثلا شراء بعقد واحد علا تقاطع موفنج باللوت الابتداءي ١ اذا اعطا التقاطع اشاره عكسية والعملية الاولى خسرانه يدخل بعقدين ٢ معاكس اذا جاب التارقت يسكر اذا لا عطا اشاره عكسية ثالثه ندخل بثلاث عقود مع عدم تسكير العقود المفتوحه هذا الهدج الذي اقصده لين تحقيق التارقت لجميع العقود انا احدده. طبعا مع العلم اذا وصل المظاعفه الثالثه والعقود الاولية ماجابت تارقت بس التوتل بوزتف يدخل من جديد اغلب الاكواد الموجودة مضاعفات بس تسكر العقود علا خساره محققه انا ابيها معلقه لين يكون الناتج للعقود موجب هذا الهدج الذي اقصده لانه العقد الاول خسران علا مثلا ١٠ نقاط ودخلت بعقدين هدف خمسه عندما يتحرك السعر معاي ١٥ نقطه يعوض الخساره الاولي للعقد الاول والخمسه ربح طبعا هذي الفكرة طبعا علا المظاعفتين تكون سلبية لكن لو ثلاثه واربع تكون اامن لانه المضاعفات تتجاوز خمسه وسته بالغالب نتيجة التذبذب
- 03-09-2012, 10:49 AM #2711
بارك الله بك أخي اسامة الفكرة لدي اني اريد بناء مربع التسعة المعروف (مربع جان) داخل مصفوفة ثنائية البعد يعني لو اردنا إنشاء مربع التسعة بابعاد (فرضا) 23 * 23 فيجب ان تكون الخانة ذات الاحداثيات (12,12)=1 اي ابعاد المربع + 1 تقسيم 2 ثم يبدأ العد وتعبئة جميع خانات المصفوفة كما هو معروف في مربع التسعة
كما هو الحال في هذه الصورة
جزاك الله عني كل خيرآخر تعديل بواسطة turkm ، 03-09-2012 الساعة 10:52 AM
- 03-09-2012, 11:26 PM #2712
رد:موضوع مخصص للأسئلة البرمجية
استاذ اسامة ، انا وضعت شرط يسمح بإضافة لوت جديد إلى اللوت الإبتدائي عند الوصول للربح المحدد
داخل ستارت
كود PHP:if(AutoLot==true){
if(AccountEquity()>=Money_Account){
Lots=Firstlot+Add_Lot;}
else{Lots=Firstlot;}
كود PHP:extern bool AutoLot = true;
extern double Add_Lot = 1;
extern double Money_Account = 500;
كود PHP:Firstlot=Lots ;
حاولت وضع الحلقة التالية داخل ستارت
كود PHP:if(AutoLot==true){
for(int ii=0;ii<Money_Account;ii++){
if(AccountEquity()>=ii*Money_Account){
Lots=Firstlot+ii*Add_Lot;}
else{Lots=Firstlot;}
}
}
آخر تعديل بواسطة spiders101 ، 03-09-2012 الساعة 11:30 PM
- 04-09-2012, 12:09 AM #2713
رد:موضوع مخصص للأسئلة البرمجية
استخدمت دالة IsTradeContextBusy مع الأمر Sleep
ووضع كود لعدد المحاولات ..
كود PHP:if(Use_USD_Profit_Global==true){//Close Total profit for all pairs >>> ACCount profit ||Close Total profit for one pair >>> profit2(OP_BUY)+profit2(OP_SELL)||***ADD Code to CloseOrders() Function
int triednumber2;
if(OrdersTotal()>0&&triednumber2<20){
while(true)
{
if(IsTradeContextBusy()){Sleep(1000);}
else {
if(AccountProfit()>=USD_Profit && Use_USD_Profit==true){
signalbuy1=false;signalbuy2=false;signalsell1=false;signalsell2=false;
CloseOrders();}
if(AccountProfit()<=-USD_Loss&&Use_USD_Loss==true){
signalbuy1=false;signalbuy2=false;signalsell1=false;signalsell2=false;
CloseOrders();}
if(AccountProfit()<=-(lossratio*AccountBalance()/100)&&LossRatio==true){
signalbuy1=false;signalbuy2=false;signalsell1=false;signalsell2=false;
CloseOrders();}
if(AccountProfit()>=(profitratio*AccountBalance()/100)&&ProfitRatio==true){
signalbuy1=false;signalbuy2=false;signalsell1=false;signalsell2=false;
CloseOrders();}
if(DayOfWeek()==5&&Hour()==CloseHour&&Closeby_EndofWeek==true){
signalbuy1=false;signalbuy2=false;signalsell1=false;signalsell2=false;
CloseOrders();}
}
}
triednumber2++;
}
}
- 04-09-2012, 12:36 AM #2714
- 04-09-2012, 04:28 AM #2715
سوف تستخدم نفس الطريقة لكن بدلا من عمل الداله للبحث عن آخر صفقه مغلقه سوف تستخدم آخر صفقه مفتوحه
وأيضا تقوم بعمل دالة لمعرفة آخر صفقه أغلقت هل هي بيع أو شراء
مثال
كود PHP:double lastlot(int type){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type){
return(OrderLots());
}
}
return(0);
}
double lastordertype(int type){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type){
return(OrderType());
}
}
return(-1);
}
كود PHP:double ma_fast=iMA(Symbol(),0,14,0,0,0,1);
double ma_slow=iMA(Symbol(),0,25,0,0,0,1);
if(ma_fast>ma_slow&&lastordertype()==OP_SELL){
OrderSend(Symbol(),OP_BUY,lastlot(OP_SELL)*2,NormalizeDouble(Ask,Digits),3,0,0,"ea",MagicNumber,0,Blue);
}
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM