النتائج 2,101 إلى 2,115 من 10283
الموضوع: موضوع مخصص للأسئلة البرمجية
- 12-05-2012, 02:27 PM #2101
قمت بعمل بعض التعديلات بس الظاهر مفيش فايدة
دلوقتي بقى بيقفل كل العقود مع بعض بس مش دايما بيكون ناتج جمع النقاط يساوي الرقم إللي أنا بحدده
أنا عدلت في الدالة إللي بتجيب مجموع النقاط وخلتها بالشكل ده
كود PHP:int TotalPips(){
double pips;
int pipstotal;
for(int i=OrdersTotal()-1;i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUY){
pips=((MarketInfo(OrderSymbol(), MODE_BID) - OrderOpenPrice())/point);}
if(OrderType()==OP_SELL){
pips=((OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_ASK))/point);}
if (OrderType() == OP_BUY || OrderType() == OP_SELL) pipstotal+= pips;
}
return(pipstotal);
}
بالشكل ده
كود PHP:if(TotalPips()>=CloseAllin_Pips){
int _total=OrdersTotal();
int type;
if (_total==0) {return;}
int ticket;
double priceClose;
for (int b=_total-1;b>=0;b--){
if(OrderSelect(b,SELECT_BY_POS)){
type=OrderType();
ticket=OrderTicket();
switch(type){
case OP_BUY:
priceClose=MarketInfo(OrderSymbol(),MODE_BID);
OrderClose(ticket,OrderLots(),priceClose,3*Q);
break;
case OP_SELL:
priceClose=MarketInfo(OrderSymbol(),MODE_ASK);
OrderClose(ticket,OrderLots(),priceClose,3*Q);
break;
default:
break;
}
}
}
}
- 12-05-2012, 04:35 PM #2102
الشرط الذي وضعته
كود PHP:if(up<5000)
&& if(down>10000) {
بهذه الطريقة فأنت لم تحصل على ما تريده
أنت تريد التوقف عن البحث في حال ظهرت سهم بيع فسوف تضع بالتالي في حال ظهر سهم الشراء سوف يحفظ رقم الشمعه ويتم الخروج من الحلقه لكن إذا ظهر سهم البيع سوف يتم الخروج من الحلقه بدون حفظ رقم الشمعه
كود PHP:int barnumber;
for(int i=1;i<Bars;i++){
double up=iCustom(Symbol(),0,"arrow",1,i);
double down=iCustom(Symbol(),0,"arrow",2,i);
if(up<5000)
{
barnumber=i; break;
}
if(down<5000)break;
}
- 12-05-2012, 06:00 PM #2103
جربت تقوم بطباعة القيم على الشارت لتتأكد أي جزء هو الخطأ تماما كما كنا نفعل في الدوره
بالمناسبه في الكود الأول يمكنك إضافة شرط حتى تتأكد من إغلاق جميع الصفقات
كود PHP:while(orderstotal()>0){
// close Orders
}
- 13-05-2012, 07:53 PM #2104
لدى سؤال استـاذ اسـامة بخصوص الحلقة التى تستخدم لتحديد سعر افتتاح الصفقة الحالية .
كود PHP:for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&& OrderType()==OP_BUY ){
double openprice=OrderOpenPrice();double lot=OrderLots();
هل يمكن وضع هذه الحلقة خارج دالة ستارت !!
ام يجب وضعها داخل دالة ستارت كما بالاكسيبرت المرفق .
وسؤال أخر ،، لماذا يجب تعريف
كود PHP:double lot=OrderLots()
كود PHP:OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),5*Q,0,0," EA",MagicNumber,0,Blue);
كود PHP:double Lots=OrderLots();
- 13-05-2012, 10:16 PM #2105
نعم يمكنك وضعها في دالة مستقله تعود بسعر الإفتتاح وهو الأفضل في رأيي في حال إستخدمتها أكثر من مره في أكثر من كود سيكون إستدعاء الداله أسهل
نقوم بتعريف متغير آخر lots حتى يكون اللوت الأساسي الموجود في المتغيرات الخارجيه Lots لا يتغير بحيث سوف يستخدم في فتح الصفقات الرئيسيه
- 13-05-2012, 10:40 PM #2106
السلام عليكم ورحمة الله تعالى وبركاته
أستاذ أسامة تحياتي لك
بحاول اعمل سكربت يفتح صفقة لما أنزله على الشارت ببساطة كده لكن بيديني خطأ بالـ return
كود://+------------------------------------------------------------------+ //| sc.mq4 | //| Copyright 2012,صاحب هدف | //| | //+------------------------------------------------------------------+ #property copyright "Copyright 2012,صاحب هدف" #property link "" //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"aa",1000,0,Red) //---- return(0); } //+------------------------------------------------------------------+
- 13-05-2012, 11:43 PM #2107
ضع الفصلة المنقوطة في نهاية الأمر ;
كود PHP:OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"aa",1000,0,Red);
وأي سطر برمجي لازم ينتهي بالفاصلة المنقوطة ;
إلا حالات خاصة هتعرفها بإذن الله خلال دراستك للبرمجة
- 14-05-2012, 12:40 AM #2108
أشكرك شكرا جزيلا أستاذ أسامه و جزاك الله كل خير ,,, الآن مفهوم و بإذن الله سوف أحاول البحث و القراءه أكثر عن الداله for و إذا كان لديك لينك يشرحها بإستفاضه هي وباقي الدوال رجاء إرفاقه , ,
و لي سؤال إذا سمحت ,,, ما الذي يجعل إكسبيرت كان يعمل بشكل جيد يتوقف فجأه دون أي خطأ يظهر ,,, فالإكسبيرت الذي برمجته في موضوع إكسبيرت الترند و المستويات كنت أستخدمه فس حسابي الحقيقي و لكن منذ يومان فجأه توقف تماما و قبل أن يتوقف كان المره الأخيره له فتح صفقه ليس لها علاقه بإغلاق فوق الترند أو أسفله حتى أني كنت برمجت نسخه بها خاصية عدد النقاط وقمت بتجربتها فعملت بشكل ممتاز ثم توقفت هي الأخرى مع النسخه الأولى على كل المنصات لدي ,..
هل هذا سببه مشكله بالمنصات أو بالنسخه عموما
لينك الإكسبيرت مرفق
https://forum.arabictrader.com/attac...sein-ea-v1.mq4
- 14-05-2012, 12:45 AM #2109
قمت بتعريف دالة خارج دالة ستارت ، تعود بسعر الافتتاح ..
كود PHP:double OpenPrice(int type){
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&& type==OrderType()){
double openprice=OrderOpenPrice();double lot=OrderLots();
}
}
return(openprice);
}
واضفت شروط فتح الصفقات كالتالى
كود PHP:if(OpenPrice(OP_BUY)-Ask>Space*point && Additional_Buy_SELL_Lots==true){
OrderSend(Symbol(),OP_BUY,lot*2,Ask,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}
if(Bid-OpenPrice(OP_SELL)>Space*point && Additional_Buy_SELL_Lots==true){
OrderSend(Symbol(),OP_SELL,lot*2,Bid,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}
ولكن يظهر خطأ عدم تعريف lot ، وقد تم تعريفه داخل دالة OpenPrice
- 14-05-2012, 01:32 AM #2110
جزاك الله خيرا على التنبيه اخي الكريم سبحان الله جل من لا يسهو
قمت بوضع الفاصلة وعمل بعض المتغيرات خارجية ولاتوجد اخطاء لكن السكربت لاينفذ شيء فمالمشكلة لو سمحت
كود://+------------------------------------------------------------------+ //| sc.mq4 | //| Copyright 2012,صاحب هدف | //| | //+------------------------------------------------------------------+ #property copyright "Copyright 2012,صاحب هدف" #property link "" extern int ty=0; extern int tp=10; extern int st=25; extern double lots=0.1; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- OrderSend(Symbol(),ty,lots,Ask,3,Ask-st*Point,Ask+tp*Point,"aa",1000,0,Red); //---- return(0); } //+------------------------------------------------------------------+
- 14-05-2012, 08:39 AM #2111
إنت كاتب مكان نوع العملية ty المفروض بتكتب مكانها OP_BUY أو OP_SELL
بس طالما إنت معرف extern int ty=0 فالإكسبيرت هيعتبرها صفقة شراء لإن OP_BUY يساوي 0
ودي مش المشكلة بس حبيت أنبهك ليها
-------------------------
المكشلة عندك إنك أكيد شغال على منصة 5 أرقام
فلما تكتب الإستوب لوز أو التيك بروفت 25 يبقى إنت كده عملته 2.5 نقطة
لو إنت شغال على 5 أرقام يبقى المفروض تكتب بدل 25 .........>> 250
- 14-05-2012, 12:36 PM #2112
أستاذ أسامة إية رأيك في الفكرة دي !
طبعا دالة start تعمل every tick وده بيأثر في الإكسبيرتات إللي بتنفذ أوامر كثيرة في نفس الوقت
يعني لو مثلا عندنا إكسبيرت بيقفل الصفقات المفتوحة ( لو كانت الصفقات كتيرة مستحيل يقفلها كلها على نفس السعر )
فإية رأيك لو نعمل دالة ونضع فيها كل الشغل والأوامر ( يعني نعاملها معاملة الدالة ستارت ) ونسميها مثلا
BetterStart()
ونضع فيها الشروط والأامر وكل حاجة كنا هنضعها في إستارت
-------------------------
أما دالة Start()
فهنستخدمها بالشكل ده
كود PHP:int start()
{
if (EA_NotOnTick == true){ while (IsExpertEnabled())
{BetterStart();Sleep(1000);WindowRedraw();}}
else {BetterStart();}
return(0);
}
وبالتالي لن ينتظر الإكسبيرت تحرك السعر لينفذ الأوامرآخر تعديل بواسطة xcv114 ، 14-05-2012 الساعة 12:48 PM
- 14-05-2012, 01:42 PM #2113
ألف شكر ياباشا على إهتمامك
بالنسبة للـ ty فعلا أنا عايزها كده وهتكون إما 0 او 1
المشكلة إني لما بعمل دبل كليك على السكربت مش بيعمل أي حاجة يعني مش بيفتح أي نافذة فمش عارف إيه المشكلة على الرغم إني بعمل كومبايل ومش بيديني أي خطأ
رحت للجورنال لقيته بيكتب كده
هي البرمجة ماتنفعش تكون بالبساطة دي ولا إيه
- 14-05-2012, 08:35 PM #2114
- 14-05-2012, 08:38 PM #2115
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM