النتائج 1 إلى 15 من 23
- 22-05-2012, 05:54 PM #1
عجزت واعلن استسلامي ..... ممكن مساعدو بليـــــــــــــــــــــز
السلام عليكم ورحمة الله
.
..
...
....
.....
......
.......
........
.........
..........
كود:double price2=NormalizeDouble((sellpriceaverage+buypriceaverage)/2,Digits); bool buymid=true; for ( x = OrdersTotal(); x >= 0; x--) { OrderSelect(x, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol() && OrderType() == OP_BUYSTOP && OrderOpenPrice()==price2 ) {buymid=false; break;} } if(buymid==true) {OrderSend(Symbol(), OP_BUYSTOP, lot, price2, 0, 0,0, "buymid", magic1, 0, Blue);}
عجزت وانا احاول ان اجد الخلل في هذا الكود
يعني اريد الامر يفتح مرة واحدة
ولكن دون جدوى
علما انها ليست اول مرة اعمل مثل هذا الكود
لكن هذه المرة لم يعمل ما هو الخلل رجاءا
لان صار لي اكثر من اسبوعين احاول بلا نتيجة
رجاءا هلب
- 22-05-2012, 05:56 PM #2
المشكلة ان الاكسبيرت يستمر في فتح الصفقات
ولا يتوقف بعد فتح اول صفقة كما هو مطلوب منه
- 22-05-2012, 05:57 PM #3
ن شاء الله مستر دولار يجيبها لانه ماشاء الله خ ط ي ر والله يوفقك وانت شوف حاول انك تتأكد من المسافات والفواصل والنقط يمكن فيه زيادة او نقصان فيها على حسب خبرتي في البرمجه هذا الي اقدر افيدك فيه وبإذن الله تنحل قريب ...
- 22-05-2012, 06:09 PM #4
عليكم السلام
يارجل خوفتني فكرت صارت شيئ لحسابك لاسمح الله
طالما برمجيه إن شاء الله يساعدونك استاذ مستير دولار وعمرو وباقي الاساتذه الافاضل
بتمنى لك التوفيق
- 22-05-2012, 06:38 PM #5
والله ياباشا اكتر واحد حيفيدك فى استفسارك هو مستر دولار ان شاء الله
وان شاء الله توصل لمبتغاك
تقبل تحياتي
- 22-05-2012, 06:43 PM #6
السلام عليكم
اظن ان الامر ليس بصعب
ولكن مستر دولار ممكن يعدل فى الاكسبرت ولكن لسرعة الاطلاع على الموضوع ممكن تكتبة فى منتدى الاكسبرتات او تطلب من المراقب نقلة
https://forum.arabictrader.com/f31.html
- 22-05-2012, 06:46 PM #7
- 22-05-2012, 06:50 PM #8
- 22-05-2012, 06:52 PM #9
السلام عليكم
ممكن يكون ناقص } غلق لدالة if جرب
- 22-05-2012, 06:52 PM #10
رد:عجزت واعلن استسلامي ..... ممكن مساعدو بليـــــــــــــــــــــز
تفظل
كود PHP:double price2=NormalizeDouble((sellpriceaverage+buypriceaverage)/2,Digits);
bool buymid=true;
for ( x = OrdersTotal(); x >= 0; x--)
{
OrderSelect(x, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderType() == OP_BUYSTOP && OrderOpenPrice()==price2 ) {buymid=false; break;}
}
if(buymid==true) {OrderSend(Symbol(), OP_BUYSTOP, lot, price2, 0, 0,0, "buymid", magic1, 0, Blue);buymid=false}
- 22-05-2012, 06:54 PM #11
تنفيد الدالة ادا buymid=true;
الخروج يكفي تغييير buymid=false;
لكن انتبه انك لازم تعيد قيمة buymid=true في اى مكان في الاكسبيرت تريد ان يعيد العمل على الكود
الخيار الثاني و هو ادا اردت تنفيد الامر مرة واحدة خلال عمل الاكسبيرت تضع الكود في ادالة init()
تحياتىآخر تعديل بواسطة المبرمج ، 22-05-2012 الساعة 07:00 PM
- 22-05-2012, 07:03 PM #12
شكرا لك اخي المبرمج لــــــــــــــــــــــــكن
انا فعلا عامل بداية الكود باي = ترو
لكن بعد اللوب لازم تصبح فالس
عموما فكرة جميلة ان تجعل القيمة فالس بعد فتح الامر
لكن عند بداية اللوب في التيك التالي راح تصبح ترو ومن ثم يتكرر الامر
يعني الفالس بتاعك كانها غير موجودة
شكرا جزيلا على المحاولة ومنتظر الحل منك اخي الكريم او من احد الاعضاء
شكرا لك ثانية
- 22-05-2012, 07:09 PM #13
رد:عجزت واعلن استسلامي ..... ممكن مساعدو بليـــــــــــــــــــــز
الحل الثاني موضح في الصورة
آخر تعديل بواسطة المبرمج ، 22-05-2012 الساعة 07:12 PM
- 22-05-2012, 07:13 PM #14
رد:عجزت واعلن استسلامي ..... ممكن مساعدو بليـــــــــــــــــــــز
كود PHP://-------------------------------------------------------------
// Etasoft Inc. Forex EA and Script Generator version 4.1 EA
//-------------------------------------------------------------
// Keywords: MT4, Forex EA builder, create EA, expert advisor developer
#property copyright "Copyright © 2011, Etasoft Inc. Forex EA Generator v4.1"
#property link "http://www.********erator.com/"
#include <stdlib.mqh>
#include <WinUser32.mqh>
// exported variables
extern double BuyLots5 = 0.1;
extern int BuyStoploss5 = 20;
extern int BuyTakeprofit5 = 30;
// local variables
double PipValue=1; // this variable is here to support 5-digit brokers
bool Terminated = false;
string LF = "\n"; // use this in custom or utility blocks where you need line feeds
int NDigits = 4; // used mostly for NormalizeDouble in Flex type blocks
int ObjCount = 0; // count of all objects created on the chart, allows creation of objects with unique names
int current = 0;
int init()
{
NDigits = Digits;
if (false) ObjectsDeleteAll(); // clear the chart
Comment(""); // clear the chart
}
// Expert start
int start()
{
if (Bars < 10)
{
Comment("Not enough bars");
return (0);
}
if (Terminated == true)
{
Comment("EA Terminated.");
return (0);
}
OnEveryTick1();
}
void OnEveryTick1()
{
if (true == false && false) PipValue = 10;
if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10;
IfOrderDoesNotExist2();
}
void IfOrderDoesNotExist2()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == 1)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}
if (exists == false)
{
BuyOrder5();
}
}
void BuyOrder5()
{
double SL = Ask - BuyStoploss5*PipValue*Point;
if (BuyStoploss5 == 0) SL = 0;
double TP = Ask + BuyTakeprofit5*PipValue*Point;
if (BuyTakeprofit5 == 0) TP = 0;
int ticket = -1;
if (true)
ticket = OrderSend(Symbol(), OP_BUY, BuyLots5, Ask, 4, 0, 0, "My Expert", 1, 0, Blue);
else
ticket = OrderSend(Symbol(), OP_BUY, BuyLots5, Ask, 4, SL, TP, "My Expert", 1, 0, Blue);
if (ticket > -1)
{
if (true)
{
OrderSelect(ticket, SELECT_BY_TICKET);
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));
}
}
else
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
}
int deinit()
{
if (false) ObjectsDeleteAll();
}
- 22-05-2012, 07:26 PM #15
شكرا لك مرة اخرى اخي المبرمج
تعبتك معاي
اخي الكريم واضح انك استخدمت برنامج مساعد في البرمجة انا لا استعمله ولا اعرف استخدامه
استعملت دالة افري تك
لكني استعمل لوب للبحث عن الامر لكني هنا اعطل الامر اعتمادا على السعر وليس على الماجك مثلا والله انا تعبت للوصول الى الخطأ
وانا عارف انه سيكون خطأ تافه (بس القاه لاني صراحة تعبت)
شكرة مرة اخرى واخرى