برنامه نویسی به زبان ام کیو ال (MQL)
در این مجموعه آموزشی تلاش میکنم از صفر تا صد کدنویسی در ام کیو ال (MQL) ورژن 4 را را به همراه مثال های کاربردی برایتان آموزش داده شود. مطالب دوره همگی به هم ربط دارند و حتما دوره رو از ابتدا دنبال کنید. زبان برنامه نویسی ام کیو ال در محیط متاتریدر 4 انجام میشود و شما می توانید روی این پلت فرم قدرتمند نیازها و شخصی سازی های خود را برنامه نویسی کنید. شما می توانید اندیکاتور های شخص تولید کنید شما می توانید اکسپرت (ربات معامله گر) طراحی کنید یا استراتژی های خود را پیاده سازی کنید.
اگر فردی هستید که هیچ اشنایی با زبان برنامه نویسی ندارید خوب قطعا نیاز به کار و وقت گذاشتن بیشتری دارید تا بتوانید منطق های برنامه نویسی را درک کنید. اگر هم از قبل کمی اشنایی با دارید با زبان های برنامه نویسی نظیر c قطعا خیلی سریع تر می توانید زبان برنامه نویسی ام کیو ال را بیاموزید.
چرا زبان برنامه نویسی ام کیو ال
یکی از پلتفرم های مطرح ، برای مشاهده و تحلیل نمودارهای قیمت ، متاتریدر میباشد که در دو نسخه 4 و 5 ارایه شده است. که بزرگترین مزیت آن رایگان بودن و سریع بودن این پلت فرم معاملاتی می باشد. اگر شما نیاز به ساخت یک اندیکاتور طبق استراتژی خود داشته باشید و یا بخواهید استراتژی خود را تبدیل به یک اکسپرت کنید تا معاملات مورد نظر شما به صورت خودکار انجام شود و یا از استراتژی خود بک تست بگیرید و آن را بهینه سازی کنید ، با یادگیری کدنویسی در این پلتفرم ، میتوانید همه این کارها را انجام دهید.
این دوره ام کیوال چه بخش هایی دارد :
◼ بخش مقدماتی
◼ بخش متوسطه
◼ بخش اندیکاتور
◼ بخش اکسپرت نویسی
◼ بخش رابط های گرافیکی و پنل ها
بعد از یادگیری این دوره ام کیو ال قادر خواهید بود :
◼ با اصول و مقدمات کار در محیط متاادیتور کاملا آشنا شوید.
◼ با منطق انواع اندیکاتور آشنا شده و هر نوع اندیکاتوری را پیاده سازی کنید (نکته مهم : شما برای اینکه بتوانید اکسپرت های بهینه طراحی کنید باید منطق اندیکاتورها را به خوبی درک کنید ).
◼ با منطق اسکریپ ها آشنا شده و انواع اسکریپ را پیاده سازی کنید.
◼ با منطق و اصول ساخت اکسپرت ها آشنا شده و هر ایده و استراتژی معاملاتی را تبدیل به اکسپرت کنید.
◼ بر مباحث مربوط به ساخت انواع پنل های گرافیکی مسلط شوید و هر پنلی را پیاده سازی کنید.
◼ با محیط استراتژی تستر و بخش های مختلف آن آشنا شده و بتوانید بک تست های دقیق تری داشته باشید.
در آموزش ام کیو ال صبور باشید
همانطوریکه یک تریدر همواره باید صبور باشد ، هنگام آموزش کدنویسی هم باید با صبر و حوصله آموزش ها را مشاهده و تمرین کنید و هنگامیکه مطلبی را متوجه نشدید سراغ قسمت های بعدی نروید و قسمت های قبلی رو دوباره مرور کنید تا مطلب رو کامل درک کنید . به این دلیل که همان مطلب در آینده میتواند به فهم مطالب بعدی به شما کمک کند.
مرجع عالی برنامه نویسی ام کیو ال
مطالبی که در این مجموعه تدریس میشود میتوان گفت نقشه راه شماست و شما بعد از گذراندن این دوره ، آموزش رو تمام شده ندانید و همواره مطالب و مقالات جدید رو مطالعه کنید . یکی از مراجع عالی سایت mql5 هست که انواع کدبیس ، مقاله و محصولات متنوع و به روز رو قرار میده و شما با مطالعه مطالب جدید میتونید سطح دانش خود را در این حوزه ارتقاء داده و یا ایده های جدیدی رو پیاده سازی کنید.
برنامه نویسی این نقطه قوت را دارد که همواره شما میتوانید چیزی بسازید که قبلا وجود نداشته و برای انجام این کار فقط کافیست مطالعه داشته و از خلاقیت خود استفاده نمایید. در نهایت امیدواریم این مجموعه برای شما مفید واقع شود و کارایی لازم را برایتان داشته باشد.
نمایش بخش کوتاهی از این مجموعه:
-
بخش اول : مقدماتی ۲۳۱ دقیقه
۱-۱ جلسه ۱ ● آشنایی با محیط meta editor
● آشنایی دستورات پیش پردازنده
● آشنایی با اسکلت و فریم ورک برنامه هالینک : نمایش حجم: ۱۱۸ مگابایت زمان: ۳۹ دقیقه ۱-۲ جلسه ۲ ● آشنایی با توابع و فراخوانی آنها
لینک : نمایش حجم: ۵۸ مگابایت زمان: ۲۷ دقیقه ۱-۳ جلسه ۳ ● متغیرها و نوع داده ها
● دیتا تایپ integer
● دیتا تایپ date time
● دیتا تایپ color
● دیتا تایپ boolean
● داده های شمارشی enumrationلینک : نمایش حجم: ۱۷۰ مگابایت زمان: ۶۲ دقیقه ۱-۴ جلسه ۴ ● دیتا تایپ های double, float, string
● متغیرهای محلی
● متغیرهای سراسری
● متغیرهای استاتیکلینک : نمایش حجم: ۱۰۰ مگابایت زمان: ۳۷ دقیقه ۱-۵ جلسه ۵ ● عملگرهای محاسباتی، انتسابی، رابطه ای، منطقی
● عملگر سه تایی
● عملگر switch
● حلقه های تکرارلینک : نمایش حجم: ۱۷۹ مگابایت زمان: ۶۶ دقیقه -
بخش دوم : متوسطه ۳۱۹ دقیقه
۲-۱ جلسه ۱ ● آشنایی با نحوه عملکرد کدها
● آرایه ها و توابع مربوط به داده های کندل هالینک : نمایش حجم: ۱۴۰ مگابایت زمان: ۵۰ دقیقه ۲-۲ جلسه ۲ ● تابع Message Box
● تابع Alert
● ارسال notification به گوشی و تبلتلینک : نمایش حجم: ۱۳۱ مگابایت زمان: ۵۰ دقیقه ۲-۳ جلسه ۳ ● متغیرهای Predefined
● تابع MarketInfoلینک : نمایش حجم: ۱۶۶ مگابایت زمان: ۵۷ دقیقه ۲-۴ جلسه ۴ ● تابع Account Info Double
● تابع Account Info Integerلینک : نمایش حجم: ۱۳۱ مگابایت زمان: ۴۵ دقیقه ۲-۵ جلسه ۴ ● توابع ترید (Order Send ، Order Modify ، Order Select)
لینک : نمایش حجم: ۱۲۹ مگابایت زمان: ۵۴ دقیقه ۲-۶ جلسه ۶ ● ارسال سفارش های پندینگ و مارکت با اسکریپ
● حذف سفارش های پندینگ و مارکت با اسکریپ
● حذف گروهی انواع سفارش هالینک : نمایش حجم: ۱۴۰ مگابایت زمان: ۶۳ دقیقه -
بخش سوم : اندیکاتورنویسی ۷۸۲ دقیقه
۳-۱ جلسه ۱ ● آشنایی با ساختار اندیکاتورها
● دسترسی به داده کندل ها
● آرایه های سری و توابع کار با آرایه هالینک : نمایش حجم: ۱۳۵ مگابایت زمان: ۵۶ دقیقه ۳-۲ جلسه ۲ ادامه توابع کار با آرایه ها
لینک : نمایش حجم: ۱۳۷ مگابایت زمان: ۶۰ دقیقه ۳-۳ جلسه ۳ ● بافر و آبجکت/
● اتصال یا مپینگ بافر به آرایه
● مقداردهی به آرایه ی متصل به بافر
● تابع OnCalculate و پرکردن آرایه با حلقه forلینک : نمایش حجم: ۱۲۵ مگابایت زمان: ۵۶ دقیقه ۳-۴ جلسه ۴ ● تنظیمات مربوط به Seperate Window با استفاده از دستورات پیش پردازنده و توابع معادل
● توابع Technical Indicatorsلینک : نمایش حجم: ۱۱۶ مگابایت زمان: ۴۳ دقیقه ۳-۵ جلسه ۵ ● پروژه : اندیکاتور cross movings
لینک : نمایش حجم: ۱۰۱ مگابایت زمان: ۴۴ دقیقه ۳-۶ جلسه ۶ ● پروژه : اندیکاتور ترکیبی stochastic , Adx
● استفاده از alert, notification در اندیکاتورلینک : نمایش حجم: ۸۹ مگابایت زمان: ۳۶ دقیقه ۳-۷ جلسه ۷ ● دسترسی به مقادیر اندیکاتورها با استفاده از تابع iCustom
● طراحی یک اندیکاتور واسط برای تشخیص بافر اندیکاتورهای شخصیلینک : نمایش حجم: ۱۰۰ مگابایت زمان: ۴۰ دقیقه ۳-۸ جلسه ۸ ● توابع مربوط به آبجکت ها (قسمت اول)
لینک : نمایش حجم: ۱۲۶ مگابایت زمان: ۴۵ دقیقه ۳-۹ جلسه ۹ ● توابع مربوط به آبجکت ها(قسمت دوم)
لینک : نمایش حجم: ۱۹۸ مگابایت زمان: ۶۱ دقیقه ۳-۱۰ جلسه ۱۰ ● توابع Object Get
● توابع ObjectsTotal ، ObjectName ، ObjectType
● جابجایی آبجکت هالینک : نمایش حجم: ۱۵۱ مگابایت زمان: ۵۵ دقیقه ۳-۱۱ جلسه ۱۱ ● تابع () OnChartEvent
لینک : نمایش حجم: ۱۲۵ مگابایت زمان: ۵۰ دقیقه ۳-۱۲ جلسه ۱۲ ● پروژه 1 : اندیکاتور MACD_CUSTOM
لینک : نمایش حجم: ۱۲۸ مگابایت زمان: ۴۸ دقیقه ۳-۱۳ جلسه ۱۳ ● پروژه 2 : اندیکاتور Pivot Point
لینک : نمایش حجم: ۲۲۸ مگابایت زمان: ۸۰ دقیقه ۳-۱۴ جلسه ۱۴ ● پروژه 3 : توسعه اندیکاتور PivotPoint /
● پروژه 4 : پیاده سازی اندیکاتور FractalCustomلینک : نمایش حجم: ۱۳۳ مگابایت زمان: ۵۲ دقیقه ۳-۱۵ جلسه ۱۵ ● ارسال پارامترها به توابع به صورت مقدار و آدرس (CallByValue & CallByRefrence)
● پروژه : پیاده سازی اندیکاتور MultiRSIلینک : نمایش حجم: ۱۱۹ مگابایت زمان: ۵۶ دقیقه ۳-۱۶ سورس کدهای این بخش لینک : نمایش حجم: ۰ مگابایت زمان: ۰ دقیقه -
بخش چهارم : طراحی اکسپرت ۷۵۲ دقیقه
۴-۱ جلسه ۱ ● آشنایی با فریم ورک فایل اکسپرت
● چک کردن تنظیمات اکسپرت
● ایجاد محدودیت در اکسپرت ( تاریخ انقضاء، محدودیت اکانت و ایجاد رمز عبور برای اکسپرت)
● ساخت هدر فایل کاربردی Checksلینک : نمایش حجم: ۱۱۲ مگابایت زمان: ۵۶ دقیقه ۴-۲ جلسه ۲ ● اجزای مهم یک اکسپرت
● طراحی یک اکسپرت براساس کراس موینگ اوریجلینک : نمایش حجم: ۱۳۸ مگابایت زمان: ۶۱ دقیقه ۴-۳ جلسه ۳ ● استفاده از سیگنال های یک اندیکاتور در اکسپرت به همراه تعیین پارامترهای اندیکاتور
● افزودن فایل اندیکاتور به فایل اصلی پروژه
● مخفی کردن اندیکاتورهای استفاده شده در اکسپرتلینک : نمایش حجم: ۱۳۹ مگابایت زمان: ۴۸ دقیقه ۴-۴ جلسه ۴ ● تولید مجیک نامبر منحصر به فرد توسط اکسپرت /
● افزودن قابلیت Break Even به اکسپرت /
● افزودن قابلیت Trailing Stop به اکسپرتلینک : نمایش حجم: ۱۲۷ مگابایت زمان: ۵۰ دقیقه ۴-۵ جلسه ۵ ● تابع Trailing Stop براساس high, low کندلها
● برطرف کردن باگ های مربوط به مادیفای شدن پوزیشن ها
● ایجاد محدودیت در تعداد پوزیشن های باز شده توسط اکسپرتلینک : نمایش حجم: ۱۳۶ مگابایت زمان: ۵۶ دقیقه ۴-۶ جلسه ۶ ● افزودن قابلیت هج به اکسپرت
● بستن پوزیشن های خلاف سیگنال فعلی
● افزودن قابلیت مارتینگل به اکسپرتلینک : نمایش حجم: ۱۲۴ مگابایت زمان: ۵۸ دقیقه ۴-۷ جلسه ۷ ● ایجاد سیگنال تصادفی در اکسپرت
● جبران ضرر پوزیشن های قبلی بااستفاده از مارتینگل
● محاسبه خودکار ضریب مارتینگل باتوجه به مقدار استاپ و تی پی
● قرار دادن شماره پوزیشن در قسمت کامنت سفارش هالینک : نمایش حجم: ۱۰۷ مگابایت زمان: ۴۷ دقیقه ۴-۸ جلسه ۸ ● محدود کردن تعداد پوزیشن های خلاف جهت پوزیشن قبلی
● نمایش وضعیت اکسپرت و پارامترهای آن روی چارت
● ایجاد محدودیت اسپرد هنگام باز کردن پوزیشنلینک : نمایش حجم: ۱۲۰ مگابایت زمان: ۴۷ دقیقه ۴-۹ جلسه ۹ ● محاسبه حجم پوزیشن براساس درصدی از مقدار اکانت
● ایجاد بازه زمانی معامله توسط اکسپرتلینک : نمایش حجم: ۱۳۲ مگابایت زمان: ۵۶ دقیقه ۴-۱۰ جلسه ۱۰ ● خواندن و نوشتن دیتا در یک فایل خارجی توسط اکسپرت
لینک : نمایش حجم: ۱۰۳ مگابایت زمان: ۴۹ دقیقه ۴-۱۱ جلسه ۱۱ ● پروژه ای براساس مدیریت حجم و مارتینگل با سیگنال اندیکاتور مکدی
● پیاده سازی بخش سیگنال گیری
● ایجاد محدودیت فاصله بین پوزیشن هالینک : نمایش حجم: ۱۵۶ مگابایت زمان: ۶۱ دقیقه ۴-۱۲ جلسه ۱۲ ● محاسبه نقطه break even پوزیشن های هم نوع
● انتقال tp پوزیشن های هم نوع به یک نقطه
● افزودن ویژگی مارتینگل به اکسپرت
لینک : نمایش حجم: ۹۳ مگابایت زمان: ۴۶ دقیقه ۴-۱۳ جلسه ۱۳ ● افزودن ویژگی مارتینگل هوشمند به اکسپرت
● نمایش قیمت بریک ایون با ابجکت روی چارت
لینک : نمایش حجم: ۸۳ مگابایت زمان: ۴۵ دقیقه ۴-۱۴ جلسه ۱۴ ● نحوه ی کار با استراتژی تستر متاتریدر
● مقادیر گزارش شده در تب Report ● آپتیمایز (بهینه سازی) پارامترهای اکسپرت
لینک : نمایش حجم: ۶۸ مگابایت زمان: ۴۳ دقیقه ۴-۱۵ جلسه ۱۵ ● استفاده از فایل های DLL در پروژه و قابلیت های بیشمار آن
لینک : نمایش حجم: ۷۳ مگابایت زمان: ۳۳ دقیقه ۴-۱۶ سورس کدهای این بخش لینک : نمایش حجم: ۰ مگابایت زمان: ۰ دقیقه -
بخش پنجم : رابط های گرافیکی ۲۴۵ دقیقه
۵-۱ جلسه ۱ ● نحوه ی ساخت اینترفیس یا پنجره اصلی ، تغییر رنگ آن
● نحوه ی ساخت پنجره های فرعیلینک : نمایش حجم: ۷۲ مگابایت زمان: ۳۶ دقیقه ۵-۲ جلسه ۲ ● نحوه ی ساخت دکمه ها، ادیت باکس ها، لیبل ها و استفاده از متدهای آنها
لینک : نمایش حجم: ۸۶ مگابایت زمان: ۴۲ دقیقه ۵-۳ جلسه ۳ ● بیت مپ باتن و استفاده از متدهای آن
● ساخت ریدیو گروپ و متدهای آن
● ساخت چک باکس گروپ و متدهای آنلینک : نمایش حجم: ۱۱۵ مگابایت زمان: ۵۸ دقیقه ۵-۴ جلسه ۴ ● لیست ویو و استفاده از متدهای آن
● کومبوباکس و متدهای آن
● ویندوکلاینت ایریا و متدهای آنلینک : نمایش حجم: ۹۱ مگابایت زمان: ۵۰ دقیقه ۵-۵ جلسه ۵ ● Date Picker
● Time Picker
● Spin Editلینک : نمایش حجم: ۹۸ مگابایت زمان: ۵۹ دقیقه ۵-۶ سورس کد های این بخش لینک : نمایش حجم: ۰ مگابایت زمان: ۰ دقیقه -
پروژه های طراحی ترید پنل گرافیکی ۳۰۰ دقیقه
۶-۱ پروژه ۱ ● ساخت اینترفیس اصلی
● ساخت باتن و ادیت باکس
● نمایش قیمت ask, bid در داخل ترید پنل
لینک : نمایش حجم: ۸۰ مگابایت زمان: ۴۹ دقیقه ۶-۲ پروژه ۲ ● ساخت باتن های کلوز بای، کلوز سل و کلوز آل
● افزودن عملکرد به باتن های بستن و باز کردن پوزیشن ها
● افزودن عملکرد افزایش و کاهش حجم پوزیشن هالینک : نمایش حجم: ۱۱۵ مگابایت زمان: ۶۴ دقیقه ۶-۳ پروژه ۳ ● ادیت باکس برای تعیین حالت استاپ لاس (پوینت و دلاری)
● ادیت باکس برای تعیین حالت تیک پرافیت (پوینت و دلاری)
● ادیت باکس برای تعیین حالت ریسک معاملات (درصدی و دلاری)لینک : نمایش حجم: ۱۱۹ مگابایت زمان: ۶۴ دقیقه ۶-۴ پروژه ۴ ● محاسبه استاپ و تی پی از نوع پوینت و دلاری
● محاسبه استاپ از نوع درصدی و دلاری
● نمایش محل استاپ و تی پی قبل از باز کردن پوزیشنلینک : نمایش حجم: ۱۱۱ مگابایت زمان: ۵۷ دقیقه ۶-۵ پروژه ۵ ● نمایش مقادیر اکانت روی ترید پنل
● نمایش لحظه ای مجموع حجم و سود پوزیشن های باز هر جهت
● مدیریت سرمایه ی نیمه اتوماتیک در ترید پنللینک : نمایش حجم: ۱۴۶ مگابایت زمان: ۶۵ دقیقه ۶-۶ به زودی .... لینک : نمایش حجم: ۰ مگابایت زمان: ۰ دقیقه
مدیر
منابع آموزشی فراچارت کاملا رایگان و با رعایت حقوق صاحبین اثر مدرسان ایرانی برای شما تهیه شده است. لذا استفاده از آن در رسانه های دیگر یا کسب درآمد به هر نحوی از این محتوای آموزشی نقض قوانین کپی رایت است و پیگرد حقوقی دارد و سو استفاده از حاصل زحمات دیگران در نهایت باعث ترویج بی اعتمادی و ایجاد محیط ناسالم برای رقابت خواهد شد.
62 دیدگاه
ABalrog
سلام.لطف کنید یه دوره اندیکاتور نویسی برای mql5 بزارید.ممنون
میثم قاسمی
در پاسخ به: ABalrogسلام
بله حتما در آینده mql5 رو هم در خدمت خواهم بود.
فعلا تمرکز روی mql4 هست و بعد از تکمیل این دوره و دوره ی پنل های گرافیکی ، mql5 رو شروع خواهیم کرد
بهزاد
در پاسخ به: میثم قاسمیاستاد mql5 تو چه مرحله ایه؟
Alifaraji
سلام وقت بخیر من با برنامه نویسی ام کیو ال آشنا هستم و چند تا برنامه کاربردی هم نوشتم که با اکانت خودم ران کردم ولی با استراتژی های های فرکانس آشنایی ندارم میتونین راهنمایی کنین که از کجا میتونم با این استراتژی ها آشنا بشم ؟
میثم قاسمی
در پاسخ به: Alifarajiسلام
بنده بااین استراتژی آشنا نیستم
تا جایی که اطلاع دارم این استراتژی مربوط به سرمایه های کلان و مارکت میکر ها هست.
Mehran
من این دوره رو تا به اینجا که اپلود شده دیدم و از قبل هم با جناب قاسمی اشنایی دارم و این دوره فوق العاده هستش و کاملا نیاز تمامی افراد از جمله مبتدی و حرفه ای رو برطرف میکنه
تشکر میکنم از جناب قاسمی عزیز
میثم قاسمی
در پاسخ به: Mehranسلام آقا مهران
ممنونم نظر لطف شماست
الیاس سخاوتی نیا
سلام
قسمت های جدید چه زمانی آپلود میشن؟
mahdi
سلام
استاد، لطفا ادامه دوره را قرار دهید
میثم قاسمی
در پاسخ به: mahdiسلام به زودی در سایت آپلود میشه
saeed
سلام
تشکر میکنم از سایت خوب فراچارت و استاد گرامی بابت دوره های آموزشی بسیار خوبشون
من دوتا سوال داشتم اول اینکه مراحل را مو به مو مثل آموزشها طی میکنم و اکسپرت بدون هیچ خطایی نوشته میشه روی چارت هم آدمک سمت راست بالای چارت به حالت لبخند درمی آید ولی برنامه های نوشته شده اجرا نمیشه می خواستم بدونم دلیلش چیه؟
سوال دوم اینکه میخوام برنامه ای بنویسم که راس یک تایم خاص خرید کنه و راس یک تایم خاص دیگه خرید انجام شده را ببندد. از چه تابعی پیشنهاد میدید استفاده کنم و به چه صورت؟
با تشکر
samandari
در پاسخ به: saeedبا سلام، آیا در نرم افزار متا تریدر قسمت Auto Trading یا Ctrl+E را فعال کرده اید؟ و در قسمت Common از پنجره Expert تیک Allow Live Trading را زده اید.
در خصوص قسمت دوم باید از توابع زمانی استفاده کنید که در اینجا مجال توضیح نیست.
saeed
در پاسخ به: samandariبا سلام و احترام
بله اینکار رو انجام دادم
از توابع زمانی هم به صورت زیر استفاده کردم
اگر ایرادی داره بفرمایید
#property copyright “Copyright 2021, MetaQuotes Software Corp.”
#property link “https://www.mql5.com”
#property version “1.00”
#property strict
input int starthour=22;
input int startminute=24;
input int satartseconds=00;
int tickitum;
void OnTick()
{
if(Hourfilter()==true && Minutefilter()==true && Secondsfilter()==true)
tickitum=OrderSend(Symbol(),OP_BUY,.1,Ask,5,0,0,”rise group”,4455,0,0);
if(tickitum<=0)
Comment("could not open position Error=",GetLastError());
}
bool Hourfilter()
{
if(Hour()==starthour)
return(true);
else
return(false);
}
//+——————————————————————+
bool Minutefilter()
{
if (Minute()==startminute)
return(true);
else
return(false);
}
//+——————————————————————+
bool Secondsfilter()
{
if (Seconds()==satartseconds)
return(true);
else
return(false);
}
saeed
در پاسخ به: samandariدرواقع برنامه ای با لحاظ توابع زمانی نوشتم که به شرح پیوست خدمتتان ارسال کردم
تابع پوزیشن گیریم به تنهایی کار میکنه
تابع زمانی هم به تنهایی کار میکنه
ولی متاسفانه هردو رو که با هم ترکیب میکنم خطای شماره صفر رو میده
//+——————————————————————+
//| ۶٫mq4 |
//| Copyright 2021, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+——————————————————————+
#property copyright “Copyright 2021, MetaQuotes Software Corp.”
#property link “https://www.mql5.com”
#property version “1.00”
#property strict
input int starthour=22;
input int startminute=24;
input int satartseconds=00;
int tickitum;
//+——————————————————————+
//| Expert initialization function |
//+——————————————————————+
int OnInit()
{
//—
//—
return(INIT_SUCCEEDED);
}
//+——————————————————————+
//| Expert deinitialization function |
//+——————————————————————+
void OnDeinit(const int reason)
{
//—
}
//+——————————————————————+
//| Expert tick function |
//+——————————————————————+
void OnTick()
{
if(Hourfilter()==true && Minutefilter()==true && Secondsfilter()==true)
tickitum=OrderSend(Symbol(),OP_BUY,.1,Ask,5,0,0,”rise group”,4455,0,0);
if(tickitum<=0)
Comment("could not open position Error=",GetLastError());
}
//+——————————————————————+
bool Hourfilter()
{
if(Hour()==starthour)
return(true);
else
return(false);
}
//+——————————————————————+
bool Minutefilter()
{
if (Minute()==startminute)
return(true);
else
return(false);
}
//+——————————————————————+
bool Secondsfilter()
{
if (Seconds()==satartseconds)
return(true);
else
return(false);
}
میثم قاسمی
در پاسخ به: saeedسلام ممنونم
میشه بفرمایید کدوم قسمت آموزش ها رو اجرا میکنید و به مشکل میخورید؟
و اینکه برای باز کردن پوزیشن در یک تایم خاص باید تمامی توابع مربوط به زمان رو مسلط بشید
این نکته رو هم در نظر داشته باشید که وقتی از زمان استفاده میکنید هنگام بک تست ، مدل رو روی حالت every tick قرار بدین.
یه نکته کلی هم به دوستانی که آموزش رو با ما همراه هستند بگم. البته در کانال بعضی از دوستان خودشون جزو اساتید هستند و باعث افتخار بنده هست که در کانال حضور دارند.
دوست من ، اگر قرار هست یک برنامه نویس خوب در هرزمینه ای بشی
باید مشکل کدها رو با بررسی مرحله به مرحله برطرف کنی
اگر کدی رو نوشتی که ایراد داره
خوشحال باش و دنبال اون ایراد بگرد و برطرفش کن
چون عیب یابی در کدها به شما تجربه فوق العاده ای میده
دقیقا مثل راننده ای که تازه گواهینامه گرفته و راننده ای که سالها تجربه رانندگی داره
با آرزوی موفقیت برای همراهان
saeed
در پاسخ به: میثم قاسمیسلام و عرض ادب
این برنامه رو از روی نکاتی که استاد احمدی آموزش داده بودن نوشتم
مدی محترم سایت فرمودن اگر سوالی هست از حضرتعالی پرسیده بشه
ممنون از زحمات شما
میثم قاسمی
در پاسخ به: saeedکدتون ایرادی نداره و باید کار بکنه
موقع تست روی حالت every tick بگذارید
موفق باشید
samandari
ضمن تشکر از عوامل سایت خوب فراچارت که با در اختیار قرار دادن محتوای رایگان به پیشرفت جوانان کمک می کنند از جناب آقای قاسمی عزیز بابت تدریس عالی و پر محتوا بسیار تشکر می کنم. بی صبرانه منتظریم تا هر چه زودتر قسمت های آتی هم آماده شوند.
Somos
سلام وقت بخیر
چطور تب input در پنجره دریافت ورودی از کاربر موقع اجرای اسکریپت(این رو زدم کد #property script_show_inputs) و اکسپرت رو بهم نشون میده؟
تمام کدهارو هم اضافه کردم ولی بجای گرفتن ورودی و چاپ کردنش همون عدد که با متغییر جمع میشه رو نشون میده
و یه مسئله اینکه متاتریدر ۴ رو از سایتش دانلود کردم اما توی اجراها میزنه mq5
۱۶۳۵۳۶۹۴۶۹۵۷۹
میثم قاسمی
در پاسخ به: Somosسلام ممنونم
در اسکریپت ها باید از دستوری که نوشتید استفاده کنید
اما در اکسپرت ها شما هنگامی که یک متغیر از نوع input , extern تعریف کنید به طور خودکار تب input به propertice اضافه میشه
در رابطه با کدتون این رو بدونین که برنامه هیچ وقت اشتباه نمکینه و حتما جایی از کد ایراد داره
برخی از بروکرها پلتفرم متای ۴ رو ندارند و لینک متای ۵ رو قرار میدند
میتونید از یک بروکر دیگه دانلود بفرمایید
shift
سلام جناب آقای قاسمی.
ضمن تشکر از دوره خوب و کاملتون میخواستم بپرسم آیا گستردگی این زبان برنامه نویسی در حدی هست که بتوان پوزیشن هایی بر اساس قوانین الیوتی و فیبوناچی تعریف و باز کرد؟
و اگر جواب مثبته غیر از سایت mql کجا میشه به کدهای اکسپرت های مرتبط با این ابزار ها برای الهام گرفتن پیدا کرد؟
ممنون میشم لینک کانال تلگرامتون رو قرار بدید.
با سپاس
میثم قاسمی
در پاسخ به: shiftسلام ممنونم
بله شما هر ایده ای رو میتونید کار کنید
با سرچ کردن سایت های زیادی میشه پیدا کرد اما سایت mql مرجع بسیار خوبی هست و فایل هایی که داخلش اپلود میشه بررسی میشه احیانا برنامه مخربی نباشه
شما هر مقاله ای بتونید پیدا کنید که راجع به اندیکاتور و اکسپرت باشه جدای از اینکه در مورد هرزبان برنامه نویسی باشه براتون مفید هست چرا که امکان داره اندیکاتوری برای یک پلتفرمی ساخته شده باشه و شما نیاز پیدا کنید برای متاتریدر بازنویسی بفرمایید
Hoseinaba
سلام و تشکر بابت آموزش خوبتون
ایا به طور مثال وقتی مقدار کندل را با اندیکاتوری مقایسه میکنیم داده های High , iHighest نتایجی متفاوتی دارند؟
میثم قاسمی
در پاسخ به: Hoseinabaسلام ممنونم
قسمت های مربوط به این آرایه ها رو دوباره با دقت مرور بفرمایید
چون مقادیر خروجی آنها با هم تفاوت دارند
amir
سلام یه سوالی داشتم با این برنامه میشه واگرایی ها را پیدا کرد؟
مدیریت
در پاسخ به: amirبله
Javid
سلام من اولین بار هست که این قسمت را بازدید کردم آیا امکان دارد که از اکسپرت اندیکاتورها برای ساخت استراتژی معاملاتی استفاده بکنیم؟ مانند مکدی ویلیامز و الیگیتور
میثم قاسمی
در پاسخ به: Javidبا سلام
بله از هر اندیکاتوری میتونید استفاده کنید و استراتژی شخصی بسازید
Javid
در پاسخ به: میثم قاسمیسلام متشکرم از پاسخ دادن شما ولی منظورم اینه که ایکسپرت اندیکاتور را در قسمت استراتژی میشه بگنجانیم و چند اندیکاتور را ترکیب کرده و بعنوان استراتژی که ورود و خروج اتوماتیک انجام بده. آیا این ممکنه
میثم قاسمی
در پاسخ به: Javidبله شما میتونید یک اکسپرت بنویسید و از هر تعداد اندیکاتور که خواستین استفاده کنین و ورود و خروج با توجه به سیگنال اندیکاتورها انجام بشه
توحید
سلام
برای رسم یک خط روند ما احتیاج به دو نقطه و دو زمان متفاوت داریم. حالا سوال من این است بعد از رسم خط روند ما با چه تابع یا دستوری میتونیم بنویسیم که اگر کندل جاری به این خط روند رسید یا گذر کرد یا touch کرد آلارم بده؟ مشکل این است که مثلا وقتی یک خط روند رو رسم میکنیم دو نقطه و زمان در گذشته است و با قیمت و زمان جاری فاصله داره و این شیب روند رو چطور محاسبه کنیم؟ ظاهرا در TrendLine گذینه ای نداره؟
۱
کیوان
ممنون از این آموزش خوب و کاملی که در اختیار ما قرار دادید.
بی صبرانه منتظر ادامه بخش های دیگر آموزش هستم.
یشس
ممنون از اموزشهای خوبتون جناب قاسمی.
آموزش مربوط به اکسپرت رو کی میذارید؟
فرهاد
سلام وقتتون بخیر
من آموزش ها دیدم خیلی خوب بود
ی مشکلی دارم
من برای کلوز هفتگی یک خط میخوام رسم کنم مقدار iClose دابل هست چطور توی اندیکاتور تو قسمت calculate به آرایه نسبت بدم ؟
ممنون میشم کمک کنید
amir9121
سلام وقت بخیر ..یک سوال داشتم ایا اصول امکان داره که با استفاده از mql4 من ابجکتی طراحی کنم مثل fibo time cycle، چون داخل متاتریدر فیبو پروجکشن زمانی نیست ایا امکان داره بتونیم یه ابجکتی برای این کار داخل متاتریدر تراحی کنیم با استفاده از mql
Taghi
باسلام و تشکر فراوان بابت آموزش های خیلی خوبتون اقای قاسمی عزیز
من در مورد پوزیشن گیری و مدیریت اون ها در mql5 خیلی مشکل دارم میخواستم ببینم آموزشی در مورد ترید در mql5 دارید؟
ممنون میشم کم کنید
محمد
با سلام و تشکر از استاد عزیز بابت تهیه این مجموعه آموزشی با کیفیت و پر محتوا
میخواستم ببینم آیا ادامه آموزش ها آپلود میشه چون زمان زیادی قسمت جدیدی آپلود نشده است .
بازم ممنون از شما و زحمت هاتون
مدیریت
در پاسخ به: محمدتشکر از شما بله پیگیر هستیم
1356mohsenmashmool
با سلام خدمت استاد عزیز
استاد آیا امکانی برای اینکه اگر کاربر بخواد یک اکسپرت رو از روی چارت حذف کنه میبایست یک پسورد وارد کنه و گرنه اکسپرت همچنان روی چارت فعال باشه وجود داره یا نه با تشکر از شما محسن مشمول.
farshad7078
استاد قاسمی سلام
من دوره آموزش اکسپرت نویسی رو دیدم و خیلی استفاده کردم. میخواستم بدونم اگه از یه اندیکاتور خارجی (دانلود شده) که بشکل هیستوگرام هستش که روند صعودی رو با خطهای عمودی سبز و روند نزولی رو با خطهای عمودی قرمز در پایین چارت نشون میده آیا امکان دریافت
رنگ این خطوط وجود داره که با تغییر رنگ از سبز به قرمز مثلا متوجه بشیم که روند نزولی شده؟ که دیگه نخواهیم از بافر استفاده کنیم.
ممنون میشم راهنمایی کنید.
farshad7078
سلام
برای ارتباط با استاد قاسمی نازنین و دوست داشتنی به شکلی باید اقدام کنیم؟ چون خیلی دیر جواب کامنتها رو میدن و یا اصلا نمیدن!!!!
با تشکر
مدیریت
در پاسخ به: farshad7078راه ارتباطی در ویدئو ها درج شده
Ali_chegini
باسلام و تشکر از بابت آموزشی که ارائه دادید ولی متاسفانه بسیاری مواردی رو که اشاره کردید ظاهرا در mql5 تغییر کرده و بطور کلی احساس میکنم mql5 بسیار پیچیده تر و گنگ تر شده
ممنون میشم در صورت امکان یک دوره آموزشی برای mql5 برگزار کنید
اصلا نمیفهممش…
Siavash
با عرض سلام خدمت استاد گرامی و تشکر از آموزش بسیار خوبتون ، خداقوت ،
سوالی داشتم
فرض کنید اردر بازی داریم و تا وقتی که اردر بازه می خواهیم اردرهای دیگری را نیز در نقاط خاصی باز کنیم و اگر اردر بسته شد دیگه این کار انجام نشه
میشه راهنمایی بفرمایید چطور دستورات نوشته بشه
ممنون
amirlashgari
در پاسخ به: Siavashسلام دوست عزیز
اگر فقط یک اوردر باز دارید و تا زمانیکه این اوردر باز هستش میخواهید که اوردر جدید بگیرید
میتونید از تابع اوردر توتال استفاده کنید به عنوان مثال :
if(OrdersTotal==1)
{
int Tiket2=OrderSend=(Symbol(),………….)
}
amirlashgari
سلام بر همگی
دوستان کسی میدونه چطور باید مقدار لات اوردر های پندینگ رو محاسبه کنیم ؟
من از تابع OrderLots() استفاده میکنم اما فقط مقدار لات اورد های باز شده رو بهم میده و اصلا کاری با پندینگ ها نداره
آیا تابعی برای پندینگ ها می شناسید؟
amirlashgari
در پاسخ به: amirlashgariسلام دوست عزیز من هم همین مشکل رو داشتم و راه حلی که به ذهنم رسید این بود که از تابعی که لاتیج اوردر های پندینگ من رو محاسبه میکرد خروجی گرفتم و اینجوری حتی قبل از سند شدن اوردر پندینگ به لاتیجش دسترسی داشتم
از این تفکر ایده بگیرید انشالله با خلاقیقت خودتون به نتیجه میرسید