النتائج 1,096 إلى 1,110 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 06-06-2011, 05:42 PM #1096
طبعا بارك الله في الأخ مبدع فوركس فقد أجابك وبارك الله فيك
لكن سوف أشرحها لك بإختصار بشكل عام
كيف تستطيع أن تقارن هل الموفينج صاعد أو هبط عن طريق مثلا معرفة قيم آخر شمعات للموفينج فمثلا إذا كان قيمة الموفينج للشمعه 1 أكبر من قيمة الموفينج للشمعه 2 في هذه الحاله ستعلم أن الموفينج صاعد
والعكس صحيح
وأيضا نفس الفكره للإستوكاستيك إذا كانت قيمة الإستوكاستيك للشمعه 1 أقل من قيمته للشمعه 2 في هذه الحاله ستعلم أنه هابط
الآن كيف تستدعي قيمة الموفينج للشمعه 1 أي الشمعه السابقه والشمعه 2 أي الشمعه السابقه لها
كمثال
كود PHP:ma1=iMA(NULL,0,14,0,MODE_EMA,PRICE_CLOSE,1);
ma2=iMA(NULL,0,14,0,MODE_EMA,PRICE_CLOSE,2);
الآن سوف تضع في المقارنه لشروط الدخول
كود PHP:if(Ask>ma1&&ma1>ma2)
بالتالي هذا يعني أن الموفينج صاعد
نفس الشيء بالنسبة للإستوكاستيك
كود PHP:double stoch1=iStochastic(Symbol(),0,5,3,3,MODE_EMA,0,MODE_MAIN,1);
double stoch2=iStochastic(Symbol(),0,5,3,3,MODE_EMA,0,MODE_MAIN,2);
كود PHP:if(sotch1>80&&stoch1<stoch2)
- 06-06-2011, 07:23 PM #1097
آخر تعديل بواسطة مبدع فوركس ، 06-06-2011 الساعة 07:30 PM
- 06-06-2011, 10:28 PM #1098
- 07-06-2011, 01:49 AM #1099
هل عندك نفس الخطاء الموجودعندي وذلك عند تحويل شارت اليورودولار المنزل من موقع forextesterالى الشارت الشهري عن طريق سكربت periode_converter وهو عدم ترتيب الشهور وفقدان بعضها.
http://img23.imageshack.us/img23/8858/2906.png
- 07-06-2011, 06:40 PM #1100
- 07-06-2011, 09:08 PM #1101
السلام عليكم و رحمة الله و بركاته
الحمد لله يمنكنني الان برمجة التنبيهات متعددة الازمنة
و الفضل لله ثم مساعدتك لي
كيف يمكن ان اجعل التنبيه متعدد الازواج ايضا مع امكانية اختيار الازواج
ياريت فقط مثال باضافة اليور و الباوند
و هل سيكون افضل ان يبرمج كمؤشر ام لكسبرت ؟
و هذا مثال علي مؤشر يعطي اشارات بكسر الكيجن سن
- 08-06-2011, 01:22 AM #1102
استاذ مستر هذا الكود مع افتتاح شمعه اليوم
كود:if (Time0!=iTime (Symbol(),1440,0) ) { Time0=iTime(Symbol(),1440,0);
- 10-06-2011, 12:50 AM #1103
استاذ مستر هذا الكود مع ارتفاع شمعه اليوم السابق
كود:double DayHigh=iHigh(Symbol(),1440,1);
فكيف سيكون الكود مع منتصف شمعه اليوم السابق يعني شراء او بيع على بعد محدد من منتصف شمعه اليوم السابق.آخر تعديل بواسطة al_naser ، 10-06-2011 الساعة 12:54 AM
- 10-06-2011, 03:14 AM #1104
وعليكم السلام ورحمة الله وبركاته
تفضل هذا كمثال
يمكنك كتابة أسماء الأزواج التي تريدها في المتغير Symbols مع وضع مسافة بين كل إسم وآخر
لم أجربه فعليا لأتأكد فأرجو إخباري بعد تجربته وهذه أول مره أقوم بعمل كود بمثل هذه الطريقه حقيقة
وطبعا سواء قمت بعمله كإكسبرت أو مؤشر لا أعتقد أنه سيكون هناك فرق
- 10-06-2011, 03:18 AM #1105
كود إغلاق اليوم سيكون هو نفسه كود إفتتاح اليوم التالي
فمثلا الداله
كود PHP:iTime(Symbol(),1440,0);
إذا أردت المنتصف بين الإغلاق والإفتتاح بسيطة سوف تقوم بجمع الإفتتاح + الإغلاق وتقسمهم على 2
كود PHP:Center=(iOpen(Symbol(),1440,1)+iClose(Symbol(),1440,1))/2;
كود PHP:Center=(iHigh(Symbol(),1440,1)+iLow(Symbol(),1440,1))/2;
- 10-06-2011, 08:47 AM #1106
والله ماقصرت اخ اسامه نحب ان نستفيد مما اعطاك الله من علم........ضروري مانكمل او نخلص العلم الذي عندك....هههههه
سوال بخصوص الاستوب المتحرك Trailingstop والبريك ايفن breakeven....هل يكون اضافتهم بهذا الشكل؟
كود PHP:extern int Step1=100;
extern int Takeprofit1=3000;
extern int TrailingStop = 30;
extern int breakeven = 30;
extern double Lots=0.1;
int Magicnumber=238798744;
datetime Time0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if( Hour() ==23 && Minute()>45 && MyOrdersTotal(Magicnumber)>0 )
{CloseOrders(Magicnumber);
DeletePendingOrders(Magicnumber);}
if (Time0!=iTime (Symbol(),1440,0) && MyOrdersTotal(Magicnumber)>=0 )
{
Time0=iTime(Symbol(),1440,0);
double fahd=iClose(Symbol(),1440,1);
double fahd1=fahd-Step1*Point;
double fahd2=fahd1+Takeprofit1*Point;
double fahd3=Trailingstop*Point ;
اونكتب هكذا في حاله البريك ايفن
; double fahd3=breakeven*Point
double fahd4=fahd+Step1*Point;
double fahd5=fahd4-Takeprofit1*Point;
double fahd6=Trailingstop*Point;
اونكتب هكذا في حاله البريك ايفن
; double fahd6=breakeven*Point
OrderSend(Symbol(),OP_BUYLIMIT,Lots,fahd1,3,fahd3,fahd2,"",Magicnumber,0,Green);
OrderSend(Symbol(),OP_SELLLIMIT,Lots,fahd4,3,fahd6,fahd5,"",Magicnumber,0,Red);
}
return(0);
}
int MyOrdersTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
c++;
}
}
return(c);
}
int DeletePendingOrders(int Magic)
{
int total = OrdersTotal()-1;
for (int cnt = total ; cnt >= 0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY && OrderType()!=OP_SELL))
{
OrderDelete(OrderTicket());
}
}
return(0);
}
int CloseOrders(int Magic)
{
int total = OrdersTotal()-1;
for (int cnt = total ; cnt >= 0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
return(0);
}
//+------------------------------------------------------------------+
- 10-06-2011, 09:01 PM #1107
بالنسبة للتريلينج ستوب والبريك إيفن فيجب أن تقوم بعمل دالتين لتنفيذها فالأمر لا يستطيع التعرف على التريلينج ستوب والبريك إيفن بالشكل الذي كتبتها
فأولا سوف تقوم بتعريف دالتين للتريلينج ستوب والبريك إيفن
كود PHP:void TrailingStop()
{
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
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);
}
}
}
}
}
}
//|---------break even
void BreakEven()
{
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
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);
return(0);
}
}
}
}
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);
return(0);
}
}
}
}
}
}
}
كود PHP:if(TrailingStop>0)TrailingStop();
if(BreakEven>0)BreakEven();
- 10-06-2011, 09:51 PM #1108
جزاك الله خيرا لكن بعد الاطلاع وجدت بعض المشكل لدي
ما تفسير هذه لانها متشابهه جدا.....يعني كيف اضبطها مثلا اريد ان يكون البريك او التريلينج 5 نقاط مثلا .اين احط هذه القيمه واي قيمه يجب ان تبقى ثابته؟
extern int BreakEven=0;
extern int movestopto=1;
extern int TrailingStop=0;
extern int TrailingStep=0;
لاحظت هذا الكود مافائدته؟
كود:void deinit() { Comment(""); } int orderscnt(){ int cnt=0; for(int i =0;i<OrdersTotal();i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){ cnt++; } } } return(cnt); }
آخر تعديل بواسطة al_naser ، 10-06-2011 الساعة 09:54 PM
- 12-06-2011, 08:49 PM #1109
سوف أشرحها لك ببساطه
بالنسبة للبريك إيفن مثلا إذا كنت تريد نقل الأستوب لوز إلى نقطة الدخول بعد ربح 10 نقاط سوف تجعل BreakEven=10 و movestopto=0
لكن الآن مثلا أنت تريط بعد ربح 10 نقاط نقل الأستوب لوز ليس إلى نقطة الدخول لكن إلى ربح نقطيتن مثلا في هذه الحاله سوف تجعل BreakEven=10 و movestopto=2
أي أن المتغير movestopto هو عدد نقاط الربح التي يتم نقل الأستوب لوز عندها
بالنسبة للتريلينج ستوب
إذا أردت تحريك التريلينج ستوب بعد ربح 10 نقاط سوف تجعل TrailingStop=10 و TrailingStep=0
في هذه الحاله كلما ربح الإكسبرت نقطه سوف يتم تقديم الأستوب لوز نقطه واحده حسب التريلينج ستوب لكن مثلا إذا أردت أن يتم تقديم الأستوب لوز كل 3 نقاط أو كل نقطتين سوف تجعل TrailingStep=2
هذا هو الفرق بينهم
- 12-06-2011, 11:51 PM #1110
الف شكر اخ مستر ولكن هناك الفقره الاخيره من السؤال انتظر لها اجابه
لاحظت هذا الكود مافائدته؟
كود PHP:void deinit() {
Comment("");
}
int orderscnt(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
}
return(cnt);
}
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM