آموزش ساخت اکسپرت MQL5 فارسی

تاریخ: 1404/12/4 ساعت: 20:50 بازدید: 14

اکسپرت MQL5 چیست و چرا باید آن را یاد بگیری؟

اگر با بازارهای مالی مثل فارکس، بازار آتی یا کریپتو سروکار داری، احتمالاً اسم اکسپرت ادوایزر (Expert Advisor) یا همان ربات معاملاتی به گوشت خورده. اما شاید تا حالا فکر می‌کردی ساختن چنین ابزاری کار آدم‌های نابغه است. خبر خوب اینجاست: این‌طور نیست!

MQL5 یک زبان برنامه‌نویسی تخصصی است که توسط شرکت MetaQuotes برای پلتفرم MetaTrader 5 طراحی شده. با این زبان می‌توانی استراتژی معاملاتی خودت را به یک ربات تبدیل کنی که ۲۴ ساعته بدون خستگی و احساسات برایت ترید کند.

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

پیش‌نیازهای یادگیری MQL5

قبل از شروع، بهتر است بدانی به چه دانش اولیه‌ای نیاز داری:

  • آشنایی اولیه با MetaTrader 5: باید بدانی چارت چیست، اندیکاتور چیست و معامله چطور انجام می‌شود.
  • منطق برنامه‌نویسی پایه: اگر قبلاً با C یا C++ کار کرده باشی عالی است، ولی اصلاً الزامی نیست.
  • درک استراتژی معاملاتی: باید بدانی می‌خواهی چه قانونی را کد کنی.
  • صبر و تمرین: بزرگ‌ترین پیش‌نیاز همین است!

مرحله اول: نصب MetaEditor و آماده‌سازی محیط

MetaEditor محیط یکپارچه توسعه (IDE) رسمی برای نوشتن کد MQL5 است و به‌صورت پیش‌فرض داخل MetaTrader 5 نصب می‌شود.

مراحل دسترسی به MetaEditor:

  • MetaTrader 5 را باز کن.
  • از منوی بالا روی Tools کلیک کن.
  • گزینه MetaQuotes Language Editor را انتخاب کن (یا کلید میانبر F4).
  • پنجره MetaEditor باز می‌شود. محیط توسعه تو آماده است!

ایجاد فایل اکسپرت جدید:

  • در MetaEditor روی File > New کلیک کن.
  • گزینه Expert Advisor (template) را انتخاب کن.
  • یک نام برای فایل انتخاب کن (مثلاً: MyFirstEA).
  • روی Finish کلیک کن تا قالب پایه اکسپرت برایت ساخته شود.

مرحله دوم: ساختار پایه یک اکسپرت MQL5

هر فایل اکسپرت در MQL5 از سه تابع اصلی تشکیل شده است. درک این سه تابع، کلید همه چیز است:

۱. تابع OnInit()

این تابع فقط یک بار، در لحظه‌ای که اکسپرت روی چارت بارگذاری می‌شود، اجرا می‌شود. مناسب برای:

  • مقداردهی اولیه متغیرها
  • بررسی صحت پارامترهای ورودی
  • ایجاد تایمرها و اشیاء گرافیکی

۲. تابع OnTick()

این تابع با هر تیک قیمتی اجرا می‌شود. قلب تپنده اکسپرت تو اینجاست! تمام منطق معاملاتی (بررسی شرایط باز کردن و بستن معامله) در این تابع نوشته می‌شود.

۳. تابع OnDeinit()

هنگام حذف اکسپرت از چارت اجرا می‌شود. برای پاک‌سازی حافظه و اشیاء گرافیکی استفاده می‌شود.

💡 نکته طلایی:

در MQL5، منطق اصلی معاملاتی معمولاً داخل OnTick() یا OnBar() (برای اکسپرت‌های مبتنی بر کندل) نوشته می‌شود. انتخاب بین این دو به استراتژی تو بستگی دارد.

مرحله سوم: متغیرها و پارامترهای ورودی

در MQL5 می‌توانی پارامترهایی تعریف کنی که کاربر بدون تغییر کد، آن‌ها را تنظیم کند. این کار با کلیدواژه input انجام می‌شود.

مثال کاربردی:

input double LotSize = 0.1; // حجم معامله

input int StopLoss = 50; // حد ضرر به پیپ

input int TakeProfit = 100; // حد سود به پیپ

input int MAPeriod = 14; // دوره میانگین متحرک

input ENUM_MA_METHOD MAMethod = MODE_SMA; // نوع میانگین

این پارامترها در پنجره تنظیمات اکسپرت به کاربر نشان داده می‌شوند و قابل تغییر هستند.

مرحله چهارم: نوشتن اولین اکسپرت واقعی (استراتژی کراس میانگین متحرک)

بیایید یک اکسپرت کامل بنویسیم که بر اساس تقاطع دو میانگین متحرک (Moving Average Crossover) معامله می‌کند. این یکی از ساده‌ترین و آموزنده‌ترین استراتژی‌ها برای شروع است.

منطق استراتژی:

  • اگر میانگین متحرک کوتاه‌مدت، میانگین بلندمدت را به بالا قطع کرد ← خرید (Buy)
  • اگر میانگین متحرک کوتاه‌مدت، میانگین بلندمدت را به پایین قطع کرد ← فروش (Sell)
#include 

input int FastMAPeriod = 10;

input int SlowMAPeriod = 50;

input double LotSize = 0.1;

input int StopLoss = 100;

input int TakeProfit = 200;

CTrade trade;

int fastMAHandle, slowMAHandle;

int OnInit()

{

fastMAHandle = iMA(_Symbol, PERIOD_CURRENT, FastMAPeriod, 0, MODE_SMA, PRICE_CLOSE);

slowMAHandle = iMA(_Symbol, PERIOD_CURRENT, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE);

if(fastMAHandle == INVALID_HANDLE || slowMAHandle == INVALID_HANDLE)

{

Print(“خطا در ساخت اندیکاتور!”);

return INIT_FAILED;

}

return INIT_SUCCEEDED;

}

void OnTick()

{

double fastMA[], slowMA[];

ArraySetAsSeries(fastMA, true);

ArraySetAsSeries(slowMA, true);

CopyBuffer(fastMAHandle, 0, 0, 3, fastMA);

CopyBuffer(slowMAHandle, 0, 0, 3, slowMA);

bool buySignal = (fastMA[1] > slowMA[1]) && (fastMA[2] <= slowMA[2]);

bool sellSignal = (fastMA[1] < slowMA[1]) && (fastMA[2] >= slowMA[2]);

if(buySignal && PositionsTotal() == 0)

{

double sl = Ask - StopLoss * _Point * 10;

double tp = Ask + TakeProfit * _Point * 10;

trade.Buy(LotSize, _Symbol, Ask, sl, tp, “MA Crossover Buy”);

}

if(sellSignal && PositionsTotal() == 0)

{

double sl = Bid + StopLoss * _Point * 10;

double tp = Bid - TakeProfit * _Point * 10;

trade.Sell(LotSize, _Symbol, Bid, sl, tp, “MA Crossover Sell”);

}

}

void OnDeinit(const int reason)

{

IndicatorRelease(fastMAHandle);

IndicatorRelease(slowMAHandle);

}

مرحله پنجم: کامپایل کردن و رفع خطاها

بعد از نوشتن کد، باید آن را کامپایل کنی تا به فایل اجرایی .ex5 تبدیل شود:

  • کلید F7 را بزن یا روی آیکون Compile کلیک کن.
  • در پنجره پایین صفحه، Errors و Warnings نمایش داده می‌شوند.
  • روی هر خطا دابل‌کلیک کن تا به خط مشکل‌دار هدایت شوی.
  • اگر پیام “0 errors, 0 warnings” دیدی، تبریک! کدت سالم است.

خطاهای رایج و راه‌حل آن‌ها:

  • undeclared identifier: متغیری را استفاده کرده‌ای که تعریف نشده. اسمش را چک کن.
  • ‘;’ expected: سمی‌کولن فراموش شده. آخر خط‌ها را بررسی کن.
  • type conversion: نوع داده اشتباه است. مثلاً int به double تبدیل نمی‌شود.

مرحله ششم: بک‌تست با Strategy Tester

قبل از اجرای اکسپرت روی حساب واقعی، حتماً باید آن را بک‌تست کنی. Strategy Tester ابزار قدرتمندی است که در MetaTrader 5 تعبیه شده.

مراحل بک‌تست:

  • در MT5 از منو، View > Strategy Tester را باز کن (یا Ctrl+R).
  • نام اکسپرت خود را از لیست انتخاب کن.
  • نماد (Symbol) و تایم‌فریم مورد نظر را تنظیم کن.
  • بازه زمانی برای تست را مشخص کن (حداقل ۱ سال توصیه می‌شود).
  • روی Start کلیک کن و صبر کن.
  • نتایج را در تب Results و Graph بررسی کن.

⚠️ هشدار مهم:

نتایج بک‌تست عالی، ضمانت سودآوری در بازار واقعی نیست! اثر Overfitting (بهینه‌سازی بیش از حد روی داده‌های گذشته) یکی از بزرگ‌ترین خطرات است. همیشه اکسپرت را ابتدا روی حساب دمو فوروارد تست کن.

مرحله هفتم: مدیریت ریسک در اکسپرت MQL5

یک اکسپرت حرفه‌ای بدون مدیریت سرمایه مثل ماشین بدون ترمز است. موارد زیر را در کد خود لحاظ کن:

  • محاسبه حجم داینامیک: به جای حجم ثابت، از درصدی از موجودی حساب استفاده کن.
  • حداکثر تعداد معاملات همزمان: تعداد پوزیشن‌های باز را محدود کن.
  • Drawdown حداکثری: اگر ضرر از حد مشخصی بیشتر شد، اکسپرت متوقف شود.
  • Trailing Stop: با حرکت قیمت به نفع تو، حد ضرر هم جا به جا شود.
  • فیلتر زمانی: اکسپرت فقط در ساعات مشخصی از روز معامله کند.

🚀 می‌خواهی سایت یا کسب‌وکار آنلاینت را متحول کنی؟

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

همین حالا برای مشاوره رایگان تماس بگیرید:
📞 09190994063  |  09376846692

مفاهیم پیشرفته MQL5 که باید بدانی

کلاس CTrade

کتابخانه Trade.mqh کلاس قدرتمند CTrade را در اختیارت می‌گذارد که ارسال سفارش را بسیار ساده‌تر می‌کند. متدهای مهم:

  • trade.Buy() - باز کردن معامله خرید
  • trade.Sell() - باز کردن معامله فروش
  • trade.PositionClose() - بستن یک پوزیشن
  • trade.PositionModify() - تغییر SL و TP

کار با اندیکاتورها در MQL5

در MQL5 اندیکاتورها به صورت Handle-based کار می‌کنند. یعنی ابتدا یک هندل (شناسه) ایجاد می‌کنی، سپس داده‌ها را با CopyBuffer() می‌خوانی. این رویکرد از نظر عملکرد بسیار بهینه‌تر از MQL4 است.

توابع مهم در MQL5:

  • SymbolInfoDouble(): دریافت اطلاعات نماد مثل Bid, Ask, Spread
  • AccountInfoDouble(): اطلاعات حساب مثل Balance, Equity, Margin
  • PositionsTotal(): تعداد پوزیشن‌های باز
  • TimeCurrent(): زمان فعلی سرور
  • iBarShift(): پیدا کردن ایندکس کندل بر اساس زمان

تفاوت MQL4 و MQL5: چرا MQL5 بهتر است؟

بسیاری از معامله‌گران ایرانی هنوز با MQL4 و MetaTrader 4 کار می‌کنند. اما MQL5 مزایای قابل توجهی دارد:

  • سرعت اجرای بالاتر: MQL5 کد را به زبان ماشین کامپایل می‌کند، نه تفسیر.
  • پشتیبانی از OOP: برنامه‌نویسی شی‌گرا امکان ساخت کدهای پیچیده‌تر و قابل نگهداری را می‌دهد.
  • بک‌تست دقیق‌تر: Strategy Tester در MT5 از مدل Tick‌های واقعی پشتیبانی می‌کند.
  • پشتیبانی از Multi-threading: اجرای موازی وظایف مختلف.
  • اندیکاتورهای اقتصادی: دسترسی به تقویم اقتصادی از داخل کد.

اشتباهات رایج مبتدیان در ساخت اکسپرت

از این اشتباهات رایج دوری کن تا سریع‌تر پیشرفت کنی:

  • Repainting استراتژی: استفاده از سیگنال‌هایی که در گذشته تغییر می‌کنند. همیشه از ایندکس ۱ (کندل بسته‌شده) استفاده کن، نه ایندکس ۰.
  • Look-ahead Bias: استفاده از اطلاعات آینده در بک‌تست.
  • Over-optimization: بهینه‌سازی بیش از حد پارامترها روی داده‌های گذشته.
  • نادیده گرفتن Spread: در حساب‌های ECN، Spread متغیر است و باید در محاسبات لحاظ شود.
  • عدم مدیریت خطا: نچک کردن صحت عملیات ارسال سفارش.

منابع یادگیری MQL5 به فارسی و انگلیسی

برای تعمیق دانشت، این منابع را پیشنهاد می‌کنیم:

منابع انگلیسی معتبر:

  • MQL5 Reference Manual: مستندات رسمی در سایت docs.mql5.com - کامل‌ترین مرجع موجود
  • MQL5.community: انجمن بزرگ توسعه‌دهندگان با هزاران مثال کد رایگان
  • کتاب Expert Advisor Programming for MetaTrader 5: نوشته Andrew Young

نکات یادگیری سریع‌تر:

  • کدهای نمونه داخل MetaEditor را مطالعه کن (پوشه Samples)
  • یک استراتژی ساده انتخاب کن و آن را کد کن
  • از Debugger داخل MetaEditor استفاده کن
  • در انجمن‌های ایرانی فارکس سوال بپرس

💼 کسب‌وکار آنلاین شما لایق بهترین‌هاست!

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

📞 مشاوره رایگان: 09190994063  |  09376846692

جمع‌بندی: مسیر پیش رو

یادگیری ساخت اکسپرت MQL5 یک سفر است، نه یک مقصد. اگر مراحل این مقاله را دنبال کنی:

  • ✅ محیط برنامه‌نویسی MetaEditor را نصب و راه‌اندازی کرده‌ای
  • ✅ ساختار پایه یک اکسپرت (OnInit, OnTick, OnDeinit) را یاد گرفته‌ای
  • ✅ اولین اکسپرت واقعی خود را نوشته و کامپایل کرده‌ای
  • ✅ با بک‌تست و Strategy Tester آشنا شده‌ای
  • ✅ اصول مدیریت ریسک در برنامه‌نویسی را می‌دانی

قدم بعدی؟ دست به کار شو! بهترین یادگیری در برنامه‌نویسی، نوشتن کد است. استراتژی موردعلاقه‌ات را بردار و شروع به کد کردن آن کن. اشتباه کن، رفع خطا کن و رشد کن.

موفق باشی، معامله‌گر! 🚀


سوالات متداول (FAQ)

۱. آیا برای یادگیری MQL5 باید قبلاً برنامه‌نویسی بلد باشم؟

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

۲. تفاوت اکسپرت MQL5 با اندیکاتور و اسکریپت چیست؟

اکسپرت (Expert Advisor): به‌صورت خودکار معامله باز و بسته می‌کند. اندیکاتور (Indicator): فقط روی چارت نمایش داده می‌شود و معامله نمی‌کند. اسکریپت (Script): یک‌بار اجرا می‌شود و برای کارهای یک‌باره مثل بستن همه پوزیشن‌ها کاربرد دارد.

۳. آیا می‌توان اکسپرت MQL5 را روی همه کارگزاری‌ها استفاده کرد؟

اکسپرت‌های MQL5 روی تمام کارگزاری‌هایی که پلتفرم MetaTrader 5 را ارائه می‌دهند کار می‌کنند. اما برخی کارگزاری‌ها قابلیت Auto Trading را محدود می‌کنند. قبل از استفاده، مطمئن شو که کارگزاری مورد نظرت اجرای اکسپرت را مجاز می‌داند.

۴. اکسپرت باید ۲۴ ساعته روشن باشد؟ آیا باید سرور VPS بگیریم؟

بله، برای عملکرد بهینه اکسپرت، به یک سرور VPS (Virtual Private Server) نیاز داری که ۲۴ ساعته آنلاین باشد. اجرای اکسپرت روی لپ‌تاپ شخصی که ممکن است خاموش شود یا اینترنت قطع شود، مناسب نیست. VPS‌های ایرانی و خارجی ارزان‌قیمتی برای این کار موجودند.

۵. آیا اکسپرت‌های خریداری‌شده از اینترنت قابل اعتماد هستند؟

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

۶. چقدر طول می‌کشد تا یک اکسپرت کاربردی بسازم؟

این به سابقه برنامه‌نویسی، زمانی که روزانه صرف می‌کنی و پیچیدگی استراتژی بستگی دارد. اگر روزانه ۱ تا ۲ ساعت تمرین کنی، در ۴ تا ۸ هفته می‌توانی یک اکسپرت ساده اما کاربردی بسازی. برای اکسپرت‌های پیشرفته با مدیریت ریسک کامل، ۳ تا ۶ ماه تجربه نیاز است.

نظرات کاربران


علی راد
تاریخ 1404/12/7 ساعت 5:10

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

سایت اینجا:

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

محمد قاسمی
تاریخ 1404/12/6 ساعت 16:45

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

سایت اینجا:

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

زهرا شریفی
تاریخ 1404/12/6 ساعت 11:28

من هنوز با MT4 کار می‌کنم. مزایای MQL5 نسبت به MQL4 چیه که تشویق بشم به MT5 مهاجرت کنم؟ سرعت و OOP واقعا تاثیرگذاره؟

سایت اینجا:

سلام. بله، مزایای MQL5 نسبت به MQL4 بسیار قابل توجه است. سرعت اجرای بالاتر به دلیل کامپایل شدن کد به زبان ماشین، پشتیبانی کامل از برنامه‌نویسی شی‌گرا (OOP)، بک‌تست دقیق‌تر با استفاده از تیک‌های واقعی و پشتیبانی از Multi-threading از مهم‌ترین دلایل مهاجرت هستند. این ویژگی‌ها به شما امکان ساخت اکسپرت‌های قدرتمندتر و بهینه‌تر را می‌دهند. برای کسب اطلاعات بیشتر، با شماره‌های 09190994063 و 09376846692 تماس حاصل فرمایید.

مریم حسینی
تاریخ 1404/12/5 ساعت 23:3

بخش بک‌تست خیلی مهم بود. آیا واقعاً باید حتماً VPS تهیه کنیم؟ من فکر می‌کردم می‌شه روی کامپیوتر خودم اجراش کنم.

سایت اینجا:

سلام. بله، برای عملکرد صحیح و بدون وقفه اکسپرت، استفاده از VPS اکیداً توصیه می‌شود. اگر اکسپرت روی کامپیوتر شخصی شما اجرا شود و اینترنت قطع شود یا کامپیوتر خاموش شود، ممکن است فرصت‌های معاملاتی از دست برود یا حتی پوزیشن‌های باز بدون نظارت بمانند. برای راهنمایی در مورد VPS، با شماره‌های 09190994063 و 09376846692 تماس بگیرید.

حسین یوسفی
تاریخ 1404/12/5 ساعت 17:46

مدیریت ریسک در اکسپرت واقعاً حیاتیه. آیا امکان پیاده‌سازی مدیریت سرمایه پویا (بر اساس درصدی از موجودی) در MQL5 وجود داره؟

سایت اینجا:

سلام. بله، قطعاً امکان پیاده‌سازی مدیریت سرمایه پویا و محاسبه حجم معامله بر اساس درصدی از موجودی حساب در MQL5 وجود دارد. این یکی از اصول اساسی ساخت یک اکسپرت حرفه‌ای است و با استفاده از توابع مربوط به اطلاعات حساب، قابل پیاده‌سازی است. برای دریافت راهنمایی تخصصی، با ما تماس بگیرید: 09190994063 و 09376846692.

سارا احمدی
تاریخ 1404/12/5 ساعت 12:29

بسیار عالی! در مورد پیش‌نیازهای برنامه‌نویسی، آیا آشنایی با C++ واقعاً لازم نیست؟ من فقط کمی پایتون کار کردم.

سایت اینجا:

سلام. خیر، آشنایی با C++ الزامی نیست. اگر با منطق برنامه‌نویسی آشنایی دارید، حتی در حد پایتون، شروع بسیار خوبی است و به شما کمک می‌کند. زبان MQL5 ساختار مشابهی دارد که یادگیری‌اش را آسان می‌کند. در صورت نیاز به راهنمایی بیشتر، با ما تماس بگیرید: 09190994063 و 09376846692.

رضا کریمی
تاریخ 1404/12/5 ساعت 5:21

تفاوت اکسپرت، اندیکاتور و اسکریپت رو خیلی خوب توضیح دادید. ممنون از شفاف‌سازی. آیا اکسپرت‌ها می‌تونن همزمان چند استراتژی رو اجرا کنن؟

سایت اینجا:

سلام. بله، یک اکسپرت می‌تواند چندین استراتژی را به‌صورت همزمان مدیریت کند، به شرطی که منطق آن به‌درستی کدنویسی شده باشد. این کار معمولاً با ساختاردهی مناسب کد و استفاده از توابع مجزا برای هر استراتژی انجام می‌شود. برای جزئیات بیشتر، با ما در تماس باشید: 09190994063 و 09376846692.

فاطمه نادری
تاریخ 1404/12/5 ساعت 0:4

چقدر زمان می‌بره تا یک اکسپرت قابل استفاده بسازم؟ منظورم اینه که اگر روزی ۱-۲ ساعت وقت بذارم، چقدر طول می‌کشه؟

سایت اینجا:

سلام. همانطور که در مقاله ذکر شد، اگر روزی ۱ تا ۲ ساعت تمرین کنید، می‌توانید در ۴ تا ۸ هفته یک اکسپرت ساده اما کاربردی بسازید. برای اکسپرت‌های پیشرفته‌تر با مدیریت ریسک کامل، حدود ۳ تا ۶ ماه تجربه نیاز است. صبر و استمرار کلید موفقیت است. برای مشاوره بیشتر، با شماره‌های 09190994063 و 09376846692 تماس بگیرید.