منتديات بورصات

منتديات بورصات (https://forum.borsaat.com/)
-   منتدى المؤشرات و الاكسبرتات (https://forum.borsaat.com/f14/)
-   -   تبادل الخبرات في برمجة MQL (https://forum.borsaat.com/t933685.html)

smowaled 08 - 04 - 2016 11:34 AM

تبادل الخبرات في برمجة MQL
 
بسم الله الرحمن الرحيم

مقدمة: بديت البرمجة بلغة BASIC على كمبيوتر صخر (يذكره الطيّبين) وأنتقلت إلى QBASIC على الدوس ثم السي على نظام VMS و UNIX والسي هي الأساس فأغلب الأنظمة كتبت بالسي أو شي مشتق منها ..أخذت البكالوريس هندسة كهربائية في أمريكا وسنحت الفرصة لأخذ مواد برمجة أختياري فدرست FORTRAN وPASCAL وسي بلس بلس وتعلمت الجافا وهي مشتقة من السي وتعلمت الـDelphi وهو مشتق من باسكال ..كما تعلمت عدة لغات أخرى منها لغة التجميع أو لغة الآلة وتعرف بأسمبلي ولقد قمت بعمل كراكز لأغلب العاب أبنائي ..كتبت عدة مقالات وtutorials في مواقع أنجليزية عن الحمايات والأنكربشنز .. بمعرف آخر طبعاً

المقدمة هذي لذكر نعمت الله عليّ ثم لتوضيح خلفيت البرمجة عندي فلي أكثر من عشرين سنة أبرمج بعدة لغات .. أنا مشترك في المنتدى منذ سنتين ولم أقم بفتح موضوع إلا عندما طلب أخي سمير وأرجو إلا يكون الأخير

آداب المشاركات في الموضوع:
ينبغي الترفع عن المشاركات الصبيانية كذكر لم يستطع برمجتها أحد من قبل أو لم يستطع عربي أو غربي حلها .. مازال في وسطنا العربي من يظن أن هذه عبارات أستفزازية يجد بها رد سريع .. لقد ترفّعت عن مواضيع في هذا القسم بسبب مشاركات مشابهة
ينبغي الصبر فأنا أعمل من 9 إلى 12 ساعة ثم هنالك وقت لأبنائي وهم الدنيا بالنسبة لي
ينبغي عدم طلب أكسبيرت أو مؤشر هنا .. أفتح موضوع مستقل ومشرف القسم سيقوم بالرد

الموضوع: هذا الموضوع لتبادل الخبرات في برمجة mql ولنرقى إلى مستوى أفضل بأذن الله

أبو إبراهيم

smowaled 08 - 04 - 2016 11:51 AM

رد: تبادل الخبرات في برمجة MQL
 
نبدأ بالمشاركة الأول :)

صاحب الموضوع هذا http://www.borsaat.com/vb/t933104.html طلب طريقة لحساب اللوت عند كل 100 .. أخونا سمير عمل المطلوب جزاه الله كل خير

هنالك طريقة أخرى وهي عمل المطلوب بطريقة حسابية ولكل 100

[PHP]
double getlots()
{
double lotz;
if(base100 > 0)
lotz = fmax(NormalizeDouble(floor(AccountBalance()/100)*base100,2),0.01);
else
lotz = Lots;
return(lotz);
}
[/PHP]في متغيير base100 سنضع اللوت المطلوب لكل 100 مثلاً 0.02 وتكون هي الأساس

في هذا الكود نقوم بتحول الحساب إلى مضاعفات المية ثم نحوّل الناتج إلى عدد صحيح ومن ثم نقوم بضربه بلوت الأساس .. simple

theatco 08 - 04 - 2016 11:54 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2086980)
بسم الله الرحمن الرحيم

مقدمة: بديت البرمجة بلغة BASIC على كمبيوتر صخر (يذكره الطيّبين) وأنتقلت إلى QBASIC على الدوس ثم السي على نظام VMS و UNIX والسي هي الأساس فأغلب الأنظمة كتبت بالسي أو شي مشتق منها ..أخذت البكالوريس هندسة كهربائية في أمريكا وسنحت الفرصة لأخذ مواد برمجة أختياري فدرست FORTRAN وPASCAL وسي بلس بلس وتعلمت الجافا وهي مشتقة من السي وتعلمت الـDelphi وهو مشتق من باسكال ..كما تعلمت عدة لغات أخرى منها لغة التجميع أو لغة الآلة وتعرف بأسمبلي ولقد قمت بعمل كراكز لأغلب العاب أبنائي ..كتبت عدة مقالات وtutorials في مواقع أنجليزية عن الحمايات والأنكربشنز .. بمعرف آخر طبعاً

المقدمة هذي لذكر نعمت الله عليّ ثم لتوضيح خلفيت البرمجة عندي فلي أكثر من عشرين سنة أبرمج بعدة لغات .. أنا مشترك في المنتدى منذ سنتين ولم أقم بفتح موضوع إلا عندما طلب أخي سمير وأرجو إلا يكون الأخير

آداب المشاركات في الموضوع:
ينبغي الترفع عن المشاركات الصبيانية كذكر لم يستطع برمجتها أحد من قبل أو لم يستطع عربي أو غربي حلها .. مازال في وسطنا العربي من يظن أن هذه عبارات أستفزازية يجد بها رد سريع .. لقد ترفّعت عن مواضيع في هذا القسم بسبب مشاركات مشابهة
ينبغي الصبر فأنا أعمل من 9 إلى 12 ساعة ثم هنالك وقت لأبنائي وهم الدنيا بالنسبة لي
ينبغي عدم طلب أكسبيرت أو مؤشر هنا .. أفتح موضوع مستقل ومشرف القسم سيقوم بالرد

الموضوع: هذا الموضوع لتبادل الخبرات في برمجة mql ولنرقى إلى مستوى أفضل بأذن الله

أبو إبراهيم


اهلا و سهلا بيك
صحيح أنا ليست لدي خبرة في البرمجة و ليست مجالي لكن حبيت أحييك و أرحب بيك

smowaled 08 - 04 - 2016 11:58 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة theatco (المشاركة 2086991)
اهلا و سهلا بيك
صحيح أنا ليست لدي خبرة في البرمجة و ليست مجالي لكن حبيت أحييك و أرحب بيك

الله يحييك وجمعة مباركة

محمد سلمان 08 - 04 - 2016 12:05 PM

رد: تبادل الخبرات في برمجة MQL
 
السلام عليكم ورحمة الله وبركاته
صباح الخير ابو ابراهيم وجمعه مباركه

انا ماعندي اي خلفيه بلغة البرمجه لاكن حبيت ان اشكرك على هذا الموضوع الممتاز ليستفيد منه من له هوايه البرمجة

متابع معاكم


smowaled 08 - 04 - 2016 12:11 PM

رد: تبادل الخبرات في برمجة MQL
 
وعليكم السلام ورحمة الله وبركاته
صباح النور والسرور أبو أحمد

سمير محمد ارمان 09 - 04 - 2016 02:21 PM

رد: تبادل الخبرات في برمجة MQL
 
السلام عليكم اخى الكربم أبو إبراهيم
الموضوع اكثر من رائع
جزاك الله كل خير
ارجو من كل من عنده خبره فى مجال البرمجه المشاركة فى الموضوع
ان شاء الله
يتم تثبيت الموضوع
تحياتى لكم

سمير محمد ارمان 11 - 04 - 2016 01:01 PM

رد: تبادل الخبرات في برمجة MQL
 
1 مرفق
اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2087517)
السلام عليكم اخى الكربم أبو إبراهيم
الموضوع اكثر من رائع
جزاك الله كل خير
ارجو من كل من عنده خبره فى مجال البرمجه المشاركة فى الموضوع
ان شاء الله
يتم تثبيت الموضوع
تحياتى لكم

اخى الكريم ابو ابراهيم
ارجو المتابعه فى الموضوع
الكل منتظر يتعلم من خبراتك الكبيره
انا اول من يريد التعلم
ارجو الاستمرار بدون توقف
ارجو من الجميع المشاركة من خبرتهم فى البرمجة
ممكن يكون فى كود شكله سهل او معروف عندك بس عند غيرك لا يعرفه ولم يسمع بيه من قبل
مثال
اخى الكريم ابو ابراهيم
عمل تكملة مؤشر انا لم استطيع عمله
لماذا ؟؟
عشان انا كنت اجهل هذا الكود
[PHP]WindowExpertName();[/PHP]المؤشر فى المرفقات لمن يريد المراجعه
عشان كده طلبت عمل هذا الموضوع
وشكرا لكل من يشارك
تحياتى

smowaled 11 - 04 - 2016 07:57 PM

رد: تبادل الخبرات في برمجة MQL
 
فاهم عليك أخي سمير ... عند النظر في أي مشكلة أقوم بضع الحل ثم أبحث عن الدوال المناسبة لفكرة الحل فأستخدمت الدالة المذكورة مثلا لأن الحل كان يتطلب معرفة أسم الملف

سأقوم أن شاء الله بمراجعة بعض الأكود ووضع ماهو مفيد حتى لو كان بيسط

سمير محمد ارمان 12 - 04 - 2016 02:09 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2088620)
فاهم عليك أخي سمير ... عند النظر في أي مشكلة أقوم بضع الحل ثم أبحث عن الدوال المناسبة لفكرة الحل فأستخدمت الدالة المذكورة مثلا لأن الحل كان يتطلب معرفة أسم الملف

سأقوم أن شاء الله بمراجعة بعض الأكود ووضع ماهو مفيد حتى لو كان بيسط

متابع معك ان شاء الله
تحياتى

smowaled 13 - 04 - 2016 11:23 AM

رد: تبادل الخبرات في برمجة MQL
 
1 مرفق
دالة I***pertEnabled تستخدم لمعرفة إذا المنصة تسمح بأستخدام الأكسبيرت أم هي في وضعية الـ Disable ... توي أستخدمتها للرد على أحد المواضيع في القسم :14:

دالة SendMessage وأقصد هنا SendMessageA وتستخدم لأرسال أوامر
اكسيبرت لايقاف التداول الالى على الحساب!

سمير محمد ارمان 13 - 04 - 2016 12:42 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2089698)
دالة I***pertEnabled تستخدم لمعرفة إذا المنصة تسمح بأستخدام الأكسبيرت أم هي في وضعية الـ Disable ... توي أستخدمتها للرد على أحد المواضيع في القسم :14:

دالة SendMessage وأقصد هنا SendMessageA وتستخدم لأرسال أوامر

السلام عليكم
طيب ما هى الاستفاده من هذه الدوال
ولك الشكر والتقدير
تحياتى لك
[PHP]#include <WinUser32.mqh>
#include <stdlib.mqh>

#import "user32.dll"
int GetParent(int hWnd);
#import [/PHP]

سمير محمد ارمان 13 - 04 - 2016 12:47 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2089698)
دالة I***pertEnabled تستخدم لمعرفة إذا المنصة تسمح بأستخدام الأكسبيرت أم هي في وضعية الـ Disable ... توي أستخدمتها للرد على أحد المواضيع في القسم :14:

دالة SendMessage وأقصد هنا SendMessageA وتستخدم لأرسال أوامر

سؤال ثانى
كيف يتم استخدام هذا الاكسبيرت
وماهى نتائج التجربه
تحياتى

smowaled 13 - 04 - 2016 07:28 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2089748)
السلام عليكم
طيب ما هى الاستفاده من هذه الدوال
ولك الشكر والتقدير
تحياتى لك
[PHP]#include <WinUser32.mqh>
#include <stdlib.mqh>

#import "user32.dll"
int GetParent(int hWnd);
#import [/PHP]

جميل .. أول جملتين هي لشمل أو ضم المكتبتين للأكسبيرت وفمثلاً مكتبة stdlib أستخدمها في أغلب الأحيان عشان أستخدم دالة ErrorDescription ففي هذا المثال مالها داعي بس جرت العادة عندي على أستخدام الدالة المذكورة فلهذا أغلب ما أكتب يحوي هذه المكتبة
بالنسبة لمكتبة WinUser32 ضميتها لأخذ دالة SendMessageA

جملة import user32 هذي لأستخدام دالة GetParent والتي لم تكن معرفة في مكتبة WinUser32 الموجودة في كومبيوتري

هذي الدوال تسمى WinAPI أو Windows API وهي دوال للتعامل مع نظام الوندوز وبرامجه .. ويمكن أستعمالها في أغلب اللغات البرمجية

smowaled 13 - 04 - 2016 07:38 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2089749)
سؤال ثانى
كيف يتم استخدام هذا الاكسبيرت
وماهى نتائج التجربه
تحياتى

ما قد أستخدمته .. كتبته اليوم لموضوع أخونا أحمد .. بس نفض الغبار عن دوال WinAPI عندي وذكرني بأيام WinSpy و Spy++ لاسترجاع الـ Windows Handle

ونستطيع أستخدام الأكسبيرت مثلاً لوقف التداول في المنصة في وقت معين :) طبعا بعد أضافة كود الوقت

mohamed982 13 - 04 - 2016 08:19 PM

رد: تبادل الخبرات في برمجة MQL
 
موضوع رائع وفي وقته
طيب انا عايز استعمل الدالتين دول من دوال الـ User32 بما انك على علم بالـ c و MQL قولنا ازاى نترجم الدالتين دول لل mql
[PHP]
HWND CreateWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HANDLE hInstance,
PVOID lpParam
);
[/PHP]

[PHP]
ATOM WINAPI RegisterClass(
_In_ const WNDCLASS *lpWndClass
);

[/PHP]

انا حاولت اعملهم بس للاسف بيظهرلي ايرور كمثال
[PHP]
#define WS_CHILD 1
#import "User32.dll"
int CreateWindow( string lpClassName,string lpWindowName,int dwStyle, int x, int y, int nWidth, int nHeight,int hWndParent,int hMenu, int hInstance, int lpParam );
int RegisterClass (const string lpWndClass);
#import

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+


//----------------------------------------------
int OnInit()
{
//--- indicator buffers mapping
int R=RegisterClass("MyClass");
if(R>0){Print("Successfully Registered New Class");}else{Print("Class Registeration Falied");}

//-
return(INIT_SUCCEEDED);
}
[/PHP]

بيظهلي الخطا ده ولو جربت اي فانكشن تانيه برده بيظهرلي الخطا ده
http://www.borsaat.com/vb/uploaded/5...1460564346.png

TREND_SEEKER 13 - 04 - 2016 08:24 PM

رد: تبادل الخبرات في برمجة MQL
 
موضوع بدايته قويه
موفق أخي أبو ابراهيم

smowaled 13 - 04 - 2016 10:08 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة mohamed982 (المشاركة 2090011)
موضوع رائع وفي وقته
طيب انا عايز استعمل الدالتين دول من دوال الـ User32 بما انك على علم بالـ c و MQL قولنا ازاى نترجم الدالتين دول لل mql
[PHP]
HWND CreateWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HANDLE hInstance,
PVOID lpParam
);
[/PHP][PHP]
ATOM WINAPI RegisterClass(
_In_ const WNDCLASS *lpWndClass
);

[/PHP]انا حاولت اعملهم بس للاسف بيظهرلي ايرور كمثال
[PHP]
#define WS_CHILD 1
#import "User32.dll"
int CreateWindow( string lpClassName,string lpWindowName,int dwStyle, int x, int y, int nWidth, int nHeight,int hWndParent,int hMenu, int hInstance, int lpParam );
int RegisterClass (const string lpWndClass);
#import

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+


//----------------------------------------------
int OnInit()
{
//--- indicator buffers mapping
int R=RegisterClass("MyClass");
if(R>0){Print("Successfully Registered New Class");}else{Print("Class Registeration Falied");}

//-
return(INIT_SUCCEEDED);
}
[/PHP]بيظهلي الخطا ده ولو جربت اي فانكشن تانيه برده بيظهرلي الخطا ده

عشان تستخدم دوال مكتبة ما لابد من معرفة أسم الدالة في الصحيح في داخل المكتبة ... فمثلاً
لا يوجد دالة RegisterClass في User32.dll أنما يوجد
RegisterClassA
RegisterClassW
RegisterClas***A
RegisterClas***W

أيضاً لايوجد CreateWindow أنما يوجد
CreateWindowExA
CreateWindowExW

الدوال هنا أما ANSI ونستخدم A أو Unicode ونستخدم W

smowaled 13 - 04 - 2016 10:14 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة TREND_SEEKER (المشاركة 2090012)
موضوع بدايته قويه
موفق أخي أبو ابراهيم

أن شاء الله بالتعاون مع بعض نصل لمستوى أفضل

سمير محمد ارمان 14 - 04 - 2016 12:40 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2089998)
ما قد أستخدمته .. كتبته اليوم لموضوع أخونا أحمد .. بس نفض الغبار عن دوال WinAPI عندي وذكرني بأيام WinSpy و Spy++ لاسترجاع الـ Windows Handle

ونستطيع أستخدام الأكسبيرت مثلاً لوقف التداول في المنصة في وقت معين :) طبعا بعد أضافة كود الوقت

شكرا على التوضيح
طيب الان فى كود ثانى
منه ممكن نشغل برنامج التداول من جديد
بمعنى
الان يوجد كود اغلاق برنامج التداول
فى كود تانى ممكن يرجعه يعمل من جديد على حسب شرط معين
تحياتى لك

smowaled 14 - 04 - 2016 02:23 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2090467)
شكرا على التوضيح
طيب الان فى كود ثانى
منه ممكن نشغل برنامج التداول من جديد
بمعنى
الان يوجد كود اغلاق برنامج التداول
فى كود تانى ممكن يرجعه يعمل من جديد على حسب شرط معين
تحياتى لك

نفس الكود يشغل البرنامج ... لأنك هنا تستخدم Ctrl+E .. غير الشرط وأستخدمه راح يشتغل

سمير محمد ارمان 14 - 04 - 2016 03:58 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2090532)
نفس الكود يشغل البرنامج ... لأنك هنا تستخدم Ctrl+E .. غير الشرط وأستخدمه راح يشتغل

هههههه
لا ياعم غير انت
انا معرفش
ههههههههه :grin:
:rose::rose::rose:

Rock 15 - 04 - 2016 10:40 PM

رد: تبادل الخبرات في برمجة MQL
 
شيء جميل منك ياغالى
وانا مهتم جدا بتعلم اللغة بالوقت الحالى
ياريت ترفق الدروس اللى تعلمت منها اللغة
ومتابعه
واتمنالك واتمنى لمتابعيك التوفيق

smowaled 16 - 04 - 2016 12:13 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Rock (المشاركة 2091370)
شيء جميل منك ياغالى
وانا مهتم جدا بتعلم اللغة بالوقت الحالى
ياريت ترفق الدروس اللى تعلمت منها اللغة
ومتابعه
واتمنالك واتمنى لمتابعيك التوفيق

هههههههههه ... درست السي بلس بلس عام 1996 في الجامعة وما أدري فين كتابه وإذا تقصد MQL فهذي ما تحتاج دراسة بالنسبة لي لأنها أصلا مشتقه من سي بلس بلس .. إذا بتتعلم صح أبدأ بلغة أساس مثل سي أو دلفي ثم البقية مجرد أختلاف syntax أو صيغة برمجيه

تعلمت أصيغ برامج mql من [عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط! اضغط هنا للتسجيل...] فهذا المكان فيه الـreference حتى التحديث أن وجد
إذا بتتعلم سي فهذا [عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط! اضغط هنا للتسجيل...] للكاتب Herbert Schildt إلى يومنا هذا موجود عندي في مكتبة البيت وأرجع إليه في شرح لأغلب دوال السي والسي بلس بلس

بالتوفيق

smowaled 16 - 04 - 2016 12:53 AM

رد: تبادل الخبرات في برمجة MQL
 
دالة لحساب الـ DST أو Daylight Saving Time

[PHP]
bool EuropeanDST(int year, datetime& DST_Start, datetime& DST_End) {
if (year < 1996)
{ Print ("EuropeanDST(): Invalid year."); return (false); }

int DST_start_dom = 0, DST_end_dom = 0;
DST_start_dom = 31 - MathMod((4 + MathFloor(5*year/4)), 7);
DST_end_dom = 31 - MathMod((1 + MathFloor(5*year/4)), 7);
DST_Start = StrToTime(StringConcatenate(year, ".03.01")) + ((DST_start_dom - 1) * 86400) + 3600; // last Sunday in March
DST_End = StrToTime(StringConcatenate(year, ".10.01")) + ((DST_end_dom - 1) * 86400) + 7200; // last Sunday in October

return (true);
}

[/PHP]مفيدة في معرفة وقت الـ DST لأي سنة

abo_samar 16 - 04 - 2016 04:03 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2091407)
هههههههههه ... درست السي بلس بلس عام 1996 في الجامعة وما أدري فين كتابه وإذا تقصد MQL فهذي ما تحتاج دراسة بالنسبة لي لأنها أصلا مشتقه من سي بلس بلس .. إذا بتتعلم صح أبدأ بلغة أساس مثل سي أو دلفي ثم البقية مجرد أختلاف syntax أو صيغة برمجيه

تعلمت أصيغ برامج mql من http://docs.mql4.com فهذا المكان فيه الـreference حتى التحديث أن وجد
إذا بتتعلم سي فهذا الكتاب للكاتب Herbert Schildt إلى يومنا هذا موجود عندي في مكتبة البيت وأرجع إليه في شرح لأغلب دوال السي والسي بلس بلس

بالتوفيق

السلام عليكم ورحمة الله وبركاته
بارك الله فيك اخى ابو ابراهيم على هذه المبادره
حاليا بدرس #C فما رئيك اكمل به ام ابدأ ب ++C

سمير محمد ارمان 16 - 04 - 2016 12:16 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2090532)
نفس الكود يشغل البرنامج ... لأنك هنا تستخدم Ctrl+E .. غير الشرط وأستخدمه راح يشتغل

اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2090602)
هههههه
لا ياعم غير انت
انا معرفش
ههههههههه :grin:
:rose::rose::rose:

السلام عليكم
ارجو كتابة كود التشغيل
ولك الشكر والعرفان
تحياتى

smowaled 16 - 04 - 2016 01:38 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة abo_samar (المشاركة 2091450)
السلام عليكم ورحمة الله وبركاته
بارك الله فيك اخى ابو ابراهيم على هذه المبادره
حاليا بدرس #C فما رئيك اكمل به ام ابدأ ب ++C

وعليكم السلام ورحمة الله وبركاته .. أكمل بـ C sharp فهي قريبة جداً من C++ وميكرسوفت تدفع بقوة على تطوير برمجيات دوت نت وأهمها سي شارب .. حتى أن ميكرسوفت قامت بعمل مشروع لتسهيل أستخدام دوت نت على الأنظمة الأخرى
[عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط! اضغط هنا للتسجيل...] وحتى عمل Apps لويندوز 8 أو 10 ستجد أن سي شارب مناسبة جداً

لمن يريد العمل كمبرمج لشركات ينبغي تعمل دوت نت ولكن للهواه أمثالي فدوت نت لا تملك أي أضافة بالعكس لن يستطيع الدوت نت عمل Low level driver أو التعامل مع الـ Kernel APIs فهو يحتاج لعمل wrapper .. وإذا أردت برنامج يكون أستخدام الميموري قليل فالسي أفضل من الأثنين

بالنسبة لـ Mql فهي أقرب لسي بلس بلس من سي شارب

هذا والله أعلم

smowaled 16 - 04 - 2016 01:56 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2091492)
السلام عليكم
ارجو كتابة كود التشغيل
ولك الشكر والعرفان
تحياتى

وعليكم السلام ورحمة الله وبركاته
أخي سمير أدري أنك مشغول مع طلبات الأخوة وما تلحق لكن لازم تأخذ وقت لنفسك تتعلم وتجرب

في الكود السابق أمسح
[PHP]if(I***pertEnabled())[/PHP]

وشغل الأكسبيرت شوف أيش يصير

سمير محمد ارمان 16 - 04 - 2016 03:16 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2091520)
وعليكم السلام ورحمة الله وبركاته
أخي سمير أدري أنك مشغول مع طلبات الأخوة وما تلحق لكن لازم تأخذ وقت لنفسك تتعلم وتجرب

في الكود السابق أمسح
[PHP]if(I***pertEnabled())[/PHP]وشغل الأكسبيرت شوف أيش يصير

الشكر والتقدير لك اخى الكريم
وشكرا على النصيحه
يكون الكود كده
وشكرا لك
[PHP] SendMessageA((GetParent(GetParent(GetParent(Window Handle(Symbol(), 0))))), 0x111, 0x80FC, 0); [/PHP]

smowaled 16 - 04 - 2016 03:24 PM

رد: تبادل الخبرات في برمجة MQL
 
صح كذا .. جربه في الباك تست وشوف :thumb_yello:

سمير محمد ارمان 16 - 04 - 2016 03:34 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2091548)
صح كذا .. جربه في الباك تست وشوف :thumb_yello:

الشكر والتقدير لك
تحياتى

سمير محمد ارمان 17 - 04 - 2016 01:43 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2091416)
دالة لحساب الـ DST أو Daylight Saving Time

[PHP]
bool EuropeanDST(int year, datetime& DST_Start, datetime& DST_End) {
if (year < 1996)
{ Print ("EuropeanDST(): Invalid year."); return (false); }

int DST_start_dom = 0, DST_end_dom = 0;
DST_start_dom = 31 - MathMod((4 + MathFloor(5*year/4)), 7);
DST_end_dom = 31 - MathMod((1 + MathFloor(5*year/4)), 7);
DST_Start = StrToTime(StringConcatenate(year, ".03.01")) + ((DST_start_dom - 1) * 86400) + 3600; // last Sunday in March
DST_End = StrToTime(StringConcatenate(year, ".10.01")) + ((DST_end_dom - 1) * 86400) + 7200; // last Sunday in October

return (true);
}

[/PHP]مفيدة في معرفة وقت الـ DST لأي سنة

جزاك الله كل خير اخى الكريم
طيب لو عايز اعرف توقيت يوم معين واسبوع معين وشهر معين وسنه معين
عشان مثلا اعرف سعر افتتاح او اغلاق
فى هذا التوقيت
تحياتى لك

smowaled 17 - 04 - 2016 02:16 PM

رد: تبادل الخبرات في برمجة MQL
 
ما فهمت السوال .. ممكن تعطي مثال

سمير محمد ارمان 17 - 04 - 2016 03:00 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2091894)
ما فهمت السوال .. ممكن تعطي مثال

مثال
عايز سعر افتتاح شمعة شهر 1 سنة 2015
عايز سعر اغلاق شمعة شهر 12 سنة 2015
هنا التحكم فى اختيار من اليوم الى السنة
تحياتى لك

smowaled 17 - 04 - 2016 03:15 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2091918)
مثال
عايز سعر افتتاح شمعة شهر 1 سنة 2015
عايز سعر اغلاق شمعة شهر 12 سنة 2015
هنا التحكم فى اختيار من اليوم الى السنة
تحياتى لك

تستخدم دالة iBarShift لأسترجاع قيمة البار في ذلك الوقت والزمان ثم تستخدم دالة Open/iOpen لمعرفة سعر الأفتتاح و دالة Close/iClose لمعرفة سعر الأغلاق

بالتوفيق

سمير محمد ارمان 17 - 04 - 2016 06:21 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2091932)
تستخدم دالة iBarShift لأسترجاع قيمة البار في ذلك الوقت والزمان ثم تستخدم دالة Open/iOpen لمعرفة سعر الأفتتاح و دالة Close/iClose لمعرفة سعر الأغلاق

بالتوفيق

شكرا على المساعده
لم يريد مراجعة الكود على هذا الرابط
تحياتى

dr_forex 26 - 04 - 2016 01:56 PM

رد: تبادل الخبرات في برمجة MQL
 
السلام عليكم
الاخ smowaled المحترم احييك على مجهودك الرائع ومساعدة كل ما يطلب المساعدة واعنك الله على فعل الخير
لي سؤال هل فى امكانيه عمل خاصية او كود للاكسبيرت بحيث استطيع ان اتحكم فى وقت بداية ونهاية عمله
كمثال اريد جعل نسخه من الاكسبيرت تعمل لمدة شهر فقط ولكن ليس لدي تاريخ معين لبدء عملها فهل ممكن جعل بداية العمل هي اول اوردر يتم فتحه من خلال الاكسبيرت وبعد 30 يوم تتوقف النسخه عن العمل
لعمل نسخات محددة الفترة على سبيل المثال نسخه تعمل لمدة شهر ونسخه تعمل ثلاث شهور حسب ما احتاج فترة عملها فهل فى امكانيه لعمل مثل هذة الخاصية فى برمجة الاكسبيرت
مع العلم ان الاكسبيرت تم تصميمه بواسطه الاستاذ والزميل الفاضل العبقري سمير ارمان
ومع تحياتي لكل المجتهدين فى هذا المنتدى العظيم

mohamed982 26 - 04 - 2016 03:39 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة dr_forex (المشاركة 2098230)
السلام عليكم
الاخ smowaled المحترم احييك على مجهودك الرائع ومساعدة كل ما يطلب المساعدة واعنك الله على فعل الخير
لي سؤال هل فى امكانيه عمل خاصية او كود للاكسبيرت بحيث استطيع ان اتحكم فى وقت بداية ونهاية عمله
كمثال اريد جعل نسخه من الاكسبيرت تعمل لمدة شهر فقط ولكن ليس لدي تاريخ معين لبدء عملها فهل ممكن جعل بداية العمل هي اول اوردر يتم فتحه من خلال الاكسبيرت وبعد 30 يوم تتوقف النسخه عن العمل
لعمل نسخات محددة الفترة على سبيل المثال نسخه تعمل لمدة شهر ونسخه تعمل ثلاث شهور حسب ما احتاج فترة عملها فهل فى امكانيه لعمل مثل هذة الخاصية فى برمجة الاكسبيرت
مع العلم ان الاكسبيرت تم تصميمه بواسطه الاستاذ والزميل الفاضل العبقري سمير ارمان
ومع تحياتي لكل المجتهدين فى هذا المنتدى العظيم

عايز الطريقة الصعبة ولا السهلة ؟ 😃
اقولك الاول الطريقة الصعبة عن طريق رمكتبات الدب الل الل في الويندوز اللي بتتعامل مع الريجيستري هتحط متغير فب الريجيستري تغرفه علي انه تاريخ بداية التشغيل وفانكشن جوع كود الاكسبيرت بتقارن الفبمة دي بالتاريخ الحالي اذا اكبر من المدة الحددة بتعمل init_failed
اللي فوق دي فكرة الطريقة الصعبة وهي الاصح بالمناسبة

اقولك فكرة للطريقة السهلة لا هقولك اتنين الاولي ودي الاقوي ، اول ما الاكسبيرت يفتح امر انترهتمون معرف ثابت محدش يعرفه غيرك قيمته كام جوه الكود واول ما الاكسبيرت يفتح امر بيحط قيمة الثابت كتعليق ، وتحط فانكشن بتعمل ريتيرنو لتاريخ فتح الصفقة جوه الهيستوري والبحث عن طريق القيمة جوه التعليق وترجع اقدم تاريخ ، بعد كده واضحة فانكشن بتقارن اول تاريخ مع الفترة المحددة وليكن ٩٠ يوم بالتاريخ الحالي وهكدا ،

الفكرة الثانية واشك انها تنضرب بسهولة من اي حد يعرف الجلولال فيريابل انك تعرف متغير جلوبات وتحط فيه تاريخ بداية التشغيل وتعمل مقارنة زي باقي الطرق

خد كمان واحدة ، خلي الكود يعمل ملف باول تاريخ ويقارنه بس برده ممكن يضرب لانواي حد ممكن يرح لمكان الملف ويغير اللي جواه مانيوا

لو عايز اعملك صبغة للكود اعملهالك بس افضي شوية

Qadri 27 - 04 - 2016 01:16 PM

رد: تبادل الخبرات في برمجة MQL
 
السلام عليكم ورحمة الله
استاذ smowaled شكرا على هذا الموضوع المفيد

هل يحق للمبتدئين امثالى(ذوى الخلفية الصفرية فى البرمجة) طرح اسئلتهم الساذجة فى هذا الموضوع؟

dr_forex 27 - 04 - 2016 09:34 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة mohamed982 (المشاركة 2098273)
عايز الطريقة الصعبة ولا السهلة ؟ 😃
اقولك الاول الطريقة الصعبة عن طريق رمكتبات الدب الل الل في الويندوز اللي بتتعامل مع الريجيستري هتحط متغير فب الريجيستري تغرفه علي انه تاريخ بداية التشغيل وفانكشن جوع كود الاكسبيرت بتقارن الفبمة دي بالتاريخ الحالي اذا اكبر من المدة الحددة بتعمل init_failed
اللي فوق دي فكرة الطريقة الصعبة وهي الاصح بالمناسبة

اقولك فكرة للطريقة السهلة لا هقولك اتنين الاولي ودي الاقوي ، اول ما الاكسبيرت يفتح امر انترهتمون معرف ثابت محدش يعرفه غيرك قيمته كام جوه الكود واول ما الاكسبيرت يفتح امر بيحط قيمة الثابت كتعليق ، وتحط فانكشن بتعمل ريتيرنو لتاريخ فتح الصفقة جوه الهيستوري والبحث عن طريق القيمة جوه التعليق وترجع اقدم تاريخ ، بعد كده واضحة فانكشن بتقارن اول تاريخ مع الفترة المحددة وليكن ٩٠ يوم بالتاريخ الحالي وهكدا ،

الفكرة الثانية واشك انها تنضرب بسهولة من اي حد يعرف الجلولال فيريابل انك تعرف متغير جلوبات وتحط فيه تاريخ بداية التشغيل وتعمل مقارنة زي باقي الطرق

خد كمان واحدة ، خلي الكود يعمل ملف باول تاريخ ويقارنه بس برده ممكن يضرب لانواي حد ممكن يرح لمكان الملف ويغير اللي جواه مانيوا

لو عايز اعملك صبغة للكود اعملهالك بس افضي شوية

جزاك الله كل خير

smowaled 28 - 04 - 2016 11:20 AM

رد: تبادل الخبرات في برمجة MQL
 
أولا أشكر الأخ محمد على المشاركة القيمة جزاه الله كل خير ... وعندي بعض التصحيح

اقتباس:

المشاركة الأصلية كتبت بواسطة mohamed982 (المشاركة 2098273)
اقولك الاول الطريقة الصعبة عن طريق رمكتبات الدب الل الل في الويندوز اللي بتتعامل مع الريجيستري هتحط متغير فب الريجيستري تغرفه علي انه تاريخ بداية التشغيل وفانكشن جوع كود الاكسبيرت بتقارن الفبمة دي بالتاريخ الحالي اذا اكبر من المدة الحددة بتعمل init_failed
اللي فوق دي فكرة الطريقة الصعبة وهي الاصح بالمناسبة

العبارة هذي غير صحيحة فالكتابة للريجستري ليست الأصح ... هي تشبة الـ Global Variablesغير أن الـGlobal Variablesلاتحتاج permissions أوتصاريح .. ونستطيع أن نكتب إلى الريجستري عن طريق الدوال

[PHP]
RegCreateKeyEx
RegOpenKeyEx
RegSetValueEx
RegQueryValueEx
RegCloseKey
[/PHP]
والموجودة في مكتبة Advapi32.dll ... مع مراعاة أن الدوال الأربعة الأول تحتاج إضافة A للـANSI وW للـUnicode
ولو بحث في النت عن أكسبيرت يستخدم الريجستري فلن تجد ... ببساطة أحد الأسباب الرئيسية الـ permissions أو الـaccess فالميتاتريدر نفسه لايملك تصريح على ملفات النظام والسبب الآخر وجود الـGlobal Variables فهي تستطيع القيام بحفظ المتغييرات مثل الريجستري .. وعيب الطريقتين أن أي شخص يستطيع أن يمسح القيمة المحفوظة ويعمل reset للتاريخ كما ذكر أخي محمد


اقتباس:

المشاركة الأصلية كتبت بواسطة mohamed982 (المشاركة 2098273)
الفكرة الثانية واشك انها تنضرب بسهولة من اي حد يعرف الجلولال فيريابل انك تعرف متغير جلوبات وتحط فيه تاريخ بداية التشغيل وتعمل مقارنة زي باقي الطرق

خد كمان واحدة ، خلي الكود يعمل ملف باول تاريخ ويقارنه بس برده ممكن يضرب لانواي حد ممكن يرح لمكان الملف ويغير اللي جواه مانيوا

طريقة كتابة التاريخ لملف وأسترجاعه جيدة ولكن نفس نقطة ضعف الريجستري والـGlobal Variables بمجرد معرفة الملف سيتم مسحه أوتعديل القيمة

اقتباس:

المشاركة الأصلية كتبت بواسطة mohamed982 (المشاركة 2098273)
اقولك فكرة للطريقة السهلة لا هقولك اتنين الاولي ودي الاقوي ، اول ما الاكسبيرت يفتح امر انترهتمون معرف ثابت محدش يعرفه غيرك قيمته كام جوه الكود واول ما الاكسبيرت يفتح امر بيحط قيمة الثابت كتعليق ، وتحط فانكشن بتعمل ريتيرنو لتاريخ فتح الصفقة جوه الهيستوري والبحث عن طريق القيمة جوه التعليق وترجع اقدم تاريخ ، بعد كده واضحة فانكشن بتقارن اول تاريخ مع الفترة المحددة وليكن ٩٠ يوم بالتاريخ الحالي وهكدا ،

هذي الطريقة جيدة

هنالك طريقة أخرى وهي أستخدام سيرفر لحفظ المعلومات وأسترجاعها وهي مستخدمة في بعض الأكسبيرتات ... ويتم عمل Encryption للمعلومات المرسلة والمستقبلة حتى لا تكون معرضة للتعديل عن طريق sniffers

طريقة أخرى معقدة وهي عمل مكتبة dll تعدل على نفسها مع التشغيل كل مرة لأن الـ mql ما يسمح بالتعديل على الملف في وقت التشغيل runtime modification وما أظنه راح يسمح مستقبلا لأنه يعمل checksum على ملف الأكسبيرت

الطريقة الأفضل هو أستخدام تاريخ ثابت داخل الأكسبيرت وهو المتبع حاليا في أغلب الأكسبيرتات التي تعتمد على الوقت وهذي الطريقة وطريقة السيرفر لن يستطيع تخطيها إلا من يستطيع فتح الأكسبيرت


أشكر أخي محمد مرة أخرى وأنا سعيد لتواجدك في الموضوع

smowaled 28 - 04 - 2016 11:31 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة dr_forex (المشاركة 2098230)
السلام عليكم
الاخ smowaled المحترم احييك على مجهودك الرائع ومساعدة كل ما يطلب المساعدة واعنك الله على فعل الخير
لي سؤال هل فى امكانيه عمل خاصية او كود للاكسبيرت بحيث استطيع ان اتحكم فى وقت بداية ونهاية عمله
كمثال اريد جعل نسخه من الاكسبيرت تعمل لمدة شهر فقط ولكن ليس لدي تاريخ معين لبدء عملها فهل ممكن جعل بداية العمل هي اول اوردر يتم فتحه من خلال الاكسبيرت وبعد 30 يوم تتوقف النسخه عن العمل
لعمل نسخات محددة الفترة على سبيل المثال نسخه تعمل لمدة شهر ونسخه تعمل ثلاث شهور حسب ما احتاج فترة عملها فهل فى امكانيه لعمل مثل هذة الخاصية فى برمجة الاكسبيرت
مع العلم ان الاكسبيرت تم تصميمه بواسطه الاستاذ والزميل الفاضل العبقري سمير ارمان
ومع تحياتي لكل المجتهدين فى هذا المنتدى العظيم

مشاركة أخي محمد فيها الخير

smowaled 28 - 04 - 2016 11:51 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Qadri (المشاركة 2098836)
السلام عليكم ورحمة الله
استاذ smowaled شكرا على هذا الموضوع المفيد

هل يحق للمبتدئين امثالى(ذوى الخلفية الصفرية فى البرمجة) طرح اسئلتهم الساذجة فى هذا الموضوع؟

وعليكم السلام ورحمة الله وبركاته

أسال وأن شاء الله نرد بما نعلم ... وفوق كل ذي علم عليم

سمير محمد ارمان 01 - 05 - 2016 10:59 AM

رد: تبادل الخبرات في برمجة MQL
 
1 مرفق
سؤال الى اخى الكريم ابو ابراهيم
ممكن اجد عندك الحل
هل ممكن تحويل التقاطع الوهمى
بين موشر الماكد و مؤشر rsi
كما مبين من صورة الشارت تم اضافة مؤشر الماكد على الشارت مع اضافة مؤشر rsi عليه
يظهر ان خط مؤشر rsi اصغر من خط الاحمر فى مؤشر الماكد
ممكن يكون التقاطع الوهمى يكون حقيقيى
يوجد فى المرفقات مؤشر شبيه لهذا
بس مش مثل الصوره المطلوبه
هل يوجد حل
تحياتى لك
http://www.borsaat.com/vb/uploaded/63496_1462085957.png

smowaled 01 - 05 - 2016 11:17 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2101117)
سؤال الى اخى الكريم ابو ابراهيم
ممكن اجد عندك الحل
هل ممكن تحويل التقاطع الوهمى
بين موشر الماكد و مؤشر rsi
كما مبين من صورة الشارت تم اضافة مؤشر الماكد على الشارت مع اضافة مؤشر rsi عليه
يظهر ان خط مؤشر rsi اصغر من خط الاحمر فى مؤشر الماكد
ممكن يكون التقاطع الوهمى يكون حقيقيى
يوجد فى المرفقات مؤشر شبيه لهذا
بس مش مثل الصوره المطلوبه
هل يوجد حل
تحياتى لك

الأثنين على scale أو مستوى مختلف .. RSI من 0 إلى 100 و MACD من الصفر موجب وسالب .. كيف تصيد التقاطع بينهم لا أعلم

في المؤشر المرفق المبرمج ثبت مستوى الصفر للـ MACD على مستوى الصفر للـ RSI فلن يصبح عندك تقاطع في السالب ولكن في الموجب يمكن وتستطيع المقارنة بينهم لأنهم نفس المستوى ... ولكن هذا التعديل غيّر التقاطع من أصله .. أنظر إلى الصورة المرفقة منك تجد أن الصفر للـ MACD فوق مستوى 70 للـ RSI بقليل فالتقاطعات ليس نفسها

سمير محمد ارمان 02 - 05 - 2016 11:39 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2101303)
الأثنين على scale أو مستوى مختلف .. RSI من 0 إلى 100 و MACD من الصفر موجب وسالب .. كيف تصيد التقاطع بينهم لا أعلم

في المؤشر المرفق المبرمج ثبت مستوى الصفر للـ MACD على مستوى الصفر للـ RSI فلن يصبح عندك تقاطع في السالب ولكن في الموجب يمكن وتستطيع المقارنة بينهم لأنهم نفس المستوى ... ولكن هذا التعديل غيّر التقاطع من أصله .. أنظر إلى الصورة المرفقة منك تجد أن الصفر للـ MACD فوق مستوى 70 للـ RSI بقليل فالتقاطعات ليس نفسها

شكرا اخى الكريم على المساعده
كما مبين فى سورة الشارت يوجد تقاطع بس هذا كما قلت تقاطع وهمى عشان كل مؤشر له القيم الخاصه بيه كما شرحت انت
انا كنت ابحث عن طريقة تجعل المنظر الذى تراه على الشارت يكون حقيقى
بس شكل الموضوع صعب او مستحيل معلش تعبتك معى
شكرا على المساعده
تحياتى لك

medo9 03 - 05 - 2016 02:22 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2101303)
الأثنين على scale أو مستوى مختلف .. RSI من 0 إلى 100 و MACD من الصفر موجب وسالب .. كيف تصيد التقاطع بينهم لا أعلم

في المؤشر المرفق المبرمج ثبت مستوى الصفر للـ MACD على مستوى الصفر للـ RSI فلن يصبح عندك تقاطع في السالب ولكن في الموجب يمكن وتستطيع المقارنة بينهم لأنهم نفس المستوى ... ولكن هذا التعديل غيّر التقاطع من أصله .. أنظر إلى الصورة المرفقة منك تجد أن الصفر للـ MACD فوق مستوى 70 للـ RSI بقليل فالتقاطعات ليس نفسها

اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2101524)
شكرا اخى الكريم على المساعده
كما مبين فى سورة الشارت يوجد تقاطع بس هذا كما قلت تقاطع وهمى عشان كل مؤشر له القيم الخاصه بيه كما شرحت انت
انا كنت ابحث عن طريقة تجعل المنظر الذى تراه على الشارت يكون حقيقى
بس شكل الموضوع صعب او مستحيل معلش تعبتك معى
شكرا على المساعده
تحياتى لك

اولا تحية شكر وتقدير للاخ ابو ابراهيم والاخ سمير علي هذا الموضوع الجميل

انا خبرتي متواضعة جدا في البرمجة

و لست اتاجر علي المؤشرات فقط اجرب اشياء معينة بها

و لا خبرة لي في الاكسبيرتات لاني غير مقتنع بالمتاجرة بواسطة اكسيبرت

الاخ سمير اذا كنت تبحث عن تقاطع الخط الاحمر مع RSI

الموضوع بسيط ان شاء الله فالخط الحمر هو موفنج 9 سيمبل

اولا ضع RSI علي الشارت ثم ضع موفنج 9 سيمبل في نافذة RSI

وبهذا عندك تقاطع ثابت و scale واحد كما تفضل استاذ ابو ابراهيم

تحياتي

بالتوفيق للجميع ان شاء الله

smowaled 03 - 05 - 2016 09:25 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة medo9 (المشاركة 2102021)
اولا تحية شكر وتقدير للاخ ابو ابراهيم والاخ سمير علي هذا الموضوع الجميل

انا خبرتي متواضعة جدا في البرمجة

و لست اتاجر علي المؤشرات فقط اجرب اشياء معينة بها

و لا خبرة لي في الاكسبيرتات لاني غير مقتنع بالمتاجرة بواسطة اكسيبرت

الاخ سمير اذا كنت تبحث عن تقاطع الخط الاحمر مع RSI

الموضوع بسيط ان شاء الله فالخط الحمر هو موفنج 9 سيمبل

اولا ضع RSI علي الشارت ثم ضع موفنج 9 سيمبل في نافذة RSI

وبهذا عندك تقاطع ثابت و scale واحد كما تفضل استاذ ابو ابراهيم

تحياتي

بالتوفيق للجميع ان شاء الله

أولاً أحييك أخي medo9 على المشاركة البناءة وصحيح الخط الأحمر عبارة عن سمبل موفنج أفرج . وأفترضت أنه 9 بما أن أغلب الناس تستخدم
كود:

MACD(12,26,9)
لكن هو عبارة عن الرقم الأخير في أعدادت الـMACD
السمبل موفنج أفرج حتكون قيمته في حدود سعر العملة المستخدمة على الشارت بينما الـRSI سيكون ما بين الصفر إلى المية .. مافي correlation بين الأثنين
الشي الثاني الموفنج أفرج يعمل repaint فتقاطعات كانت موجودة تجدها تغييرت لأن الـ scale أختلف

خارج الموضوع: أحد أعز أصدقائي يعشق كلام الدكتور إبراهيم الفقي :)

smowaled 03 - 05 - 2016 09:32 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2101524)
شكرا اخى الكريم على المساعده
كما مبين فى سورة الشارت يوجد تقاطع بس هذا كما قلت تقاطع وهمى عشان كل مؤشر له القيم الخاصه بيه كما شرحت انت
انا كنت ابحث عن طريقة تجعل المنظر الذى تراه على الشارت يكون حقيقى
بس شكل الموضوع صعب او مستحيل معلش تعبتك معى
شكرا على المساعده
تحياتى لك

أخي سمير لا يوجد مستحيل بأذن الله ... لكن حتى لو صنعت المؤشر سيكون به أشارات خاطئة كثير

medo9 03 - 05 - 2016 09:40 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2102187)
أولاً أحييك أخي medo9 على المشاركة البناءة وصحيح الخط الأحمر عبارة عن سمبل موفنج أفرج . وأفترضت أنه 9 بما أن أغلب الناس تستخدم
كود:

MACD(12,26,9)
لكن هو عبارة عن الرقم الأخير في أعدادت الـMACD
السمبل موفنج أفرج حتكون قيمته في حدود سعر العملة المستخدمة على الشارت بينما الـRSI سيكون ما بين الصفر إلى المية .. مافي correlation بين الأثنين
الشي الثاني الموفنج أفرج يعمل repaint فتقاطعات كانت موجودة تجدها تغييرت لأن الـ scale أختلف

خارج الموضوع: أحد أعز أصدقائي يعشق كلام الدكتور إبراهيم الفقي :)


ربنا يكرمك اخي ابو ابراهيم علي الشرح الكافي والوافي

الدكتور إبراهيم الفقي(رحمه الله) كلامه غير حياتي بالكامل

تحياتي وتقديري لحضرتك ولصديقك

بالتوفيق للجميع ان شاء الله


mohamed982 03 - 05 - 2016 10:32 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2101117)
سؤال الى اخى الكريم ابو ابراهيم
ممكن اجد عندك الحل
هل ممكن تحويل التقاطع الوهمى
بين موشر الماكد و مؤشر rsi
كما مبين من صورة الشارت تم اضافة مؤشر الماكد على الشارت مع اضافة مؤشر rsi عليه
يظهر ان خط مؤشر rsi اصغر من خط الاحمر فى مؤشر الماكد
ممكن يكون التقاطع الوهمى يكون حقيقيى
يوجد فى المرفقات مؤشر شبيه لهذا
بس مش مثل الصوره المطلوبه
هل يوجد حل
تحياتى لك
http://www.borsaat.com/vb/uploaded/63496_1462085957.png


هقولك علي فكرة جت فب دماغي جربتها من شوية علي السريع وظبتت مع بعض العيوب الفكرة ببساطة هنا عشان تمسك التقاطع الوهمي علي الشاشة انت محتاج تتعامل مع قيمة المؤشر علي محور y هو ده اللي يهمني لان المؤشر بيتحرك فوق وتحت ، جرب كده تحط قيمة الار اس اي للشمعة ٠ مثلا مع الفانكسن chartyimepticetoxy فايدة الفانكشن دي انها بترجع قيمة الاكس والواي حسب السعر والوقت يعني مثلا لو فتحت نؤشر الار اس اي وعرفت متغير علي انه قيمة الار اس اي وعرفت متغير x و y ومتغير sub وادينه مثلا قيمة ١ وكتبت الفانكشن كده
charttimeprocetoxy(chartid,sub,time,rsival,x,y
الفانكشن دي هتديك مكان الار اس اي علي الشاشة بالبكسل بالنسبة لمحور ال y هو ده اللي يهمنا ، وكذلك الحال بالنسبة للماكد ، المشكلة اللي قابلتني ودي حلها سهل حسابيا ان بما ان الاثنين مش علي نفس السكيل والميتااريدر بياخد السكيل من اول مؤشر اتحط فبيدي قيمة الواي للمؤشر التاني بالنسبة للمؤشر الاول ودي حلها هيكون حسابي جرب كده وهتفهم انا قصدي ايه

سمير محمد ارمان 04 - 05 - 2016 12:25 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة mohamed982 (المشاركة 2102723)
هقولك علي فكرة جت فب دماغي جربتها من شوية علي السريع وظبتت مع بعض العيوب الفكرة ببساطة هنا عشان تمسك التقاطع الوهمي علي الشاشة انت محتاج تتعامل مع قيمة المؤشر علي محور y هو ده اللي يهمني لان المؤشر بيتحرك فوق وتحت ، جرب كده تحط قيمة الار اس اي للشمعة ٠ مثلا مع الفانكسن chartyimepticetoxy فايدة الفانكشن دي انها بترجع قيمة الاكس والواي حسب السعر والوقت يعني مثلا لو فتحت نؤشر الار اس اي وعرفت متغير علي انه قيمة الار اس اي وعرفت متغير x و y ومتغير sub وادينه مثلا قيمة ١ وكتبت الفانكشن كده
charttimeprocetoxy(chartid,sub,time,rsival,x,y
الفانكشن دي هتديك مكان الار اس اي علي الشاشة بالبكسل بالنسبة لمحور ال y هو ده اللي يهمنا ، وكذلك الحال بالنسبة للماكد ، المشكلة اللي قابلتني ودي حلها سهل حسابيا ان بما ان الاثنين مش علي نفس السكيل والميتااريدر بياخد السكيل من اول مؤشر اتحط فبيدي قيمة الواي للمؤشر التاني بالنسبة للمؤشر الاول ودي حلها هيكون حسابي جرب كده وهتفهم انا قصدي ايه

محمد باشا
جزاك الله كل خير
شكرا على المساعده
طيب انت جربت وطلع قيمة التقاطع الوهمى
انا عايز اشارة تقاطع على اكثر من فريم
هى طريقة تظهر لك الاتجاه االعام
شكرا على المساعده
تحياتى لك

سمير محمد ارمان 04 - 05 - 2016 12:26 PM

رد: تبادل الخبرات في برمجة MQL
 

mohamed982 04 - 05 - 2016 02:51 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2102970)
محمد باشا
جزاك الله كل خير
شكرا على المساعده
طيب انت جربت وطلع قيمة التقاطع الوهمى
انا عايز اشارة تقاطع على اكثر من فريم
هى طريقة تظهر لك الاتجاه االعام
شكرا على المساعده
تحياتى لك


سمير باشا فيه فكرة جتلي احسن وادق وواقعية اكتر وفكرتها اني حولت التقاطع الوهمي الي تقاطع حقيقي على مؤشر منفصل ببساطة عملية حسابية غيرت قيمة الماكد عشان يبقى ToScale مع الار اس اي
http://www.borsaat.com/vb/uploaded/563254_1462357842.mq4
ملحوظة الاحمر الار اس اي والاخضر الماكد

وعشان اثبت ان المعادلة صح حطيت المؤشر اللى عملته مع المشرات بالطرقة العادية وزي مانت شايف ظهرت التقاطعات الحقيقية متزامنة مع التقاطعات الوهمية فى النافذة السفلية

اذا كانت عايز اشرحلك الفكرة بالتفصيل قولي
http://www.borsaat.com/vb/uploaded/5...1462359009.png

متهيالي هي دي الطريقة الوحيدة , طريقة الاكس والواي مش هتكون صح مع المؤشرين على الشارت هي هتديك قيمة محور واحد صح ولاتانى غلط

ومن الواضح حسب الطريق ةان فيه تقاطع ايجابي وللنفط صعود نشوف هل فيه علاقة ولا لا

mohamed982 04 - 05 - 2016 02:54 PM

رد: تبادل الخبرات في برمجة MQL
 
على عملة تانية
[عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط! اضغط هنا للتسجيل...]

كده انت تقدر تستخدم قيم المؤشر على اكتر من تايم فريم في وقت واحد عن طريق iCustom وفى نفس الوقت مش ضروري يكون قيمة او المؤشر ظاهر على الشاشة لانه اصبح تقاطع حقيقي

سمير محمد ارمان 04 - 05 - 2016 03:54 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة mohamed982 (المشاركة 2103042)
على عملة تانية
[عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط! اضغط هنا للتسجيل...]

كده انت تقدر تستخدم قيم المؤشر على اكتر من تايم فريم في وقت واحد عن طريق iCustom وفى نفس الوقت مش ضروري يكون قيمة او المؤشر ظاهر على الشاشة لانه اصبح تقاطع حقيقي

الله ينور عليك
انت معلم منك نتعلم
بجد ماشاء الله عليك ممتاز
جزاك الله كل خير
ممكن تجرب كده هذه الطريقة لمعرفة الاتجاه العام الى العمله
لو الخط الاحمر اصغر من الخط الاخضر على الشمعة الحاليه والسابقة
على فريم الساعه والنصف ساعه
يكون الاتجاه هابط
العكس الاتجاه صاعد
تحياتى لك وشكرا لك

smowaled 04 - 05 - 2016 07:00 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة mohamed982 (المشاركة 2103040)
سمير باشا فيه فكرة جتلي احسن وادق وواقعية اكتر وفكرتها اني حولت التقاطع الوهمي الي تقاطع حقيقي على مؤشر منفصل ببساطة عملية حسابية غيرت قيمة الماكد عشان يبقى ToScale مع الار اس اي
http://www.borsaat.com/vb/uploaded/563254_1462357842.mq4
ملحوظة الاحمر الار اس اي والاخضر الماكد

وعشان اثبت ان المعادلة صح حطيت المؤشر اللى عملته مع المشرات بالطرقة العادية وزي مانت شايف ظهرت التقاطعات الحقيقية متزامنة مع التقاطعات الوهمية فى النافذة السفلية

اذا كانت عايز اشرحلك الفكرة بالتفصيل قولي


متهيالي هي دي الطريقة الوحيدة , طريقة الاكس والواي مش هتكون صح مع المؤشرين على الشارت هي هتديك قيمة محور واحد صح ولاتانى غلط

ومن الواضح حسب الطريق ةان فيه تقاطع ايجابي وللنفط صعود نشوف هل فيه علاقة ولا لا

:confused2: الله يعطيك العافية ... هذا الأبداع على أصوله

Salem Zayed 06 - 05 - 2016 05:39 PM

رد: تبادل الخبرات في برمجة MQL
 
مرحباً وكيف يمكن لنا ان نتعلم هذة الاشياء المتقدمة وشكراً

smowaled 16 - 05 - 2016 01:56 PM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Salem Zayed (المشاركة 2104599)
مرحباً وكيف يمكن لنا ان نتعلم هذة الاشياء المتقدمة وشكراً

أهلا أخي سالم .. العلم بالتعّلم والتعّلم بالوقت والصبر ويؤخذ من المصادر ... المصدر الرئيسي للـ Mql4 هو [عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط! اضغط هنا للتسجيل...] وبعد كذا الكتب والشروحات الموجودة في النت ولا ننسى التجربة فهي الصقل للعلم النظري

تساهيل 21 - 06 - 2016 01:35 AM

رد: تبادل الخبرات في برمجة MQL
 
السلام عليكم
ارغب بفتح صفقة والتبريد علىها اذا عكس السعر .
- والتبريد يكون اكثر من مره احتمال يصل الى 4 او 7 مرات
الطلب هو:
ارغب بان يكون التبريد على حسب سرعة السعر
فاذا كان السعر بطيء فان الاكسبريت يفتح صفقة واذا كان السعر سريع لا يفتح الى ان يهدء السعر ثم يفتح صفقة تبريد جديده.
بحيث ان صفقة التبريد تعتمد على شرطين..
الاول ان كل صفقة لا تقل عن التي قبلها باقل من خمس نقاط وان السعر يكون بطيء
فاذا كان السعر سريع فانه لا يفتح صفقات تبريد حتى لو تجاوز السعر 5 نقاط او اكثر.
فيرجى ارفاق الكود المناسب لهذه الطريقة من التبريد.

smowaled 21 - 06 - 2016 01:56 AM

رد: تبادل الخبرات في برمجة MQL
 
أفتح موضوع مستقل

محمود حبيبي 21 - 06 - 2016 05:06 PM

رد: تبادل الخبرات في برمجة MQL
 
:confused2::confused2:
مووضوع شيق

dr_forex 22 - 06 - 2016 11:05 AM

رد: تبادل الخبرات في برمجة MQL
 
السلام عليكم
اخواني الاعزاء كل عام وانتم بخير ورمضان كرم عليكم وعلينا وعلى الجميع
لدي استفسار
هل يمكن عمل كود للاكسبيرت بحيث لا يستطيع احد ان يعمل نسخ اخري منه ؟

smowaled 22 - 06 - 2016 08:18 PM

رد: تبادل الخبرات في برمجة MQL
 
2 مرفق
اقتباس:

المشاركة الأصلية كتبت بواسطة dr_forex (المشاركة 2143058)
السلام عليكم
اخواني الاعزاء كل عام وانتم بخير ورمضان كرم عليكم وعلينا وعلى الجميع
لدي استفسار
هل يمكن عمل كود للاكسبيرت بحيث لا يستطيع احد ان يعمل نسخ اخري منه ؟

وأنت بخير .. لا يوجد شي أسمه "لا يستطيع أحد" فكلها مسائلة وقت لا أكثر .. مهما كان الكود محصّن سيأتي زمن ويستطيع شخص أن يكسره .. ممكن ليس اليوم ولا السنة القادمة ولكن ذلك اليوم قادم لا محالة فمن كتبت خوارزميات الحماية هم بشر فالضعف موجود

لنستعرض بعض صور الحماية وسأترك مجال لمن يريد أن يشارك بأفكاره:
  • حماية الأكسبيرت بكلمة مرور
[PHP]
//+------------------------------------------------------------------+
//| Protect 1.0.mq4 |
//| Copyright 2016, SMoWaLeD |
//| http://www.borsaat.com/vb/f14/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, SMoWaLeD"
#property link "http://www.borsaat.com/vb/f14/"
#property version "1.00"
#property strict

#include <ChartObjects/ChartObjectsTxtControls.mqh>

CChartObjectEdit passEdit;

const string CorrectPass = "AoE-21638-55212";
string WrongMsg = "Wrong Password";

bool statusLic = false;

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
passEdit.Create(ChartID(), "password", 0, 20, 20, 260, 25);

passEdit.BackColor(White);
passEdit.BorderColor(Black);



return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
passEdit.Delete();

}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(statusLic == false) return;

Comment(" ..... You are Licensed !! ..... ");
// continue code

}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
if (id == CHARTEVENT_OBJECT_ENDEDIT && sparam == "password" )
{
statusLic = false;
if(passEdit.GetString(OBJPROP_TEXT) == CorrectPass)
{
statusLic = true;
passEdit.Delete();
}
else passEdit.SetString(OBJPROP_TEXT, 0, WrongMsg);
}

}
[/PHP]الطريقة سهلة وبمجرد معرفة كلمة المرور أنتهت الحماية : (

  • حماية الأكسبيرت بأستخدام رقم الحساب والبروكر
[PHP]
//+------------------------------------------------------------------+
//| Protect 2.0.mq4 |
//| Copyright 2016, SMoWaLeD |
//| http://www.borsaat.com/vb/f14/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, SMoWaLeD"
#property link "http://www.borsaat.com/vb/f14/"
#property version "1.00"
#property strict



const int AuthorizedAccount = 54249;
const string AuthorizedBroker = "International Capital Markets Pty Ltd.";

bool statusLic = false;

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{

if(AccountCompany() == AuthorizedBroker && AccountNumber() == AuthorizedAccount)
statusLic = true;
else
Alert("EA is NOT Auhorized to run on this account !!!");

return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{


}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(statusLic == false)
{
Comment(" ..... EA is NOT Auhorized to run on this account !! ..... ");
return;
}

Comment(" ..... Authorized Account !! ..... ");
// continue code

}

[/PHP]هذي الحماية الأكثر رواجاً وهي فعّالة كون الهكر يحتاج أن يكسر حماية mql أولاً ثم يغيير رقم الحساب .. ونستطيع أن نستخدم متغييرات أخرى بعمليات حسابية أكثر تعقيداً ولكن نفس النتيجة بمعرفة الكود فتعديلها أمر سهل


  • حماية الأكسبيرت بمكتبة DLL وهذا أفضل من الفكرة السابقة بما أن بعض الكود سيكون داخل المكتبة فكسر حماية mql لن يعطي الهكر كل الكود .. المشكلة أن كسر حماية الـ DLL ليس بالأمر الصعب كما يظن الكثيرون بالعكس أسهل من mql ... لا يوجد لدي compiler حالياً فلم أستطع أن أعمل مثال لهذه الحالة

  • حماية الأكسبيرت بسيرفر خارجي وهي أفضل حماية موجود الآن .. لايوجد لدي سيرفر لعمل المثال لكن الفكر بسيطة .. ومنها طريقة مشروحة في موقع mql بأستخدام RPC وكود Python للسيرفر https://www.mql5.com/en/articles/342 .. ويمكن إضافة encryption للـ calls لحمايته من الـ sniffing

dr_forex 23 - 06 - 2016 03:36 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة smowaled (المشاركة 2143402)
وأنت بخير .. لا يوجد شي أسمه "لا يستطيع أحد" فكلها مسائلة وقت لا أكثر .. مهما كان الكود محصّن سيأتي زمن ويستطيع شخص أن يكسره .. ممكن ليس اليوم ولا السنة القادمة ولكن ذلك اليوم قادم لا محالة فمن كتبت خوارزميات الحماية هم بشر فالضعف موجود

لنستعرض بعض صور الحماية وسأترك مجال لمن يريد أن يشارك بأفكاره:
  • حماية الأكسبيرت بكلمة مرور
[PHP]
//+------------------------------------------------------------------+
//| Protect 1.0.mq4 |
//| Copyright 2016, SMoWaLeD |
//| http://www.borsaat.com/vb/f14/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, SMoWaLeD"
#property link "http://www.borsaat.com/vb/f14/"
#property version "1.00"
#property strict

#include <ChartObjects/ChartObjectsTxtControls.mqh>

CChartObjectEdit passEdit;

const string CorrectPass = "AoE-21638-55212";
string WrongMsg = "Wrong Password";

bool statusLic = false;

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
passEdit.Create(ChartID(), "password", 0, 20, 20, 260, 25);

passEdit.BackColor(White);
passEdit.BorderColor(Black);



return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
passEdit.Delete();

}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(statusLic == false) return;

Comment(" ..... You are Licensed !! ..... ");
// continue code

}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
if (id == CHARTEVENT_OBJECT_ENDEDIT && sparam == "password" )
{
statusLic = false;
if(passEdit.GetString(OBJPROP_TEXT) == CorrectPass)
{
statusLic = true;
passEdit.Delete();
}
else passEdit.SetString(OBJPROP_TEXT, 0, WrongMsg);
}

}
[/PHP]الطريقة سهلة وبمجرد معرفة كلمة المرور أنتهت الحماية : (

  • حماية الأكسبيرت بأستخدام رقم الحساب والبروكر
[PHP]
//+------------------------------------------------------------------+
//| Protect 2.0.mq4 |
//| Copyright 2016, SMoWaLeD |
//| http://www.borsaat.com/vb/f14/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, SMoWaLeD"
#property link "http://www.borsaat.com/vb/f14/"
#property version "1.00"
#property strict



const int AuthorizedAccount = 54249;
const string AuthorizedBroker = "International Capital Markets Pty Ltd.";

bool statusLic = false;

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{

if(AccountCompany() == AuthorizedBroker && AccountNumber() == AuthorizedAccount)
statusLic = true;
else
Alert("EA is NOT Auhorized to run on this account !!!");

return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{


}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(statusLic == false)
{
Comment(" ..... EA is NOT Auhorized to run on this account !! ..... ");
return;
}

Comment(" ..... Authorized Account !! ..... ");
// continue code

}

[/PHP]هذي الحماية الأكثر رواجاً وهي فعّالة كون الهكر يحتاج أن يكسر حماية mql أولاً ثم يغيير رقم الحساب .. ونستطيع أن نستخدم متغييرات أخرى بعمليات حسابية أكثر تعقيداً ولكن نفس النتيجة بمعرفة الكود فتعديلها أمر سهل


  • حماية الأكسبيرت بمكتبة DLL وهذا أفضل من الفكرة السابقة بما أن بعض الكود سيكون داخل المكتبة فكسر حماية mql لن يعطي الهكر كل الكود .. المشكلة أن كسر حماية الـ DLL ليس بالأمر الصعب كما يظن الكثيرون بالعكس أسهل من mql ... لا يوجد لدي compiler حالياً فلم أستطع أن أعمل مثال لهذه الحالة

  • حماية الأكسبيرت بسيرفر خارجي وهي أفضل حماية موجود الآن .. لايوجد لدي سيرفر لعمل المثال لكن الفكر بسيطة .. ومنها طريقة مشروحة في موقع mql بأستخدام RPC وكود Python للسيرفر https://www.mql5.com/en/articles/342 .. ويمكن إضافة encryption للـ calls لحمايته من الـ sniffing

شكرا يا اخي الكريم

سمير محمد ارمان 25 - 06 - 2016 03:11 PM

رد: تبادل الخبرات في برمجة MQL
 
[عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط! اضغط هنا للتسجيل...]

AlmhdeAlmnfe 26 - 06 - 2016 01:08 AM

رد: تبادل الخبرات في برمجة MQL
 
السلام عليكم اخواني
عندي مؤشر وأريد اضافة منبه عليه , لكن لا أعرف لقلة خبرتي في هذا المجال

if (i==hhb)
b3[i]=High[hhb]+SignalGap*Point;

if (i==llb)
b4[i]=Low[llb]-SignalGap*Point;

b1[i]=High[hhb];//+SignalGap*Point;
b2[i]=Low[llb];//-SignalGap*Point;

}
return(0);
}

الرجاء من لديه خبره في برمجة المؤشرات يساعدني وله جزيل الشكر
وأذا امكن يوضح ايضا طريقة التنبيه بالايميل
السلام عليكم

سمير محمد ارمان 26 - 06 - 2016 01:27 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة AlmhdeAlmnfe (المشاركة 2146645)
السلام عليكم اخواني
عندي مؤشر وأريد اضافة منبه عليه , لكن لا أعرف لقلة خبرتي في هذا المجال

if (i==hhb)
b3[i]=High[hhb]+SignalGap*Point;

if (i==llb)
b4[i]=Low[llb]-SignalGap*Point;

b1[i]=High[hhb];//+SignalGap*Point;
b2[i]=Low[llb];//-SignalGap*Point;

}
return(0);
}

الرجاء من لديه خبره في برمجة المؤشرات يساعدني وله جزيل الشكر
وأذا امكن يوضح ايضا طريقة التنبيه بالايميل
السلام عليكم

السلام عليكم اخى الكريم
ارجو فتح موضوع جديد
مع وضع المؤشر فى المرفقات
مع التوضيح من على الشارت طريقة التنبيه المطلوب
تحياتى لكhttp://www.borsaat.com/vb/uploaded/63496_1466889948.png

AlmhdeAlmnfe 26 - 06 - 2016 01:56 AM

رد: تبادل الخبرات في برمجة MQL
 
اقتباس:

المشاركة الأصلية كتبت بواسطة سمير محمد ارمان (المشاركة 2146656)
السلام عليكم اخى الكريم
ارجو فتح موضوع جديد
مع وضع المؤشر فى المرفقات
مع التوضيح من على الشارت طريقة التنبيه المطلوب
تحياتى لكhttp://www.borsaat.com/vb/uploaded/63496_1466889948.png

درت موضوع جديد بس لحد الان مازال ما نزل ؟ ويش الحل ؟


01:48 AM

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.