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

SMC Autotrader Momentum

smc eur usd1.mq4

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

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

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

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

О программе

Советник работает в среде MetaTrader 4 и обрабатывает событие поступления нового бара. Для определения точек входа на покупку и продажу он использует комбинацию скользящих средних экспоненциального типа, индикатора RSI и индикатора MACD. Также рассчитываются вспомогательные значения ATR и простая скользящая средняя.

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

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

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

НастройкаОписание
TakeProfit Фиксация прибыли — Внешний параметр, задающий уровень фиксации прибыли в пунктах
Lots Объём лота — Внешний параметр, определяющий объём лота при открытии новой позиции
InitialStop Начальный стоп-лосс — Внешний параметр, задающий начальный уровень стоп-лосса в пунктах для открытых позиций
TrailingStop Трейлинг-стоп — Внешний параметр, задающий расстояние трейлинг-стопа в пунктах
Получить полный код

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

extern double TakeProfit = 30;
 extern double Lots = 1.0;
 extern double InitialStop = 40;
 extern double TrailingStop = 20;
 datetime BarTime;

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

int start()
  {
      // код доступен только после оплаты
   }
   int cnt,total,ticket,MinDist,tmp;
   double Spread;
   double ATR;
   double StopMA;
   double SetupHigh, SetupLow;

  if(Bars<100){
     Print("bars less than 100");
     return(0);  
  }

 if(BarTime == Time[0]) {return(0);}

 BarTime = Time[0];  

 ATR =iATR(NULL,0,10,0); // BE CAREFUL OF EFFECTING THE AUTO TRAIL STOPS
 StopMA=iMA(NULL,0,24,0,MODE_SMA,PRICE_CLOSE,0);
 MinDist=MarketInfo(Symbol(),MODE_STOPLEVEL);
 Spread=(Ask-Bid);

 double MA1P1,MA1P2,MA2P1,MA2P2;
 MA1P1= iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);
 MA1P2= iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,2);
 MA2P1= iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,1);
 MA2P2= iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,2);

 int MACDMA1,MACDMA2,MACDMA3;
 MACDMA1=12;
 MACDMA2=26;
 MACDMA3=9;
 double MACDP1,MACDP2,MACDSP1,MACDSP2;
 MACDP1  = iMACD(NULL,0,MACDMA1,MACDMA2,MACDMA3,PRICE_CLOSE,MODE_MAIN,1);
 MACDP2  = iMACD(NULL,0,MACDMA1,MACDMA2,MACDMA3,PRICE_CLOSE,MODE_MAIN,2);
 MACDSP1 = iMACD(NULL,0,MACDMA1,MACDMA2,MACDMA3,PRICE_CLOSE,MODE_SIGNAL,1);
 MACDSP2 = iMACD(NULL,0,MACDMA1,MACDMA2,MACDMA3,PRICE_CLOSE,MODE_SIGNAL,2);

 double RSIvalP1,RSIvalP2;
 RSIvalP1 = iRSI(NULL,0,12,PRICE_CLOSE,1);
 RSIvalP2 = iRSI(NULL,0,12,PRICE_CLOSE,2);

  total=OrdersTotal();
  if(total>0)
   { 
   for(cnt=0;cnt<total;cnt++)
   {
    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
    if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
     {
     if(Ask < Bid)
      {                                 
       OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close LONG position
     }}

    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); 
    if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) // check for symbol
     {
     if(Ask > Bid)
      {   
       OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close SHORT position
     }}
    }  // for loop return
    }   // close 1st if 

if(0==0)
 {
  total=OrdersTotal();
  if(total>0)
   { 
   for(cnt=0;cnt<total;cnt++)
    {
     OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
     if(OrderType()==OP_BUY && OrderSymbol()==Symbol()
     &&
     Bid-OrderOpenPrice()> (Point*TrailingStop)
     &&

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

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

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

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

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

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

Стоимость полного кода
363,90₽ ≈ $4.45