النتائج 2,686 إلى 2,700 من 10363
الموضوع: موضوع مخصص للأسئلة البرمجية
- 30-08-2012, 11:27 AM #2686
- 31-08-2012, 01:34 AM #2687
نعم في هذه الحالة سيدخل مره أخرى
يمكنك عمل داله لمعرفة رقم الشمعه التي تحقق فيها آخر إشارة وفتحت فيها الصفقه وبالتالي عند البحث لن تبحث إلا في الشمعات الجديده المتكونه فقط سواء كانت ثلاث شمعات أو أقل في حال كانت الصفقه فتحت في الشمعه السابقه
مثال
ثم عند البحث سنبحث عن آخر 3 شمعات أو حتى رقم الشمعه التي فتحت فيها الصفقه أيهما أقلكود PHP:int LastCandleOrder(int type){
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
datetime time=OrderOpenTime();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type){
return(iBarShift(Symbol(),0,time,false);
}
}
return(3);
}
ونفس الحلقه سوف تقوم بعملها أيضا لشروط الشراء لكن ستستخدم البحث عن صفقات الشراء وليس البيعكود PHP:for(int i=1;i<=MathMin(LastCandleOrder(OP_SELL),3);i++){
double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,i);
double stoch=iStochastic(Symbol(),0,5,3,3,0,0,MODE_MAIN,i);
if(rsi>70)RSI_sell_Signal=true;
if(stoch>80)Stoch_Sell_Signal=true;
}
- 31-08-2012, 12:34 PM #2688
رد:موضوع مخصص للأسئلة البرمجية
استاذ اسامة ، اريد دالة تسمح بإغلاق كل الصفقات المفتوحة على المنصة(عن طريق اكسيبرت او يدوى) ، وهل يمكن ان يحدث تعارض فـ إغلاق الصفقات اذا تم وضع هذه الدالة فـ أكثر من اكسيبرت ووضعهم للعمل معا على المنصة !!
انا استخدمت هذه الدالة للإغلاق
ولكن لاحظت بعد متابعة الاكسيبرت لايف انه فـ بعض الأحيان لايقوم بإغلاق كل الصفقات المفتوحة على كل الأزواج ولا أعلم السبب .كود PHP:void CloseOrders(){
int _total=orderstotal();
int type;
if (_total==0) {return;}
int ticket;double priceClose;
for (int b=_total;b>=0;b--){
if(OrderSelect(b,SELECT_BY_POS)){
type=OrderType();
ticket=OrderTicket();
switch(type){
case OP_BUY:
priceClose=MarketInfo(OrderSymbol(),MODE_BID);
OrderClose(ticket,OrderLots(),priceClose,slippage*Q);
break;
case OP_SELL:
priceClose=MarketInfo(OrderSymbol(),MODE_ASK);
OrderClose(ticket,OrderLots(),priceClose,slippage*Q);
break;
default:
break;
}
}
}
}
- 31-08-2012, 01:06 PM #2689
رد:موضوع مخصص للأسئلة البرمجية
بارك الله فيك ، وقد تم عمل موضوع من قبل مشابه لهذه الفكرة ولكن توقف الموضوع ، عسى ان يكون المانع خير .
https://forum.arabictrader.com/t118557.html
- 01-09-2012, 03:36 AM #2690
هلا فيك استاذ اسامه حاولت لكن لم افلح بالنسبه للمضاعفات مع الهدج تلخبط علي الوضع وجدة دالة تحسب المجموع للنقاط لكن لم افلح في عمل دالة للمضاعفات مع الهدج اتمنا كتابتها ولك تحياتي يا بطل
- 01-09-2012, 09:10 AM #2691
رد:موضوع مخصص للأسئلة البرمجية
يعني الآن بعد إضافة داله لمعرفة رقم الشمعه التي تحقق فيها آخر إشارة سيكون شكل الحلقة :
و للشراء :كود PHP:bool RSI_sell_Signal=false,Stoch_Sell_Signal=false;
for(int i=1;i<=MathMin(LastCandleOrder(OP_SELL),3);i++){
double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,i);
double stoch=iStochastic(Symbol(),0,5,3,3,0,0,MODE_MAIN,i);
if(rsi>70)RSI_sell_Signal=true;
if(stoch>80)Stoch_Sell_Signal=true;
}
if(RSI_sell_Signal==true&&Stoch_Sell_Signal==true)//sell
???كود PHP:
bool RSI_buy_Signal=false,Stoch_buy_Signal=false;
for(int i=1;i<=MathMin(LastCandleOrder(OP_BUY),3);i++){
double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,i);
double stoch=iStochastic(Symbol(),0,5,3,3,0,0,MODE_MAIN,i);
if(rsi<30)RSI_buy_Signal=true;
if(stoch<20)Stoch_buy_Signal=true;
}
if(RSI_buy_Signal==true&&Stoch_buy_Signal==true)//buy
و إذا أردت أن تكون دالة البحث عن آخر إشارة لخمس شمعات مثلا هل أغير
و أجعلها :كود PHP:return(3);
؟؟؟كود PHP:return(5);
___________________
وهل من الممكن أن أستخدم الحلقة الأولى
ودالة البحث عن آخر إشارة ظهرت :كود PHP:bool RSI_sell_Signal=false,Stoch_Sell_Signal=false,RSI_Buy_Signal=false,Stoch_Buy_Signal=false;
for(int i=1;i<=3;i++){
double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,i);
double stoch=iStochastic(Symbol(),0,5,3,3,0,0,MODE_MAIN,i);
if(rsi>70)RSI_sell_Signal=true;
if(stoch>80)Stoch_Sell_Signal=true;
if(rsi<30)RSI_Buy_Signal=true;
if(stoch<20)Stoch_Buy_Signal=true;
}
if(RSI_sell_Signal==true&&Stoch_Sell_Signal==true)//sell
ثم أضيف لشروط البيع و الشراء أن تكون آخر إشارة قد ظهرت في الشمعة رقم1كود PHP:int LastCandleOrder(int type){
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
datetime time=OrderOpenTime();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type){
return(iBarShift(Symbol(),0,time,false);
}
}
return(3);
}
مثلا:
???كود PHP:if(RSI_sell_Signal==true&&Stoch_Sell_Signal==true)&&(LastCandleOrder(OP_SELL),3)==1//sell
و جزاك الله كل خير .
- 01-09-2012, 09:28 AM #2692
يعني الآن بعد إضافة داله لمعرفة رقم الشمعه التي تحقق فيها آخر إشارة سيكون شكل الحلقة :
و للشراء :كود PHP:bool RSI_sell_Signal=false,Stoch_Sell_Signal=false;
for(int i=1;i<=MathMin(LastCandleOrder(OP_SELL),3);i++){
double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,i);
double stoch=iStochastic(Symbol(),0,5,3,3,0,0,MODE_MAIN,i);
if(rsi>70)RSI_sell_Signal=true;
if(stoch>80)Stoch_Sell_Signal=true;
}
if(RSI_sell_Signal==true&&Stoch_Sell_Signal==true)//sell
???كود PHP:
bool RSI_buy_Signal=false,Stoch_buy_Signal=false;
for(int i=1;i<=MathMin(LastCandleOrder(OP_BUY),3);i++){
double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,i);
double stoch=iStochastic(Symbol(),0,5,3,3,0,0,MODE_MAIN,i);
if(rsi<30)RSI_buy_Signal=true;
if(stoch<20)Stoch_buy_Signal=true;
}
if(RSI_buy_Signal==true&&Stoch_buy_Signal==true)//buy
و إذا أردت أن تكون دالة البحث عن آخر إشارة لخمس شمعات مثلا هل أغير
و أجعلها :كود PHP:return(3);
؟؟؟كود PHP:return(5);
___________________
وهل من الممكن أن أستخدم الحلقة الأولى
ودالة البحث عن آخر إشارة ظهرت :كود PHP:bool RSI_sell_Signal=false,Stoch_Sell_Signal=false,RSI_Buy_Signal=false,Stoch_Buy_Signal=false;
for(int i=1;i<=3;i++){
double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,i);
double stoch=iStochastic(Symbol(),0,5,3,3,0,0,MODE_MAIN,i);
if(rsi>70)RSI_sell_Signal=true;
if(stoch>80)Stoch_Sell_Signal=true;
if(rsi<30)RSI_Buy_Signal=true;
if(stoch<20)Stoch_Buy_Signal=true;
}
if(RSI_sell_Signal==true&&Stoch_Sell_Signal==true)//sell
ثم أضيف لشروط البيع و الشراء أن تكون آخر إشارة قد ظهرت في الشمعة رقم1كود PHP:int LastCandleOrder(int type){
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
datetime time=OrderOpenTime();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type){
return(iBarShift(Symbol(),0,time,false);
}
}
return(3);
}
مثلا:
???كود PHP:if(RSI_sell_Signal==true&&Stoch_Sell_Signal==true)&&(LastCandleOrder(OP_SELL),3)==1//sell
و جزاك الله كل خير .آخر تعديل بواسطة dentist_hussein ، 01-09-2012 الساعة 09:49 AM
- 01-09-2012, 11:19 AM #2693
السلام عليكم
الرجاء المساعده من الخبراء
عندى مؤشر اسهم يعطى قيمتين ولكنه بالصيغه التنفيذيه واردت ان اعمل له اكسبيرت فاستخدمت الداله comment لاستخراج قيمه الاسهم التى تظهر سواء للشراء او للبيع وظهرت لى قيمه سهم الشراء -1 وقيمه سهم البيع 1.3204 واحيانا تزيد القيمه المهم انها بالموجب فكتبت فى الشروط ان لو المتغير s قيمته اكبر من 1 يفتح بيع والمتغير b قيمته اقل من 1 يفتح شراء فاصبح يفتح صفقات الشراء فقط ولا يفتح بيع
فما الحل لهذه المشكله
- 01-09-2012, 12:01 PM #2694
رد:موضوع مخصص للأسئلة البرمجية
أستاذ أسامة والاخوة المبرمجين بارك الله فيكم وفي عملكم
أحاول بناء مربع التسعة برمجيا (مربع جان) ولكن ظهرت لي مشكلة في ان المصفوفة لا تأخذ اي قيمة وتبقى دائما تساوي الصفر فاين هو الخطأ بارك الله فيكم:
وهذا هو الكود المستخدم:
وهذه صور مرفقة عن الشارت:كود PHP://+------------------------------------------------------------------+
//| Square Nine.mq4 |
//| Turkm |
//| |
//+------------------------------------------------------------------+
#property copyright "Turkm"
#property link ""
#property indicator_chart_window
extern int size=23;
int array[23][23];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
int counter=1,class_H,class_V;
class_H=(size-1)/2; class_V=(size+1)/2;
for(int i=1; i<=23; i++)
{
for(int i_1=0; i_1<i; i_1++)
{
counter++;
array[class_V-i_1][class_H+i_1]= counter;
}
for(int i_2=0; i_2<i; i_2++)
{
counter++;
array[class_V-i_2-1][class_H+i_2]= counter;
}
for(int i_3=0; i_3<i; i_3++)
{
counter++;
array[class_V-i_3-1][class_H+i_3+1]= counter;
}
for(int i_4=0; i_4<i; i_4++)
{
counter++;
array[class_V-i_4-1][class_H+i_4+2]= counter;
}
for(int i_5=0; i_5<i; i_5++)
{
counter++;
array[class_V-i_5][class_H+i_5+2]= counter;
}
for(int i_6=0; i_6<i; i_6++)
{
counter++;
array[class_V-i_6+1][class_H+i_6+2]= counter;
}
for(int i_7=0; i_7<i; i_7++)
{
counter++;
array[class_V-i_7+1][class_H+i_7+1]= counter;
}
for(int i_8=0; i_8<i; i_8++)
{
counter++;
array[class_V-i_8+1][class_H+i_8]= counter;
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
Comment("");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
Comment( " ",array[0][0]," ",array[1][1]," ",array[2][2]
," ",array[3][3]," ",array[4][4]," ",array[5][5]
," ",array[6][6]," ",array[7][7]," ",array[8][8]
," ",array[9][9]," ",array[10][0]," ",array[11][0]
," ",array[12][0]," ",array[13][0]," ",array[14][0]);
//----
return(0);
}
//+------------------------------------------------------------------+
- 01-09-2012, 12:04 PM #2695
- 01-09-2012, 12:14 PM #2696
- 01-09-2012, 12:18 PM #2697
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم أخي أسامه ...
قمت بإستخدام هذه الأكواد لفتح أوامر معلقة سيل ستوب و باي ستوب و أحدد عدد الأوامر من الخارج و الفرق بين الأوامر :
أريد أن أجعل الإكسبيرت يفعل شيئين :كود PHP:
//////////// 1- put the buy sop///////////
if(Hour()==HourStarting){
for(i=1;i<=NumberOfOrders;i++)
{
double bs=Ask+(i*Step*point);
if(TakeProfit==0){TP=0;}else{TP=bs+TakeProfit*point;}
if(StopLoss==0){SL=0;}else{SL=bs-StopLoss*point;}
OrderSend(Symbol(),OP_BUYSTOP,Lots,bs,3,SL,TP,"Expert EA",MagicNumber,0,Red);
}
}
///////////////////////////////////////////////////////////////////////////////////////////
///////////////2- put the sell stop//////////////
if(Hour()==HourStarting){
for(i=1;i<=NumberOfOrders;i++)
{
double ss=Bid-(i*Step*point);
if(TakeProfit==0){TP=0;}else{TP=ss-TakeProfit*point;}
if(StopLoss==0){SL=0;}else{SL=ss+StopLoss*point;}
OrderSend(Symbol(),OP_SELLSTOP,Lots,ss,3,SL,TP,"Expert EA",MagicNumber,0,Red);
}
}
- إذا أغلقت الصفقة على ربح يتم إعادة وضع أمر معلق من نفس النقطة و لكنها بالطبع سوف تكون ليميت .
- إذا أغلقت على خسارة يتم فتح مضاعفات حتى الإغلاق على ربح ثم وضع أمر معلق أيضا من نفس النقطة قبل ان تغلق الصفقة على خسارة وتبدأ في المضاعفات وسيكون ليميت أيضا ... ولكن يؤخذ بالحسبان أنه قد يتفعل أحد الأوامر المعلقه أثناء المضاعفات وقد تصل للهدف أو تبدأ بالمضاعفات هي الأخرى .
يالنسبه لوضع أمر معلق بعد الإغلاق على ربح هل من الممكن أن أستدعي سعر إفتتاح آخر صفقه و أجعله سعر الليميت ؟؟
و بالنسبه للمضاعفات هل أجعل الشرط إذا أغلقت آخر صفقة على خسارة وكانت شراء مثلا يتم فتح شراء بلوت تكون قيمته آخر لوت مضروب في قيمة المضاعفة ؟؟
و أستخدم هذه الداله ؟؟ :
مرفق الإكسبيرتكود PHP:string last;
for(int i=OrdersHistoryTotal();i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
double Last_lots,Last_SL,Last_openprice;
//for buy order
if(OrderType()==OP_BUY && OrderClosePrice()>=OrderOpenPrice()) last="profit";
if(OrderType()==OP_BUY && OrderClosePrice()<=OrderOpenPrice()) last="loss";
Last_lots=OrderLots();
Last_SL=OrderStopLoss();
Last_openprice=OrderOpenPrice();
//for SELL order
if(OrderType()==OP_SELL && OrderClosePrice()<=OrderOpenPrice()) last="profit";
if(OrderType()==OP_SELL && OrderClosePrice()>=OrderOpenPrice()) last="loss";
Last_lots=OrderLots();
Last_SL=OrderStopLoss();
Last_openprice=OrderOpenPrice();
break;
}
}
if( X_Multiplier && last=="loss" )
{newLot=Multiplier*Last_lots;}
- 01-09-2012, 12:19 PM #2698
رد:موضوع مخصص للأسئلة البرمجية
اخى turkm مرفق المؤشر والاكسبيرت
وجزاك الله كل خير
- 01-09-2012, 01:40 PM #2699
- 01-09-2012, 01:40 PM #2700
رد:موضوع مخصص للأسئلة البرمجية
بعد إذن أخي turkm أجيب على أخي العوامى
هذا المؤشر أخي هو المؤشر المعروف و المستخدم في كثير من الإستراتيجيات و الإكسبيرتات المعروف ب Auto Recommendations هو يأخذ قيم سالبه حين لا يظهر و يأخذ قيمة موجبة بداية من 1 و أكبر حين يظهر على الشارت .
و إستدعاءالمؤشر في حالة ظهور سهم الشراء يكون بالكود التالي
وإستدعاء المؤشر في حالة ظهور سهم البيع:كود PHP:double B=iCustom(NULL,0,"M.aly Strategy",2,1);
حيث يأخذ السهم الأحمر قيمة 3 و السهم الأخضر قيمة 2 في ال COLORS كما بالصورة :كود PHP:double S=iCustom(NULL,0,"M.aly Strategy",3,1);

ومن الافضل جعل رتبة الشمعة رقم 1 حتى يثبت السهم ...
و ستجعل شرط الشراء
و شرط البيعكود PHP:if (B>1 )
قمت بتعديل إكسبيرتك و مرفق أيضا مؤشر ال Auto Recommendations مفتوح المصدر وهو لا يختلف عن مؤشرك المرفق .كود PHP:if (S>1 )
آخر تعديل بواسطة dentist_hussein ، 01-09-2012 الساعة 01:45 PM
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM
الأكثر زيارة

رد مع اقتباس