Syntax
Syntax Guide
Syntax به مجموعه قوانینی گفته میشه که ساختار درست یه پیام هشدار (alert message) رو مشخص میکنن.
نمونه سینتکس ترکیبی
در ادامه چند نمونه سینتکس سازگار با PineConnector رو میبینی:
60123456789,buy,AUDUSD,risk=0.1
60123456789,sell,GBPJPY,sl=50,risk=1
60123456789,closelong,GBPUSD
Alert Message Guidelines
برای ساخت پیام هشدار (Alert) که با PineConnector سازگار باشه، لطفاً به دستورالعملهای زیر توجه کن.
اگه به سینتکس توجه نکنی، ممکنه EA سیگنالت رو رد کنه.
Test Drive Before Going Live
قبل از اینکه هشدارهای واقعی برای استراتژیت بسازی، پیشنهاد میکنیم که هشدارهای دستی یا تستی بفرستی تا از موارد زیر مطمئن بشی:
- پیام هشداری که توی TradingView تنظیم کردی، طبق راهنمای Syntax درسته
- تنظیمات EA انتخابشده، همون رفتاری رو ایجاد میکنه که انتظار داری
Checking for Successful Signals
اگه سیگنالهات رو توی ترمینال متاتریدر نمیبینی، میتونی توی Signals Log داخل پرتال اعضا چک کنی.

نکته: سیگنالهایی که رد بشن، توی لاگ نمایش داده نمیشن.
Components
چهار بخش اصلی توی پیامهای هشدار وجود داره:
Component | Remarks |
---|---|
License ID | یه شناسهی منحصربهفرد که توی Licensing Dashboard پیدا میکنی. معمولاً با ۶ یا ۷ شروع میشه، مثل 70123456789. |
Commands | دستوراتی مثل "buy"، "sell" و غیره. توجه کن که اینا علامت مساوی (=) ندارن. |
Symbol | نماد یا ابزاری که قراره روش ترید انجام بشه. |
Others | اجزای اضافی که با علامت مساوی (=) میان، مثل "risk=" و غیره. |
Structure
سینتکس باید از این ترتیب پیروی کنه:
LicenseID, Command, Symbol, Others
- اجزا باید با ویرگول (,) از هم جدا بشن
- هر هشدار فقط میتونه یک License ID، یک Command و یک Symbol داشته باشه
سینتکس قابل قبول PineConnector (Acceptable PineConnector Syntax)
1. LicenseID,Command,Symbol,Others (بدون فاصله بین ویرگولها)
2. LicenseID , Command , Symbol , Others (با فاصله بین ویرگولها)
سینتکس غیرقابل قبول PineConnector (Unacceptable PineConnector Syntax)
1. Command,LicenseID,Symbol (ترتیب اشتباه)
2. LicenseID,Command,Command (چند دستور)
3. LicenseID,LicenseID,Command,Symbol (چند لایسنس آیدی)
بخش Market Orders
دستورها و سینتکس مربوط به سفارشهای بازار (Market Orders) مثل buy و sell.
buy
باز کردن سفارش خرید در بازار.
جایگزینهای معتبر (حساس به حروف نیست)
- long
- bull
- bullish
نکته: risk=
یک پارامتر اجباری است
LicenseID,buy,EURUSD,risk=0.01
LicenseID,long,US30.Cash,risk=1
LicenseID,bullish,GBPJPY,risk=1
sell
باز کردن سفارش فروش در بازار.
جایگزینهای معتبر (حساس به حروف نیست)
- short
- bear
- bearish
نکته: risk=
یک پارامتر اجباری است
LicenseID,sell,EURUSD,risk=0.01
LicenseID,short,DAX30,risk=2
LicenseID,bear,GBPJPY,risk=1
risk=
پارامتر اجباری برای تمام دستورهای ورود مثل buy
و buylimit
.
عملکرد این پارامتر به "Volume Type" انتخابشده در تنظیمات EA بستگی داره.
گزینههای EA:
- Lots
- Dollar Amount
- Percentage of Balance (Lots)
- Percentage of Balance (Loss)
LicenseID,buy,EURUSD,risk=0.01
LicenseID,sell,EURCAD,risk=2
sl=
قرار دادن حد ضرر (Stop-Loss).
محاسبهی مقدار SL براساس Target Type انتخابشده در تنظیمات EA انجام میشه.
گزینههای EA:
- Pips
- Price
- Percentage
LicenseID,buy,EURUSD,risk=1,sl=10.5
tp=
قرار دادن حد سود (Take-Profit).
محاسبهی مقدار TP براساس Target Type انتخابشده در تنظیمات EA انجام میشه.
گزینههای EA:
- Pips
- Price
- Percentage
LicenseID,buy,EURUSD,risk=1,tp=15
comment=
اضافه کردن یک متن به بخش کامنت سفارش.
- فقط برای دستورهای ورود (مثل buy، buylimit و ...) معتبره
- در PineConnector نسخه ۳، نیازی نیست که کامنت داخل " " قرار بگیره
- کامنت باید حداکثر ۲۰ کاراکتر باشه
LicenseID,buy,EURUSD,risk=1,comment=Strategy 1
LicenseID,buy,EURUSD,risk=1,comment=Strategy 2
LicenseID,buy,EURUSD,risk=1,comment= 100 5/6
LicenseID,buy,EURUSD,risk=1,comment= Set=20
LicenseID,buy,EURUSD,risk=1,comment=12345678901234567890 (معتبر، دقیقاً ۲۰ کاراکتر)
LicenseID,buy,EURUSD,risk=1,comment=123456789012345678901 (نامعتبر، بیشتر از ۲۰ کاراکتر)
eaoff
پاینکانکتور EA را متوقف میکند.
اگر EA متوقف باشد، سیگنالهای ورودی پردازش نخواهند شد.
LicenseID,eaoff,eaoff
eaon
پاینکانکتور EA را از حالت توقف فعال میکند.
LicenseID,eaon,eaon
closeall
بستن تمام پوزیشنها و اردرها، صرفنظر از نماد.
این سینتکس فقط پوزیشنهایی رو میبنده که توسط PineConnector EA باز شدهن —
برای برداشتن این محدودیت، گزینه Magic Restriction رو توی EA خاموش کن.
اگه فقط میخوای پوزیشنهای یه نماد خاص رو ببندی، از closelong
، closeshort
یا closelongshort
استفاده کن.
LicenseID,closeall,EURUSD
Safety Measure
دستور فقط زمانی عمل میکنه که نماد درست مشخص شده باشه.
نمادی رو وارد کن که PineConnector EA روی اون اجرا شده.
اگه EA روی GBPJPY.a اجرا شده، باید بنویسی "GBPJPY.a" بهجای "EURUSD".
closealleaoff
تمام پوزیشنها و اردرها را میبندد و PineConnector EA را متوقف میکند.
این سینتکس فقط پوزیشنهایی را میبندد که توسط PineConnector EA باز شدهاند —
برای برداشتن این محدودیت، گزینه Magic Restriction را در EA غیرفعال کن.
LicenseID,closealleaoff,EURUSD
Safety Measure
دستور فقط زمانی کار میکنه که نماد درست مشخص شده باشه.
نمادی رو وارد کن که PineConnector EA روی اون اجرا شده.
اگه EA روی GBPJPY.a اجرا شده، باید بنویسی "GBPJPY.a" بهجای "EURUSD".
closelong
تمام پوزیشنهای خرید (buy) مربوط به نماد مشخصشده را میبندد.
این سینتکس فقط پوزیشنهایی را میبندد که توسط PineConnector EA باز شدهاند —
برای برداشتن این محدودیت، گزینه Magic Restriction را در EA غیرفعال کن.
LicenseID,closelong,EURUSD
closeshort
تمام پوزیشنهای فروش (sell) مربوط به نماد مشخصشده را میبندد.
این سینتکس فقط پوزیشنهایی را میبندد که توسط PineConnector EA باز شدهاند —
برای برداشتن این محدودیت، گزینه Magic Restriction را در EA غیرفعال کن.
LicenseID,closeshort,EURUSD
closelongshort
تمام پوزیشنهای خرید و فروش مربوط به نماد مشخصشده را میبندد.
این سینتکس فقط پوزیشنهایی را میبندد که توسط PineConnector EA باز شدهاند —
برای برداشتن این محدودیت، گزینه Magic Restriction را در EA غیرفعال کن.
LicenseID,closelongshort,EURUSD
closelongbuy
تمام پوزیشنهای خرید را میبندد و یک سفارش خرید جدید باز میکند.
این سینتکس فقط پوزیشنهایی را میبندد که توسط PineConnector EA باز شدهاند —
برای برداشتن این محدودیت، گزینه Magic Restriction را در EA غیرفعال کن.
LicenseID,closelongbuy,EURUSD,risk=1
closeshortsell
تمام پوزیشنهای فروش را میبندد و یک سفارش فروش جدید باز میکند.
این سینتکس فقط پوزیشنهایی را میبندد که توسط PineConnector EA باز شدهاند —
برای برداشتن این محدودیت، گزینه Magic Restriction را در EA غیرفعال کن.
LicenseID,closeshortsell,EURUSD,risk=1
newsltplong
حد ضرر (SL) و حد سود (TP) پوزیشنهای خرید را تغییر میدهد.
مقدار جدید SL و TP براساس Target Type انتخابشده در EA محاسبه میشود.
این سینتکس فقط پوزیشنهایی را مدیریت میکند که توسط PineConnector EA باز شدهاند —
برای برداشتن این محدودیت، گزینه Magic Restriction را در EA غیرفعال کن.
LicenseID,newsltplong,EURUSD,sl=10
LicenseID,newsltplong,EURUSD,tp=20
LicenseID,newsltplong,EURUSD,sl=30,tp=60
LicenseID,newsltplong,EURUSD,sl=1.12345 (price)
LicenseID,newsltplong,EURUSD,sl=1,tp=2 (percentage)
LicenseID,newsltplong,EURUSD,sl=0 (breakeven)
Pips
اگه بنویسی sl=10، EA حد ضرر (SL) رو با فاصله ۱۰ پیپ از قیمت فعلی بازار محاسبه میکنه.
Percentage
اگه بنویسی sl=1، EA حد ضرر (SL) رو با فاصله ۱٪ از قیمت فعلی بازار محاسبه میکنه.
Move SL to Breakeven
اگه بخوای حد ضرر (SL) تمام پوزیشنهای خرید یه نماد خاص رو ببری روی نقطه ورود (breakeven)، باید sl=0 رو وارد کنی.
شرایط لازم:
- پوزیشن باید تو سود باشه
- قیمت فعلی بازار باید به اندازه کافی از قیمت ورود فاصله داشته باشه
اگه هرکدوم از این شرایط برقرار نباشه و دستور newsltplong
با sl=0 رو بفرستی،
تو MT4 خطای 130 و تو MT5 خطای 4756 (Invalid Price) دریافت میکنی.
newsltpshort
حد ضرر (SL) و حد سود (TP) پوزیشنهای فروش رو تغییر میده.
مقدار جدید SL و TP بر اساس Target Typeای که توی EA انتخاب کردی محاسبه میشه.
این سینتکس فقط پوزیشنهایی رو مدیریت میکنه که توسط PineConnector EA باز شدن —
اگه میخوای محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,newsltpshort,EURUSD,sl=10
LicenseID,newsltpshort,EURUSD,tp=20
LicenseID,newsltpshort,EURUSD,sl=30,tp=60
LicenseID,newsltpshort,EURUSD,sl=1.12345 (price)
LicenseID,newsltpshort,EURUSD,sl=1,tp=2 (percentage)
LicenseID,newsltpshort,EURUSD,sl=0 (breakeven)
Pips
اگه بنویسی sl=10، EA حد ضرر (SL) رو با فاصله ۱۰ پیپ از قیمت فعلی بازار حساب میکنه.
Percentage
اگه بنویسی sl=1، EA حد ضرر (SL) رو با فاصله ۱٪ از قیمت فعلی بازار حساب میکنه.
Move SL to Breakeven
اگه بخوای حد ضرر (SL) همه پوزیشنهای فروش یه نماد خاص رو ببری روی نقطه ورود (breakeven)، باید sl=0 رو بزنی.
شرایط لازم:
- پوزیشن تو سود باشه
- قیمت فعلی بازار فاصله کافی با قیمت ورود داشته باشه
اگه این شرایط برقرار نباشن و newsltpshort
با sl=0 بفرستی،
تو MT4 با خطای 130 و تو MT5 با خطای 4756 (Invalid Price) روبهرو میشی.
closelongpct
یه درصدی از پوزیشنهای خرید رو میبنده (براساس حجمی که اول باز شده)، با استفاده از درصد بستن جزئی که توی EA انتخاب کردی (۲۵٪، ۳۴٪ یا ۵۰٪).
این دستور فقط پوزیشنهایی رو میبنده که توسط PineConnector EA باز شدن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,closelongpct,EURUSD
closeshortpct
یه درصدی از پوزیشنهای فروش رو میبنده (بر اساس حجمی که اول باز شده)، با استفاده از درصد بستن جزئی که توی EA انتخاب کردی (۲۵٪، ۳۴٪ یا ۵۰٪).
این دستور فقط پوزیشنهایی رو میبنده که توسط PineConnector EA باز شدن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,closeshortpct,EURUSD
closelongvol
پوزیشنهای خرید رو تا مقدار مشخصشده میبنده.
پارامتر risk=
توی این دستور اجباریه.
این دستور فقط پوزیشنهایی رو میبنده که توسط PineConnector EA باز شده باشن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,closelongvol,EURUSD,risk=3
LicenseID,closelongvol,EURUSD,risk=0.5
مثالها
ما ۳ پوزیشن خرید باز داریم که مجموعشون ۳.۵ لات هست، به ترتیب زمان باز شدن:
- پوزیشن A: خرید ۱ لات (اول باز شده)
- پوزیشن B: خرید ۲ لات (دوم باز شده)
- پوزیشن C: خرید ۰.۵ لات (آخر باز شده)
بستن جزئی بین چند پوزیشن
دستور: closelongvol
با risk=2.8
نتیجه:
- پوزیشن A کامل بسته میشه (از ۱ به ۰ لات)
- پوزیشن B فقط ۱.۸ لات بسته میشه (۰.۲ لات باقی میمونه)
- پوزیشن C دستنخورده میمونه (۰.۵ لات)
بستن بیشتر از حجم کل پوزیشنها
دستور: closelongvol
با risk=4
نتیجه:
- پوزیشن A، B و C همه کامل بسته میشن
- چون حجم درخواستی (۴ لات) بیشتر از حجم باز (۳.۵ لات) بوده، همه پوزیشنها بسته میشن
بستن کمتر از کوچکترین پوزیشن
دستور: closelongvol
با risk=0.4
نتیجه:
- از پوزیشن A فقط ۰.۴ لات بسته میشه (۰.۶ لات باقی میمونه)
- پوزیشن B و C دستنخورده میمونن
بستن دقیقاً معادل حجم کل پوزیشنها
دستور: closelongvol
با risk=3.5
نتیجه:
- پوزیشن A، B و C همه کامل بسته میشن
- چون حجم درخواستی دقیقاً برابر حجم باز بوده، همه پوزیشنها بسته میشن
closeshortvol
پوزیشنهای فروش رو تا مقدار مشخصشده میبنده.
پارامتر risk=
توی این دستور اجباریه.
این دستور فقط پوزیشنهایی رو میبنده که توسط PineConnector EA باز شده باشن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,closeshortvol,EURUSD,risk=3
LicenseID,closeshortvol,EURUSD,risk=0.5
بخش Pending Orders
دستورات و سینتکس مربوط به سفارشهای معلق (Pending) مثل:
buy stop, buy limit, sell stop و sell limit.
pending=
پارامتر اجباری برای همه سفارشهای معلق مثل buystop و buylimit هست.
برای محاسبه قیمت ورود سفارش معلق استفاده میشه.
تو EA میتونی مشخص کنی که این مقدار بر اساس چی محاسبه بشه:
- Pips
- Specified Price (قیمت مشخصشده)
- Percentage ( درصد)
LicenseID,buystop,EURUSD,pending=10,risk=1
buystop
یه سفارش خرید استاپ (Buy Stop) بالاتر از قیمت فعلی بازار قرار میده.
پارامتر pending=
توی این دستور الزامیه.
LicenseID,buystop,EURUSD,pending=10,risk=1
buylimit
یه سفارش خرید لیمیت (Buy Limit) پایینتر از قیمت فعلی بازار قرار میده.
پارامتر pending=
توی این دستور اجباریه.
LicenseID,buylimit,EURUSD,pending=10,risk=1
sellstop
یه سفارش فروش استاپ (Sell Stop) پایینتر از قیمت فعلی بازار قرار میده.
پارامتر pending=
توی این دستور اجباریه.
LicenseID,sellstop,EURUSD,pending=10,risk=1
selllimit
یه سفارش فروش لیمیت (Sell Limit) بالاتر از قیمت فعلی بازار قرار میده.
پارامتر pending=
توی این دستور اجباریه.
LicenseID,selllimit,EURUSD,pending=10,risk=1
cancellong
تمام سفارشهای خرید (Buy) معلق مربوط به نماد مشخصشده رو لغو میکنه.
این دستور فقط سفارشهایی رو لغو میکنه که توسط PineConnector EA ایجاد شده باشن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,cancellong,EURUSD
cancelshort
تمام سفارشهای فروش (Sell) معلق مربوط به نماد مشخصشده رو لغو میکنه.
این دستور فقط سفارشهایی رو لغو میکنه که توسط PineConnector EA ایجاد شده باشن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,cancelshort,EURUSD
cancellongbuystop
تمام سفارشهای خرید معلق (Buy) مربوط به نماد مشخصشده رو لغو میکنه و بلافاصله یه سفارش buystop جدید قرار میده.
پارامترهای risk=
و pending=
توی این دستور اجباری هستن.
این دستور فقط سفارشهایی رو لغو و ثبت میکنه که توسط PineConnector EA باز شده باشن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,cancellongbuystop,EURUSD,risk=1,pending=10,sl=15,tp=20
cancellongbuylimit
تمام سفارشهای خرید معلق (Buy) مربوط به نماد مشخصشده رو لغو میکنه و یه سفارش buylimit جدید قرار میده.
پارامترهای risk=
و pending=
توی این دستور اجباری هستن.
LicenseID,cancellongbuylimit,EURUSD,risk=1,pending=10,sl=15,tp=20
cancelshortsellstop
تمام سفارشهای فروش معلق (Sell) مربوط به نماد مشخصشده رو لغو میکنه و بلافاصله یه سفارش sellstop جدید قرار میده.
پارامترهای risk=
و pending=
توی این دستور اجباری هستن.
این دستور فقط سفارشهایی رو لغو و ثبت میکنه که توسط PineConnector EA ایجاد شده باشن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,cancelshortsellstop,EURUSD,risk=1,pending=10,sl=15,tp=20
cancelshortselllimit
تمام سفارشهای فروش معلق (Sell) مربوط به نماد مشخصشده رو لغو میکنه و بلافاصله یه سفارش selllimit جدید قرار میده.
پارامترهای risk=
و pending=
توی این دستور اجباری هستن.
LicenseID,cancelshortselllimit,EURUSD,risk=1,pending=10,sl=15,tp=20
newsltpbuystop
حد ضرر (SL) و حد سود (TP) سفارشهای buystop رو تغییر میده.
مقدار جدید SL و TP بر اساس تنظیماتی که برای Target Type توی EA انتخاب کردی محاسبه میشه.
این دستور فقط سفارشهایی رو مدیریت میکنه که توسط PineConnector EA ایجاد شده باشن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,newsltpbuystop,EURUSD,sl=10
LicenseID,newsltpbuystop,EURUSD,tp=20
LicenseID,newsltpbuystop,EURUSD,sl=30,tp=60
newsltpbuylimit
حد ضرر (SL) و حد سود (TP) سفارشهای buylimit رو تغییر میده.
مقدار جدید SL و TP بر اساس Target Typeی که توی EA انتخاب کردی محاسبه میشه.
این دستور فقط سفارشهایی رو مدیریت میکنه که توسط PineConnector EA ثبت شده باشن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,newsltpbuylimit,EURUSD,sl=10
LicenseID,newsltpbuylimit,EURUSD,tp=20
LicenseID,newsltpbuylimit,EURUSD,sl=30,tp=60
newsltpsellstop
حد ضرر (SL) و حد سود (TP) سفارشهای sellstop رو تغییر میده.
مقدار جدید SL و TP بر اساس Target Typeی که توی EA انتخاب کردی محاسبه میشه.
این دستور فقط سفارشهایی رو مدیریت میکنه که توسط PineConnector EA ثبت شده باشن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,newsltpsellstop,EURUSD,sl=10
LicenseID,newsltpsellstop,EURUSD,tp=20
LicenseID,newsltpsellstop,EURUSD,sl=30,tp=60
newsltpselllimit
حد ضرر (SL) و حد سود (TP) سفارشهای selllimit رو تغییر میده.
مقدار جدید SL و TP بر اساس Target Typeی که توی EA انتخاب کردی محاسبه میشه.
این دستور فقط سفارشهایی رو مدیریت میکنه که توسط PineConnector EA ثبت شده باشن —
اگه میخوای این محدودیت برداشته بشه، گزینه Magic Restriction رو توی EA خاموش کن.
LicenseID,newsltpselllimit,EURUSD,sl=10
LicenseID,newsltpselllimit,EURUSD,tp=20
LicenseID,newsltpselllimit,EURUSD,sl=30,tp=60
بخش Breakeven (سر به سر)
نقطهی breakeven یعنی جایی که حد ضررت (SL) روی قیمت ورود تنظیم میشه؛ یعنی اگه SL بخوره، نه سود میکنی نه ضرر.
بهجای اینکه از ویژگی breakeven موقع ورود به معامله استفاده کنی، میتونی بعداً با استفاده از دستورهای newsltplong
یا newsltpshort
و مقدار sl=0
، حد ضررت رو ببری به نقطه ورود (breakeven).
اگه بخوای این کار بهصورت خودکار انجام بشه، باید از betrigger=
استفاده کنی.
و حتماً دقت کن که مقدار beoffset
کوچکتر< از betrigger
باشه.
betrigger=
وقتی پوزیشن این تعداد پیپ وارد سود بشه، SL به نقطه ورود (breakeven) منتقل میشه.
مقدار betrigger
>0باید بزرگتر از صفر باشه.
beoffset=
این یعنی چقدر فاصله از قیمت ورود برای قرار دادن حد ضرر بعد از فعال شدن breakeven.
- اگر
beoffset=0
باشه، SL دقیقاً روی قیمت ورود قرار میگیره. - اگر
beoffset=1
باشه، توی معامله خرید، SL میره یک پیپ بالاتر از قیمت ورود؛ توی معامله فروش، یک پیپ پایینتر.
این عدد همون مقداریه که میخوای از سودت محافظت کنی.
LicenseID,buy,EURUSD,risk=1,sl=20,betrigger=10,beoffset=2
حتماً مطمئن باش که هر دو پارامتر betrigger=
و beoffset=
توی سینتکس پیامت هستن.
تفسیر دستور
۱ لات از EURUSD بخر، با حد ضرر (SL) که ۲۰ پیپ با قیمت فعلی فاصله داره.
اگه قیمت ۱۰ پیپ در جهت مطلوب حرکت کرد، ویژگی Breakeven فعال بشه و SL به ۲ پیپ بالاتر از قیمت ورود منتقل بشه.
بخش Pip Trailing
Pip Trailing
یعنی حد ضررت (SL) بهصورت خودکار همراه با حرکت معامله جابهجا میشه.
اگه معامله خرید (Buy) باشه، SL با حرکت قیمت به سمت بالا، بالا میره.
اگه معامله فروش (Sell) باشه، SL با حرکت قیمت به سمت پایین، پایین میاد.
چند تا نکته مهم:
- تمام مقادیری که برای trailing مینویسی باید عدد صحیح باشن، یعنی نمیتونی عدد اعشاری بدی. مثلاً اگه بنویسی 2.5، خودش خودکار میگردونه به 3 یا 2.
- محاسبهی trailing همیشه بر اساس «پیپ» انجام میشه، حتی اگه توی تنظیمات EA، Target Type چیز دیگهای مثل درصد یا قیمت باشه.
Spelling Bee
لطفاً بررسی کن که کلمه "trailing" رو توی سینتکس درست نوشته باشی. بعضی از کاربران بهخاطر اینکه "trialing" نوشتن، با مشکل سینتکس مواجه شدن.
trailtrig=
تریلینگ استاپ زمانی فعال میشه که معامله به این تعداد پیپ وارد سود بشه.
traildist=
فاصلهی تریلینگ استاپلاس از قیمت فعلی.
وقتی شرط trailtrig
برآورده بشه، حتی اگه از قبل SL نداشته باشی، SL با این فاصله از قیمت فعلی قرار میگیره.
trailstep=
وقتی قیمت به اندازهی مشخصی به سمت دلخواه حرکت کنه، تریلینگ استاپلاس بهروزرسانی میشه و همراه قیمت جابهجا میشه.
مثال:
LicenseID,buy,EURUSD,risk=1,trailtrig=12,traildist=8,trailstep=3
حتماً مطمئن شو که هر سه پارامتر trailtrig=
، traildist=
و trailstep=
توی سینتکس پیامت باشن.
تفسیر
وقتی trailtrig=12
باشه، اولین بار تریلینگ SL فعال میشه وقتی که قیمت ۱۲ پیپ در جهت دلخواه حرکت کنه (یعنی تا سطح entry+12 بره).
تو این لحظه، SL قرار میگیره ۸ پیپ پایینتر، یعنی روی entry+12−8.
اگه از قبل SL داشته باشی، همون SL آپدیت میشه.
اگه SL نداشته باشی، براش یه SL جدید ساخته میشه.
حالا اگه trailstep=3
باشه،
مرحله دوم تریلینگ وقتی فعاله که قیمت ۳ پیپ دیگه هم در جهت دلخواه حرکت کنه (یعنی بره به entry+12+3).
تو این مرحله، SL میره روی entry+12+3−8.
مرحله سوم، اگه قیمت دوباره ۳ پیپ دیگه جلو بره (entry+12+3+3)،
SL هم میره روی entry+12+3+3−8، و همینطور ادامه پیدا میکنه.
Negative “trailtrig=”
میتونی از مقدار منفی برای trailtrig=
استفاده کنی تا تریلینگ از همون لحظهی ورود فعال بشه.
اگه trailtrig=0
بزاری، ممکنه تریلینگ فقط بعد از اینکه اسپرد پوشش داده شد شروع بشه.
trailtrig=-10,traildist=12,trailstep=1
با این تنظیمات، تریلینگ توسط EA از همون اول شروع میشه.
SL هر بار با فاصلهی ۱۰ پیپ از قیمت بازار قرار میگیره و اگه قیمت در جهت دلخواه حرکت کنه، SL به ازای هر ۱ پیپ حرکت دوباره بهروزرسانی میشه.
نکته
وقتی روی نمادهای غیر فارکس مثل US100 ترید میکنی، عدد ۱۰ ممکنه معادل ۱ پوینت در شاخص باشه.
پس قبل از اینکه ازش تو معاملات اصلی استفاده کنی، حتماً یه بار تستش کن و به تب Experts توی متاتریدر نگاه بنداز — EA اونجا اطلاعات تریلینگ رو چاپ میکنه، مثل قیمتی که از اونجا تریلینگ شروع میشه.
بخش ATR Trailing
ATR Trailing
حواست باشه که تریلینگ ATR بر اساس قیمتهای متاتریدر محاسبه میشه، نه TradingView،
واسه همین ممکنه یه سری اختلافهای جزئی بینشون دیده بشه.
تو این حالت، SL دیگه بر اساس پیپ جابهجا نمیشه، بلکه طبق مقدار ATR (که با توجه به تایمفریم و پریود مشخصشده محاسبه میشه) تریل میکنه.
تو این حالت فقط دوتا پارامتر اجباریان:atrtimeframe=
و atrperiod=
بقیه پارامترها اختیاری هستن.
atrtimeframe=
ATR Trailing Stop بر اساس تایمفریمی که مشخص کردی (به دقیقه) کار میکنه و فقط وقتی کندل بسته بشه، بروزرسانی میشه.
اگه موقع ورود SL تعریف نکرده باشی، خودش بهصورت خودکار یه SL بر اساس مقدار ATR حساب میکنه و میذاره.
مقدارهایی که میتونی برای atrtimeframe توی متاتریدر ۴ بذاری ایناست:
1 یعنی ۱ دقیقه،
5 یعنی ۵ دقیقه،
15 یعنی ۱۵ دقیقه،
30 یعنی ۳۰ دقیقه،
60 یعنی ۱ ساعت،
240 یعنی ۴ ساعت،
1440 یعنی ۱ روز.
ولی توی متاتریدر ۵، محدودیتی نداری و هر عددی دلت خواست میتونی بدی. مثلاً راحت بنویسی:atrtimeframe=10
(یعنی از ATR تایمفریم ۱۰ دقیقهای استفاده کنه).
atrperiod=
دورهی میانگینگیری برای ATR.
atrmultiplier=
ضریب ATR که برای محاسبهی جدید SL استفاده میشه.
مقدار پیشفرض = 1
atrshift=
جابجایی نسبی اطلاعات قیمت. عدد 0 یعنی از آخرین کندل استفاده میشه، عدد 1 یعنی از کندل قبل از اون، و همینطور ادامه داره.
مقدار پیشفرض: 0
atrtrigger=
فعال شدن تریلینگ ATR بعد از اینکه بازار به اندازهی مشخصی (بر حسب پیپ) در جهت مطلوب حرکت کنه.
مقدار پیشفرض: 0 (یعنی بلافاصله فعال میشه)
LicenseID,buy,EURUSD,risk=1,sl=10,atrtimeframe=60,atrperiod=14,atrmultiplier=2,atrtrigger=8
حتماً مطمئن شو که توی سینتکستت حداقل دو تا پارامتر atrtimeframe=
و atrperiod=
وجود داشته باشه. بقیه پارامترها اختیاری هستن و اگر ننویسی، از مقدار پیشفرض استفاده میشه.
تفسیر
خرید EURUSD در قیمت بازار با استاپلاس (SL) که ۱۰ پیپ پایینتر از قیمت ورود قرار گرفته.
تریلینگ ATR زمانی فعال میشه که قیمت ۸ پیپ در جهت مثبت حرکت کنه.
مقدار ATR از میانگین ۱۴ کندل ۶۰ دقیقهای آخر محاسبه میشه، و بعد در عدد ۲ ضرب میشه تا برای تنظیم SL جدید استفاده بشه.
بخش فیلترها
فیلترها
spread=
پوزیشن فقط وقتی باز میشه که مقدار اسپرد برابر یا کمتر از عدد مشخصشده (بر حسب پیپ) باشه.
LicenseID,buy,EURUSD,risk=1,spread=2
LicenseID,buy,EURUSD,risk=1,spread=1.22
accfilter=
پوزیشن فقط وقتی باز میشه که شرایط حساب برقرار باشه.
این شرط میتونه بر اساس یکی از این گزینهها باشه:
- موجودی حساب (Account Balance)
- موجودی خالص (Account Equity)
- درصد مارجین (Margin Percentage)
- مارجین آزاد (Free Margin)
LicenseID,buy,EURUSD,risk=1,accfilter=500
فرض
گزینه Account Balance توی تنظیمات EA انتخاب شده
تفسیر:
اگه موجودی حسابت (Account Balance) ۵۰۰ دلار یا بیشتر باشه → سیگنال خرید اجرا میشه
اگه موجودی حسابت کمتر از ۵۰۰ دلار باشه → سیگنال خرید نادیده گرفته میشه
متفرقه
secret=
از این پارامتر استفاده کن تا سیگنالی که میفرستی با یه کلید امنیتی مخصوص، تأیید بشه.
فقط زمانی لازمه از secret=
استفاده کنی که توی تنظیمات PineConnector، گزینهی Signal Authentication روی “On” (فعال) باشه.
LicenseID,buy,EURUSD,risk=1,secret=SECRETKEY
کلید امنیتی دلخواه (Self-Defined Secret Key)
سیگنال فقط زمانی به ترمینال متاتریدرت ارسال میشه که کلید امنیتیای که توی پیام استفاده کردی، دقیقاً با کلیدی که توی پورتال PineConnector وارد کردی یکی باشه.

نمونههایی از ساختار ترکیبی Syntax
توی این بخش، میخوایم چندتا مثال از پیامهایی ببینیم که ساختارشون با PineConnector سازگاره و میتونن بدون مشکل اجرا بشن.
"Market Orders (buy/sell)"
سینتکس | توضیح |
---|---|
60123456789,buy,AUDUSD,risk=0.01 |
یه پوزیشن خرید روی جفتارز AUDUSD باز میکنه با حجم ۰.۰۱ لات (نوع حجم: lots). |
60123456789,sell,GBPJPY,sl=50,tp=150,risk=1 |
یه فروش روی GBPJPY باز میکنه با حجم ۱ لات، حد ضرر ۵۰ پیپ و حد سود ۱۵۰ پیپ از قیمت فعلی (نوع هدف: pips). |
60123456789,buy,EURUSD,risk=1,spread=3 |
یه خرید روی EURUSD انجام میده فقط اگه اسپرد ۳ یا کمتر باشه. حجم معامله ۱ لات هست. هیچ SL یا TP براش ست نشده. |
60123456789,closelong,GBPUSD |
تمام پوزیشنهای خرید باز روی GBPUSD رو میبنده. |
60123456789,newsltplong,EURUSD,sl=10,tp=30 |
حد ضرر معاملات خرید روی EURUSD رو روی ۱۰ پیپ و حد سود رو روی ۳۰ پیپ از قیمت فعلی تنظیم میکنه (نوع هدف: pips). |
Pips / ATR Trailing / Breakeven
سینتکس | توضیح |
---|---|
60123456789,buy,EURUSD,sl=1.20,risk=1,trailtrig=15,traildist=10,trailstep=12 |
یه خرید روی EURUSD باز میکنه. حجم معامله جوری محاسبه میشه که اگه SL بخوره، فقط ۱٪ از موجودی حسابتو از دست بدی (نوع حجم: درصدی از موجودی، حالت ضرر). SL اولیه روی قیمت ۱.۲۰ قرار داره (نوع هدف: price). وقتی قیمت ۱۵ پیپ در جهت مورد نظر حرکت کرد، Trailing SL فعال میشه. بعد از هر ۱۲ پیپ حرکت بیشتر، SL به اندازهی ۱۰ پیپ از قیمت فعلی فاصله میگیره و بهروز میشه. |
60123456789,buy,EURUSD,sl=10,atrtimeframe=60,atrperiod=14,atrmultiplier=2,atrtrigger=8,risk=1 |
یه خرید روی EURUSD در قیمت بازار باز میکنه با حجم ۵ لات (نوع حجم: lots). SL اولیه ۱۰ پیپ از قیمت فعلی فاصله داره (نوع هدف: pips). ATR Trailing وقتی فعال میشه که قیمت ۸ پیپ در جهت مثبت حرکت کنه. مقدار ATR از میانگین ۱۴ کندل یکساعتهی قبلی محاسبه میشه و در عدد ۲ ضرب میشه. |
60123456789,buy,EURCAD,sl=100,risk=5,betrigger=30,beoffset=5 |
یه خرید روی EURCAD باز میکنه با حجم ۵ لات (نوع حجم: lots). SL اولیه ۱۰۰ پیپ پایینتره (نوع هدف: pips). وقتی قیمت ۳۰ پیپ در جهت مثبت حرکت کرد، SL به نقطهی ورود + ۵ پیپ منتقل میشه (یعنی Breakeven با ۵ پیپ سود). |
Pending Orders
سینتکس | توضیح |
---|---|
60123456789,selllimit,EURUSD,price=1.2340,sl=10,risk=1 |
یه سفارش sell limit روی EURUSD میذاره. قیمت ورود روی ۱.۲۳۴۰ تنظیم شده (نوع قیمت: price). حجم معامله ۱ لات هست (نوع حجم: lots). SL هم ۱۰ پیپ پایینتر از قیمت ورود قرار میگیره (نوع هدف: pips). |
60123456789,cancellong,EURUSD |
هر چی سفارش باز long برای EURUSD داری (مثل buystop یا buylimit)، همشو کنسل میکنه. |
ما ۳ تا پوزیشن خرید (Buy) داریم که با هم جمعاً ۳.۵ لات میشن. ترتیب باز شدنشون هم به این شکله:
- پوزیشن A: خرید ۱ لات – اولین پوزیشنی بوده که باز شده.
- پوزیشن B: خرید ۲ لات – دومین پوزیشنی بوده که باز شده.
- پوزیشن C: خرید ۰.۵ لات – آخرین پوزیشنی بوده که باز شده.
سناریو A: بستن جزئی در چند پوزیشن
دستور: closelongvol با risk=2.8
نتیجه:
پوزیشن A کامل بسته میشود، از 1 لات به 0 لات.
پوزیشن B مقدار 1.8 لات بسته میشود و 0.2 لات باقی میماند.
پوزیشن C بدون تغییر باقی میماند با 0.5 لات.
سناریو B: بستن بیشتر از حجم کل پوزیشنها
دستور: closelongvol با risk=4
نتیجه:
پوزیشن A کامل بسته میشود، از 1 لات به 0 لات.
پوزیشن B کامل بسته میشود، از 2 لات به 0 لات.
پوزیشن C کامل بسته میشود، از 0.5 لات به 0 لات.
نکته: حجم کلیای که باید بسته بشه (۴ لات) بیشتر از حجم پوزیشنهای باز فعلی (۳.۵ لات) هست، بنابراین همهی پوزیشنها بسته میشن.
سناریو C: بستن حجمی کمتر از کوچکترین پوزیشن
دستور: closelongvol
با risk=0.4
نتیجه:
پوزیشن A به اندازه ۰.۴ لات بسته میشه و ۰.۶ لات باقی میمونه.
پوزیشن B بدون تغییر باقی میمونه (۲ لات).
پوزیشن C هم بدون تغییر باقی میمونه (۰.۵ لات).
سناریو D: بستن دقیقاً برابر با حجم کل پوزیشنها
دستور: closelongvol
با risk=3.5
نتیجه:
پوزیشن A بهطور کامل بسته میشه (از ۱ لات به ۰).
پوزیشن B بهطور کامل بسته میشه (از ۲ لات به ۰).
پوزیشن C هم بهطور کامل بسته میشه (از ۰.۵ لات به ۰).
نکته: چون حجم درخواستی برای بستن (۳.۵) دقیقاً برابر با حجم کل پوزیشنهای بازه، همه پوزیشنها بهصورت کامل بسته میشن.
Multi-Strategy
اجرای چند استراتژی روی یه لایسنس
از نسخه v2.143 برای متاتریدر 4 و v2.095 برای متاتریدر 5 به بعد، PineConnector این امکان رو بهت میده که با یه لایسنس، چند تا استراتژی مختلف رو روی یه نماد اجرا کنی.
چجوری؟ با استفاده از دستورهای جدیدی که موقع بستن یا کنسلکردن پوزیشنها، فقط اونایی رو هدف میگیرن که کامنت یکسان دارن.
دستورهای فعلاً پشتیبانیشده:
closelong
→ بستن پوزیشنهای خریدcloseshort
→ بستن پوزیشنهای فروشcancellong
→ کنسل کردن سفارشهای buystop و buylimitcancelshort
→ کنسل کردن سفارشهای sellstop و selllimit
نکته: دستورهایی مثل closelongpct
یا closelongvol
فعلاً پشتیبانی نمیشن، ولی توی آینده اضافه میشن.
با این قابلیت، میتونی همزمان چند تایمفریم یا چند استراتژی مختلف رو روی یه نماد مثل EURUSD اجرا کنی، بدون اینکه پوزیشنها تداخل پیدا کنن — فقط کافیه برای هر استراتژی یه کامنت متفاوت بذاری.
پیادهسازی
برای اجرای چند استراتژی، باید داخل سیگنالها از comment=
استفاده کنی.
ورودها
برای ورود به بازار میتونی از هرکدوم از این ۶ دستور استفاده کنی:
- buy
- sell
- buylimit
- selllimit
- buystop
- sellstop
فرض کنیم میخوای دو تا استراتژی اجرا کنی. برای سیگنالهای استراتژی ۱ از comment=strategy 1
استفاده کن، و برای استراتژی ۲ هم comment=strategy 2
رو بذار.
LicenseID,buy,EURUSD,risk=1,comment=strategy 1
LicenseID,buy,EURUSD,risk=1,comment=strategy 2
شناسهها
آزادی کامل داری که بهجای "Strategy 1" و "Strategy 2" هر شناسهای که دوست داری بذاری.
مثلاً میتونی اسم استراتژی یا تایمفریمی که باهاش ترید میکنی رو بنویسی مثل "SuperTrend Strategy"
یا "15 minutes"
.
نکته مهم – حساس به حروف بزرگ و کوچیکه
یعنی "Strategy 1"
با "strategy 1"
فرق داره. حواست باشه دقیقا همونی که توی ورود استفاده کردی، توی خروج هم بذاری.
بستن معاملات
اگه میخوای پوزیشنهای مربوط به یه استراتژی خاص رو ببندی، باید توی دستور بستن هم همون کامنت (comment) رو بنویسی که موقع ورود استفاده کردی.
فعلاً این دستورهای بستن پشتیبانی میشن:
closelong
(بستن پوزیشنهای خرید)closeshort
(بستن پوزیشنهای فروش)cancellong
(لغو اردرهای buystop و buylimit)cancelshort
(لغو اردرهای sellstop و selllimit)
مثال:
اگه قبلاً پوزیشن با کامنت strategy 1
باز کردی، برای بستن هم باید دقیقاً همونو استفاده کنی:
LicenseID,closelong,EURUSD,comment=strategy 1
با این دستور:
تمام پوزیشنهای خرید EURUSD که کامنتشون "strategy 1" باشه، بسته میشن.
پوزیشنهای فروش EURUSD با همین کامنت بسته نمیشن.
پوزیشنهای خرید EURUSD که یا کامنت ندارن یا کامنتشون چیز دیگهایه، بسته نمیشن.
برای اینکه پوزیشنهای استراتژی دوم رو ببندی، از این دستور استفاده کن:
LicenseID,closelong,EURUSD,comment=strategy 2
Close on Reverse
Close on Reverse (بستن معکوس) یعنی بهجای اینکه مستقیم از دستورهای closelong
یا closeshort
برای بستن پوزیشن استفاده کنی، میتونی بذاری خود EA این کار رو انجام بده، اونم فقط برای همون استراتژی خاص.
مثال:
فرض کن دو تا پوزیشن خرید EURUSD باز کردی با این دستورها:
LicenseID,buy,EURUSD,risk=1,comment=strategy 1
LicenseID,buy,EURUSD,risk=1,comment=strategy 2
حالا اگه این دستور رو بزنی:
LicenseID,sell,EURUSD,risk=1,comment=strategy 1
چی میشه؟
پوزیشن خریدی که کامنتش "strategy 1" هست، بسته میشه
و یه پوزیشن فروش جدید با همین کامنت باز میشه.
پوزیشن خریدی که کامنتش "strategy 2" هست، دستنخورده باقی میمونه.
نکته مهم
رفتار کلی — سیگنالهایی که کامنت ندارن
اگه بیای دستور closelong
رو بدون کامنت بفرستی، ربات میاد و همهی پوزیشنهای خرید EURUSD رو میبنده، چه اونایی که کامنت دارن، چه اونایی که کامنت ندارن.
مثلاً فرض کن سه تا پوزیشن باز داری:
- یه خرید EURUSD که اصلاً کامنت نداره
- یه خرید EURUSD با کامنت «strategy 1»
- یه خرید EURUSD با کامنت «strategy 2»
حالا اگه دستور closelong
برای EURUSD رو بدون هیچ کامنتی بفرستی، هر سهتاش با هم بسته میشن.