النتائج 2,071 إلى 2,085 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 09-05-2012, 08:07 AM #2071كود PHP:
}
int CloseBuyOrdersHiddenTP()
{
int total=OrdersTotal();
for (int cnt=total;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
[COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{<font color="blue">
وجدت هذا الشرط موجود في دالة الترلينج ستوب و البريك إيفين فأضفته لباقي الدوال هكذا
</font>
if(OrderType()==OP_BUY&&Bid>(OrderOpenPrice()+TakeProfit*point))
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3*D);
}
}
}
}
void CloseBuyOrdersHiddenSL()
{
int total=OrdersTotal();
for (int cnt=total;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
[COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY&&Bid<(OrderOpenPrice()-StopLoss*point))
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3*D);
}
}
}
}
void CloseSellOrdersHiddenTP()
{
int total=OrdersTotal();
for(int cnt=total;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
[COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{[/COLOR]
if(OrderType()==OP_SELL&&Ask<(OrderOpenPrice()-TakeProfit*point))
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3*D);
}
}
}
}
void CloseSellOrdersHiddenSL()
{
int total=OrdersTotal();
for(int cnt=total;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
[COLOR="red"]if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{[/COLOR]
if(OrderType()==OP_SELL&&Ask>(OrderOpenPrice()+StopLoss*point))
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3*D);
}
}
}
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS TrailingStop |
//+------------------------------------------------------------------+
//|---------trailing stop
void MoveTrailingStop()
{
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL[COLOR="red"]&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{[/COLOR]
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)<NormalizeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blue);
}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)>(NormalizeDouble(Ask+TrailingStop*point,digits)))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,digits),OrderTakeProfit(),0,Red);
}
}
}
}
}
}
void MoveBreakEven()
{
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()[COLOR="red"]&&OrderMagicNumber()==MagicNumber)
{[/COLOR]
if(OrderType()==OP_BUY)
{
if(BreakEven>0)
{
if(NormalizeDouble((Bid-OrderOpenPrice()),digits)>BreakEven*point)
{
if(NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),digits)<0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+movestopto*point,digits),OrderTakeProfit(),0,Blue);
}
}
}
}
else
{
if(BreakEven>0)
{
if(NormalizeDouble((OrderOpenPrice()-Ask),digits)>BreakEven*point)
{
if(NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),digits)<0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*point,digits),OrderTakeProfit(),0,Red);
}
}
}
}
}
}
}
وهل لن أحتاج إلى تغيير الماجيك نمبر حتى لو فتحت شارتين لنفس العمله بنفس الفريم ؟؟؟
وبارك الله فيك ...
ولدي سؤال بعد إذنك .. أحيانا عندما أقوم بتفعيل الإكسبيرت أجده قد قام بفتح صفقه مباشرة و عندما أبحث أجد أن الشروط كانت محققة في الشمعه السابقة والحالية لم تغلق لكن الحاليه مثلا قد تكون إبتعدت بعدد نقاط كثيره ... فهل أجعل رقم الشمعه في الشروط 0 بدلا من 1 حتى لا يحدث هذا أم ماذا ؟؟؟
وجزاك الله عنا كل خير .[/COLOR][/COLOR]آخر تعديل بواسطة dentist_hussein ، 09-05-2012 الساعة 08:27 AM
- 09-05-2012, 10:51 AM #2072
أستاذ أسامه و إذا أردت أن يكون من ضمن شروط الشراء أن يكون آخر سهم قد ظهر في الشموع الماضيه هو سهم شراء ,,,
كيف أضع الشرط ضمن الشروط و كيف تكون الدالة للبحث عن سهم الشراء في الشموع الماضيه ؟؟ وهل هذه الطريقه تنفع لأي مؤشر خارجي يظهر أسهم بيع وشراء ؟
وأين يكون مكان الداله for هل لها مكان ثابت ؟
- 09-05-2012, 05:53 PM #2073
- 09-05-2012, 05:59 PM #2074
إذا كان الشارت لنفس العمله فسوف تحتاج إلى تغيير الماجيك نمبر وهذا واضح من المقارنه التي وضعتها
أنت تقارن بين الماجيك نمبر والعمله بالتالي إذا كانت نفس العمله ونفس الماجيك نمبر فلن تجد أي إختلاف عن إذا كان إكسرت مختلف تماما هو الذي فتح الصفقه
بالنسبه للسؤال الثاني
في هذه الحاله يمكنك إضافة شرط ان الشمعه الحاليه لم تتحرك عدد نقاط محدده يعني مثلا سوف تضيف إلى شروط الدخول
كود PHP:if(High[0]-Low[0]<5*Point)
- 09-05-2012, 06:03 PM #2075
- 09-05-2012, 09:58 PM #2076
- 09-05-2012, 10:22 PM #2077
تمام أخي أسامه .. يعني الأكواد الماضيه صحيحه ؟؟؟.. شكرا لك .
بالنسبه لشرط
كود PHP:if(High[0]-Low[0]<5*Point)
وماذا لو ادرت تفعيل خاصية كهذه ولكن ليس بإستخدام رقم الشمعه 0 و لكن إذا أغلقت الشمعه 1 بعدد نقاط أكبر من المحدد يتم الدخول غذا عاد السعر لعدد النقاط المحدد حتى لو أغلقت شمعة و إتنين بعد الكسر .
و بارك الله فيك .
- 09-05-2012, 10:24 PM #2078
- 10-05-2012, 12:09 AM #2079
جزاك الله خيرا على التعديل ، ولكن انا قمت بالتعديل بطريقة مختلفه كالتالى ..
كود PHP:if (gd_92 > gd_84){
g_ibuf_100[li_4] = BoxLevel;
ss=1;
}
if (gd_92 < gd_84){
g_ibuf_104[li_4] = BoxLevel;
ss=2;
}
}
if (Alertsound==true && AlertMessage==true && tt!=1&& ss==1 ){PlaySound("Alert.wav");Alert("Color Change - direction","=Down");tt=1;}
if (Alertsound==true && AlertMessage==true && tt!=2&& ss==2 ){PlaySound("Alert.wav");Alert("Color Change - direction","=Up");tt=2;}
return (0);
}
مع اضافة تعريف للمتغيرات التالية ..
كود PHP:int tt,ss;
- 10-05-2012, 12:50 AM #2080
- 10-05-2012, 01:04 AM #2081
استاذ اسامة ، لدى سؤال بخصوص بعض الأكواد مثل ...
كود PHP:OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),5*Q);
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),5*Q);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*point,digits),OrderTakeProfit(),0,Red);
كود PHP:Ask ، Bid ، OrderOpenPrice()
** باعتبار تم تعريف الـ digits داخل الاكسيبرت
- 10-05-2012, 02:58 AM #2082
شكرا جزيلا ، تم التعديل ويعمل كما أريد وعدلت ايضـا أمر
كود PHP:else Lots=lastlot();
الكود السابق ، لماذا استخدمنا جملة شرط else بعد جملة if الأولى ، أقصد لماذا لم نضع شرط جملة if
الثانية مباشرة بعد الأولى !!
- 10-05-2012, 08:42 PM #2083
يمكنك مثلا معرفة آخر صفقة هل فتحت على مضاعفات أم فتحت صفقة عاديه بأن تقوم بوضع كومنت مختلف لصفقة المضاعفات
مثال
كود PHP:OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),3,0,0,"Multiplier order",MagicNumber,0,Red);
كود PHP:bool isLastOrderMultiplied()
{
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderComment()=="Multiplier order")return(true);
else return(false);
}
}
return(false);
}
كود PHP:if(isLastOrderMultiplied()==false)
- 10-05-2012, 08:45 PM #2084
لأ لن يدخل حتى لو عاد السعر لأن الهاي واللو لن تتغير قيمته إلى في حال أن الهاي زاد أو اللو أصبح أقل
لكن إذا كنت تريد الدخول في حال عاد السعر في هذه الحاله سوف تقارن بين السعر الحالي مثلا وسعر إفتتاح الشمعه وتضع نفس الشرط
وبنفس الطريقة يمكنك إستخدام أي شمعه ووضع أي شرط تريده بما أنك عرفت الفكره الأساسيه
- 10-05-2012, 08:46 PM #2085
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM