کاربرد برنامه نویسی ام کیو ال
با استفاده از برنامه نویسی ام کیو ال (MQL) شما میتوانید در محیط نرم افزار متاتریدر اندیکاتور ها (Custom Indicator) و اکسپرت های (Expert Advisor) مورد علاقه خود را بر اساس نوع استراتژی معاملاتی خود ایجاد کنید. نرم افزار متاتریدر یکی از پلتفرم های معاملاتی است که به صورت فراگیر توسط کارگزاران بازارهای مالی مورد استفاده قرار گرفته.
برنامه نویسی ام کیو ال (MQL) بسیار شبیه برنامه نویسی C می باشد لذا می توانید برای یادگیری بهتر این زبان نیم نگاهی هم به کتب آموزشی زبان سی داشته باشید.
این مجموعه شامل آموزش اکسپرت نویسی و اندیکاتور نویسی میباشد که بخش اندیکاتور نویسی آن در آینده تکمیل می گردد. اکسپرت یا EA (Advisor Expert)، همان ربات های معاملهگر میباشند، و در واقع یک اسکریپت یا کد برنامه نویسی شده می باشد که بر روی نمودار قیمتی در متاتریدر اجرا می شود و برنامه بصورت خودکار و براساس شرایطی که شما برایش تعریف کرده اید برای شما کارهایی را انجام می دهد و مهم ترین شکل استفاده از اکسپرت ها خرید و فروش های اتوماتیک می باشد.
نکته: این آموزش ها مبتنی بر برنامه نویسی ام کیو ال ورژن چهار (MQL4) پیاده سازی و آموزش داده شده است و برای کسانی که قصد دارند MQL5 کار کنند نیز مفید است چون مفاهیم برنامه نویسی یکی هست و فقط باید وقت بگذارید و توابع جدید و امکانات جدید را با استفاده از رفرنس های موجود در اینترنت یاد بگیرید. و علت اصلی تمرکز روی MQL4 به خاطر محبوبیت پلت فرم متاتریدر 4 هست.
ردیف | عنوان | لینک | حجم |
1 | مقدمه و آموزش کار با متا تریدر | نمایش | 55MB |
2 | مباحث اولیه برنامه نویسی ام کیو ال | نمایش | 66MB |
3 | آموزش کار با حلقه ها و شرط ها | نمایش | 48MB |
4 | آموزش ساخت تابع و کار با تابع | نمایش | 58MB |
5 | ساخت اولین اکسپرت و توابع mql | نمایش | 102MB |
6 | کار با توابع اوردر گذاری | نمایش | 106MB |
7 | آموزش اکسپرت close all | نمایش | 108MB |
8 | ساخت ٢ تابع شخصی کمکی | نمایش | 51MB |
9 | ساخت اکسپرت معامله با اندیکاتورهای پیشفرض متا | نمایش | 83MB |
10 | ساخت اکسپرت معامله با اندیکاتورهای شخصی | نمایش | 80MB |
11 | اکسپرت مارتینگل و تبدیل استراتژی ها به مارتینگل | نمایش | 64MB |
12 | پیوست: اندیکاتور Hanafy | لینک | کم |
113 دیدگاه
akbar369p
سلام، من یک اکسپرت نوشتم و میخوام روی چندتا نماد ترید انجام بده.توی برنامه نوشتم اول اردرهای فعالم چک کنه و اگر اردری مشابه جفت ارز دید اردر جدید نفرسته یعنی فقط هر جفت ارز یک اردر بفرسته. متاسفانه به مشکل خوردم و تعداد زیادی اردر از هر نمادی فعال میشه. ممنون میشم راهنمایی کنید
void BuyPosition()
{
if(OrdersTotal()>0)
return;
OrderSend(Symbol(), OP_BUY , Lot , Ask , 3 , Ask-Stoploss*Point , Ask+Takeprofit*Point ,”MY BUY POSITION”,16384,0,Green );
status = 1;
}
دستور بالا اردر خریدی هست که نوشتم و روی یک جفت ارز درست کار می کنه ولی با دستور پایین اومدم گفتم که نگاه کن اگه نمادی که ترید باز داره و رد شو و نمادی که اردر فعال نداره ایجاد کن که با این دستور جدید یک عالمه اردر می فرسته
void BuyPosition()
{
for (int a = 0; a =0)
OrderSend(Symbol(), OP_BUY , Lot , Ask , 3 , Ask-Stoploss*Point , Ask+Takeprofit*Point ,”MY BUY POSITION”,۱۶۳۸۴,۰,Green );
}
}
با این دستور سیستمم به مشکل می خوره و کار نمیکنه
اشکانی
در پاسخ به: akbar369pدرود. کد بالایی که دقیقا با دومی یکیه !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!۱
خیلی راحت میتونی از از تابع ordersymbol استفاده کنی و پوزیشن های بازت رو چک کنی که اگه هیچ کدوم مشابه نبود برات پوزیشن باز کنه
Msr
سلام
من دارم اندیکاتور ار اس ای رو برای خودر بهبود میدم …
چطور باید کاری کنم که وقتی سر خط ار اس ای اومد پایین رنگ خط اندیکاتور ار اس ای قرمز شه و وقتی سر اندیکاتور اومد بالا رنگش سبز شه ؟
homayoon
در پاسخ به: Msrباید براش تعریف کنی با تابع if وقتی خط rsi-اومد بالای ۲۰ رنگش رو بکنه ابی و وقتی خط rsi – اومد و ۷۰ رو رو به پایین زد رنگش رو قرمز تغییر بده و باید با توابع ای که خطوط اندیکاتور رو تعیین میکنه اشنا باشی.
kaveh
سلام وقت به خیر ، آیا معاملات الگوریتمی و اتواتیک ، اکسپرت نویسی که من هیچ آشنایی با این موارد ندارم فقط شنیدم در بورس ایران کاربرد دارد و میتواند سوددهی را بالا ببرد ؟ و اگر اینگونه معاملات در بورس زیاد شود تکلیف کسانی که در بازه های سه ماهه یا کمتر در بورس ایران فعالیت میکنند چه میشود و آیا توان رقابت با این برنامه ها را دارند و یا به اجبار ما هم باید این موارد را یاد بگیریم و استفاده کنیم ؟
مدیریت
در پاسخ به: kavehمعاملات الگوریتمی در همه بازارهای دنیا وجود داره و اصلا جایی برای نگرانی نیست. ولی خوب بورس ایران به خاطر صفوف خرید و فروش و عمق کم با مشکلاتی مواجه هست. البته در نظر داشته باشید امکان فعال کردن اکسپرت با معاملات اتوماتیک در بورس ایران وجود نداره
amir mz
سلام خواهشا راهنمایی کنید من اکسپرت رو کامل نوشتم پوزیشن باز نمیکنه و توی تست هم ارورorder send4107میده مشکل کجاست؟
emad
سلام وقت بخیر.اسم کسی ک این دوره رو اموزش داده میفرمایید؟چطور میشه باهاشون در ارتباط بود؟
مدیریت
در پاسخ به: emadسلام. اقای کنعانی هستند. اگر راه ارتباطی باشه در ویدئو ها قید میشه
MAHDItitan
خسته نباشید، یه سوال دوستان
من اگر زبان برنامه نویسی Mql4 را آموزش ببینم برای کار با mql5 باز هم باید آموزش مجزا ببینیم
مدیریت
در پاسخ به: MAHDItitanسلام. بله ولی بیس کار را یاد گرفتید و مهاجرت به ۵ کار ساده ای برای شما خواهد بود
javad
سلام خیلی مطالب آموزنده وخوبی دارید کاش مطالب به تربیب مقدماتی تاپیشرفته دسته بندی کنید
مدیریت
در پاسخ به: javadسلام ممنون از شما در لینک زیر یه طبقه بندی اجمالی صورت گرفته
https://farachart.com/helpme
vahid
با سلام و درود
احتمالا میدانید که شما تنها سایتی هستید که این آموزش را به رایگان قراردادید و هر جای دیگه هم که هست از شما کپی شده!این واقعا جای تشکر و قدردانی داره ومزد این کار شما قطعا معنوی و مادی روزی در زندگی شما تاثیر خودش رو میگزاره.
من یه سوال داشتم :اگر بخواهم برای متن برنامه رمز یا پسورد بزارم باید از چه دستوری استفاده کنم.ممنون
مدیریت
در پاسخ به: vahidدرود و احترام ممنون از لطف شما. متاسفانه به برنامه نویس این مجموعه در حال حاضر دسترسی نداریم
srb
با سلام و خسته نباشید خدمت همه دوستان ، من یک اکسپرتی نوشتم ولی دو تا مشکل دارم لطفا” اگر کسی میدونه راهنمایی کند ممنونم ۱ اینکه میخواهم تی پی را به مقدار atr+10 pip بالاتر و اس ال را به مقدار atr+10 pip پایینتر قرار دهم و دوم اینکه مقدار حجم ورودی را ۱ درصد یا ۲ درصد از کل مانده حسابم خودش اتومات محاسبه کند و ترید بزند ممنونم از همه دوستان
erfan
سلام دوستان وقتتون بخیر اکسپرت من در متاتریدرهای کارگزاری های دیگر کار نمیکنه علتش چیه ؟
s.mostafa
سلام.
امیدوارم حالتون خوب باشد. ممنون بابت زحمت هایی که می کشید.
می خواستم کمکم کنید، متا ادیتور بنده نسبت به حلقه ها و شرط ها و حساسیت خاصی نشون می ده. یعنی به همه شون اخطار می ده. الکی الکی. مو به مو و عین خود آموزش جلو می رم ولی به ساده ترین چیزها گیر می ده. به عنوان مثال:
for (int a =1 ; a < 20 ; a++)
{
}
این حلقه فور همون طور که ملاحظه می کنید هیچ خطایی ندارد. وی خطا می زنه. حلقه های دیگه و شرط های دیگه هم همین طور مثل حلقه whaile و …
این هم اروری که می ده
'for' – expressions are not allowed on a global scope
Sina
سلام خسته نباشید
ببخشید یک سوال داشتم من دومین فیلم اموزشی از اموزش های اقای سجاد کنعانی را دیدم و همراه با ایشان تمرین ها رو حل کردم
اما یک قسمت برای (compile)کردن دستوراتی که وارد کردم مشکلی هست
ارور
(implicit conversion from ‘number’ to ‘string) رو میده میشه بفرمایین باید چیکار کنم که مشکلم رفع بشه؟!
mc.afshar
هر چقدر این استاد سواد ریاضی کمی دارن و به تابع “فانِکشن” می گن و باقیمانده تقسیم ۵ بر ۱۰ رو صفر اعلام می کنن، ذهن طبقه بندی شده و روایت اختصاصی خودشون رو برای تدریس دارن و با این که طرح درس رو کاغذ ندارن و حتی بعد از هر بار کامپایل کردن ارورها رو چک نمی کنن، در عوض برعکس اساتید دیگه که یا Help رو ترجمه کردن و یا آموزشهای خارجی رو ترجمه کردن، ایشون از دانسته های خودشون و با مسیر آموزشی خلاصه و بی دردسری استفاده کردن.
برای کسی که علاقمند باشه و بخواد مثلا محدودیت انواع داده های int یا double یا float، رو بدونه می تونه خودش راحت از Help هر موضوع پیدا کنه.
در مجموع من از تدریس ایشون مخصوصا از شروع توابع به بعد خیلی استفاده کردم.
Kian
با سلام و احترام.
راه ارتباطی با مدرس رو پیدا نکردم ، توی هیچ شبکه اجتماعی فعالیت نداشتن.
ممنون میشم اگر دوستان راه ارتباطی از ایشان رو دارن مثل اینستا و تلگرام و … اطلاع رسانی کنن. 🙏
مدیریت
در پاسخ به: Kianمدرس متاسفانه در دسترس نیستند