← К каталогу
Исходный код · ID 3413

test-kk1 v11 son.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный продукт представляет собой советник (Expert Advisor) для платформы MetaTrader 4, написанный на языке MQL4. Основное назначение — автоматизация управления торговыми позициями на графике с отображением информации о счёте.

При каждом обновлении котировок советник проверяет открытые ордера, привязанные к текущему символу и магическому номеру. Если цена достигла уровня фиксированного Take Profit (в пипсах), соответствующий ордер закрывается по рыночной цене. Для продажных ордеров также предусмотрена возможность закрытия при достижении уровня прибыли в долларах.

Советник отображает на графике информацию: количество и объём открытых покупочных и продажных ордеров, совокупный доход/убыток, баланс и уровень маржи. В коде присутствуют функции открытия ордеров через торговый API OrderSend, однако они предназначены только для ручного тестирования.

Настройки продукта включают размер лота, спред, стоп-лосс, тейк-профит, параметры мартингейла, лимиты на количество ордеров и типы разрешённых сделок. Все параметры задаются через extern-переменные в начале файла.

Настройки программы

НастройкаОписание
EnableBuyLimit Включить Buy Limit — Включает или отключает использование Buy Limit ордеров
EnableBuyStop Включить Buy Stop — Включает или отключает использование Buy Stop ордеров
EnableSellLimit Включить Sell Limit — Включает или отключает использование Sell Limit ордеров
EnableSellStop Включить Sell Stop — Включает или отключает использование Sell Stop ордеров
LimitOrderOffset Смещение лимитного ордера — Смещение лимитного ордера в пипсах от текущей цены
StopOrderOffset Смещение стоп-ордера — Смещение стоп-ордера в пипсах от текущей цены
LotSize Размер лота — Фиксированный размер лота для сделок
UseMartingale Использовать Мартингейл — Включает или отключает стратегию увеличения лота Мартингейл
MartingaleFactor Множитель Мартингейл — Множитель увеличения лота при использовании стратегии Мартингейл
MartingaleMaxLot Максимальный лот Мартингейл — Максимально допустимый размер лота при использовании Мартингейл
Pips Интервал в пипсах — Интервал в пипсах для основной логики обработки ордеров
MartingalePips Интервал Мартингейл в пипсах — Интервал в пипсах для увеличения лота по стратегии Мартингейл
MaxBuyOrders Максимум покупочных ордеров — Максимальное количество одновременно открытых покупочных ордеров
MaxSellOrders Максимум продажных ордеров — Максимальное количество одновременно открытых продажных ордеров
TakeProfitPips Тейк-профит в пипсах — Уровень тейк-профита в пипсах от цены открытия
TakeProfitUSD Тейк-профит в долларах — Уровень тейк-профита в долларах (при значении 0 используется пипсовый режим)
StopLossPips Стоп-лосс в пипсах — Уровень стоп-лосса в пипсах от цены открытия (0 — без стоп-лосса)
MagicNumber Магический номер — Уникальный идентификатор ордеров для фильтрации
Slippage Допустимое отклонение — Допустимое отклонение цены при исполнении ордеров (в пипсах)
MaxSpreadPips Максимальный спред — Максимально допустимый спред в пипсах для выполнения сделок
EnableBuy Включить покупки — Включает или отключает выполнение покупочных сделок
EnableSell Включить продажи — Включает или отключает выполнение продажных сделок
UsePercentClose Использовать процентное закрытие — Включает или отключает закрытие позиций по процентной модели прибыли
PercentCloseProfit Процент закрытия по прибыли — Процент прибыли для закрытия позиции по процентной модели
Получить полный код

Поиск по коду файла

#property version     "1.0"
#property description "Basic Buy/Sell Robot"
#property indicator_chart_window

extern bool   EnableBuyLimit    = false;     // Buy Limit Emirlerini Aktif Et
extern bool   EnableBuyStop     = false;     // Buy Stop Emirlerini Aktif Et
extern bool   EnableSellLimit   = false;     // Sell Limit Emirlerini Aktif Et
extern bool   EnableSellStop    = false;     // Sell Stop Emirlerini Aktif Et
extern int    LimitOrderOffset  = 20;        // Limit Order Offset (Pips)
extern int    StopOrderOffset   = 20;        // Stop Order Offset (Pips)
extern double   LotSize         = 0.01;      // Fixed Lot Size?
extern bool   UseMartingale     = false;     // Martingale Kullan
extern double MartingaleFactor  = 2.0;       // Martingale Lot Multiplier
extern double MartingaleMaxLot  = 0.5;       // Martingale Maximum Lot Size?
extern int    Pips              = 30;        // Pips Interval
extern int    MartingalePips    = 30;        // Martingale Pips Interval
extern int    MaxBuyOrders      = 5;         // Maximum Open Buy Trade Count
extern int    MaxSellOrders     = 5;         // Maximum Open Sell Trade Count
extern int      TakeProfitPips  = 20;        // Take Profit (Pips)
extern double   TakeProfitUSD   = 0.0;       // Take Profit (USD) - If 0, Pips is used
extern int      StopLossPips    = 0;         // Stop Loss (Pips) - If 0, SL is not used
extern int      MagicNumber     = 12345;     // Magic Number
extern int      Slippage        = 3;         // Kayma (Slippage)
extern int    MaxSpreadPips     = 3;         // İzin Verilen Maksimum Spread (Pips)
extern bool   EnableBuy         = true;      // Enable Buy Trades
extern bool   EnableSell        = true;      // Enable Sell Trades
extern bool   UsePercentClose   = false;     // Y?zde Kapama Kullan
extern double PercentCloseProfit = 5.0;       // Y?zde Kar Al (% cinsinden)

int      totalBuyOrders   = 0;
double   totalBuyLots     = 0.0;
int      totalSellOrders  = 0;
double   totalSellLots    = 0.0;
double   totalRunningProfit = 0.0;

int init() {
      // код доступен только после оплаты
   }

int deinit() {

    return(0);
}

int start() {
      // код доступен только после оплаты
   }

void CheckAndCloseOrders() {
    int totalOrders = OrdersTotal();
    for(int i = totalOrders - 1; i >= 0; i--) {
        if(OrderSelect(i, SELECT_BY_POS) && OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol()) {
            bool closed; // The 'closed' variable is defined ONCE here

            if(OrderType() == OP_BUY) {
                if(TakeProfitPips > 0 && Bid >= OrderOpenPrice() + TakeProfitPips * Point) {
                    closed = OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Green);
                    if(!closed) {
                        Print("Error: Buy trade could not be closed. Error Code: ", GetLastError());
                    }
                    return;
                }
            } 

Показано первые 50% кода (символов: 3921)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
392,10₽ ≈ $4.79