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

silvertrendtrader(xyz).mq4

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

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

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

НастройкаОписание
MAPeriod Период скользящей средней — Задаёт период для расчёта скользящей средней, используемой для определения направления тренда.
TrailingStop Трейлинг-стоп — Расстояние в пунктах для фиксации трейлинг-стопа на открытых позициях. При нулевом значении трейлинг-стоп не применяется.
TakeProfit Тейк-профит — Уровень фиксации прибыли в пунктах для новых сделок. При нулевом значении ордер открывается без тейк-профита.
InitialStopLoss Начальный стоп-лосс — Начальный стоп-лосс в пунктах для новых сделок. При нулевом значении стоп-лосс не устанавливается при открытии позиции.
FridayNightHour Час пятичного запрета — Час начала блокировки открытия новых сделок в пятницу. Если значение больше нуля и текущий час пятницы превышает его, новые ордера не размещаются.
Получить полный код

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

#include <stdlib.mqh>

#property stacksize   1024

extern int    MAPeriod=60;

extern double TrailingStop = 0;
extern double TakeProfit = 0;
extern double InitialStopLoss=0;

extern double FridayNightHour=16;

double Lots = 1;
int    risk=3;
double MaxTradesPerType=2;
datetime bartime = 0;
int BarHour=0;
double Slippage=0;
double DeMarkerPeriod=13;

int start()
   {
      // код доступен только после оплаты
   }
   int cnt, ticket, err, result, total;
   int has_a_short_trade=0, has_a_long_trade=0;
   int MagicNumber;
   double ts, tp, Min_OrderPrice;
   double MA, MAPrevious;
   int BuySellSignal=0;

   string setup;

   static double lastslope= 0.0;
   static int didbreakalert= false;

	MagicNumber = 40000; 

   setup="SILVERTREND";

   double BuyST=iCustom(NULL, 0, "SilverTrend", 0, 0);
   double SellST=iCustom(NULL, 0, "SilverTrend", 0, 0);

   MA=iMA(NULL, 0, 60, 0, MODE_EMA, PRICE_MEDIAN, 0);
   MAPrevious=iMA(NULL, 0, 60, 0, MODE_EMA, PRICE_MEDIAN, 1);

   if (bartime == Time[0]) {
      return(0);
   } else {
      bartime = Time[0]; // a new bar, so record its open time.   
   }

   if(IsTesting() && Bars<100) return(0);  

   total = OrdersTotal();

   for(cnt=OrdersTotal();cnt>=0;cnt--)
   {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

      if(OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber) {
         if(SellST>0) {	
            OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
         } else if(TrailingStop>0) {
            if(Bid-OrderOpenPrice()>Point*TrailingStop) {
               ts = Bid-Point*TrailingStop;
            } 

				if((OrderStopLoss()<ts) || (OrderStopLoss()==0)) {
			      result=OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White);
					err = GetLastError();

					if (err>1) {
                  Print("Error modifying BUY order [" + setup + "]: (" + err + ") " + ErrorDescription(err) + " " + setup); 
					}
				} 
			}
      } else if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber) {
   		if (BuyST>0) {
            OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
         } else if(TrailingStop>0) {                 
            if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) {
               ts=Ask+Point*TrailingStop;
            }

	         if((ts!=0) && ((OrderStopLoss()>ts) || (OrderStopLoss()==0))) {
     	     		result=OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White);
     	     		err = GetLastError();

					if (err>1) {
                  Print("Error modifying Sell order [" + setup + "]: (" + err + ") " + ErrorDescription(err) + " " + se

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

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

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

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

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

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

Стоимость полного кода
371,20₽ ≈ $4.54