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

JPYretz20

jpyretz20.mq4 .mq4

Похожие материалы по тегам

2 to 1 strategy with signals.pineTradingView · 2 общих теговmulti_lot_scalper_a.mq4MQL4 / MetaTrader 4 · 2 общих теговfresh algo signals & overlays v25_6334471093901859175.pineTradingView · 2 общих теговfresh algo v24 tradingview indicator_5918156155804195406.pineTradingView · 2 общих теговlinear regression channel.mq4MQL4 / MetaTrader 4 · 2 общих теговtrading criteria.mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

JPYretz20 — торговый советник для платформы MetaTrader 4, ориентированный на работу с валютными парами японской иены. Советник анализирует ценовые данные с помощью набора технических индикаторов и формирует сигналы для открытия и закрытия позиций.

В основе работы лежит автоматическое управление торговыми операциями: открытие позиций Buy/Sell, закрытие убыточных и прибыльных сделок, а также модификация ордеров с использованием трейлинг-стопа. Перед открытием новой позиции проверяется свободный маржинал и количество текущих открытых ордеров.

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

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

НастройкаОписание
lots Объём лота — Объём лота для открытия позиции.
trail stop in points (trailingStop) Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах. При значении 0 трейлинг-стоп не используется.
recomended no more than 20 (takeProfit) Тейк-профит — Уровень тейк-профита в пунктах. Рекомендуется не более 20.
do not use s/l if you feel it is ok (stopLoss) Стоп-лосс — Уровень стоп-лосса в пунктах. При значении 0 стоп-лосс не устанавливается.
Use 3 -5 slippage, if more then forget it as the spread will kill them (slippage) Проскальзывание — Допустимое проскальзывание в пунктах. Рекомендуется значение 3–5; при большем проскальзывании сделки могут быть невыгодными из-за спреда.
To "easy read" which EA place anspecific order (nameEA) Имя советника — Имя советника для удобства идентификации открытых ордеров.
Magic EA identifier. Allows forseveral co-existing EA with different input values (magicEA) Магический идентификатор EA — Магический идентификатор советника. Позволяет нескольким советникам с разными настройками сосуществовать на одном аккаунте.
timeframe M5 is recommended (tframe) Таймфрейм — Таймфрейм для анализа, на котором работает советник. Рекомендуется M5.
Получить полный код

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

#include <stdlib.mqh>

extern double lots         = 0.1;           //
extern double trailingStop = 15;             // trail stop in points
extern double takeProfit   = 20;            // recomended  no more than 20
extern double stopLoss     = 200;             // do not use s/l if you feel it is ok
extern double slippage     = 3;             // Use 3 -5 slippage, if more then forget it as the spread will kill them
extern string nameEA       = "JPYretz20";  // To "easy read" which EA place anspecific order
extern int magicEA         = 192192;         // Magic EA identifier. Allows forseveral co-existing EA with different input values
extern int tframe          = 5 ;            // timeframe M5 is recommended

double macdHistCurrent, macdHistPrevious, macdSignalCurrent, macdSignalPrevious;
double stochHistCurrent, stochHistPrevious, stochSignalCurrent,stochSignalPrevious;
double sarCurrent, sarPrevious, momCurrent, momPrevious,Btime;
double realTP, realSL;
bool isBuying = false, isSelling = false, isClosing = false;
int cnt, ticket;

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

int deinit() {
    return(0);
}

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

    if(Bars < 100) {
       Print("Not enough bars for this strategy - ", nameEA);
       return(0);
    }
    calculateIndicators();                      // Calculate indicators' value

    int totalOrders = OrdersTotal();
    int numPos = 0;

Comment("   Account  :   ",AccountNumber(),"---",AccountName(),
"\n","Bar open time:", TimeToStr(iTime(NULL,5,0),TIME_SECONDS)," Last Tick Time:",TimeToStr(CurTime(),TIME_SECONDS),
"\n"," Differences in time ",CurTime()-iTime(NULL,5,0),"sec. Open only after5Min bar is >= 180 sec ( 3min)",
"\n","PSar diff 0.1 to execute-- PsarNow=",sarCurrent," PSarPrecious=",sarPrevious," Sar DIff=",(sarCurrent-sarPrevious));

    for(cnt=0; cnt<totalOrders; cnt++) {        // scan all orders and positions...
       OrderSelect(cnt, SELECT_BY_POS);         // the next line will check for ONLY market trades, not entry orders
       if(OrderSymbol() == Symbol() && OrderType() <= OP_SELL &&
OrderMagicNumber() == magicEA) {   // only look for this symbol, and only ordersfrom this EA
          numPos++;
          if(OrderType() == OP_BUY) {           // Check for close signal for bought trade
             if(isSelling || isClosing) {
                OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Violet);   //Close bought trade
                prtAlert("JPYretz20: Closing BUY order");
             }
             if(trailingStop > 0) {             // Check trailing stop
                if(Bid-OrderOpenPrice() > trailingStop*Point) {
                   if(OrderStopLoss() < (Bid - trailingStop*Point)) {

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-trailingStop*Point,OrderTakeProfit(),0,Blue);
                      prtAlert("JPYretz20: Modifying BUY order");
                   }
                }
             }
          } else {                              // Check sold trade for close signal
             if(isBuying || isClosing) {
                OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Violet);
                prtAlert("JPYretz20: Closing SELL order");
             }
             if(trailingStop > 0) {             // Control trailing stop
                if(OrderOpenPrice() - Ask > trailingStop*Point) {
                   if(OrderStopLoss() == 0 || OrderStopLoss() > Ask +
trailingStop*Point)

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

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

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

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

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

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

Стоимость полного кода
494₽ ≈ $6.04