psar.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «psar.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торгового советника для платформы MetaTrader 4, который использует индикатор Parabolic SAR для генерации сигналов на покупку и продажу. Советник сравнивает цену закрытия бара со значением SAR на текущем и предыдущем баре, определяя направление сделки.
Советник поддерживает два режима управления денежными средствами: расчёт лота на основе процента от баланса или фиксированный лот. Доступны параметры стоп-лосса и тейк-профита, а также тралинг-стоп на основе параболика с заданным отступом от точки SAR.
Реализован режим «Сейф», при котором при достижении первого стоп-лосса закрывается 50% позиции. Также имеется функция закрытия позиции по обратному сигналу SAR и стратегия усреднения с увеличением лота при достижении минимального шага убытка.
Советник обрабатывает события OnTick, OnTimer и OnChartEvent, использует торговые API MetaTrader для отправки ордеров и интегрирован с библиотекой sovetnikovNET для управления ордерами, а также с системой лицензирования EA Protect.
Настройки программы
| Настройка | Описание |
|---|---|
| InverseSignals | Инвертирует сигналы параболика SAR: при покупке становится продажа и наоборот. |
| MM_Mode | Режим управления денежными средствами: расчёт лота по процентному риску от баланса или использование фиксированного лота. |
| RiskSL | Процент риска от баланса, используемый для расчёта размера лота при стоп-лоссе в режиме процентного управления рисками. |
| FixLot | Фиксированный размер лота, используемый при ручном задании объёма позиции. |
| MaximumLot | Верхний предел размера лота, который советник может использовать. |
| MaxOrders | Максимальное количество одновременно открытых ордеров на символе. |
| TakeProfit | Уровень тейк-профита в пунктах для открытых ордеров. |
| StopLoss | Уровень стоп-лосса в пунктах для открытых ордеров. |
| Tral_SAR | Включает тралинг-стоп на основе текущего значения индикатора Parabolic SAR с заданным отступом. |
| Tral_Offset | Отступ от точки параболика SAR, используемый для расчёта уровня тралинг-стопа. |
| Safe | При активации при достижении первого стоп-лосса закрывается 50% открытой позиции. |
| CloseBySignal | При активации позиции автоматически закрываются противоположные ордера при получении обратного сигнала от параболика SAR. |
| CloseInProfitOnly | При закрытии по обратному сигналу противоположные ордера закрываются только если они находятся в профите. |
| SAR_Step | Начальный шаг ускорения индикатора Parabolic SAR. |
| SAR_Maximum | Максимальное значение параметра ускорения индикатора Parabolic SAR. |
| AverageStrategy | Включает стратегию усреднения по параболику: при достижении заданного минимального шага убытка лот увеличивается на множитель, а тейк-профит устанавливается для всех усреднённых ордеров. |
| StepMinimal | Минимальный шаг убытка в пунктах, при достижении которого срабатывает стратегия усреднения. |
| LotMultiplicator | Множитель лота, на который умножается текущий лот при усреднении позиции. |
| cmt | Текстовый комментарий, добавляемый к ордерам советника. |
| Magic | Магический номер для идентификации ордеров, открытых советником. Значение 0 позволяет подхватить ручные ордера. |
| tf | Рабочий таймфрейм, на котором советник анализирует данные и генерирует сигналы. |
Поиск по коду файла
#property version "1.11"
#property strict
const string VERSION="1.11"; //номер версии при обновлении меняем тоже, это на будущее когда будет доступна првоерка версий и обновления
/*
1.11
- добавил возможность если указать количество ордеров, то набирать ордер по направлению параболика на каждом баре.
1.10
- добавлена возможность указать направление торговли
*/
#define LICENSE_PANEL
#ifdef LICENSE_PANEL
const int ADMIN_ID=35;
const int PRODUCT_ID=67;//PSAR
#else
const int PRODUCT_ID=5570;//test ID берем из вкладки Дополнительно в товаре, либо EA Protect - > Продукты
#endif
#define POINTS_NEW
#include <sovetnikovNET\Orders.mqh>
#include <sovetnikovNET\Time.mqh>
#include <Indicators\Trend.mqh>
#include <EA_Protect/Protect.mqh>
SHOW_LICENSE_PARAMS
PROTECT_CREATE
enum mm_modes
{
MM_MODE_RISK_SL, //% at balance
MM_MODE_FIXLOT, //Fix Lot
};
TRADEMODE TradeMode=TRADEMODE_ALL; //Trade mode / Направление торговли
B InverseSignals=false; //Inverse signals / Инверсия сигналов
input mm_modes MM_Mode=MM_MODE_RISK_SL; //MM Mode / Режим ММ
D RiskSL=2; //% at balance / % от баланса
D FixLot=0.01; //Fix Lot / Фиксированный
D MaximumLot=100; //Maximum Lot / Максимальный лот
I MaxOrders=1; //Count open orders / Количество открытых ордеров
D TakeProfit=0; //Take Profit / Тейк профит
D StopLoss=200; //Stop Loss / Стоп лосс
B Tral_SAR=true; //Tral by SAR / Трал по параболику
D Tral_Offset=10; //Tral offset / Отступ от точки параболика
B Safe=true; //Safe (part close 50% at first SL) / Сейф, закрывает половину
B CloseBySignal=true; //Close by signal / Закрыть по обратному сигналу
B CloseInProfitOnly=false; //Close in profit only / Закрывать только если в профите
D SAR_Step=0.02; //Step / Шаг параболика
D SAR_Maximum=0.2; //Maximum / Максимум параболика
B AverageStrategy=false; //Strategy Avarage / Стратегия усреднения по параболику
D StepMinimal=200; //Minimal step / Минимальный шаг при усреднении по параболику
D LotMultiplicator=1.5; //Multiplicator lot / Множитель лота
S cmt=""; //Comment / Комментарий
I Magic=10000; // Magic / Меджик (0-подхватит ручные)
TF tf=PERIOD_CURRENT; //TF / Рабочий период
SIGNAL_BAR signal_bar=SIGNAL_BAR_OPEN; //Signal Bar / Сигнальный бар
/*
в начале кода подключаем и настраиваем на ID товара. ID берем из вкладки Дополнительно при создании товара, либо в EA Protect - Продукты
const int PRODUCT_ID=3265;//Index Scalper PRO MT4
const string VERSION="3.50"; //номер версии при обновлении меняем тоже, это на будущее когда будет доступна првоерка версий и обновления
#include <EA_Protect/Protect.mqh>
SHOW_LICENSE_PARAMS
PROTECT_CREATE
----
Данные макросы нужно встроить в указаные функции.
PROTECT_INIT - в функцию OnInit, инициализация
PROTECT_DEINIT в функцию OnDeinit, деинициализация
PROTECT_EVENT в функцию OnChartEvent, прием сообщений внутренних и резервный таймер
PROTECT_TIMER в функцию OnTimer, опрос по таймеру данных с сайта
статус защиты в любом месте можно получить через переменную PROTECT_STATUS
возвращает true - если все в порядке или false если проблемы. Статус при опросах пишет в журнал.
После компиляции компилируем дополнительно с помощью защиты от MQL5 Сервис - MQL5 Cloud Protector - это обязательно делать необходимо.
На сайт загружать все в архиве zip
желательно в архиве чтобы было все по папкам
MQL4 / MQL5
Experts
Indicators
*/
CGlobal m_global;
class CMyOrders: public COrders
{
public:
CiSAR m_sar;
virtual bool OnInitIndicators()
{
m_sar.Create(_Symbol,tf,SAR_Step,SAR_Maximum);
return true;
}
virtual bool OnDeinitIndicators()
{
return true;
}
int Signal(int iMaxOrders)
{
m_sar.Refresh();
if(iMaxOrders==1)
{
if(iClose(m_name,tf,0+signal_bar)>m_sar.Main(0+signal_bar) && iClose(m_name,tf,1+signal_bar)<m_sar.Main(1+signal_bar))
return OP_BUY;
if(iClose(m_name,tf,1+signal_bar)>m_sar.Main(1+signal_bar) && iClose(m_name,tf,0+signal_bar)<m_sar.Main(0+signal_bar))
return OP_SELL;
}
else{
if(iClose(m_name,tf,0+signal_bar)>m_sar.Main(0+signal_bar))
return OP_BUY;
if(iClose(m_name,tf,0+signal_bar)<m_sar.Main(0+signal_bar))
return OP_SELL;
}
return -1;
}
virtual bool CloseByReverseSignal(int iop)
{
if(iop==-1)
return false;
if(m_all==0)
return false;
double dprofit=0;
if(iop==OP_BUY)
{
if(CloseInProfitOnly)
{
dprofit=getProfit(OP_SELL,MODE_TRADES);
if(dprofit>0)
OrderCloseAll(OP_SELL);
}
else
return OrderCloseAll(OP_SELL);
}
if(iop==OP_SELL)
{
if(CloseInProfitOnly)
{
dprofit=getProfit(OP_BUY,MODE_TRADES);
if(dprofit>0)
OrderCloseAll(OP_BUY);
}
else
return OrderCloseAll(OP_BUY);
Показано первые 50% кода (символов: 6998)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.