جلسه بیستم – باز کردن پوزیشن pending با drag & drop

در جلسه بیستم از آموزش دوره اسکریپت نویسی،  با نحوه باز کردن پوزیشن pending  با استفاده از drag & drop در زبان برنامه نویسی MQL آشنا خواهید شد.

تابع ()WindowPriceOnDropped : همانطور که می دانید چارت از دو محور زمان و قیمت تشکیل شده است که در واقع هر نقطه از چارت شامل دو مقدار 1. تاریخ و ساعت 2. قیمت می باشد .

برای دریافت قیمت نقطه ای از چارت که اکسپرت و یا اسکریپت را روی آن نقطه قرار می دهیم از تابع WindowPriceOnDropped استفاده میکنیم

تابع ()WindowTimeOnDropped :‌ برای اینکه زمانی که اکسپرت و یا اسکریپت را روی نقطه ای از چارت قرار دهیم و زمان آن نقطه را دریافت کنیم از تابع WindowTimeOnDropped استفاده می کنیم.

برای باز کردن یک پوزیشن pending از نوع BUYLIMIT در نقطه ای که اسکریپت روی چارت قرار داده می شود از تابع WindowPriceOnDropped استفاده می کنیم و مقداری که برگردانده می شود در یک متغیر double  قرار می دهیم .  به عنوان مثال :

double price_on_dropped = WindowPriceOnDropped();
int ticket = OrderSend(_Symbol,OP_BUYLIMIT,0.10,price_on_dropped,30,0,0,"buy Script",12345,0,clrGreen);

نکته : اگر نیاز داشته باشیم پوزیشن از نوع BUYSTOP باز کنیم ، قیمت وارد شده برای BUYSTOP باید بالاتر از قیمت Ask باشد پس می توانیم کد بالا را به نحوی تغییر دهیم که اگر قیمت نقطه ای  که اسکریپت را روی چارت قرار دادیم بالاتر از قیمت Ask  باشد نوع  order ما همان BUYSTOP باشد و اگر  قیمت نقطه ای  که اسکریپت را روی چارت قرار دادیم پایین تر از قیمت Ask  باشد نوع  order ما همان BUYLIMIT باشد.

double price_on_dropped = WindowPriceOnDropped();
int order_type = -1;
if (price_on_dropped > Ask) order_type = OP_BUYSTOP;
else order_type = OP_BUYLIMIT;
int ticket = OrderSend(_Symbol, order_type,0.10, price_on_dropped,30,0,0,"buy Script",12345,0,clrGreen);

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

You have to agree to the comment policy.