اسکریپت Scripts چیست؟

مجله متاکیوال - اسکریپت Scripts چیست؟

اسکریپت Scripts چیست؟

اسکریپت برنامه ای است که همانند اکسپرت و اندیکاتور به زبان MetaQuotes Language 4 (MQL4) نوشته شده . برای نوشتن برنامه آن از توابع پیچیده و خاصی استفاده نمی شود . علاوه بر این دارای ویژگی های اکسپرت و اندیکاتور نیز می باشد .

برنامه اسکریپت درست مانند یک اندیکاتور یا اکسپرت ( EA ) کار می کند و اما تنها تفاوت آن در این است که پس از استفاده و اجرای آن ، توابع برنامه و همچنین عملیات آن یک بار اجرا می شود و پس از انجام یک باره عملیات ، خود را از روی پلت فرم معاملاتی پاک می کند و از بین می برد . به عبارت ساده تر اسکریپت ها ماننده اکسپرت ها ، بارها و بار ها اجرا نمی شوند و تنها فقط یک بار اجرا می شوند .

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

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

فراخوانی و اجرای اسکریپت ها درست ماننده اکسپرت و اندیکاتور می باشد ، با درگ اند دراپ کردن آن روی پلتفرم و یا با دوبار کیلیک روی آن در نویگیتور متاتریدر ، اجرا خواهد شد .

بدلیل اینکه در برنامه نویسی اسکریپت از تابع OnStart استفاده می شود و در آن توابعی همچون OnTick مورد استفاده قرار نمی گیرد ، بنابراین برای اجرای عملیات ، اسکریپت ها کاری با رفتار بازار ندارد و در واقع کاری با تیک های بازار ندارد و در نتیجه اگر اسکریپت شما به طور مثال بخواهد تعداد ارقام بعد از ممیز در جفت ارز ها  ( ۴ رقمی یا ۵ رقمی روی جفت ارزی که شامل ارز ژاپن نباشد و ۲ یا ۳ رقمی شامل جفت ارزی که ارز ژاپن را دارا باشد ) را بیان کند و یا نام بروکر و یا درکل اطلاعات بروکر را مشخص کند و نشان دهد می توان حتی در روز ها و زمان های تعطیلی بازار هم از اسکریپت ها استفاده کرد .

مجله متاکیوال - اسکریپت Scripts چیست؟

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

مجله متاکیوال - اسکریپت Scripts چیست؟

ویرایش برای اسکریپت بسیار مهم هستند و برای این کار کد های نوشته شده اسکریپت با کمک پنجره ویرایشگر MetaEditor  ، باز و نشان داده خواهد شد .

برای نوشتن یک اسکریپت تازه و یا ویرایش آن ، نیاز به دانش قبلی در مورد کد نویسی با زبان MetaQuotes Language می باشد و پس از ویرایش ، در مرحله بعد باید کامپایل و تفسیر شود . به محض اینکه بعد از کامپایل در MetaEditor  هیچ اشکال و ایرادی در کد ها نباشد ، اسکریپت به طور خودکار در پنجره نویگیشن MetaTrader در زیر شاخه مربوطه قرار می گیرد و اجازه اجرا به اسکریپت داده می شود . اگر در پنجره MetaEditor  پس از کامپایل  با خطایی رو برو شد ، تا زمانی که آن خطا را رفع نشود ، اسکریپت اجرا نخواهد شد .

اگر از عملکرد درست کد مطمئن نیستید ، آن را با توجه به هدف خود چندین بار تغییر دهید و ویرایش نمایید .

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

مجله متاکیوال - اسکریپت Scripts چیست؟

اسکریپت ها چه کاری می توانند انجام دهند ؟

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

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

Closed All Position: شما در نظر دارید کل معملات باز خود را چه در سود چه در ضرر پایان دهید و به جای اینکه یک به یک معاملات خود را انتخاب نمایید و ببندید ، بدون آنکه بخواهید استرس زیادی بخود وارد نمایید از یک اسکریپت مربوط به این کار استفاده می کنید و این اسکریپت برای شما کل معاملات باز را بصورت خود کار می بندد . و یا همچنین می توانید همین کاررا فقط برای معاملات درسود یا برای معاملات فقط در ضرر انجام دهید .

کار دیگری که اسکریپت می تواند انجام دهد این است که اطلاعات بروکر را از جمله بطور مثال : حداقل و حداکثر میزان Lot که می توانید در معاملات مورد استفاده قرار گیرد و یا فهمیدن این موضوع که قیمت های کارگزاری بر اساس pip است یا pipet و یا اطلاعاتی در مورد سروری که کارگزاری از آن استفاده می کند و یا خیلی اطلاعات دیگر از این موارد که ممکن است شما بخواهید در مورد بروکر خود بدانید و دانستن آن ممکن است در سرمایه گذاری شما تاثیر زیادی بگذارد و با اسکریپت مربوط به این کار تمام این اطلاعات را در اختیارتان قرار می دهد .

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

فایل های اسکریپت دارای دو پسوند .ex4 و .mql4 می باشد .

پسوند .ex4 : فایل اجرایی و عملیاتی اسکریپت می باشد که پس از کامپایل بدون ایراد در MetaEditor ، فایل مربوطه آن با این پسوند تولید می شود و قابل استفاده در نویگیشن پلتفرم  MetaTrader در زیر شاخه Scripts می باشد . در نظر داشته باشید اگر می خواهید تغییراتی را به آن صورتی که مد نظر خودتان می باشد در ساختار برنامه اسکریپت اعمال نمایید با  استفاده از این فایل نمی توانید به این مهم دست یابید و این فایل قابلیت ویرایش شدن را ندارد . عموما اسکریپت هایی را که به صورت رایگان و یا پولی تهیه می نمایید از این قبیل می باشند و قابل ویرایش نمی باشند.

پسوند .mql4 : در درون این فایل کد های نوشته شده ی اسکریپت موجود می باشد . اگر بخواهید اسکریپت را ویرایش نمایید باید فایل با این پسوند را در پنجره MetaEditor باز نمایید و سپس اقدام به ویرایش نمایید.

روش دسترسی به فایل های اسکریپت از طریق زیر شاخه File در پلتفورم MetaTrader می باشد ( شماره ۱ ) . با انتخاب و ورود در  Open Data Folder ( شماره ۲ ) ، در پنجره باز شده  MQL4 را انتخاب نمایید و وارد آن شوید ( شماره ۳ )  . در اینجا به راحتی دسترسی به فایل ها از جمله اسکریپت (Scripts) ، اندیکاتور (Indicators) و اکسپرت (Experts) مقدور می باشد ( شماره ۴ ).

داخل پوشه هر کدام از آنها ( Scripts ، Indicators ، Experts ) حتما فایل هایی با پسوند ex4. موجود می باشد و وجود فایل هایی که با پسوند .mql4 ( که برای ویرایش می باشد ) قطعی نمی باشد واحتمال دارد که وجود داشته باشد و یا نباشد . البته فایلهای اولیه در متاتریدر همه دارای دو پسوند .ex4 و .mql4 می باشد.

مجله متاکیوال - اسکریپت Scripts چیست؟

­

خواص اسکریپت ها

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

مقالات مرتبط :

 

منبع : liteforex

امینی

→ خواندن مطلب قبلی

اندیکاتور چیست ؟

خواندن مطلب بعدی ←

متاتریدر ( MetaTrader ) چیست؟

نوشتن نظر شما

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

4 × پنج =