simple expert advisor.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «simple expert advisor.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Он автоматически открывает и закрывает рыночные ордера на основании анализа ценовых данных и технических показателей.
Советник использует скользящую среднюю (Moving Average) для формирования торговых сигналов. При пересечении цены закрытия с линией скользящей средней вверх открывается покупка, а при пересечении вниз — продажа. Перед открытием нового ордера противоположная позиция закрывается.
В советнике реализованы базовые средства управления рисками: фиксированный стоп-лосс и тейк-профит, задаваемые в пунктах от цены открытия, а также трейлинг-стоп, который перемещает защитный ордер при достижении определённой прибыли. Все ордера маркируются магическим числом для идентификации.
Настройки программы
| Настройка | Описание |
|---|---|
| MagicNumber | Магическое число, используемое для идентификации ордеров, открытых данным советником. |
| Slippage | Допустимое проскальзывание цены при выполнении торговых операций. |
| LotSize | Объём сделки в лотах, используемый при открытии рыночных ордеров. |
| StopLoss | Расстояние стоп-лосса в пунктах от цены открытия ордера. Если значение равно нулю, стоп-лосс не устанавливается. |
| TakeProfit | Расстояние тейк-профита в пунктах от цены открытия ордера. Если значение равно нулю, тейк-профит не устанавливается. |
| MaPeriod | Период скользящей средней, используемой для формирования торговых сигналов. |
| MaMethod | Метод расчёта скользящей средней (например, экспоненциальная, простая и др.). |
| MaPrice | Тип цены, используемой для расчёта скользящей средней (например, цена закрытия, цена открытия и др.). |
| TrailingStop | Расстояние трейлинг-стопа в пунктах от текущей цены. Если значение равно нулю, трейлинг-стоп не активируется. |
| MinimumProfit | Минимальная прибыль в пунктах, необходимая для активации трейлинг-стопа. |
| Step | Шаг корректировки трейлинг-стопа в пунктах. |
Поиск по коду файла
#property description "A simple expert advisor that places market orders"
#property strict
input int MagicNumber = 101;
input int Slippage = 10;
input double LotSize = 0.1;
input int StopLoss = 0;
input int TakeProfit = 0;
input int MaPeriod = 5;
input ENUM_MA_METHOD MaMethod = MODE_EMA;
input ENUM_APPLIED_PRICE MaPrice = PRICE_CLOSE;
input int TrailingStop = 500;
input int MinimumProfit = 200;
input int Step = 10;
int gBuyTicket, gSellTicket;
void OnTick()
{
// код доступен только после оплаты
}
int buyCount = 0, sellCount = 0;
for(int order = 0; order <= OrdersTotal() - 1; order++)
{
bool select = OrderSelect(order,SELECT_BY_POS);
if(OrderMagicNumber() == MagicNumber && select == true)
{
if(OrderType() == OP_BUY) buyCount++;
else if(OrderType() == OP_SELL) sellCount++;
}
}
double ma = iMA(_Symbol,_Period,MaPeriod,0,MaMethod,MaPrice,1);
double close = Close[1];
if(close > ma && buyCount == 0 && gBuyTicket == 0)
{
for(int order = 0; order <= OrdersTotal() - 1; order++)
{
bool select = OrderSelect(order,SELECT_BY_POS);
if(OrderType() == OP_SELL && OrderMagicNumber() == MagicNumber && select == true)
{
bool closed = OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrRed);
if(closed == true) order--;
}
}
gBuyTicket = OrderSend(_Symbol,OP_BUY,LotSize,Ask,Slippage,0,0,"Buy order",MagicNumber,0,clrGreen);
gSellTicket = 0;
if(gBuyTicket > 0 && (StopLoss > 0 || TakeProfit > 0))
{
bool select = OrderSelect(gBuyTicket,SELECT_BY_TICKET);
double stopLoss = 0, takeProfit = 0;
if(StopLoss > 0) stopLoss = OrderOpenPrice() - (StopLoss * _Point);
if(TakeProfit > 0) takeProfit = OrderOpenPrice() + (TakeProfit * _Point);
double stopLevel = MarketInfo(_Symbol,MODE_STOPLEVEL) * _Point;
RefreshRates();
double upperStopLevel = Ask + stopLevel;
double lowerStopLevel = Bid - stopLevel;
if(takeProfit <= upperStopLevel && takeProfit != 0) takeProfit = upperStopLevel + _Point;
if(stopLoss >= lowerStopLevel && stopLoss != 0) stopLoss = lowerStopLevel - _Point;
bool modify = OrderModify(gBuyTicket,0,stopLoss,takeProfit,0);
}
}
if(close < ma && sellCount == 0 && gSellTicket == 0)
{
for(int order = 0; order <= OrdersTotal() - 1; order++)
{
bool select = OrderSelect(order,SELECT_BY_POS);
if(OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber && select == true)
{
bool closed = OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrRed);
if(closed == true)
{
gBuyTicket = 0;
Показано первые 50% кода (символов: 3948)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.