rutka1_50.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rutka1_50.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный советник написан на языке MQL4 для платформы MetaTrader 4. Он работает на основе скользящей средней LWMA(50), рассчитанной по ценам High и Low, и размещает стоп-ордера на покупку и продажу, когда текущая цена находится внутри канала средней линии. Советник отслеживает существующие позиции и ордера, модифицирует стоп-лоссы и тейк-профиты, а также реализует функцию трейлинг-стопа для защиты прибыли. Размер позиции рассчитывается динамически на основе свободного маржи и параметра максимального риска.
Настройки программы
| Настройка | Описание |
|---|---|
| TakeProfit | Тейк-профит — Уровень фиксации прибыли в пунктах для стоп-ордеров и открытых позиций |
| TrailingStop | Трейлинг-стоп — Расстояние в пунктах для сдвига стоп-лосса в сторону цены при движении позиции в прибыль |
| PipDifference | Разница в пипах — Отступ в пунктах от цены средней линии для размещения стоп-ордеров |
| Lots | Лоты — Базовый размер лота, используемый при расчёте объёма позиции |
| MaximumRisk | Максимальный риск — Множитель риска, определяющий долю свободного маржи, используемую для расчёта размера позиции |
Поиск по коду файла
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 MA50H = MathRound(iMA(NULL,0,50,0,MODE_LWMA,PRICE_HIGH,0)/Point)*Point;
double MA50L = MathRound(iMA(NULL,0,50,0,MODE_LWMA,PRICE_LOW,0)/Point)*Point;
double Spread = Ask-Bid; // MarketInfo(TradeSymbol,MODE_SPREAD);
double BuyPrice =MA50H + Spread+PipDifference*Point;
double BuyStopLoss =MA50L - Point;
double BuyTakeProfit =MA50H +(PipDifference+TakeProfit)*Point;
double SellPrice =MA50L -(PipDifference)*Point;
double SellStopLoss =MA50H + Spread+Point;
double SellTakeProfit=MA50L - 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% кода (символов: 2709)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.