النتائج 1,921 إلى 1,935 من 10363
الموضوع: موضوع مخصص للأسئلة البرمجية
- 16-04-2012, 10:28 PM #1921
من فضلكم اريد كود لامر تحديد الشراء مع امر اخذ الربح و يعيد نفس الامر اذا تفعل الامر تحديد الشراء او امر اخذ الربح
- 17-04-2012, 01:34 AM #1922
يجب أن توضح أكثر
أعتقد أنك تقصد أوامر معلقه
كمثال
حيث Price هو سعر مكان وضع الأمر المعلق و SL هو الأستوب لوز و TP هو الهدفكود PHP:OrderSend(Symbol(),OP_BUYSTOP,Lots,Price,3,SL,TP,"EA",MagicNumber,0,Green);
يوجد أيضا
OP_BUYLIMIT و OP_SELLSTOP و OP_SELLLIMIT
إذا كنت تريد وضع الأمر مره أخرى في حال تفعل الأمر فسوف تحتاج إلى عمل داله لمعرفة هل الصفقه تفعلت أم لا
كمثال
ثم تضع شرطكود PHP:int orderscnt(int type){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber&&OrderType()==type){
cnt++;
}
}
}
return(cnt);
}
كود PHP:if(orderscnt(OP_BUYSTOP)<1){
OrderSend(Symbol(),OP_BUYSTOP,Lots,Price,3,SL,TP,"EA",MagicNumber,0,Green);
}
- 17-04-2012, 05:51 PM #1923
السلام عليكم اخي العزيز استاذ اسامة ..
الله يرحم والديك ننتظر من حضرتك تعديل خطأ البرمجي لآخر نسخة من اكسبيرت لموضوع https://forum.arabictrader.com/t141767.html
حيث ان الاكسبيرت من ناحية تطبيق الفكرة تمام وميه ميه ... جزاك الله كل خير
ولكن يوجد اخي الكريم خطأين بسيطين في البرمجة يرجى تعديلهم حيث ان :-
1- الخطأ الاول انه عند التعزيز الثاني لا يقوم الاكسبيرت بأخذ ضعف العقد ( التعزيز الاول ) بمعادلة التالية
فإذا كنت عززت ب 2 لوت اولا ( التعزيز الاول ) فيكون فى (التعزيز الثانى) 4 لوت
2- بعض الاحيان لا يفرق في الايام من حيث الرينج اليومي (( وهذه اساس الاستراتجية - الرينج كل 24 ساعة ) حيث عند تفعيل او اغلاق متغير الرينج اليومي Use Time Filter
يقوم أحياناً بأخذ (التعزيز الثاني ) للصفقة الاولى بمعنى 4 اضعاف ( الصفقة الاولى ) حسب هذا المثال من الباك تيست
يوجد المرفق لاخر نسخة من الاكسبيرت وشرح التعديل في الصفحة الاولى مشاركة رقم 4
ولك مني فائق الاحترام والتقدير وانا اسف جدا على ازعاجك
- 17-04-2012, 08:57 PM #1924
- 18-04-2012, 02:09 AM #1925
السلام عليكم
بالنسبة لكود التيك بروفت ده
ده مثلا كود التيك بروفت للشراءكود PHP:double Low_Diff=MathAbs(ZigZag_Low(1)-ZigZag_Low(2));
MathMin(ZigZag_Low(1),ZigZag_Low(2))+(Low_Diff*210)/100;
(على أساس إن التيك بروفت هيتحدد عن طريق طرح قيمة أخر قاعيين على الزجزاج وضربها ×180 % وإضافتها على القاع الأعلى )
المشكلة دلوقتي إن لو القاع إتغير التيك بروفت بيتغير
إية الحل عشان أثبت التيك بروفت
- 18-04-2012, 03:12 AM #1926
استاذ اسامة
لديا سؤال برمجى اذا سمحت
هل يمكن برمجيا ان يتم عمل اكسبيرت يوقف الحساب عند خسارة محددة بالنسبة المؤيه ولاكن عند حدوث الخسارة المحددة له لايمكن فتح اى صفقات اخرى على هذا الحساب حتى تغير قيمة معينة مثلا فى مدخلات الاكسبيرت
- 18-04-2012, 04:18 PM #1927
وعليكم السلام ورحمة الله وبركاته
الفكره ستنفذها على حسب طريقة عمل الإكسبرت وحاجتك لتحديد الهدف
إذا كنت مثلا تريد حفظ الهدف بحيث لا يتغير عند فتح الصفقه فجرب أن تقوم بتسمية متغير وتعطيه قيمة الهدف عند فتح الصفقه بحيث لا يتغير إلا عند فتح صفقه مره أخرى
أو يمكنك إستخدام GlobalVariableSet
- 18-04-2012, 04:25 PM #1928
- 18-04-2012, 06:16 PM #1929
أسف بس ممكن توضيح أكتر
وأسف مرة تانية لإني لسه أخد بالي دلوقي إن سؤالي كان ناقص والكود كان ناقص كمان
----------------------
ده كود تحديد سعر الشراء
وده كود تحديد هدف الشراءكود PHP:double Low_Diff=MathAbs(ZigZag_Low(1)-ZigZag_Low(2));
double Buy_Price=MathMin(ZigZag_Low(1),ZigZag_Low(2))+(Low_Diff*140)/100;
وده أمر الشراءكود PHP:double B_TP180=MathMin(ZigZag_Low(1),ZigZag_Low(2))+(Low_Diff*180)/100;
يبقى التعديل هيكون إزايكود PHP:Ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Buy_Price,digits),3,NormalizeDouble(SL,digits),NormalizeDouble(B_TP180,digits),"YousefH",MagicNumber,0,Blue);
GlobalVariableSet("Lots"+Symbol()+Period()+Ticket,Lots);
- 18-04-2012, 06:20 PM #1930
ولو مش هتقل عليك
ممكن تشوف سؤالي في الموضوع ده
https://forum.arabictrader.com/t142299.html
- 19-04-2012, 09:23 AM #1931
السلام عليكم يا أستاذ أسامه
تم توضيح عمل المؤشر وكل متغيراته لمؤشر المتاجره الزمنيه السعريه ، برجاء المتابعه
شكرا مقدما
- 19-04-2012, 04:19 PM #1932
بارك الله فيك أستاذي الكريم وجزاك الله خيرا
.gif)
عندي إستفسار لو تسمح لي
أولا لنفرض بأنه تم وضع الإكسبريت على الشارت الأن هنا FirstTime ستأخذ توقيت
إذا بمعنى أخر ستعود بالتوقيت الحاليكود PHP:Time[0]
و هنا
لأنه لم تفتح أي صفقة بعد ثم إذا فتحت صفقة ستكونكود PHP:LastOpenedOrder()=FirstTime
لحد الأن كل شيء مفهومكود PHP:LastOpenedOrder()=OrderOpenTime()
ثم في الدالة الثانية
عملت
إذا الدالة ستعمل فقط بعد تكون شمعة جديدةكود PHP:for(int i=1;i<Bars;i++){
ثم إستدعينا الموفينج أفرج لإستخراج التقاطعات
ثم هنا لم أفهمكود PHP:double ma1,ma2,ma11,ma22;
ma1=iMA(NULL,0,MA1_Period,0,MA1_Method,MA1_Price,i);
ma11=iMA(NULL,0,MA1_Period,0,MA1_Method,MA1_Price,i+1);
ma2=iMA(NULL,0,MA2_Period,0,MA2_Method,MA2_Price,i);
ma22=iMA(NULL,0,MA2_Period,0,MA2_Method,MA2_Price,i+1);

بماذا ستعودكود PHP:if(Time[i]<LastOpenedOrder())return(Opened);
يعني إذا كانت قيمة Bars =100 و قيمة i = 99كود PHP:Time[i]
لمذا يهمنا هذا التوقيت
ولمذا يوجدكود PHP:Time[99]
مرتين في الدالةكود PHP:return(Opened)
ولنفرض أنه تحقق تقاطع شراء كيف أستخرج إن كانت هذه الصفقة الإفتراضية رابحة أم خاسرة عملت هذا الكود هل هذا صحيح ... عندما أضفته للدالة الثانية ظهرت أخطاء لم أجد مصدرها
أرجو التوضيح أستاذ أسامة و بارك الله فيككود PHP:if (ma22<ma11&&ma2>ma1) B_Bid = Bid;
if (Bid <= xBid-StopLoss*Q) B_Ord ="loss";
if (Bid >= xBid+TakeProfit*Q) B_Ord ="Profit";
if (ma22>ma11&&ma2<ma1) S_Bid = Bid;
if (Bid >= S_Bid + StopLoss*Q) S_Ord ="loss";
if (Bid <= S_Bid - TakeProfit*Q ) S_Ord ="Profit";
- 19-04-2012, 09:39 PM #1933
- 19-04-2012, 09:56 PM #1934
أولا
Time سوف تعود بقيمة توقيت الشمعه المحدده و أنا إستخدمت الشرط بحيث نحن نريد جميع التقاطعات التي كانت بعد فتح آخر صفقه بالتالي إذا كان توقيت إفتتاح هذه الشمعه أقل من توقيت إفتتاح آخر صفقة فسوف ينهي الداله ويعود بقيمة Opened وهذا يفسر سبب إستخدامي للأمر return مرتين أيضاكود PHP:if(Time[i]<LastOpenedOrder())return(Opened);
أما لتحديد هل حققت الصفقه الهدف أم الخساره فالأمر أصعب قليلا
أولا ستحتاج مره أخرى إلى البحث في الشموع التي بعد التقاطع
سوف يبحث من شمعة التقاطع حتى الشمعه رقم 1كود PHP:for(int j=i;j>0;j--)
{
if (ma22<ma11&&ma2>ma1)
{
if(High[j]>Open[i]+TakeProfit*point){
Positive++;
break;
}
if(Low[j]<Open[i]-StopLoss*point){
Negative++;
break;
}
}
if (ma22>ma11&&ma2<ma1)
{
if(High[j]>Open[i]+StopLoss*point){
Negative++;
break;
}
if(Low[j]<Open[i]-TakeProfit*point){
Positive++;
break;
}
}
}
ثم يتأكد من نوع التقاطع هل هو شراء أم بيعكود PHP:for(int j=i;j>0;j--)
فإذا كان شراء سوف يقارن هل الهاي للشمعه حقق الهدف أو اللو وصل إلى الإستوب لوز أي أعلى وأدني سعركود PHP:if (ma22<ma11&&ma2>ma1)
{
فإذا حقق الهدف تزيد قيمة Positive وإذا ضرب الإستوب تزيد قيمة Negative
ثم ينهي البحث break ويبحث عن تقاطع آخر
كود PHP:if(High[j]>Open[i]+TakeProfit*point){
Positive++;
break;
}
if(Low[j]<Open[i]-StopLoss*point){
Negative++;
break;
}
- 20-04-2012, 06:00 AM #1935
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM
الأكثر زيارة
رد مع اقتباس