النتائج 586 إلى 600 من 626
- 06-09-2014, 01:44 AM #586
استاذ جميل .. بعد اذنك تلقي نظرة على الاكسبيرت المرفق ..
وهو فكرته فتح عقد شراء او بيع بعد عدد معين من النقاط بعد فتح السوق .. وتعليق مضاعف لهم في حالة ارتداد السوق والاغلاق على نهاية اليوم ..
وهناك عدة مشاكل مش عارف فكرة حلهم برمجيا تبقي اذاي ؟؟
اولا انا عامل مسافة لبدأ العمل من سعر الافتتاح OpenAfter .. ولنفترض مثلا انها 25 نقطة
فانا اريد ان يكون الاستوب ثابت بضعف هذه القيمة .. ولن اجعله متاح للتغيير من الاعدادات .. لأن الافتراضية عندي هو فتح عقد بمجرد اغلاق الاخر .. فسيكون الاستوب في حالتنا هنا 50 نقطة ..
فكيف تكتب دالة البيع والشراء .. لأن كل محاولاتي تأتي بخطأ أو تحذير ؟؟؟
ثانيا عند جعل الهدف هو نهاية اليوم .. فهو قد يغلق مضاعفة كبيرة وقد تكون على خسارة بمجرد انتهاء اليوم ويعمل من جديد .. وانا اريده ان يترك الصفقة الحالية دون اغلاق طالما لم يصل الربح الي قيمة تساوي الاستوب
وكنت حضرتك اعطتني هذا الكود في الموضوع الخاص بالاسئلة البرمجية لأغلاق العقود بنهاية اليوم
كود PHP:if(NCC!=Time[0] && OrdersCloseEveryCandles==true ) {NCC=Time[0]; CloseAll();}
كود PHP:if(NCC!=Time[0] && OrdersCloseEveryCandles==true && LastOrderPrice(OP_BUY)+Ask >=OpenAfter*2*points) {NCC=Time[0]; CloseAll();}
فيا تري ايه الحل يا استاذ جميل ؟؟؟
FX Hunter.mq4
- 06-09-2014, 12:04 PM #587
بالنسبة لتثبيت قيمة الهدف أو الأستوب وتثبيته تضع هذا الأمر في دالة OnInit كالتالي
كود PHP:ٍStoploss=OpenAfter *2;
Takeprofit=OpenAfter *2;
OpenAfter سيكون الأستوب والهدف تلقائياً ضعفها
- 06-09-2014, 12:21 PM #588
في دالة الأغلاق للشراء اذا كان محقق ربح المفروض ان يكون السعر الحالي اكبر من سعر فتح الصفقة وانت هنا جمعت الأثنين على بعض بالتأكيد سيكون اكبر وسيغلق حتى لو خسران .
ملاحظة ثانية امر الأغلاق في الدالة سيغلق الكل وانت تقريبا عايز تغلق الشراء فقط اذا كان صحيح فيلزم عمل دالة اغلاق بنوع الصفقة .
- 06-09-2014, 01:51 PM #589
- 06-09-2014, 02:04 PM #590
في الحقيقة يا استاذ جميل انا لم اهتم ان اعمل دالة لأغلاق الشراء ودالة لأغلاق البيع لأني افترض انه هناك دائما صفقة واحده في اتجاه واحد ولن يعمل الشراء اثناء عمل البيع او العكس ..
انا صححت الخطأ ووضعت ان يكون السعر الحالي اكبر من سعر افتتاح الصفقة + المسافة المحددة .. لكن للاسف نفس النتيجة
كود PHP:if(NCC!=Time[0] && OrdersCloseEveryCandles==true && Ask >= LastOrderPrice(OP_BUY) +OpenAfter*2*points) {NCC=Time[0]; CloseAll();}
if(NCC!=Time[0] && OrdersCloseEveryCandles==true && Bid <= LastOrderPrice(OP_SELL)-OpenAfter*2*points) {NCC=Time[0]; CloseAll();}
- 06-09-2014, 02:15 PM #591
انا عملت بنصيحتك يا استاذ جميل وقولت اشوف طلبات اعضاء المنتدي واتمرن ..
ولقيت فكرة تقريبا مشابهة للاكسبيرت المرفوع في المشاركة السابقة .. وده لينك الموضوع
https://forum.arabictrader.com/t205257.html
وابتديت عمله والعشم قاتلني .. على اساس اني تقريبا منفذ نفس الفكرة ..
لكن فوجئت انه لا يعلق صفقات الليمت من الاساس .. من الساعة 8 الصبح بعيد واذيد ومفيش نتيجة
انا حاسس اني هتجنن .. نفس الفكرة نفذتها وتعمل دون مشكلة .. طاب ليه هنا مش راضية تشتغل
الموضوع في امر التعليق ؟؟ ام في دالة الشراء والبيع الليمت ؟؟ مش عارف
SETS Expert V-1.mq4
- 06-09-2014, 02:23 PM #592
قرأت الموضوع والطلب غير واضح مطلوب شرح على شارتات وربنا يسهل
- 06-09-2014, 02:26 PM #593
- 06-09-2014, 02:30 PM #594
اخيرا ... الخطأ بأشارة + و- ... الحمد لله عديت المرحلة الاولي وسأتابع باقي المطلوب ..
لكن في نقطة اكيد هقف عندها يا استاذ جميل ..
ففي طلب العضو يقول انه يريد ادارة مالية ولنفترض مثلا انا 10% سيكون العقد الاول ب 2.5% والثاني ب 2.5% والثالث ب 5%
كده انا ممكن احددها اذاي اعمل اكتر من دالة للادارة المالية .. واضع 3 متغيرات يضع فيها نسبته من الحساب والا اعمل ايه ؟؟
SETS Expert V-1.mq4
- 06-09-2014, 03:02 PM #595
عادي ستجعل الأدرارة المالية 2.5 % بعدها ستعمل عداد للعقود اذا كان الثاني حيكون 2.5 ضرب 1 واذا كان الثالث أو اكبر سنضرب في 2 .
- 06-09-2014, 03:08 PM #596
اساتاذ جميل .. تبقي بص على المشاركات فوق الا بقت يامة يا استاذي ..
انا عارف انك زهقت مني .. وبتقول عليا تلميذ فاشل
بس استحملني لمدة سنة وان شاء الله هكون كويس .. ما تقلقش هي سنة مش اكتر
انا ضبطت الاكسبيرت حتي لا يعلق صفقات اكثر من واحدة
و عملت الجزئية الثانية وهي اغلاق العقود عند عودة السعر لسعر دخول الصفقة القبل الاخيرة
وهنا قلت بقي اظهر مواهبي واخد فرصتي
فعملت دالة المفروض انها تعود بسعر دخول الصفقة القبل الاخيرة
كود PHP:double BeforethelastOrderPrice(int type)
{
for(int i=OrdersTotal()-2; i>=0; i--)
{
if( OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo&&type==OrderType())
{
return(OrderOpenPrice());
}
}
return(0);
}
لكن كالعادة الاكسبيرت طلعلي لسانه وبقي بيفتح الصفقة ويغلقها على نفس سعرها .. وسابني اخسر الاسبيرد
.............
عشان كده سبتني من الموضوع ده وحطيت الشرط ان يكون السعر اكبر من سعر دخول الصفقة الاخيرة + المسافة بين العقود .. ولحد كده شغال تمام
بس ده هيتعارض معانا لو وضعنا لاحقا مسافات مختلفة بين العقود ؟؟ والا ايه رأيك ؟؟
SETS Expert V-1.mq4
- 06-09-2014, 03:13 PM #597
- 06-09-2014, 04:05 PM #598
- 06-09-2014, 11:42 PM #599كود PHP:
if(NCC!=Time[0] && OrdersCloseEveryCandles==true &&( Ask >= LastOrderPrice(OP_BUY) +(OpenAfter*2)*points)) {NCC=Time[0]; CloseAll();}
if(NCC!=Time[0] && OrdersCloseEveryCandles==true && ( Bid <= LastOrderPrice(OP_SELL)-(OpenAfter*2)*points)) {NCC=Time[0]; CloseAll();}
- 07-09-2014, 09:13 AM #600اختار احد الكودين وأيهم تراه مناسب أستخدمه ولاحظ كود حالة الشراء الرابح
كود PHP:
Ask-LastOrderPrice(OP_BUY)>=OpenAfter*2*points
وكود المقارنة في حالة البيع الرابح
كود PHP:
LastOrderPrice(OP_SELL)-Bid>=OpenAfter*2*points
كود PHP:
if(iTime(Symbol(),PERIOD_D1,0)>LastOrderOpnetime(OP_BUY) &&OrdersCloseEveryCandles&&Ask-LastOrderPrice(OP_BUY)>=OpenAfter*2*points) { Close_Type(OP_BUY);}
if(iTime(Symbol(),PERIOD_D1,0)>LastOrderOpnetime(OP_SELL)&&OrdersCloseEveryCandles&&LastOrderPrice(OP_SELL)-Bid>=OpenAfter*2*points) {Close_Type(OP_SELL);}
كود PHP:
if(Hour()==0 &&OrdersCloseEveryCandles&&Ask-LastOrderPrice(OP_BUY)>=OpenAfter*2*points) { Close_Type(OP_BUY);}
if(Hour()==0 &&OrdersCloseEveryCandles&&LastOrderPrice(OP_SELL)-Bid>=OpenAfter*2*points) {Close_Type(OP_SELL);}
ودالة الأغلاق
كود PHP:
void Close_Type(int type)
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNo && OrderType()==type)
{
if(OrderType()==OP_BUY ) bool as=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),30,Red);
if(OrderType()==OP_SELL ) bool as=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),30,Red);
}
}
return;
}