مدت :

۲ ساعت (فشرده)

قیمت : ۲۵۲,۰۰۰ تومان
روزآمدی: آذر ۱۴۰۲
LinkedIn
Twitter
Facebook
Telegram

درباره مدرس 

اطلاعات دوره

توضیحات

در این آموزش ساخت ربات معامله گر روی همان اکسپرت فصل گذشته تمرکز می‌کنیم؛ اما این بار با اصول حرفه‌ای برنامه نویسی شی گرا به ساخت اکسپرت می‌پردازیم. ساخت کلاس CTrade را در متاتریدر 5 می‌آموزیم. کلاس CTrade جایی است که ما تابع های پرکاربرد ساخت اکسپرت ها را تعریف می‌کنیم تا در فصل‌های بعد آموزش mql5 بتوانیم بارها استفاده کنیم.

بنابراین آنچه در این فصل کدنویسی می‌کنیم، سنگ بنای تمام فصل‌های آینده و بسته‌های بعدی است. این فصل در واقع بخشی از بسته مقدماتی آموزش MQL5 در مسیر آموزشی زیر است.

  1. آموزش MQL5 برای ساخت اکسپرت معامله (بسته مقدماتی)
  2. آموزش mql5 برای ساخت اکسپرت معامله گر (بسته پیشرفته)
  3. بسته تکمیلی آموزش MQL5 برای ساخت اکسپرت معامله

*توجه: اگر بسته شماره ۱ را در بالا تهیه کرده‌اید دیگر نیازی به تهیه این آموزش MQL5 نیست؛ زیرا در همان بسته قرار داده شده است. بسته ۱ را کامل ببینید و تمرین کنید و بعد سراغ بسته‌ شماره ۲ و بعد ۳ بروید!

 

این آموزش در یک نگاه

در یک نگاه ما در این آموزش به ساخت ربات بورس یا دقیق تر بگوییم Expert Advisor می‌پردازیم. در جریان ساخت این ربات معامله گر ما اصول شی گرایی را با ساخت کلاس CTrade در MQL5 به خدمت می‌گیریم.

این فصل شامل ۱۸ درس است که ما آن را به دو بخش ۹ درسی تقسیم کرده‌ایم. برای آگاهی از ریز مطالب لازم است که بخش سرفصل‌ها را در انتهای توضیحات بخوانید. با این حال در اینجا سعی می‌کنیم یک منظره کلی از دوره برای شما ترسیم کنیم.

بخش اول در ۹ درس به ایجاد کلاس CTrade اختصاص دارد. تابعی برای مدیریت پاسخ‌های سرور تعریف می‌کنیم. سعی می‌کنیم پاسخ سرور را به زبان مفهوم‌تری برای استفاده کننده اکسپرت گزارش کنیم. سپس به تعریف تابع‌های ایجاد سفارش خرید و فروش می‌پردازیم. سرانجام اکسپرت فصل اول را با اتکا به کلاس CTrade بازنویسی می‌کنیم.

بخش دوم نیز شامل ۹ درس است. کار روی کلاس CTrade را ادامه می‌دهیم. تابع‌هایی برای محاسبه حد ضرر (Stop Loss) و حد سود (Take Profit) تعریف می‌کنیم. با تابع‌های MQL5 برای دریافت مشخصات سفارش جاری آشنا می‌شویم و از آن‌ها در دل تابع‌های خودمان بهره می‌بریم. تابعی نیز برای اصلاح حد ضرر و حد سود در حین اجرای اکسپرت تعریف می‌کنیم. سرانجام در این بخش به تعریف تابع Close می‌پردازیم و از آن برای بستن سفارش‌ها استفاده می‌کنیم.

سعی شده تا زمان این آموزش ساخت اکسپرت با سناریونویسی تا حد ممکن بهینه و کوتاه شود تا بتوانید روی درک مفاهیم تمرکز کنید. هر درس را چندین و چند مرتبه از نو ضبط می‌کردیم تا به یک ضبط بهینه برسیم.

 

چرا ساخت کلاس CTrade ؟

شما در این فصل بیشتر با کدهای خشک و بدون اجرا سروکار دارید؛ مانند فصل قبل نیست که مدام اکسپرت اجرا کنید و نتیجه را ببینید. چاره‌ای نیست. صبور باشید و خسته نشوید. این فصل باید باشد. باید آن را با دقت ببینید و تمرین کنید. اگر می‌خواهید یک برنامه نویس حرفه‌ای معاملات الگوریتمی شوید، باید یک نگاه برنامه نویسانه پیدا کنید. باید شی گرایی را درک کنید. این فصل به شما در چنین درکی کمک می‌کند.

شما با ساخت ربات با اتکا به کلاس CTrade در واقع یک گام محکم به دنیای برنامه‌نویسی شی گرا به انگلیسی Object Oriented Programming و به اختصار OOP برمی‌دارید.

 

چرا برنامه نویسی شی گرا ؟

یکی از اصول برنامه نویسی این است که «خودتان را تکرار نکنید!». اگر همه کدهای اکسپرت را در یک فایل بنویسید، برای هر اکسپرت باید همه چیز را از نو بنویسید.

بسیاری دستورات در ساخت اکسپرت های گوناگون مشترک است. ما چنین دستورهایی را در قالب چندین تابع مستقل در یک کلاس مستقل به نام CTrade بسته بندی می‌کنیم. بعد از آن هر بار که بخواهیم اکسپرتی بسازیم می‌توانیم از این تابع‌ها استفاده کنیم. مثلا برای باز کردن یک سفارش می‌توان یک تابع OpenPosition حاوی دستورات لازم در کلاس CTrade ساخت. بعد از آن در همه اکسپرت‌ها برای باز کردن سفارش کافی است که این تابع را از کلاس CTrade صدا بزنیم.

این گام نخست در مسیر برنامه نویسی شی گرا  است. با استفاده از شی گرایی شما می‌توانید برنامه ای بسازید حاوی کلاس‌ها و تابع‌های مستقل که دست به دست هم یک کار را انجام می‌دهند. هر بار هم که بخواهید برنامه را به روز کنید خیلی ساده به سراغ تابع مربوطه می‌روید. در یک شی گرایی خوب باید بتوان هر تابع را به صورت مستقل از تابع های دیگر تغییر داد.

به این تریبت نگهداری یک برنامه بزرگ به کاری ممکن تبدیل می‌شود. حتی می‌توان با چنین نگاهی یک معماری هم برای اتصال بخش‌های مختلف برنامه (مثل رابط کاربری، دیتابیس، کدهای مدل و …) ایجاد کرد. با داشتن معماری می‌توان یک برنامه را به چندین بخش تقسیم کرد و کار ساخت ربات بورس و نگهداری هر بخش را به یک نفر در گروه سپرد.

پس این آموزش در واقع شما را از دنیای یک کدنویس ساده، وارد دنیای یک برنامه ساز می‌کند. تنها با رعایت این گونه اصول است که شما می‌توانید پروژه‌های مختلف را به درستی پیاده سازی کنید. یک برنامه نویس خوب با رعایت اصول برنامه سازی حرفه ای می‌تواند در پروژه های بزرگ مشارکت کند.

 

نکته مهم برای یادگیری بهتر

سورس کدها گام به گام که پیش می‌رویم به هر درس پیوست شده است. اما شما از آن‌ها فقط برای مقایسه با کد خودتان بهره ببرید. بدترین کار این است که به سورس کدهای آماده اتکا کنید و این فصل را فقط تماشا کنید (بدون تمرین). بهترین کار این است که همراه با مدرس در هر درس فیلم را ببینید و کدها را یک مرتبه همراه مدرس و یک مرتبه از حفظ بنویسید تا دستتان عادت کند. اگر حوصله این کار را ندارید باید از خودتان بپرسید که آیا من واقعا به برنامه نویسی علاقه دارم؟

 

این آموزش بی‌نظیر است زیرا:
  • برنامه نویسی بازارهای مالی یک زمینه شغلی جدی و پربازده برای برنامه نویسان است.
  • منبع ما کتاب محبوب Expert Advisor Programming (+) به علاوه تجربه یک کدنویس حرفه‌ای بازارهای مالی (+) است.
  • شما به برنامه نویسی OOP یک دید عملی پیدا می‌کنید که نه تنها در زبان MQL5 بلکه در زبان‌های دیگر نیز کاربرد دارد.
  • درس‌ها دارای سناریوی بهینه و فشرده هستند. محتوای این آموزش معادل ۷ ساعت آموزش مرسوم در هم‌رویش است.

 

پیشنیاز

 

کلیدواژگان

آموزش ساخت ربات معامله – آموزش mql5 – ساخت کلاس CTrade در MQL5 – برنامه نویسی شی گرا در MQL5 – ساخت ربات معامله گر بورس – آموزش اکسپرت نویسی – ساخت اکسپرت معامله گر – ربات معاملاتی – ربات بورس – ربات متاتریدر – اکسپرت نویسی با MQL5 – اکسپرت بورس – اکسپرت مووینگ اوریج – ساخت ربات معامله گر با MQL5 – اکسپرت نویسی در متاتریدر 5

سرفصل‌ها

سرفصل‌ها

درس صفر: معرفی دوره
– پیشنیاز دوره
– مخاطب دوره
– آنچه در دوره گفته شده

درس یکم: تعریف کلاس Ctrade
– تعریف فایل Trade.mqh
– تعریف کلاس Ctrade
– تعریف متغیرهای request , result

درس دوم: تعریف تابع OpenPosition
– تعریف تابع OpenPosition و پارامترهای ورودی تابع در کلاس CTrade
– تعریف عملکرد تابع OpenPosition
– اختصاص دادن پارامترهای ورودی به متغیرهای ابجکت request
– اجرای تابع OrderSend

درس سوم : ساختار شرطی Switch-Case
– تعریف مثال از elseif
– تبدیل مثال قبل به Switch-case

درس چهارم : مدیریت پاسخ های سرور- بخش اول
– تعریف تابع CheckReturnCode برای بررسی متغیر retcode ابجکت result
– include فایل errordescription.mqh برای تبدیل error به توضیحات هر error
– استفاده از تابع Alert برای نمایش کد error و توضیحات آن در پنجره جدا

درس پنجم : مدیریت پاسخ های سرور- بخش دوم
– گزارش اطلاعات سفارش در زبانه journal
– گزارش اطلاعات سفارش روی نمودار نماد

درس ششم : مدیریت پاسخ های سرور- بخش سوم
– دسته بندی خطاهای که در زمان ارسال سفارش ممکن اتفاق افتد
– تغییر تابع CheckReturnCode برای شناسایی خطاهایی که با پردازش مجدد برطرف میشوند
– تعریف شرط do-whail برای ارسال دوباره سفارش

درس هفتم: استفاده از تابع OpenPosition
– تعریف کاربرد Helper Functions
– تعریف تابع Buy برای ارسال سفارش خرید
– تعریف تابع Sell برای ارسال سفارش فروش

درس هشتم: ساخت اکسپرت با کلاس CTrade
– مروری بر اکسپرت فصل قبل
– include فایل trade.mqh
– ساخت ابجکت Trade از کلاس Ctrade
– استفاده از تابع Buy برای ارسال سفارش خرید
– استفاده از تابع Sell برای ارسال سفارش فروش

درس نهم: مروری به فصل تا اینجا
– مرور و یادآوری مطالبی که تا اینجا گفتیم
– دلیل استفاده از کلاس Ctrade در اکسپرت ها
– آنچه در ادامه فصل پیش رو داریم

درس دهم: مبنای محاسبات Stoploss و TakeProfit
– توضیح مفهموم StopLoss و TakeProfit
– روش محاسبه StopLoss و TakeProfit

درس یازدهم: تعریف تابع های BuyStoploss و BuyTakeProfit
– تعریف تابع BuyStopLoss برای محاسبه حدضرر در سفارش Buy
– تعریف تابع SellStopLoss برای محاسبه حدضرر در سفارش Sell
– تعریف تابع BuyTakeProfit برای محاسبه حدسود در سفارش Buy
– تعریف تابع SellTakeProfit برای محاسبه حدسود در سفارش Sell
– استفاده از تابع های BuyStopLoss و BuyTakeProfit و SellStopLoss وSellTakeProfit برای بازنویسی اکسپرت

درس دوازدهم: تعریف تابع برای بازیابی اطلاعات سفارش ها
– معرفی توابع پیشفرض PositionGetInteger و PositionGetِDouble و PositionGetString
– تعریف تابع PositionType برای بازیابی نوع سفارش
– تعریف تابع PositionOpenPrice برای بازیابی قیمت ارسال سفارش
– تعریف تابع PositionComment برای بازیابی پیام های سفارش
– تعریف تابع PositionOpenTime برای بازیابی زمان ارسال سفارش
– تعریف تابع PositionVolume برای بازیابی حجم سفارش
– تعریف تابع PositionStapLoss برای بازیابی قیمت حدضرر سفارش
– تعریف تابع PositionTakeProfit برای بازیابی قیمت حدسود سفارش
– تعریف تابع PositionProfit برای بازیابی سود سفارش
– تعریف تابع PositionIdenifire برای بازیابی شناسه سفارش
– استفاده از توابع بالا برای بازنویسی اکسپرت

درس سیزدهم: تعریف تابع ModifyPosition
– تعریف تابع ModifyPosition برای اصلاح نقطه حدضرر و حد سود سفارش خرید
– مدیریت خطاهای ممکن در اصلاح سفارش

درس چهاردهم: استفاده از تابع ModifyPosition
– بازنویسی اکسپرت با استفاده از تابع ModifyPosistion
– اجرای اکسپرت و بررسی خروجی آن

درس پانزدهم: تعریف تابع Close
– تعریف تابع Close برای بستن سفارش‌ها
– مدیریت خطاهای ممکن در بستن سفارش‌ها
– بازنویسی تابع و استفاده از تابع Close برای بستن سفارش‌ها

درس شانزدهم : تعریف کلاس Cpositions __ بخش اول
– تعریف کلاس CPositions
– تعریف تابع GetOpenPositions برای ذخیره Ticketsسفارش های Buy در آرایه BuyTickets
– تعریف تابع GetOpenPositions برای ذخیره Ticketsسفارش های Sell در آرایه SellTickets
– تعریف تابع GetOpenPositions برای ذخیره Tickets تمام سفارش ها در آرایه Tickets
– تعریف تابع GetOpenPositions برای شمارش تعداد سفارش های Buy و ذخیره در متغیر BuyCount
– تعریف تابع GetOpenPositions برای شمارش تعداد سفارش های Sell و ذخیره در متغیر SellCount
– تعریف تابع GetOpenPositions برای شمارش تعداد کل سفارش و ذخیره در متغیر TotalCount
– تعریف تابع ResizeArray برای تعیین تعداد اعضای ارایه ها

درس هفدهم : تعریف کلاس Cpositions __ بخش دوم

– تعریف تابع Buy برای گزارش تعداد سفارش ها از نوع Buy
– تعریف تابع Sell برای گزارش تعداد سفارش ها از نوع Sell
– تعریف تابع TotalPositions برای گزارش تعداد کل سفارش ها
– تعریف تابع GetBuyTickets برای ذخیره Ticket سفارش های Buy در یک آرایه
– تعریف تابع GetSellTickets برای ذخیره Ticket سفارش های Sell در یک آرایه
– تعریف تابع GetTickets برای ذخیره Ticket سفارش ها در یک آرایه
– بازنویسی اکسپرت با کلاس Cpositions
– اجرای اکسپرت و بررسی آن

درس هجدهم : جمع بندی فصل
– مرور و یادآوری مطالبی که تا اینجا گفتیم
– آنچه در آینده پیش رو داریم

نظرات (10)

10 دیدگاه برای آموزش ساخت ربات معامله گر با MQL5 __ فصل ۲: کلاس CTrade

  1. میثم

    اگر امکان داره یه ایمیل بدین که این کد را برای من چک کنین ممنون میشم.

  2. میثم

    درود استاد گرامی
    کدی را ;i بخوایم تو قیمت های 5 تایی برامون ارسال کنه باید داخل کدامیک از تابع هایی مانند ontick یا ontimer و …. نوشته بشه ر عملکردش در ontimer بهتر از ontick هست ولی کامل نیست

    • معصومه کرمی

      سلام منظورتون از قیمت های 5 تایی متوجه نشدم.

  3. م

    میشه برای تمام نمادها عین سایت tsetmc فیلتر نویسی کرد ؟ برای این مورد هم آموزش دارین ؟ اگه بشه که خیلی خوب میشه

    • معصومه کرمی

      سلام با زبان Mql5 در محیط متاتریدر میتونید ربات و اکسپرت بسازید
      ربات ها در بازارهایی که ممنوعیت معاملات الگوریتمی ندارند میتوانند جای شما در بازار با استراتژی که طراحی میکنید معامله کنند اما در بازارهایی که ممنوعیت معاملات الگوریتمی دارن مثل بورس ایران شما میتونید برای هر استراتژی که دارید یک اکسپرت طراحی کنید و اون اکسپرت رو روی یک نماد در بازه دلخواهتون تست کنید.
      اما اینکه با زبان MQL5 بتونید مثل سایت tsetmc فیلترنویسی کنید و کدتون رو روی تمام نمادها اجرا کنید تا جایی که بنده اطلاع دارم همچین امکانی وجود نداره

  4. جعفری (خریدار محصول)

    سلام وقت بخیر. من داخل یک اکسپرت آزمایشی یه order buy با استفاده از تابع OrderSend انجام میدم با یک لات بعد با استفاده از تابع عمومیClose موجود در کلاس Trade روی اون نمادی که میخوام ببندم با یک لات و با 2 لات هم امتحان کردم اون نماد بسته نمیشه فقط یه Position خلاف حهتش باز میشه و هر دو position در حال نوسان هستند از طریق دستی هم که روی یک نماد Buy و Sell میکنم بازم همینطوره. پس اینکه میگن روی یک نماد در mq5 نمیشه هم Position buy و هم position sell داشت یعنی چی؟ لطفا راه نمایی بفرمایید.

    • معصومه کرمی

      سلام شما برای بستن سفارش ها باید یک سفارش در جهت مخالف ارسال کنید حجم سفارش باید برابر با حجم سفارشی باشه که میخواین ببندین.
      ما در متاتریدر در هر لحظه فقط یک Position داریم تو این مثالی که شما زدین اگه یک لات خرید کردین و بعد سفارش فروش یک لات رو ثبت کردن باید در حال حاضر Position نداشته باشید و سفارش خریدتون بسته شده باشه و در مثال دوم یک position sell در حجم یک لات روی نمادتون داشته باشید . لطفا زبانه History و Operation و Journal را در پنجره استراتژی تستر بررسی کنید اگه از کلاس CTrade که در فصل دوم آموزش ساخت اکسپرت تعریف کردیم برای ارسال سفارش از استفاده کنید دقیق نتیجه ی ارسال سفارشتون رو داخل زبانه Journal میتونید ملاحظه کنید و عملکرد اکسپرتتون رو بررسی کنید.

  5. رضا جعفری (خریدار محصول)

    سلام وقت بخیر کلاس CTrad را که در درس دوم این فصل گذاشتید پس کامپایل خطا میده کدهایی را که در فایل Ctrad.mqh نوشتید با توجه به این که از این کلاس می خواهیم به دفعات استفاده کنیم آیا مشکی پیش نمیاد؟

    • معصومه کرمی

      سلام وقت شما هم بخیر. دقت کنید که کدها در این مرحله (درس دوم) هنوز آماده اجرا نیست.
      با آموزش پیش برید در لحظه مناسب در درس های بعد اجرا می کنم. شما هم در همون درس باید اجرا کنید.

  6. رضا

    با سلام و احترام ضمن سپاس از شما به نظر من بهتر بود آموزش را بر اساس فارکس انجام می دادید که مسایل بازار دو طرفه هم در آن دخیل باشه.

    • معصومه کرمی

      با سلام و سپاس از پیشنهاد شما با توجه به نیاز برنامه نویسان داخلی و دشواری درک بازار دوطرفه نسبت به بازار بورس ایران ما با بورس ایران شروع کردم و انشالله در دوره های تکمیلی به بازارهای جهانی خواهیم پرداخت.
      هم رویش را در شبکه های اجتماعی دنبال کنید تا از انتشار دوره های بعد مطلع شوید.

  7. مصطفی احمدزاده (خریدار محصول)

    خیلی ممنون .شرمنده که سوالات و ابهاماتم زیاده . اگه بعلت مشکلات اینترنت یا سیستم خودمون اکسپرتمون با تاخیر اجرا بشه bid , askو سایر اطلاعاتی که از سرور میگیره یا قرار رو اون بارگذاری بشه مال زمان تاخیره ؟متاسفانه تو بازار ایران مثل قیمت گذاشتیم دیدیم صف خرید یا فروش شده اومدیم کنسل کنیم سیستم یا کارگزاری یا هسته معاملات هنگ کرده درخواست جدید ما متاسفانه وارد دیتابیس نشده و معامله یا همون سفارش قبلی جوش خورده.برای مدیریت اینجور مسائل ام کیو ال امکانات داره یا باید رو بیاریم به سی پلاس پلاس .متشکرم

  8. مصطفی احمدزاده (خریدار محصول)

    والله بورس ایران دستوری ورانتیه تا جایی که حتی رو نرم افزارهای کنترلی ونظارتی و هسته معاملات دست ببرن برای همین بعید که بذارن معاملات الگوریتمی که در اون تحلیلهای تکنیکال ،دوری از هیجانات ،رعایت حد زیان وسود ، مدیریت خطاهای سرور و اینترنت و …..میشه لحاظ کرد رو پا بگیره ……
    برای تحلیل و پیش بینی و هوش منصوعی باید از اسکریپتهای پایتون استفاده کرد یا خود ام کیو ال کتابخانه های و کلاسهای لازم رو داره ؟تو داکیومنتیشنش بخش هوشمند سازی صرفا رو پایتونه که تمام توابع و متدهای مربوط به کلاس CTrade رو داره منتهی اصرار من بیشتر بر mql5 بخاطر سرعت و مدیریت حافظه. برای هوشمند سازی هم برنامه ای دارین ؟

    • معصومه کرمی

      سلام در مورد امکان معامله الگوریتمی زمزمه هایی هست اما فرض کنیم که بزودی آزاد نکنن؛ در این صورت باز هم اکسپرت ها و اندیکاتورها کمک موثری در تحلیل و تصمیم دارن.
      در مورد هوش مصنوعی در mql ، بله بهترین راه استفاده از اسکریپت های پایتونیه. با توجه به وجود آموزش پایتون در هم رویش انشالله بعد از مباحث تکمیلی اکسپرت نویسی به یادگیری ماشین و هوش مصنوعی در بورس هم خواهیم پرداخت.

  9. Sa_Ka

    سلام
    این فصل چند ساعت آموزش هستش؟ این فصل تکمیل شده یا در حال تکمیله؟

    • معصومه کرمی

      سلام. توصیه می کنم فیلم و توضیحات آموزش را با دقت بررسی کنید.
      هر فصل از مجموعه ساخت ربات بورس به صورت مستقل کامل و بعد منتشر شده. این فصل دوم هست. در فصل اول یک اکسپرت ساختیم و اجرا کردیم. در این فصل همان اکشپرت قبلی بازنویسی شد ولی با رعایت اصول شی گرایی.

  10. مصطفی احمدزاده (خریدار محصول)

    با سلام . برا کسی که اندکی اشنایی داره خیلی خوبه . جمع جور بدون مطالب اضافی و خسته کننده در اندک زمان مفید. شیوه اموزشی خیلی خوب و روانشناسی شده است . اینکه رو مفیدتریدر کارکردین خیلی خوبه برای اینده احتمالی و لیکن کاش رو خود فارکس کار میکردین که بیشتر مناسبت داشت .

    • معصومه کرمی

      سلام.
      ممنون از لطف و نظر دلگرم کننده شما. انشالله در دوره های تکمیلی سراغ فارکس خواهیم رفت.
      دقت کنید که اکسپرت در بازار بورس ایران برای اتخاذ استراتژی معامله همچنان مفید هست. هر چند اگر ممنوعیت معامله الگوریتمی برداشته شود این سودمندی بیشتر هم خواهد شد.

      • معصومه کرمی

        پیرو درخواست شما و دوستان دیگه آموزش پایین در رابطه با فارکس منتشر شده تا با صرف زمان و بهای اندک بتونید دانسته های من را داشته باشید.
        آموزش ساخت اکسپرت فارکس با زبان MQL5

دیدگاه خود را بنویسید

نظرات کاربران در خصوص دوره 

10 دیدگاه برای آموزش ساخت ربات معامله گر با MQL5 __ فصل ۲: کلاس CTrade

  1. میثم

    اگر امکان داره یه ایمیل بدین که این کد را برای من چک کنین ممنون میشم.

  2. میثم

    درود استاد گرامی
    کدی را ;i بخوایم تو قیمت های 5 تایی برامون ارسال کنه باید داخل کدامیک از تابع هایی مانند ontick یا ontimer و …. نوشته بشه ر عملکردش در ontimer بهتر از ontick هست ولی کامل نیست

    • معصومه کرمی

      سلام منظورتون از قیمت های 5 تایی متوجه نشدم.

  3. م

    میشه برای تمام نمادها عین سایت tsetmc فیلتر نویسی کرد ؟ برای این مورد هم آموزش دارین ؟ اگه بشه که خیلی خوب میشه

    • معصومه کرمی

      سلام با زبان Mql5 در محیط متاتریدر میتونید ربات و اکسپرت بسازید
      ربات ها در بازارهایی که ممنوعیت معاملات الگوریتمی ندارند میتوانند جای شما در بازار با استراتژی که طراحی میکنید معامله کنند اما در بازارهایی که ممنوعیت معاملات الگوریتمی دارن مثل بورس ایران شما میتونید برای هر استراتژی که دارید یک اکسپرت طراحی کنید و اون اکسپرت رو روی یک نماد در بازه دلخواهتون تست کنید.
      اما اینکه با زبان MQL5 بتونید مثل سایت tsetmc فیلترنویسی کنید و کدتون رو روی تمام نمادها اجرا کنید تا جایی که بنده اطلاع دارم همچین امکانی وجود نداره

  4. جعفری (خریدار محصول)

    سلام وقت بخیر. من داخل یک اکسپرت آزمایشی یه order buy با استفاده از تابع OrderSend انجام میدم با یک لات بعد با استفاده از تابع عمومیClose موجود در کلاس Trade روی اون نمادی که میخوام ببندم با یک لات و با 2 لات هم امتحان کردم اون نماد بسته نمیشه فقط یه Position خلاف حهتش باز میشه و هر دو position در حال نوسان هستند از طریق دستی هم که روی یک نماد Buy و Sell میکنم بازم همینطوره. پس اینکه میگن روی یک نماد در mq5 نمیشه هم Position buy و هم position sell داشت یعنی چی؟ لطفا راه نمایی بفرمایید.

    • معصومه کرمی

      سلام شما برای بستن سفارش ها باید یک سفارش در جهت مخالف ارسال کنید حجم سفارش باید برابر با حجم سفارشی باشه که میخواین ببندین.
      ما در متاتریدر در هر لحظه فقط یک Position داریم تو این مثالی که شما زدین اگه یک لات خرید کردین و بعد سفارش فروش یک لات رو ثبت کردن باید در حال حاضر Position نداشته باشید و سفارش خریدتون بسته شده باشه و در مثال دوم یک position sell در حجم یک لات روی نمادتون داشته باشید . لطفا زبانه History و Operation و Journal را در پنجره استراتژی تستر بررسی کنید اگه از کلاس CTrade که در فصل دوم آموزش ساخت اکسپرت تعریف کردیم برای ارسال سفارش از استفاده کنید دقیق نتیجه ی ارسال سفارشتون رو داخل زبانه Journal میتونید ملاحظه کنید و عملکرد اکسپرتتون رو بررسی کنید.

  5. رضا جعفری (خریدار محصول)

    سلام وقت بخیر کلاس CTrad را که در درس دوم این فصل گذاشتید پس کامپایل خطا میده کدهایی را که در فایل Ctrad.mqh نوشتید با توجه به این که از این کلاس می خواهیم به دفعات استفاده کنیم آیا مشکی پیش نمیاد؟

    • معصومه کرمی

      سلام وقت شما هم بخیر. دقت کنید که کدها در این مرحله (درس دوم) هنوز آماده اجرا نیست.
      با آموزش پیش برید در لحظه مناسب در درس های بعد اجرا می کنم. شما هم در همون درس باید اجرا کنید.

  6. رضا

    با سلام و احترام ضمن سپاس از شما به نظر من بهتر بود آموزش را بر اساس فارکس انجام می دادید که مسایل بازار دو طرفه هم در آن دخیل باشه.

    • معصومه کرمی

      با سلام و سپاس از پیشنهاد شما با توجه به نیاز برنامه نویسان داخلی و دشواری درک بازار دوطرفه نسبت به بازار بورس ایران ما با بورس ایران شروع کردم و انشالله در دوره های تکمیلی به بازارهای جهانی خواهیم پرداخت.
      هم رویش را در شبکه های اجتماعی دنبال کنید تا از انتشار دوره های بعد مطلع شوید.

  7. مصطفی احمدزاده (خریدار محصول)

    خیلی ممنون .شرمنده که سوالات و ابهاماتم زیاده . اگه بعلت مشکلات اینترنت یا سیستم خودمون اکسپرتمون با تاخیر اجرا بشه bid , askو سایر اطلاعاتی که از سرور میگیره یا قرار رو اون بارگذاری بشه مال زمان تاخیره ؟متاسفانه تو بازار ایران مثل قیمت گذاشتیم دیدیم صف خرید یا فروش شده اومدیم کنسل کنیم سیستم یا کارگزاری یا هسته معاملات هنگ کرده درخواست جدید ما متاسفانه وارد دیتابیس نشده و معامله یا همون سفارش قبلی جوش خورده.برای مدیریت اینجور مسائل ام کیو ال امکانات داره یا باید رو بیاریم به سی پلاس پلاس .متشکرم

  8. مصطفی احمدزاده (خریدار محصول)

    والله بورس ایران دستوری ورانتیه تا جایی که حتی رو نرم افزارهای کنترلی ونظارتی و هسته معاملات دست ببرن برای همین بعید که بذارن معاملات الگوریتمی که در اون تحلیلهای تکنیکال ،دوری از هیجانات ،رعایت حد زیان وسود ، مدیریت خطاهای سرور و اینترنت و …..میشه لحاظ کرد رو پا بگیره ……
    برای تحلیل و پیش بینی و هوش منصوعی باید از اسکریپتهای پایتون استفاده کرد یا خود ام کیو ال کتابخانه های و کلاسهای لازم رو داره ؟تو داکیومنتیشنش بخش هوشمند سازی صرفا رو پایتونه که تمام توابع و متدهای مربوط به کلاس CTrade رو داره منتهی اصرار من بیشتر بر mql5 بخاطر سرعت و مدیریت حافظه. برای هوشمند سازی هم برنامه ای دارین ؟

    • معصومه کرمی

      سلام در مورد امکان معامله الگوریتمی زمزمه هایی هست اما فرض کنیم که بزودی آزاد نکنن؛ در این صورت باز هم اکسپرت ها و اندیکاتورها کمک موثری در تحلیل و تصمیم دارن.
      در مورد هوش مصنوعی در mql ، بله بهترین راه استفاده از اسکریپت های پایتونیه. با توجه به وجود آموزش پایتون در هم رویش انشالله بعد از مباحث تکمیلی اکسپرت نویسی به یادگیری ماشین و هوش مصنوعی در بورس هم خواهیم پرداخت.

  9. Sa_Ka

    سلام
    این فصل چند ساعت آموزش هستش؟ این فصل تکمیل شده یا در حال تکمیله؟

    • معصومه کرمی

      سلام. توصیه می کنم فیلم و توضیحات آموزش را با دقت بررسی کنید.
      هر فصل از مجموعه ساخت ربات بورس به صورت مستقل کامل و بعد منتشر شده. این فصل دوم هست. در فصل اول یک اکسپرت ساختیم و اجرا کردیم. در این فصل همان اکشپرت قبلی بازنویسی شد ولی با رعایت اصول شی گرایی.

  10. مصطفی احمدزاده (خریدار محصول)

    با سلام . برا کسی که اندکی اشنایی داره خیلی خوبه . جمع جور بدون مطالب اضافی و خسته کننده در اندک زمان مفید. شیوه اموزشی خیلی خوب و روانشناسی شده است . اینکه رو مفیدتریدر کارکردین خیلی خوبه برای اینده احتمالی و لیکن کاش رو خود فارکس کار میکردین که بیشتر مناسبت داشت .

    • معصومه کرمی

      سلام.
      ممنون از لطف و نظر دلگرم کننده شما. انشالله در دوره های تکمیلی سراغ فارکس خواهیم رفت.
      دقت کنید که اکسپرت در بازار بورس ایران برای اتخاذ استراتژی معامله همچنان مفید هست. هر چند اگر ممنوعیت معامله الگوریتمی برداشته شود این سودمندی بیشتر هم خواهد شد.

      • معصومه کرمی

        پیرو درخواست شما و دوستان دیگه آموزش پایین در رابطه با فارکس منتشر شده تا با صرف زمان و بهای اندک بتونید دانسته های من را داشته باشید.
        آموزش ساخت اکسپرت فارکس با زبان MQL5

دیدگاه خود را بنویسید