طيب يا ريت تقولنا حلها عشان لو واجهة أي شخص آخر بارك الله فيك
Printable View
وعليكم السلام ورحمة الله وبركاته
بما إنك أضفت شرط الماجيك نمبر للصفقه في شروط المقارنه
فهو سيبحث عن آخر صفقة لها نفس قيمة الماجيك نمبر MagicNumber سواء كانت هذه الصفقة ليست هي آخر صفقة خاسره أو قبل الأخيره أو مهما كان رقمهاكود PHP:if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
بارك الله فيك أستاذ أسامة وجزاك الله خيرا :eh_s(7):
عملت دالتين واحدة للفريم الأول و الأخرى للفريم الثاني
هدفها الحصول على balance account لصفقات كل فريم لوحده يعني كأن الفريم الأول إكسبريت لوحده و نفس الشيء للفريم الثاني
كود PHP:extern double balance = 10000;
كود PHP:double BalanceTf2(){
double profit,xbalance;
for(int i=0;i<=OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
profit+=OrderProfit();
xbalance = balance + AccountProfit() - profit;
}
return(xbalance);
}
double BalanceTf1(){
double xbalance,profit;
for(int i=0;i<=OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if (OrderMagicNumber() == MagicNumber2 && OrderSymbol()==Symbol())
profit+=OrderProfit();
xbalance = balance + AccountProfit() - profit;
}
return(xbalance);
}
أرجو أن تدلني إن كانت صحيحة :hands:كود PHP:Comment(" BalnceTf1 : ",BalanceTf1()," BalnceTf2 : ",BalanceTf2());
وشكرا جزيلاااااا :eh_s(7):
الموضوع مكنش ليه علاقة بالإكسبيرت
جربت أعمل باك تست لنفس الإكسبيرت على منصة تانية وإشتغل عادي
فقمت بتسطيب المنصة مرة أخرى وإشتغل عادي
بس لازم فولدر المنصة القديم يتمسح بالكامل لو التسطيب هيكون في نفس المكان
---------------
يعني الموضوع مكنش ليه علاقة بالبرمجة
المنصة كانت هي السبب
أعتقد العيب كان في terminal.ini بس لسه مش متأكد من الموضوع ده
السلام عليكم
دلوقتي يا أستاذ أسامة أنا عامل إكسبيرت يبيع - يشتري - مضاعفات
السؤال :
كنت عايز أحدد قيمة لعدد عقود المضاعفات MaxOrders
بحيث مثلا إنه يشتري ولو عكس لا يدخل أكثر من 3 عقود مضاعفات
فما هو الكود ؟ ومكانه ؟
------------------------
كود الشراء والبيع
كود المضاعفاتكود PHP:if(RSI <= LeveltoBuy){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),3,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),"YousefH",MagicNumber,0,Blue);
PlaySound("Alert.wav");
}
}
////////////////////////////////////////////
if(RSI >= LeveltoSell){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,digits),3,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),"YousefH",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
وشكراكود PHP:if(UseMultiplier){
for(s=0;s<OrdersTotal();s++){
OrderSelect(s,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUY){
openprice=OrderOpenPrice();lots=OrderLots();
}
}{
newLot=Multiplier*lots;
if(Ask<=openprice-Step*point&&orderstotal()>=1){
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
OrderSend(Symbol(),OP_BUY,newLot,NormalizeDouble(Ask,digits),3,0,NormalizeDouble(TP,digits),"YousefH",MagicNumber,0,Blue);
}
}
for(s=0;s<OrdersTotal();s++){
OrderSelect(s,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_SELL){
openprice=OrderOpenPrice(); lots=OrderLots();
}
}{
newLot=Multiplier*lots;
if(Bid>=openprice+Step*point&&orderstotal()>=1){
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
OrderSend(Symbol(),OP_SELL,newLot,NormalizeDouble(Bid,digits),3,0,NormalizeDouble(TP,digits),"YousefH",MagicNumber,0,Red);
}
}
}
if(orderstotal()>1){
ModifyNewTP(OP_BUY);ModifyNewTP(OP_SELL);
}
:eh_s(7):
خلاص وجدتها أستاذ سامة :0016:
ستكون هكذا
كود PHP:double BalanceTf1(){
double profit,xbalance;
for(int i=0;i<=OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
profit+=OrderProfit();
xbalance = balance+profit;
}
return(xbalance);
}
double BalanceTf2(){
double xbalance,profit;
for(int i=0;i<=OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if (OrderMagicNumber() == MagicNumber2 && OrderSymbol()==Symbol())
profit+=OrderProfit();
xbalance = balance + profit;
}
return(xbalance);
}
ممكن بعد إذنك توضح أكتر
يعني الشرط ده أعرف له دالة الأول تعود بقيمته ؟
-------------------
ولا ممكن مثلا أغير كود المضاعفات
من الشكل ده
للشكل دهكود PHP:newLot=Multiplier*lots;
if(Ask<=openprice-Step*point&&orderstotal()>=1){
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
OrderSend(Symbol(),OP_BUY,newLot,NormalizeDouble(Ask,digits),3,0,NormalizeDouble(TP,digits),"YousefH",MagicNumber,0,Blue);
}
}[/PHP]كود PHP:newLot=Multiplier*lots;
if(Ask<=openprice-Step*point&&orderstotal()<=MaxOrders){
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
OrderSend(Symbol(),OP_BUY,newLot,NormalizeDouble(Ask,digits),3,0,NormalizeDouble(TP,digits),"YousefH",MagicNumber,0,Blue);
}
التغير في ordertotal خلتها أصغر من أو يساوي MaxOrders وطبعا نفس الكلام في البيع
وأعرف; extern int MaxOrders=4 مثلا خارج إستارت
السلام عليكم ورحمة الله أستاذ أسامة :eh_s(7):
كنت أحاول إجاد أفضل فلتر لتقاطع الموفينجات لم أجد مؤشر يفي بالغرض :no3:
ثم جائتني فكرة أردت أن تعطيني رأيك فيها و هي مثلا
نعمل دالة تحسب عدد الشموع بين تقاطع و أخر مثلا حصل الأن تقاطع شراء ثم تكونت 5 شموع و حصل تقاطع بيع
يعني هناك إحتمال أن ندخل في تذبذب و قد نخسر 4 أو 5 صفقات بصفة متتالية لأن عدد الشموع صغير
بإختصار نضع شرط من شروط فتح الصفقة أن يكون عدد الشموع التي تكونت منذ اخر تقاطع أكبر من x
و هناك شرط اخر ايضا قد يكون مفيد وهو حساب أحجام الشموع و مقارنتها ...
مثلا أخر تقاطع شراء - نحسب أحجام الشموع Bull و نقارنها بأحجام الشموع bear طبعا يجب أن تكون مجموع
أحجام الشموع Bull أكبر من Bear و حساب Bear - Bull يجب أن يكون الفرق بينها أكبر من x
إذا كيف ستكون الدالة التي ستحسب عدد الشموع بين تقاطع و أخر و الدالة التي تحسب أحجام الشموع التي تكونت منذ أخر تقاطع :Emoticon1:
أرجو طريقة العمل يا استاذي الكريم :hands:
وبارك الله فيك :eh_s(7)::eh_s(7):
بعد صباح الخير عليكم جميعا........
انا متشوق جدا لتعلم البرمجة....وحاليا باحاول قراءة المواضيع التى تناقش البرمجة.....وكمان بافتح كثير من المؤشرات او الاكسبيرتات واحاول قرائتها لمعرفة كيفية التعبير عن دالة المؤشر او كيفية كتابة امر ما....وحقيقى استفدت كثيرا...
واريد ان اسال عن وجود Index او مرجع يوجد به دوال المؤشرات بشكل استاندارد او اساسى؟
لمعرفة مكوناتها والطريقة الصحيحة للتعبير عنها......وذلك لمحاولة فهم اى مؤشر او اكسبيرت افتحه واقراه
انا باحاول اقرا الاول.....علشان احاول اكتب فيما بعد!
.............والف شكر..........ربنا معكم........
وهذا مثال لمؤشرات يتم التعبير عنها فى اكسبيرت ل MR Dollar
انا نفسى اعرف التعبير عن جميع المؤشرات بهذا الاسلوب فى داخل الاكسبيرت