sn simple average.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «sn simple average.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Продукт представляет собой торговый советник (Expert Advisor) для MetaTrader 4, написанный на языке MQL4. Он обеспечивает управление ордерами через интерактивные кнопки на графике и реализует стратегию усреднения позиций с автоматическим увеличением лота при удалении цены в сторону убытка.
Советник позволяет открывать позиции BUY и SELL с фиксированным лотом или с расчётом размера по проценту от баланса. Доступна настройка тейк-профита как в пунктах, так и в процентах от баланса счёта. При достижении заданной прибыли все открытые позиции закрываются автоматически.
Визуальный интерфейс включает кнопки BUY, SELL и CLOSE ALL, а также горизонтальные линии уровней тейк-профита на графике. Текущая прибыль в процентах от баланса отображается через комментарий. Продукт использует библиотеку sovetnikovNET для управления ордерами и включает систему защиты лицензии.
Настройки программы
| Настройка | Описание |
|---|---|
| Dry (Dry) | Dry — Логический переключатель режима (Dry). |
| Risk % (inp_risk) | Risk % — Процент риска от баланса для расчёта размера лота при открытии позиций. |
| Start Lot (inp_fix_lot) | Start Lot — Начальный фиксированный размер лота для открытия позиций. |
| Lot Multiplicator (inp_LotMultiplicator) | Lot Multiplicator — Множитель лота для открытия следующего ордера при усреднении. |
| TakeProfit in point (inp_takeprofit) | TakeProfit in point — Уровень тейк-профита в пунктах для закрытия позиций. |
| Take Profit in % (inp_profit) | Take Profit in % — Процент прибыли от баланса, при достижении которого все позиции закрываются. |
| Step next order (inp_step) | Step next order — Расстояние в пунктах, при котором открывается следующий ордер с увеличенным лотом. |
| Magic (inp_Magic) | Magic — Магический номер для идентификации ордеров советника. |
Поиск по коду файла
#property version "1.00"
#property strict
#define POINTS_NEW
#include <sovetnikovNET\Orders.mqh>
#include <sovetnikovNET\Time.mqh>
#include <Controls\Button.mqh>
const int PRODUCT_ID=9938;//AUTO-DRAFT
const string VERSION="1.00";
#include <EA_Protect/Protect.mqh>
SHOW_LICENSE_PARAMS
PROTECT_CREATE
int slippage=0;
B Dry=false; //Dry
D inp_risk=0; //Risk %
D inp_fix_lot=0.01; //Start Lot
D inp_LotMultiplicator=2; //Lot Multiplicator
I inp_takeprofit=100; //TakeProfit in point
D inp_profit=5; //Take Profit in %
D inp_step=200; //Step next order
I inp_Magic=0; //Magic
class CMyOrders: public COrders
{
public:
};
class CMain: public CMainDefault
{
protected:
CMyOrders m_main;
CTime m_time;
CButton m_buy,m_sell,m_closeall;
CGlobal g_global;
public:
virtual int OnInit()
{
// код доступен только после оплаты
}
virtual void OnDeinit(const int reason)
{
m_main.OnDeinit();
m_buy.Destroy();
m_sell.Destroy();
m_closeall.Destroy();
g_global.OnDeinit();
}
virtual void OnTick()
{
// код доступен только после оплаты
}
bool bwork=m_main.IsWork();
m_main.OnTick();
CreateInterface();
TESTER_EVENT_CLICK(m_buy,OnOpen(OP_BUY));
TESTER_EVENT_CLICK(m_sell,OnOpen(OP_SELL));
TESTER_EVENT_CLICK(m_closeall,OnCloseAll());
if(inp_profit>0 && AccountBalance()>0)
{
double dprofit=m_main.getProfit(ALL);
double dproc=NormalizeDouble(dprofit*100/AccountBalance(),3);
if(dproc>=inp_profit && bwork)
{
m_main.OrderCloseAll();
}
Comment(StringFormat("Profit (%%): %.3f",dproc));
}
else
{
if(inp_profit>0)
Comment("Balance is 0");
}
int idirect=0;
double davg=m_main.get_Average(OP_BUY,idirect);
if(idirect>0)
{
m_main.m_drawvirtual.DrawHLine(0,"buytp",0,iTime(_Symbol,0,1),davg+inp_takeprofit*m_main.p,1,STYLE_SOLID,clrBlue,false,false,"BUY TP",false);
if(Bid>=davg+inp_takeprofit*m_main.p && bwork)
m_main.OrderCloseAll(BUY|BUYLIMIT|BUYSTOP);
}
if(m_main.orders[OP_BUY]==0)
m_main.m_drawvirtual.Delete(0,"buytp");
davg=m_main.get_Average(OP_SELL,idirect);
if(idirect<0)
{
m_main.m_drawvirtual.DrawHLine(0,"selltp",0,iTime(_Symbol,0,1),davg-inp_takeprofit*m_main.p,1,STYLE_SOLID,clrBlue,false,false,"SELL TP",false);
if(Ask<=davg-inp_takeprofit*m_main.p && bwork)
m_main.OrderCloseAll(SELL|SELLLIMIT|SELLSTOP);
}
if(m_main.orders[OP_SELL]==0)
m_main.m_drawvirtual.Delete(0,"selltp");
if(!bwork || !PROTECT_STATUS)
return;
ulong t;
t=m_main.getLastOrderTicket(OP_BUY,ORDER_DN);
if(m_main.OrderSelect(t))
{
double dpt=m_main.OrderStep();
if(dpt<=-inp_step)
{
double dnextlot=NLot(m_main.OrderLots(Показано первые 50% кода (символов: 4421)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.