جزاك الله خير على الإقتراح
الفكره موجوده وتحت الترتيب فعلا قريبا بإذن الله وسوف تكون كفيديوهات تعليميه وليست مجرد شرح نصي قريبا
Printable View
مرحباً الجميع ..
كيف يتم حساب الفيبوناتشي يدوياً ؟
مثال :
قمه = 16.05
قاع = 14.40
طبعاً الاجابه ستكون هكذا :
الملف المرفق 455985
لكن كيف يتم حسابتها يدوياً فضلاً
وفق الله الجميع
إذا كنت سترسم الفيبوناتشي من القمه إلى القاع
أولا ستحتاج إلى حساب الفرق بين القمه والقاع بالنقاط
ثم ستكون نسب الفيبوناتشيكود PHP:
double difference=16.05-14.40;
أما إذا كنت سترسم الفيبوناتشي من القاع إلى القمه فسيكونكود PHP:
double Fibo_23=16.05-(difference*23.6/100);
double Fibo_38=16.05-(difference*38.2/100);
كود PHP:
double Fibo_23=14.40+(difference*23.6/100);
double Fibo_38=14.40+(difference*38.2/100);
جزاك الله خير استاذ اسامه وشاكر لك سرعة تجاوبك
نفع الله بك وزادك من فضله وعلمه ورزقه
:eh_s(7):
السلام عليكم ورحمه الله اخواني هل من الممكن اسخدام الموشرات indicators في برمجه اكسبيرت ؟؟؟؟ شكرا على التفهم
السلام عليكم ورحمة الله وبركاته
سؤال اخي العزيز مستر دولار
لو مفتوح عدة صفقات بيع وشراء وليست مرتبة بمعني ان الصفقات التي في القاع ليست هي الصفقات الاخيرة والصفقات العلوية ليست بالضرورة هي الصفقات الاخيرة
فكيف يمكنني ان اتي بسعر الصفقة العلوية التي في القمة سواء كانت بيع او شراء
وكذلك آخر صفقة في القاع سواء كانت بيع او شراء
ولك جزيل الشكر اخي العزيز وجزاك الله كل خير
كاضافة لما قال الاخ العزير hre007 يمكنك ان تستعمل اي مؤشر سواءا المؤشرات المبيتة او الموجودة في الميتاتريدر وهذه عينة منها بهذا الشكل
وذلك باسناد قيمها الى متغير واستعماله في اكوادك كما تريدكود:iADX( string symbol, int timeframe, int period, int applied_price, int mode, int shift);
iATR( string symbol, int timeframe, int period, int shift);
iBands( string symbol, int timeframe, int period, int deviation, int bands_shift, int applied_price, int mode, int shift);
iCCI( string symbol, int timeframe, int period, int applied_price, int shift);
iDeMarker( string symbol, int timeframe, int period, int shift);
iForce( string symbol, int timeframe, int period, int ma_method, int applied_price, int shift);
iIchimoku( string symbol, int timeframe, int tenkan_sen, int kijun_sen, int senkou_span_b, int mode, int shift);
iMomentum( string symbol, int timeframe, int period, int applied_price, int shift);
iMA( string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift);
iOsMA( string symbol, int timeframe, int fast_ema_period, int slow_ema_period, int signal_period, int applied_price, int shift);
iMACD( string symbol, int timeframe, int fast_ema_period, int slow_ema_period, int signal_period, int applied_price, int mode, int shift);
iSAR( string symbol, int timeframe, double step, double maximum, int shift);
iRSI( string symbol, int timeframe, int period, int applied_price, int shift);
iStochastic( string symbol, int timeframe, int Kperiod, int Dperiod, int slowing, int method, int price_field, int mode, int shift);
iWPR( string symbol, int timeframe, int period, int shift);
iStdDev( string symbol, int timeframe, int ma_period, int ma_shift, int ma_method, int applied_price, int shift);
او المؤشرات الخارجية وذلك باستعمال الدالة iCustom راجع الرابط التالي للمزيد من الايضاح حول الدالة
https://forum.arabictrader.com/t93175.html
استسمح الدكتوراسامة في الاجابة
يمكنك ذلك اخي الكريم , على اعتبار ان الصفقة العلوية كما قلت سيكون سعرها هو الماكس والصفقة التي في الاسفل سيكون هو المين
تحتاج مصفوفة تخزن فيها سعر افتتاح الصفقات , ثم بعد ذلك تستعمل الدالتين
لاستعادة القيم المطلوبةكود:ArrayMaximum(name_array,WHOLE_ARRAY,0);
ArrayMinimum(name_array,WHOLE_ARRAY,0);
name_array هو اسم المصفوفة طبعا
تحياتي
مرحبا الجميع ..
واجهتني مشكله بالاكسبريت التعليمي التالي , لايفتح صفقات ويظهر الفيس الحزين : (
:asvc:
فكرة الاكسبريت ( جلب أخر قمه وقاع للزقزاق + حساب الفيبوناتشي + شرط الدخول )
قمت بتعريف الماجيك نمبر و وقيمة الهاي واللو للزقزاق ودالة الزقزاق :
كود PHP:
int MagicNumber=2533 ;
double high , low ;
void zigzag(){
double Zig1,Zig2,Zig3;
int i = 0 ,
j = 0 ;
while(i < 3){
if( Zig1 != 0){
Zig3=Zig2 ; Zig2=Zig1 ;
}
Zig1 = iCustom(NULL , 0, "ZigZag", 0, j);
if(Zig1 > 0 ){
i++;
}
j++;
}
if(Zig1>Zig2){
high = Zig1 ;low = Zig2 ;
}else{high = Zig2 ;low = Zig1 ;}
Print("low : ",low , " high :",high) ;
}
ثم قمت بتعريف ( الفيبوناتشي ) هنا :
كود PHP:
double difference=high-low;
double Fibo_21=high-(difference*21/100);
double Fibo_38=high-(difference*38/100);
double Fibo_50=high-(difference*50/100);
double Fibo_61=high-(difference*61/100);
double Fibo_76=high-(difference*76/100);
ثم شرط الشراء وفتح الصفقه :
شرط الشراء : اغلاق الشمعه [1] أكبر من فيبو 61% ( و ) هاي الشمعه [2] أقل من فيبو 61%كود PHP:
if ( Close[1] > Fibo_61 && High[2] < Fibo_61 )
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,5,low,high,"Me",MagicNumber,0,Blue);
// ST = low
// TP = high
}
وفقكم الله وزادكم من علمه
فضلاً لا أمراً
:eh_s(7):
شرط الشراء : اغلاق الشمعه [1] أكبر من فيبو 61% ( و ) هاي الشمعه [2] أقل من فيبو 61%
وفقكم الله وزادكم من علمه
فضلاً لا أمراً
:eh_s(7):
+-----------------------------------------------------------------------------------------------------------+
اجعل دالة تاتي باخر قمة هكذا
واخرى تعيد اخر قاع بهذا الشكلكود:double ZigZagHigh(int shift){
int found = 0 ,
i = 0 ;
for(i = 0 ; i < Bars ; i++){
double hi = iCustom(NULL,0,"ZigZag",0,i);
if(hi !=0 && hi == High[i]) found++ ;
if(shift == found)return(hi) ;
}
return(hi) ;
}
ثم في المين تاخذ المقارنة بهذا الشكل بعد تعريف متغيرات الفايبو واسناد القيم المناسبة لها بهذا الشكلكود:double ZigZagLow(int shift){
int found = 0 ,
i = 0 ;
for(i = 0 ; i < Bars ; i++){
double lo = iCustom(NULL,0,"ZigZag",0,i);
if(lo !=0 && lo == Low[i]) found++ ;
if(shift == found)return(lo) ;
}
return(lo) ;
}
الدالة Print() اضعها فقط لتتاكد من القيم التي تتعامل معها هكذا سيشتغل رغما عن انفهكود:double high = ZigZagHigh(1) ;
double low = ZigZagLow(1) ;
double difference=high-low;
double Fibo_21=high-(difference*21/100);
double Fibo_38=high-(difference*38/100);
double Fibo_50=high-(difference*50/100);
double Fibo_61=high-(difference*61/100);
double Fibo_76=high-(difference*76/100);
Print("high : " , high ," low : " , low," fibo_61 : " , Fibo_61) ;
if ( Close[1] > Fibo_61 && High[2] < Fibo_61 )
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,5,NormalizeDouble(low,Digits),NormalizeDouble(high,Digits),"Me",MagicNumber,0,Blue);
// ST = low
// TP = high
}
لديك رسالة على الخاص اخي مشعل
تحياتي لك
وعليكم السلام ورحمة الله وبركاته
بالإضافة إلى جواب الأخ goldfile إذا لم تكن تريد إستخدام المصفوفات يمكنك عمل حلقة بحث بسيطه لمعرفة أعلى سعر وأقل سعر
مثال
بالنسبه الطريقه سوف تستخدم الداله لأقل سعركود PHP:
double MaxPriceOrder()
{
double MaxPrice;
for(int i=0;i<OrdersTotal();i++)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderOpenPrice()>MaxPrice)MaxPrice=OrderOpenPrice();
}
}
return(MaxPrice);
}
هلا استاذ قولد .. فعلاً اشتغل رغم أنفه :)اقتباس:
الدالة Print() اضعها فقط لتتاكد من القيم التي تتعامل معها هكذا سيشتغل رغما عن انفه
جزاك الله خير
دايه
همسه :
في البدايه ظهر لي هذا الخطأ
الملف المرفق 456155
وقمت بتغيير hi و lo إلى 0
واشتغل فعلاً معي 100 %كود PHP:
return(0) ;
هل فعلي صحيح ؟ رغم ان الاكسبريت شغال حاليا فعلاً :)
وفقك ربي ونفع بك اخي قولد
جزاك الله خيرا اخي goldfile علي ردك بارك الله فيك ونفعنا بعلمك وجعله في ميزان حسناتك
ولكن انا حديث التعلم ولم استخدم المصفوفات من قبل فهل هناك موضوع تعليمي معين استطيع الرجوع له
جزاك الله كل خير استاذي العزيز اسامة فعلا السهل الممتنع ذي ما بيقولوا
وانا فعلا ليس لي علم بالمصفوفات ولم استخدمها من قبل وسأبحث عن موضوع تعليمي للرجوع اليه
الف شكر ووضعه الله في ميزان حسناتك