rutka1.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rutka1.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Rutka1 — торговый советник для MetaTrader 4, написанный на языке MQL4. Программа анализирует ценовые данные с помощью скользящей средней EMA с периодом 144, определяя ключевые уровни поддержки и сопротивления на основе максимумов и минимумов.
Советник размещает отложенные ордера BuyStop и SellStop на расчётных ценах, формируемых на основе уровней EMA, спреда и настраиваемого параметра PipDifference. Стоп-лосс и тейк-профит для каждого ордера рассчитываются автоматически.
Программа также отслеживает и управляет уже открытыми позициями: корректирует уровни стоп-лосса и тейк-профита, а при активном TrailingStop реализуетTrailingStop для существующих сделок.
Объём лота рассчитывается на основе свободного маркета счёта и параметра MaximumRisk. Перед открытием ордеров советник проверяет наличие достаточного количества баров и достаточный свободный маржинальный баланс.
Настройки программы
| Настройка | Описание |
|---|---|
| TakeProfit | Тейк-профит — Расстояние в пунктах до уровня тейк-профита для отложенных ордеров. Минимальное допустимое значение — 10. Значение по умолчанию: 850. |
| TrailingStop | Трейлинг-стоп — Расстояние в пунктах для активации трейлинг-стопа на существующих позициях. Если значение равно 0, трейлинг-стоп не применяется. Значение по умолчанию: 850. |
| PipDifference | Разница в пунктах — Разница в пунктах, используемая при расчёте цен входа, стоп-лосса и тейк-профита для отложенных ордеров. Значение по умолчанию: 25. |
| Lots | Размер лота — Размер лота для открытия позиций. Значение по умолчанию: 0.1. |
| MaximumRisk | Максимальный риск — Параметр риска, используемый для расчёта размера лота на основе свободного маркета счёта. Значение по умолчанию: 10. |
Поиск по коду файла
extern int TakeProfit = 850;
extern int TrailingStop = 850;
extern int PipDifference = 25;
extern double Lots = 0.1;
extern double MaximumRisk = 10;
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,0)/Point)*Point;
double MA144L = MathRound(iMA(NULL,0,144,0,MODE_EMA,PRICE_LOW,0)/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=NormalizeDouble(AccountFreeMargin()*MaximumRisk/50000,1);
double close=iClose(NULL,0,0);
int total=OrdersTotal();
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;
if (OrderStopLoss()!=BuyStopLoss){
Print(BuyStopLoss, " ",OrderStopLoss());
OrderModify(OrderTicket(),BuyPrice,BuyStopLoss,BuyTakeProfit,0,Green);
}
}
if(OrderType() == OP_SELLSTOP){
need_short = false;
if (OrderStopLoss()!=SellStopLoss){
Print(SellStopLoss, " ",OrderStopLoss());
OrderModify(OrderTicket(),SellPrice,SellStopLoss,SellTakeProfit,0,Green);
}
Показано первые 50% кода (символов: 2719)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.