
مقدمه
خطوط ساپورت و رزیستنس جزء یکی از ابتداییترین و اصلیترین ابزارهایی هستند که تقریباً هر تریدری با آنها کار میکند. این خطوط را میتوانید در بسیاری از پیشبینیها پیدا کنید، و هر تریدری باید بتواند این خطوط را بهطور مستقل شناسایی کند.
این مقاله فرآیند ساخت یک اسکریپت ساده برای شناسایی خطوط ساپورت و رزیستنس را توصیف میکند. این مقاله برای تازهکارها نوشته شدهاست و میتوانید توضیحات هر مرحله از فرآیند را همراه با جزئیات، داشته باشید. هرچند، با اینکه این اسکریپت خیلی ساده است اما این مقاله برای تریدرها و کاربران حرفهای متاتریدر ۴ هم بسیار مفید خواهد بود. این مقاله شامل مثالهایی از خروجی گرفتن دادهها با فُرمت[۱] جدولی است، [که میتوان] جدول را در مایکروسافت اِکسل وارد کرد و نمودارها را برای تحلیلهای بیشتر و جزئیتر، رسم نمود.
خطوط ساپورت و رزیستنس
در پایین میتوانید دو خط ساپورت و رزیستنس را مشاهده کنید.
خیلی نمیخواهیم عمیق وارد معنای این اصطلاح شویم. در بیشتر کتابهایی که خطوط ساپورت و رزیستنس را توضیح دادهاند، این گزاره را پیدا میکنید که، بیشتر وقتها خوانشها بین این دو خط در حرکت هستند و خیلی بهنُدرت این دو خط را قطع میکنند.
مدرکِ اثبات این گفته را در تصویر زیر میتوانید ببینید.
بیایید از این ویژگی استفاده کنیم. برای شناسایی خطوط ساپورت و رزیستنس، باید تعداد قطعشدنهای خوانشها و خط قیمت را بشماریم. محاسبات خیلی سخت نیستند. در نتیجه، بین هر قیمت و تعداد کندلهایی که این قیمت را قطع کردهاند، یک همبستگی وجود دارد. اکنون مشکل نمایش نتایج را داریم. این کار با استفاده از اندیکاتور چارت (chart) در متاتریدر، ممکن نیست، زیرا به نمودارِ قیمت بر زمان، احتیاج نداریم، بلکه به نمودار کندلها بر قیمت نیاز داریم. به همین دلیل است که باید دادهها را خروجی بگیریم و در یک برنامهی دیگر آنها را آنالیز کنیم.
ساخت یک اسکریپت
ابتدا، باید یک اسکریپت جدید بسازیم.
برای انجام این کار، به پنجرهی “Navigator” میرویم و سپس روی بخش “Scripts” راستکلیک کرده و “Create” را انتخاب میکنیم. پنجرهی جدید ظاهر میشود. مطمئن شوید نوع برنامهای که میخواهید بسازید، از نوع اسکریپت است و سپس “Next” را کلیک کنید.
سپس از شما خواسته میشود نام اسکریپت و پارامترهای آن را وارد کنید. بعد از کلیک کردن روی “Done”، میتوانید نوشتن اسکریپت را شروع کنید.
نوشتن اسکریپت
سورس کد اسکریپت بیش از ۲۰ خط نمیشود:
//+------------------------------------------------------------------+ //| ExportLevels.mq4 | //| Copyright © ۲۰۰۶, MetaQuotes Software Corp. | //| https://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © ۲۰۰۶, MetaQuotes Software Corp." #property link "https://www.metaquotes.net" #property show_inputs extern int MaxLimit = 1000; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { int handle; handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t'); FileWrite(handle, "Cost", "Bars Num"); double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)]; double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)]; for (double d = d1; d d2; d += 0.0001) { double a = 0.0; for(int i = 0; i MaxLimit; i++) if(d > Low[i] && d High[i]) a+=1; FileWrite(handle, d, a); } FileClose(handle); return(0); } //+------------------------------------------------------------------+
این اسکریپت فقط از یک تابع، یعنی تابع start()، تشکیل شدهاست. و هر بار که اسکریپت را فرامیخوانید، اجرا میشود. در اینجا میتوانید توضیحات جزئیتر سورس کد را مشاهده کنید:
#property show_inputs extern int MaxLimit = 1000;
اولین خط، مشخص میکند که قبل از اجرای اسکریپت، از کاربر خواسته میشود، پارامترهای اکسترنال را انتخاب کند. در واقع، تنها یک پارامتر در خط دوم تعریف شدهاست. پارامتر MaxLimit، با تعداد کندلهای هیستوری که برنامه از آنها استفاده میکند، سَروکار دارد. بهطور پیشفرض این تعداد ۱۰۰۰ است، اما کاربر میتواند هر زمان، آن را تغییر دهد.
int handle; handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t'); FileWrite(handle, "Cost", "Bars Num");
دو خطِ اولِ تابع start()، با باز کردن فایل “FindLevels.txt” با پارامترهای FILE_CSV (یعنی این فایل یک جدول متنی است) و FILE_WRITE (یعنی این فایل برای نوشتن، باز شدهاست)، سروکار دارد. پارامتر ‘\t’ مشخص میکند که ارقام درون فایل، با جدولبندی از هم جدا میشوند. در این فایل دو ستون خواهیم داشت: ستون اول “Cost” – قیمت، نام دارد و ستون دوم، “Bars Num” – تعداد کندلهایی که این قیمت را قطع میکنند. با استفاده از تابع FileWrite()، نام ستونها را در فایل “FindLevels.txt” مینویسیم.
double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)]; double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)];
آنگاه حداقل و حداکثر قیمت، از کندل صفر تا کندلی که در هیستوری، عدد MaxLimit را دارد، پیدا میکنیم (منظور از عدد MaxLimit این است که ما قبلاً برای تعداد کندلهای هیستوری که برنامه از آنها استفاده میکند، محدودیتی تعیین کردهایم، و در اینجا میگوید از صفر تا آن عددِ تعیینشده، پیش میرویم). iLowest() شاخص کندل را، جاییکه پایینترین قیمت را میتوان پیدا کرد، نشان میدهد. یک Low[]، پایینترین مقدار قیمت برای این کندل است. همین رویه را برای iHighest() و High[] هم داریم.
for (double d = d1; d <= d2; d += 0.0001) { double a = 0.0; for(int i = 0; i < MaxLimit; i++) if(d > Low[i] && d < High[i]) a+=1; FileWrite(handle, d, a); }
بعد از آن، یک سیکل for داریم. این سیکل قیمتها را از پایینترین قیمت d1 تا بالاترین قیمت d2 با ۰.۰۰۰۱ [رقم اعشار]، اداره میکند. متغیر “a”، تعداد کندلهایی است که قیمت “d” را قطع میکنند. دومین سیکل قراردادهشده، کندلهای هیستوری MaxLimit را اداره کرده و بررسی میکند که آیا آنها قیمت “d” را قطع کردهاند یا نه. بعد از پایان سیکل قراردادهشده، رویهی FileWrite، قیمت “d” و تعداد کندلهای “a” را درون فایل مینویسد.
FileClose(handle); return(0);
در پایانِ رویهی start()، فایل را میبندیم و با استفاده از تابع return()، رویه را تمام میکنیم. بعد از آنکه اسکریپت را نوشتیم، میتوانیم با کلیک کردن روی “Compile” آن را کامپایل کنیم و از بخش “Scripts” در متاتریدر در پنجرهی “Navigator”، آن را اجرا کنیم.
فایل با اِکسل
بعد از فراخوانی اسکریپت، برنامه، فایل “FindLevels.txt” را در پوشهی “\experts\files\” میسازد. بیایید آن را در اِکسل باز کنیم. برای انجام این کار، باید اِکسل را باز کرده و در قمست Open، نوع فایلها را “Text Files” انتخاب کرده، فایل را پیدا و آن را باز میکنیم.
در دو پنجرهی اول، نباید چیزی را تغییر دهیم. فقط روی Next کلیک کنید.
در پنجرهی سوم، روی دکمهی Advanced کلیک کرده، و نماد نقطه ( . ) را برای نقطه اَعشار، و نماد ‘ (apostrophe) را برای جداسازی هزارتا هزارتا، انتخاب کنید. سپس Ok را زده و بعد از آن Finish.
در نتیجه، دو ستون در اِکسل خواهیم داشت. اکنون باید نمودار را رسم کنیم. به تَبِ Insert و سپس Chart بروید.
آخرین کاری که باید انجام دهیم انتخاب نوع نمودار و نحوهی نمایش آن است.
در نهایت، نمودار کندل بر قیمت را داریم.
میتوانید ببینید که مقادیر حداقلی نمودار در نقاط ۱.۲۵۸۲، ۱.۲۶۱۶، ۱.۲۶۴۴، ۱.۲۷۰۵، ۱.۲۷۱۲، ۱.۲۷۳۰، ۱.۲۷۴۴، ۱.۲۸۵۰، ۱.۲۸۷۹، واقع شدهاند. اینها خطوط ساپورت و رزیستنس هستند.
میتوانیم نتایج تاریخ ۱۰/۱۱/۲۰۰۶ را با تاریخ قبلی یعنی ۹/۱۰/۲۰۰۶ مقایسه کنیم:
رزیستنس ۴ $۱.۲۸۸۰ بیشترین مقدار در ۳۱ آگوست
رزیستنس ۳ $۱.۲۸۶۵ ۱.۶۱۸ هدف سوئینگ بعد از سقوط از ۱.۲۷۹۵ به ۱.۲۶۸۰
رزیستنس ۲ $۱.۲۸۳۰ ۷۶.۴% فیبوناچی از ۱.۲۹۴۰ تا ۱.۲۴۸۵
رزیستنس ۱ $۱.۲۸۰۵ رزیستنس ساعت[۲]
خط کنونی: ۱.۲۶۷۰
ساپورت ۱ $۱.۲۷۴۵ خط روند صعودی برای سه هفته
ساپورت ۲ $۱.۲۷۳۰ ۶۱.۸% فیبوناچی از ۱.۲۶۸۰ تا ۱.۲۸۲۰
ساپورت ۳ $۱.۲۷۱۵ ۷۶.۴% فیبوناچی از ۱.۲۶۸۰ تا ۱.۲۸۲۰
ساپورت ۴ $۱.۲۶۸۰ کمترین مقدار در ۳ نوامبر
همانطور که میبینید، همبستگی خوبی بین نمودار و پیشبینیها وجود دارد. و این یعنی، خطوطی که پیدا کردیم، خطوط ساپورت و رزیستنس واقعی هستند!
این مقاله دارای فایل پیوست است.
[۱]) Tabular
[۲]) The hour resistance
۲۴ مورد نظر
viagra without doctor prescription
ivermectin 15 mg where can i get ivermectin for guinea pig ivermectin indications
what is the active ingredient in ivermectin how much ivermectin to give a 50lb dog soolantra ivermectin
causes for ed prescription drugs without doctor approval pills for erection
medicine prednisone 10mg order prednisone prednisone cost canada
prednisone 5 mg tablet cost buy prednisone online prednisone online india
erectile dysfunction medications mens ed male ed drugs
online prednisone buy prednisone prednisone online pharmacy
propecia finasteride propecia buy online mail order propecia
generic propecia cheap propecia cheap cheapest propecia online
finasteride proscar propecia india buy propecia finasteride
canadian pharmacy canadian drug online canadian pharmacy
dog antibiotics without vet prescription best canadian online pharmacy anti fungal pills without prescription
merck propecia generic propecia propecia costs
carprofen without vet prescription legal to buy prescription drugs without prescription legal to buy prescription drugs from canada
canada rx drugs online top rated canadian pharmacies online buy prescription drugs online cheap
generic drugs without doctor’s prescription india pharmacies shipping to usa india pharmacies online
medicine for impotence over the counter erectile dysfunction pills ed pills that really work
clomid for sale where to buy cheap clomid online clomid
price of cialis 20 mg online purchase of tadalafil in india where to buy liquid cialis
viagra sildenafil 100 mg lowest price price for viagra
clomid tablets for sale clomid tablets for sale clomid tablets for sale
sildenafil 100 mg viagra tablets for men viagra
stromectol for humans for sale prescribing stromectol ivermectin without a doctor prescription