rutka.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rutka.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для платформы MetaTrader 4, написанный на языке MQL4. Осуществляет анализ ценовых данных с использованием скользящей средней и размещает торговые заявки на покупку и продажу в виде рыночных или отложенных ордеров. Советник отслеживает открытые позиции, модифицирует уровни стоп-лосса и тейк-профита, а также реализует трейлинг-стоп для защиты прибыли.
Включает систему управления рисками с возможностью расчёта размера лота на основе свободного маржи счёта или фиксированного значения лота. Использует магический номер для идентификации собственных ордеров и работает на текущем таймфрейме. Советник проверяет минимальное количество баров и корректность параметра тейк-профита перед началом торговой сессии.
Настройки программы
| Настройка | Описание |
|---|---|
| TakeProfit | Тейк-профит — Длина тейк-профита в пунктах, определяет уровень фиксации прибыли для открытых позиций и отложенных ордеров. |
| TrailingStop | Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах, задаёт отступ стоп-лосса от текущей цены при движении позиции в прибыльную сторону. |
| PipDifference | Разница в пипах — Размер смещения цены размещения ордера относительно расчётного уровня в пунктах, используется при формировании цен входа. |
| LotsIfNoMM | Лот без управления рисками — Фиксированный размер лота, применяемый при отключённой системе автоматического управления размером позиции. |
| MaximumRiskIfMM | Максимальный риск при управлении — Параметр максимального допустимого риска, используемый при расчёте размера лота в режиме автоматического управления маржой. |
Поиск по коду файла
extern int TakeProfit = 999;
extern int TrailingStop = 999;
extern int PipDifference = 25;
extern bool EnableMM? = false;
extern double LotsIfNoMM = 0.1;
extern double MaximumRiskIfMM = 10;
double LastLogTime,NoTouchBarLong,NoTouchBarShort;
int start(){
// код доступен только после оплаты
}
int cnt, ticket;
if(Bars<100){
Print("bars less than 100");
return(0);
}
if(TakeProfit<10){
Print("TakeProfit less than 10");
return(0);
}
string TradeSymbol = Symbol();
double MA144H = MathRound(iMA(NULL,0,144,0,MODE_EMA,PRICE_HIGH,1)/Point)*Point;
double MA144L = MathRound(iMA(NULL,0,144,0,MODE_EMA,PRICE_LOW,1)/Point)*Point;
double Spread = Ask-Bid; // MarketInfo(TradeSymbol,MODE_SPREAD);
double BuyPrice = MA144H + Spread+PipDifference*Point;
double BuyStopLoss = MA144L - Point;
double BuyTakeProfit = MA144H +(PipDifference+TakeProfit)*Point;
double SellPrice = MA144L -(PipDifference)*Point;
double SellStopLoss = MA144H + Spread+Point;
double SellTakeProfit= MA144L - Spread-(PipDifference+TakeProfit)*Point;
double lot;
double close=iClose(NULL,0,1);
int total=OrdersTotal();
if (EnableMM?) lot=NormalizeDouble(AccountFreeMargin()*MaximumRiskIfMM/50000,1);
else lot=LotsIfNoMM;
bool need_long = true;
bool need_short = true;
for(cnt=0;cnt<total;cnt++) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber() == 16384){
if(OrderType() == OP_BUYSTOP){
need_long = false;
NoTouchBarLong=iTime(NULL,0,0);
if (OrderStopLoss()!=BuyStopLoss){
Print(BuyStopLoss, " ",OrderStopLoss());
OrderModify(OrderTicket(),BuyPrice,BuyStopLoss,BuyTakeProfit,0,Green);
}
}
if(OrderType() == OP_SELLSTOP){
need_short = false;
NoTouchBarShort=iTime(NULL,0,0);
if (OrderStopLoss()!=SellStopLoss){
Print(SellStopLoss, " ",OrderStopLoss());
OrderModify(OrderTicket(),SellPrice,SellStopLoss,SellTakeProfit,0,Green);
}
}
if(OrderType()==OP_BUY){
if (IsTesting() && LastLogTime != iTime(NULL,PERIOD_H1,1))
{
LastLogTime=iTime(NULL,PERIOD_H1,1);
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit()+Point*1,0,Cyan);
}
needПоказано первые 50% кода (символов: 3559)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.