إلى خبراء برمجة الإكسبيرتات ... مطلوب كود
أخواني المبرمجين كما هو واضح من العنوان أحتاج إلى كود لتنفيذ عملية واحدة عند تحقق شرط معين ويتم إقفال العملية وفقا للأستوب لوز المحدد في المدخلات الخارجية ومن المهم أن لايقوم الإكسبيرت بفتح عملية آخرى غير الأولى حتى ولو ظل الشرط متحققاً
أحتاج مساعدتكم لاني بصراحة من اسبوع وانا قاعد اعدل وادور على هذا الكود وما طلعت بنتيجة
في إنتظار ردودكم أحبتي
رد: إلى خبراء برمجة الإكسبيرتات ... مطلوب كود
اقتباس:
المشاركة الأصلية كتبت بواسطة 4X Trader
أخواني المبرمجين كما هو واضح من العنوان أحتاج إلى كود لتنفيذ عملية واحدة عند تحقق شرط معين ويتم إقفال العملية وفقا للأستوب لوز المحدد في المدخلات الخارجية ومن المهم أن لايقوم الإكسبيرت بفتح عملية آخرى غير الأولى حتى ولو ظل الشرط متحققاً
أحتاج مساعدتكم لاني بصراحة من اسبوع وانا قاعد اعدل وادور على هذا الكود وما طلعت بنتيجة
في إنتظار ردودكم أحبتي
أنت تطلب اكسبرت كامل وهي متوفرة بكثرة واقرأ هذا الموضوع ففيه ما تريد وهو تعليمي:
https://forum.arabictrader.com/t68935.html
ولو عرضت ما لديك مما برمجته وذكرت هدفك وطلبت تصحيحه لكان أحسن.
ثم إن بقيت لديك بعد الإطلاع أسئلة فإسأل.
رد: إلى خبراء برمجة الإكسبيرتات ... مطلوب كود
اقتباس:
المشاركة الأصلية كتبت بواسطة ساق الجواء
أنت تطلب اكسبرت كامل وهي متوفرة بكثرة واقرأ هذا الموضوع ففيه ما تريد وهو تعليمي: https://forum.arabictrader.com/t68935.html ولو عرضت ما لديك مما برمجته وذكرت هدفك وطلبت تصحيحه لكان أحسن. ثم إن بقيت لديك بعد الإطلاع أسئلة فإسأل.
بصراحة عندي اكثر من أكسبيرت قاعد اعدل واسمكر فيه ومن هذه الإكسبيرتات إكسبيرت تقاطع الموفينج وفكرة التعديل عليه هي إضافة موفينج ثالث ... هذا الإكسبيرت قام ببرمجته الأخ اسامة وطرحه هنا في هذا المنتدى بإسم Basic Balance System
أما فكرة الإكسبيرت الجديد فهي لا زالت حبيسة مخيخي الأيسر :0023: وهي تعتمد على مؤشر CCI ولازالت طور التفكير ... لكن الكود المطلوب والذي من اجله فتحت هذا الموضوع فهو سيستخدم في كل الإكسبيرتات التي ساصممها أو أعدل عليها رغم إلمامي المتواضع في البرمجة
لا استغني عن مساعدتك ودعمك أخي ساق الجواء :0016:
رد: إلى خبراء برمجة الإكسبيرتات ... مطلوب كود
اقتباس:
المشاركة الأصلية كتبت بواسطة 4X Trader
بصراحة عندي اكثر من أكسبيرت قاعد اعدل واسمكر فيه ومن هذه الإكسبيرتات إكسبيرت تقاطع الموفينج وفكرة التعديل عليه هي إضافة موفينج ثالث ... هذا الإكسبيرت قام ببرمجته الأخ اسامة وطرحه هنا في هذا المنتدى بإسم Basic Balance System
أما فكرة الإكسبيرت الجديد فهي لا زالت حبيسة مخيخي الأيسر :0023: وهي تعتمد على مؤشر CCI ولازالت طور التفكير ... لكن الكود المطلوب والذي من اجله فتحت هذا الموضوع فهو سيستخدم في كل الإكسبيرتات التي ساصممها أو أعدل عليها رغم إلمامي المتواضع في البرمجة
لا استغني عن مساعدتك ودعمك أخي ساق الجواء :0016:
هذا كود اكسبرت بسيط يدخلك شراء أو بيعا بحسب إشارتك (يلزم إضافتها) ويخرجك إما بضرب نقطة وقف الخسارة أو بضرب نقطة جني الربح.
ليس فيه أمر إغلاق بموجب إشارة عكسية أو لسبب آخر وليس فيه وقف متحرك/ملاحقة الربح وليس فيه حساب اللوتات آليا إلخ.
كود:
//---------------------------------
#property copyright "Free"
#property link ""
//---------------------------------
extern int TakeProfit = 25;
extern int StopLose = 25;
extern double Lots = 1;
extern int MaxTrades=1;
extern int MagicNumber = 23671;
datetime timeprev=0;//Working only after a new candle.
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//------------------------------------------------------------------+
//| Working only at a new candle rather than at every tick |
//+------------------------------------------------------------------+
if(timeprev==Time[0])//Time[0] is time of the cuurent bar
return(0);
timeprev=Time[0];
//This means instead of working (ie moving TSL) after every tick, work only after
//a new candle.
//it makes testing faster and test profit results higher.
//It means you can use your code only once for each bar, usually first tick.
//Any other tick code doesn't work. Sometimes it is very usefull.
//Any action in start function afer this code will be performed once within the Bars
//regardless of the time you specify
//---------------
//----------------- signal to buy
if(enter your signal to buy here)
if(CountLongs()<MaxTrades)
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLose*Point,
Ask+TakeProfit*Point,"",MagicNumber,0,Green);
//---------------- signal to sell
if(nter your signal to by here)
if(CountShorts()<MaxTrades)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLose*Point,
Bid-TakeProfit*Point,"",MagicNumber,0,Red);
//---------------------------------
return(0);
} //end of start function
//+------------------------------------------------------------------+
//| counting open orders |
//+------------------------------------------------------------------+
int CountLongs()
{
int count=0;
int trade;
for(trade=OrdersTotal()-1;trade>=0;trade--)
{
OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol()|| OrderMagicNumber()!=MagicNumber)
continue;
if(OrderType()==OP_BUY)
count++;
}
return(count);
}
//--------------------------------
int CountShorts()
{
int count=0;
int trade;
for(trade=OrdersTotal()-1;trade>=0;trade--)
{
OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol()|| OrderMagicNumber()!=MagicNumber)
continue;
if(OrderType()==OP_SELL)
count++;
}
return(count);
}
//+-----------------
لاحظ الأسطر التالية مأخوذة من الكود وهي في أمكنة فيه متفرقة مقصودة تخص عدم تكرار الصفقة خلال الشمعة الواحدة:
كود:
datetime timeprev=0;//Working only after a new candle.
//------------------------------------------------------------------
if(timeprev==Time[0])//Time[0] is time of the cuurent bar
return(0);
timeprev=Time[0];
//This means instead of working (ie moving TSL) after every tick, work only after
//a new candle.
//it makes testing faster and test profit results higher.
//It means you can use your code only once for each bar, usually first tick.
//Any other tick code doesn't work. Sometimes it is very usefull.
//Any action in start function afer this code will be performed once within the Bars
//regardless of the time you specify
ولاحظ الأسطر التالية مأخوذة من الكود وهي في أمكنة فيه متفرقة مقصودة أيضا تخص عدم فتح أكثر من صفقة شراء واحدة أو صفقة بيع واحدة (لكن ممكن أن يفتح صفقتين مختلفتين أحدهما بيع والأخرى شراء):
كود:
extern int MaxTrades=1;
//------------------------------------------------------------------
if(CountLongs()<MaxTrades)
//------------------------------------------------------------------
if(CountShorts()<MaxTrades)
فإن أردت صفقة واحدة فقط إما بيع أو شراء فاعمل التالي:
كود:
extern int MaxTrades=1;
//------------------------------------------------------------------
if(CountLongs()+CountShorts()<MaxTrades)
//------------------------------------------------------------------
if(CountShorts()+CountLongs()<MaxTrades)
واعلم أن كل مبرمج يعبر عما يريد باسلوبه الخاص ولكن يصل لنفس النتيجة مما يحير المبتدئ.
رد: إلى خبراء برمجة الإكسبيرتات ... مطلوب كود
مشكور يا فتى نجد العذية ... ساعمل على أستخدام الكود في الإكسبيرت واعرض عليك الإكسبيرت لأي تعديل تراه مناسباً
تحياتي ياغالي :0031:
رد: إلى خبراء برمجة الإكسبيرتات ... مطلوب كود
اقتباس:
المشاركة الأصلية كتبت بواسطة ساق الجواء
فإن أردت صفقة واحدة فقط إما بيع أو شراء فاعمل التالي: كود:
extern int MaxTrades=1;
//------------------------------------------------------------------
if(CountLongs()+CountShorts()<MaxTrades)
//------------------------------------------------------------------
if(CountShorts()+CountLongs()<MaxTrades)
كيف ممكن إضافة الكود أعلاه لشرط التنفيذ كما في الأسفل ... هل تتم إضافته إضافة عادية أم هناك تعديل ؟؟؟ ... مع العلم انه تم تعريف MaxTrades في المدخلات الخارجية
كود:
if (((EMA15c<EMA25c && EMA15p>=EMA25p)||(EMA15c<EMA25c))){
OpenBuy();
return(0);
رد: إلى خبراء برمجة الإكسبيرتات ... مطلوب كود
اقتباس:
المشاركة الأصلية كتبت بواسطة 4X Trader
كيف ممكن إضافة الكود أعلاه لشرط التنفيذ كما في الأسفل ... هل تتم إضافته إضافة عادية أم هناك تعديل ؟؟؟ ... مع العلم انه تم تعريف MaxTrades في المدخلات الخارجية
كود:
if (((EMA15c<EMA25c && EMA15p>=EMA25p)||(EMA15c<EMA25c))){
OpenBuy();
return(0);
حبيبي أضفه كما تراه في كود الإكسبرت الكامل الذي وضعته لك. لا تكن عاجزا حتى عن التقليد.
كود:
if (((EMA15c<EMA25c && EMA15p>=EMA25p)||(EMA15c<EMA25c))){
if(CountShorts()+CountLongs()<MaxTrades)
OpenBuy();
return(0);
لاحظ أن عندك هنا قوسين زائدين لا داعي لهما.
1 مرفق
رد: إلى خبراء برمجة الإكسبيرتات ... مطلوب كود
اقتباس:
المشاركة الأصلية كتبت بواسطة ساق الجواء
حبيبي أضفه كما تراه في كود الإكسبرت الكامل الذي وضعته لك. لا تكن عاجزا حتى عن التقليد. كود:
if (((EMA15c<EMA25c && EMA15p>=EMA25p)||(EMA15c<EMA25c))){
if(CountShorts()+CountLongs()<MaxTrades)
OpenBuy();
return(0);
لاحظ أن عندك هنا قوسين زائدين لا داعي لهما.
مو عجز ياغالي بقدر ماهي إستشارة :0023:
عموما في المرفق الإكسبيرت اللي عدلت ... بس للأسف ينفذ اكثر من عملية في حال تحقق الشرط
اللي يصير انه بمجرد إغلاق صفقة فتح صفقة أخرى
المراد من الإكسبيرت هو فتح صفقة واحدة ويتم إغلاقها إما بضرب لوز او تحقيق الهدف او إشارة عكسية فقط
وماعليش تحملنا شوي
:0023::0023::0023::0023:
:0023::0023:
:0023:
رد: إلى خبراء برمجة الإكسبيرتات ... مطلوب كود
اقتباس:
المشاركة الأصلية كتبت بواسطة 4X Trader
ينفذ اكثر من عملية في حال تحقق الشرط
اللي يصير انه بمجرد إغلاق صفقة فتح صفقة أخرى
المراد من الإكسبيرت هو فتح صفقة واحدة ويتم إغلاقها إما بضرب لوز او تحقيق الهدف او إشارة عكسية فقط
:0023::0023::0023::0023:
:0023::0023:
:0023:
كلامك هنا متعارض وغير واضح.
المهم ما هي شروط دخولك وخروجك بالضبط؟ اكتبها بالعربية حتى أعدله لك بحسب ما تريد لا بحسب ما أجتهد.
رد: إلى خبراء برمجة الإكسبيرتات ... مطلوب كود
اقتباس:
المشاركة الأصلية كتبت بواسطة ساق الجواء
كلامك هنا متعارض وغير واضح.
المهم ما هي شروط دخولك وخروجك بالضبط؟ اكتبها بالعربية حتى أعدله لك بحسب ما تريد لا بحسب ما أجتهد.
مافيه اي تعارض ياغالي في كلامي :0023: .... التعارض هو في الإكسبيرت مو راضي يشتغل معي صح
الذي يقوم به الإكسبيرت حالياً هو فتح صفقة عند تحقق الشرط بتقاطع خطوط الموفنج الثلاث وعندما يتم إغلاق الصفقة عند نقطة التيك بروفيت وفي ظل إستمرار تحقق الشرط يقوم الإكسبيرت بفتح صفقة ثانية.
بينما الذي اريده من الإكسبيرت هو فتح صفقة واحدة فقط عند التقاطع لخطوط الموفنج ولايقوم بفتح أي صفقة أخرى حتى لو استمر تحقق الشرط ... وأي إغلاق للصفقة لابد أن يكون عند نقطة التيك بروفيت أو الأستوب لوز أو عند ظهور إشارة عكسية ( تقاطع عكسي)
ومشكور عزيزي .... والله يوفقك
1 مرفق
رد: إلى خبراء برمجة الإكسبيرتات ... مطلوب كود
اقتباس:
المشاركة الأصلية كتبت بواسطة 4X Trader
مافيه اي تعارض ياغالي في كلامي :0023: .... التعارض هو في الإكسبيرت مو راضي يشتغل معي صح
هو مجرد أله يحسب بحسب برمجتك. دائما اتهم نفسك فأي خلل تواجهه هو منك.
الذي يقوم به الإكسبيرت حالياً هو فتح صفقة عند تحقق الشرط بتقاطع خطوط الموفنج الثلاث
أشك أنه حتى يفعل ذلك ، فلم تعبر عن التقاطع (تراكب الثلاثة متوسطات) بطريقة صحيحة.
وعندما يتم إغلاق الصفقة عند نقطة التيك بروفيت وفي ظل إستمرار تحقق الشرط يقوم الإكسبيرت بفتح صفقة ثانية.
بينما الذي اريده من الإكسبيرت هو فتح صفقة واحدة فقط عند التقاطع لخطوط الموفنج ولايقوم بفتح أي صفقة أخرى حتى لو استمر تحقق الشرط .
هو الآن يفعل ذلك ولاحظ أن الفريم صغير. لاحظ كيفية برمجة شروط الدخول الآن وعدم استخدام الشمعة صفر.
.. وأي إغلاق للصفقة لابد أن يكون عند نقطة التيك بروفيت أو الأستوب لوز
هذه تركتها بحسب برمجتك
أو عند ظهور إشارة عكسية ( تقاطع عكسي)
هو الآن يفعل ذلك وقد كانت شروط الخروج ووظيفة الغغلاق خاطئة.
ومشكور عزيزي .... والله يوفقك
عدلت اشياء ولم أدقق على أشياء أخر