SMC Autotrader Momentum
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smc ma 3bar.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для MetaTrader 4, работающий на таймфрейме текущего графика. Использует скользящие средние (SMMA по медианной цене) и индикатор средне-истинного диапазона для анализа ценовых данных. Советник определяет сигналы на вход в длинную или короткую позицию на основе анализа трёхбарных ценовых паттернов и взаимного расположения цены с Moving Average. Реализует механизмы фиксации прибыли и трейлинг-стопа через модификацию существующих ордеров, а также проверку свободного маржи перед открытием новой позиции.
Настройки программы
| Настройка | Описание |
|---|---|
| TakeProfit | TakeProfit — Уровень фиксации прибыли в пунктах для открытых позиций |
| LockProfit | LockProfit — Параметр для перевода стоп-лосса в безубыток после достижения указанного выигрыша |
| Lots | Lots — Объём сделки в лотах для каждого нового ордера |
| InitialStop | InitialStop — Начальный стоп-лосс в пунктах от цены входа |
| TrailingStop | TrailingStop — Расстояние трейлинг-стопа в пунктах от текущей цены для защиты прибыли |
Поиск по коду файла
extern double TakeProfit = 50;
extern double LockProfit = 3;
extern double Lots = 0.1;
extern double InitialStop = 30;
extern double TrailingStop = 10;
datetime BarTime;
double BUYat;
double SELLat;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int cnt,total,ticket,MinDist,tmp;
double Spread;
if(Bars<100){
Print("bars less than 100");
return(0);
}
if(BarTime == Time[0]) {return(0);}
BarTime = Time[0];
MinDist=MarketInfo(Symbol(),MODE_STOPLEVEL);
Spread=(Ask-Bid);
double ATR = iATR(NULL,0,10,1);
double MAP1 = iMA(NULL,0,8,5,MODE_SMMA,PRICE_MEDIAN,1);
double MAP2 = iMA(NULL,0,8,5,MODE_SMMA,PRICE_MEDIAN,2);
bool BUY = false;
bool SELL = false;
if (Close[0] > High[1] &&
Low[1] < MAP1 && High[1] > MAP1 &&
Close[2] > Open[2] &&
Close[3] > Open[3]
) BUY = true;
if (Close[0] < Low[1] &&
High[1] > MAP1 && Low[1] < MAP1 &&
Close[2] < Open[2] &&
Close[3] < Open[3]
) SELL = true;
if(0==0) //This is used to turn the trailing stop on & off
{
total=OrdersTotal();
if(total>0)
{
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol()
&&
OrderStopLoss() == 0
&&
Bid > OrderOpenPrice()+ ((MinDist+2+ATR)*Point)
)
{OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(MinDist+ATR*Point),OrderTakeProfit(),0,White);
return(0);}
}}
total=OrdersTotal();
if(total>0)
{
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL && OrderSymbol()==Symbol()
&&
OrderStopLoss() == 0
&&
Ask < OrderOpenPrice()- ((MinDist+2+ATR)*Point)
)
{OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(MinDist+ATR*Point),OrderTakeProfit(),0,Yellow);
return(0);}
}}
} // end switch bracket
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(0==1)
{
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(0==1)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // Показано первые 50% кода (символов: 3766)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.