Unlocker
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «unlocker manual.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Unlocker — торговый советник для MetaTrader 4, предназначенный для управления позициями локирования и усреднения убыточных сеток. При достижении заданного количества ордеров на покупку или продажу активируется режим локирования, в котором открываются дополнительные ордера с настраиваемыми параметрами тейк-профита, безубытка и размера лота.
Советник отслеживает состояние позиций на символе в реальном времени через обработчик OnTick и отображает ключевые показатели аккаунта (эквити, баланс, прибыль, просадку, объёмы) в виде комментария на графике. Доступны настройки множителей лота и шага для усреднения, а также параметры «копилки» — откладывания части прибыли на баланс.
В советнике реализована функция самоликвидации локирующих ордеров и система защиты лицензии. Локирование может быть настроено отдельно для направлений покупки и продажи с индивидуальными параметрами активации.
Настройки программы
| Настройка | Описание |
|---|---|
| CountBuy | Задаёт количество ордеров на покупку, при достижении которого активируется режим локирования. |
| CountSell | Задаёт количество ордеров на продажу, при достижении которого активируется режим локирования. |
| LockNext | Расстояние в пунктах для открытия следующего ордера при локировании. |
| LockBU | Уровень безубытка (в пунктах) для открытых локирующих ордеров. |
| LockTP | Уровень тейк-профита (в пунктах) для локирующих ордеров. |
| LockMultiplicator | Множитель, определяющий размер лота для локирующих ордеров. |
| MinimalLot | Минимальный размер лота, при котором ордера могут быть закрыты. |
| KopilkaProcent | Процент прибыли, который откладывается в «копилку» (балансный профит). |
| TPinProcent | Процент прибыли на балансе, при достижении которого все ордера закрываются. |
| AverageStep | Шаг для усреднения убыточной сетки ордеров. |
| StepMultiplicator | Множитель, определяющий увеличение шага при усреднении. |
| LotMultiplicator | Множитель, определяющий увеличение лота при усреднении. |
| SelfDestruct | При активации локирующие ордера автоматически ликвидируются. |
| LockMagic | Магический идентификатор для ордеров локирования; резервируется также Magic+1. |
Поиск по коду файла
#property version "1.12"
#property strict
const int ADMIN_ID=1;
const int PRODUCT_ID=3;//Unlocker MT4 8-mt5 3-mt4
const string VERSION="1.12";
#include <sovetnikovNET\Orders.mqh>
#include <sovetnikovNET\Time.mqh>
#include <sovetnikovNET\Unlocker.mqh>
#include <sovetnikovNET\News.mqh>
#include <sovetnikovNET\Protect.mqh>
I CountBuy=3; //Count orders buy for activate / Кол-во бай ордеров для активации
I CountSell=3; //Count orders sell for activate / Кол-во селл ордеров для активации
D LockNext=10.0; //Next lock distance / Дистанция для открытия следующего ордера
D LockBU=0.0; //Lock BU / Безубыток для лок
D LockTP=30.0; //Lock TP / Тейк профит для лок
D LockMultiplicator=0.5; //Lock lot multiplicator / Множитель лота для лок
D MinimalLot=0.02; //Minimal lot for close / Минимальный объем для закрытия
D KopilkaProcent=90; //Profit % for moneybox / Процент профита в копилку
D TPinProcent=0.1; //All profit % at balance / Закрытие в профит всех ордеров
D AverageStep=0.0; //Average next order / Усреднение убыточной сетки
D StepMultiplicator=1.3; //Average step multiplicator / Множитель шага при усреднении
D LotMultiplicator=1.1; //Average lot multiplicator / Множитель лота при усреднении
B SelfDestruct=true; //Self-Destruct lock / Самоликвидация лока
I LockMagic=100; //Lock magic and rezerved: Magic+1 / Идентификатор ордеров лок
#ifdef LICENSE_OFF
HIDE_LICENSE_PARAMS;
#else
SHOW_LICENSE_PARAMS;
#endif
int slippage=0;
CGlobal m_global;
protect_config config;
CProtect protect;
class CMain: public CMainDefault
{
protected:
CLock m_main;
string sExpertName;
bool bLockBuy,bLockSell;
bool bcheck;
public:
virtual int OnInit()
{
// код доступен только после оплаты
}
virtual void OnDeinit(const int reason)
{
m_main.OnDeinit();
}
virtual void OnTick()
{
// код доступен только после оплаты
}
bcheck=protect.GetStatus();
if(!m_main.IsWork(_Symbol))
return; //отключена торговля
if(!bcheck)
return;
m_main.OnTick();
double dlots[];
m_main.get_lots(dlots);
double dKopilkaBuy=m_global.LoadParam("KopilkaBUY_Profit",0);
double dKopilkaSell=m_global.LoadParam("KopilkaSELL_Profit",0);
double dDD=ND2(m_main.getProfit(ALL)*100/AccountBalance());
string sInfo=StringFormat("Equity: %.2f\nBalance: %.2f\nProfit(Buy/Sell): %.2f/%.2f\nDD: %.2f%%\nLot(Buy/Sell): %.2f/%.2f",AccountEquity(),AccountBalance(),dKopilkaBuy,dKopilkaSell,dDD,dlots[0],dlots[1]);
Comment(sInfo);
bLockSell=m_main.Count(OP_BUY,LockMagic)+m_main.Count(OP_SELL,LockMagic+1)>0;
bLockBuy=m_main.Count(OP_SELL,LockMagic)+m_main.Count(OP_BUY,LockMagic+1)>0;
if(m_main.Count(OP_SELL,-1)<CountSell && !bLockSell && !bLockBuy && m_main.IsTester)
{
bLockSell=false;
ulong t=m_main.getLastOrderTicket(OP_SELL,ORDER_UP);
if(t<=0)
{
ulong tt=m_main.OrderSend(OP_SELL,0.1,-1,0,LockTP,"Test-1");
if(tt>0)
t=tt;
}
if(m_main.OrderSelect(t))
{
double dlot=m_main.OrderLots();
double dpt=m_main.OrderStep();
double dnextStep=ND1(MathPow(1.1,m_main.Count(OP_SELL,-1)-1)*20.0);
if(dpt<=-dnextStep && dnextStep>0)
Показано первые 50% кода (символов: 5278)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.