مشاهدة النسخة كاملة : سؤال برمجي
salamandal
26-04-2017, 10:27 AM
السلام عليكم
معظم الدوال المستعملة لاخذ الربح و غلق الصفقات تكون على الشكل التالي
}(if(AccountProfit()>=USD_Profit && Use_USD_Profit==true
{; ()CloseOrders
اي انها تغلق جميع الصفقات عند الوصول الى ربح محدد
كيف استطيع تعديل الشروط بحيث يكون اغلاق الصفقات كالتالي
يقوم الاكسبرت بحساب الربح المحقق من صفقات الشراء . اذا كانت أكبر أو تساوي USD_Profit يقوم باغلاق صفقات الشراء فقط
;( closeorders(OP_BUY
يقوم الاكسبرت بحساب الربح المحقق من صفقات البيع . اذا كانت أكبر أو تساوي USD_Profit يقوم باغلاق صفقات البيع فقط
;( closeorders(OP_SELL
اسلام العوامى
26-04-2017, 12:30 PM
السلام عليكم
معظم الدوال المستعملة لاخذ الربح و غلق الصفقات تكون على الشكل التالي
}(if(AccountProfit()>=USD_Profit && Use_USD_Profit==true
{; ()CloseOrders
اي انها تغلق جميع الصفقات عند الوصول الى ربح محدد
كيف استطيع تعديل الشروط بحيث يكون اغلاق الصفقات كالتالي
يقوم الاكسبرت بحساب الربح المحقق من صفقات الشراء . اذا كانت أكبر أو تساوي USD_Profit يقوم باغلاق صفقات الشراء فقط
;( closeorders(OP_BUY
يقوم الاكسبرت بحساب الربح المحقق من صفقات البيع . اذا كانت أكبر أو تساوي USD_Profit يقوم باغلاق صفقات البيع فقط
;( closeorders(OP_SELL
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، يتم عمل وظيفة خارجية لحساب مجموع ربح صفقات الاتجاه المحدد،،،
double Sym_Pro(int ty){
double cnt=0;
for(int xxi =0;xxi<OrdersTotal();xxi++){
if(OrderSelect(xxi,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==ty){
cnt = OrderProfit()+cnt;
}
}
}
return(cnt);
}
،،،ثم يتم استدعاء الوظيفة من خلال شرط المقارنة،،،
if(Sym_Pro(OP_BUY)>=USD_Profit && Use_USD_Profit==true){Close Buy}
if(Sym_Pro(OP_SELL)>=USD_Profit && Use_USD_Profit==true){Close Sell}
،،،تحياتي،،،
salamandal
26-04-2017, 04:08 PM
بارك الله فيك استاذ اسلام
ما شاء الله على الاجابة الحلوة
salamandal
27-04-2017, 01:27 PM
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، يتم عمل وظيفة خارجية لحساب مجموع ربح صفقات الاتجاه المحدد،،،
double Sym_Pro(int ty){
double cnt=0;
for(int xxi =0;xxi<OrdersTotal();xxi++){
if(OrderSelect(xxi,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==ty){
cnt = OrderProfit()+cnt;
}
}
}
return(cnt);
}
،،،ثم يتم استدعاء الوظيفة من خلال شرط المقارنة،،،
if(Sym_Pro(OP_BUY)>=USD_Profit && Use_USD_Profit==true){Close Buy}
if(Sym_Pro(OP_SELL)>=USD_Profit && Use_USD_Profit==true){Close Sell}
،،،تحياتي،،،
استاذ اسلام السطرين الاخيرين لم يعملا كما ينبغي وظهر خطأ في الجورنال
http://www9.0zz0.com/2017/04/27/13/880240172.jpg (https://www.0zz0.com)
وقد حاولت الالتفاف على هذا الخطأ بتغيير كود إغلاق الصفقات كالتالي
بالمناسبة لم اعرف طريقتك في نسخ ولصق الاكواد (لو عملت معروف وشرحتها) والطريقة العادية للنسخ و اللصق صعبة لانها تظهر بعض الاكواد مقلوبة لهذا سادرجها عل شكل صور
http://www12.0zz0.com/2017/04/27/13/741598975.jpg (https://www.0zz0.com)
وقد عمل الاكسبرت دون اخطاء لكنه يغلق صفقة واحدة فقط في الاتجاه و دون الوصول الى القيمة المحددة في USD_Profit
اعتقد انه باغلاق الصفقات الاخري يتحقق المطلوب
اليك الان كود الدالة التي استعملها لاغلاق الصفقات حسب الاتجاه
http://www13.0zz0.com/2017/04/27/13/395737467.jpg (https://www.0zz0.com)
كانت هذه الدالة في السابق تلتزم بالشروط .و تغلق الصفقات حسب الاتجاه بحيث استعملها لاغلاق الصفقات عند تشبع مؤشر RSI في الشراء او البيع
وعند وضعها بقوسين فارغين تغلق جميع صفقات البيع و الشراء لكن الان اصبحت تغلق صفقة واحدة فقط كما ذكرت سابقا
لو تفضلت استاذ اسلام و راجعت الاكواد لاعرف مكمن الخطأ
اسلام العوامى
27-04-2017, 01:34 PM
استاذ اسلام السطرين الاخيرين لم يعملا كما ينبغي وظهر خطأ في الجورنال
http://www9.0zz0.com/2017/04/27/13/880240172.jpg (https://www.0zz0.com)
وقد حاولت الالتفاف على هذا الخطأ بتغيير كود إغلاق الصفقات كالتالي
بالمناسبة لم اعرف طريقتك في نسخ ولصق الاكواد (لو عملت معروف وشرحتها) والطريقة العادية للنسخ و اللصق صعبة لانها تظهر بعض الاكواد مقلوبة لهذا سادرجها عل شكل صور
http://www12.0zz0.com/2017/04/27/13/741598975.jpg (https://www.0zz0.com)
وقد عمل الاكسبرت دون اخطاء لكنه يغلق صفقة واحدة فقط في الاتجاه و دون الوصول الى القيمة المحددة في USD_Profit
اعتقد انه باغلاق الصفقات الاخري يتحقق المطلوب
اليك الان كود الدالة التي استعملها لاغلاق الصفقات حسب الاتجاه
http://www13.0zz0.com/2017/04/27/13/395737467.jpg (https://www.0zz0.com)
كانت هذه الدالة في السابق تلتزم بالشروط .و تغلق الصفقات حسب الاتجاه بحيث استعملها لاغلاق الصفقات عند تشبع مؤشر RSI في الشراء او البيع
وعند وضعها بقوسين فارغين تغلق جميع صفقات البيع و الشراء لكن الان اصبحت تغلق صفقة واحدة فقط كما ذكرت سابقا
لو تفضلت استاذ اسلام و راجعت الاكواد لاعرف مكمن الخطأ
،،،اهلا بك اخي الفاضل ، اخر سطرين المقصود ب Close Buy و Close Sell هو امر او وظيفة الاغلاق فيجب انشاء وظيفة خارجية لاغلاق صفقات الشراء فقط ووظيفة اخرى لاغلاق صفقات البيع فقط،،،
void CloseBuyOrders()
{
for (int cnt = 0 ; cnt <= OrdersTotal()-1 ; cnt++)
{
bool result = false;
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol()&&OrderType()==OP_BUY&&OrderMagicNumber()==MagicNumber)
result = OrderClose(OrderTicket(),OrderLots(),Bid,3);
if(result)
cnt--;
}
}
void CloseSellOrders()
{
for (int cnt = 0 ; cnt <= OrdersTotal()-1 ; cnt++)
{
bool result = false;
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
if ( OrderSymbol()==Symbol()&&OrderType()==OP_SELL&&OrderMagicNumber()==MagicNumber)
result = OrderClose(OrderTicket(),OrderLots(),Ask,3);
if(result)
cnt--;
}
}
،،،بالنسبة لطريقة ادراج كود بالمشاركة فعن طريق الضغط على رمز الترس في اعدادات المشاركة وعند الوقوف عليه ستجد مكتوب "ادراج code"،،،
،،،تحياتي،،،
salamandal
27-04-2017, 04:43 PM
،،،بالنسبة لطريقة ادراج كود بالمشاركة فعن طريق الضغط على رمز الترس في اعدادات المشاركة وعند الوقوف عليه ستجد مكتوب "ادراج code"،،،
،،،تحياتي،،،
شكرا على كل شئ استاذ اسلام
بارك الله فيك
http://www2.0zz0.com/2017/04/27/16/298154101.gif (https://www.0zz0.com)
vBulletin® v3.8.8