Trendline Trader
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «trendline.trader.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Trendline Trader — торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник строит трендовые линии на графике для визуализации уровней стоп-ордеров и лимитных ордеров, а также управляет их размещением и модификацией через торговый API MetaTrader. Продукт позволяет отображать линии для ордеров типа BuyStop, SellStop, BuyLimit и SellLimit с настраиваемыми параметрами риска и размера лота.
Настройки программы
| Настройка | Описание |
|---|---|
| true allows orders to be placed (AllowLiveTrade) | Разрешение реальной торговли — Переключатель, определяющий, разрешён ли советнику размещение реальных ордеров на счёте; при значении false ордера не отправляются. |
| %account balance to risk per position (MaximumRisk) | Максимальный риск — Процент от свободного баланса счёта, который советник использует для расчёта размера лота при открытии позиции. |
| lot size divisor(reducer) during loss streak (DecreaseFactor) | Фактор уменьшения лота — Делитель, уменьшающий рассчитанный размер лота при серии убыточных сделок; чем выше значение, тем сильнее снижение лота. |
Поиск по коду файла
extern bool AllowLiveTrade =false;//true allows orders to be placed
extern bool Plot.Stop.Order.TrendLines =false;//true allows stop order trendlines to be plotted
extern bool Plot.Limit.Order.TrendLines =false;//true allows limit order trendlines to be plotted
extern bool Use.Money.Mgt =false;//if false, uses Minimum.Lot
extern double Minimum.Lot =1.00; //Smallest lot size to trade, Use.MM true or false
extern double MaximumRisk =0.02; //%account balance to risk per position
extern double DecreaseFactor =2; //lot size divisor(reducer) during loss streak
extern double Lot.Margin =50; //Margin required to trade 1 lot
string TradeSymbol;
int total,cnt;
double bs,bssl,bstp,ss,sssl,sstp,bl,blsl,bltp,sl,slsl,sltp,Slippage;
int init() {
// код доступен только после оплаты
}//end init
int deinit() { Print("Deinitialising"); return(0); }
int start() {
// код доступен только после оплаты
}
TradeSymbol=Symbol();Slippage=Ask-Bid;
if(Plot.Stop.Order.TrendLines) {
double BuyStop =ObjectGetValueByShift("BuyStop",0);
double BuyStopSL =ObjectGetValueByShift("BuyStopSL",0);
double BuyStopTP =ObjectGetValueByShift("BuyStopTP",0);
double SellStop =ObjectGetValueByShift("SellStop",0);
double SellStopSL =ObjectGetValueByShift("SellStopSL",0);
double SellStopTP =ObjectGetValueByShift("SellStopTP",0);
double bs; bs =NormalizeDouble(BuyStop,Digits);
double bssl; bssl =NormalizeDouble(BuyStopSL,Digits);
double bstp; bstp =NormalizeDouble(BuyStopTP,Digits);
double ss; ss =NormalizeDouble(SellStop,Digits);
double sssl; sssl =NormalizeDouble(SellStopSL,Digits);
double sstp; sstp =NormalizeDouble(SellStopTP,Digits);
}//end if
if(Plot.Limit.Order.TrendLines) {
double BuyLimit =ObjectGetValueByShift("BuyLimit",0);
double BuyLimitSL =ObjectGetValueByShift("BuyLimitSL",0);
double BuyLimitTP =ObjectGetValueByShift("BuyLimitTP",0);
double SellLimit =ObjectGetValueByShift("SellLimit",0);
double SellLimitSL=ObjectGetValueByShift("SellLimitSL",0);
double SellLimitTP=ObjectGetValueByShift("SellLimitTP",0);
double bl; bl =NormalizeDouble(BuyLimit,Digits);
double blsl; blsl =NormalizeDouble(BuyLimitSL,Digits);
double bltp; bltp =NormalizeDouble(BuyLimitTP,Digits);
double sl; sl =NormalizeDouble(SellLimit,Digits);
double slsl; slsl =NormalizeDouble(SellLimitSL,Digits);
double sltp; sltp =NormalizeDouble(SellLimitTP,Digits);
}//end if
PrintComments();
total=OrdersTotal();
if(TotalTradesThisSymbol(TradeSymbol)==0) { int BS=0,SS=0,BL=0,SL=0; }
if(TotalTradesThisSymbol(TradeSymbol)>0) {
for(cnt=0;cnt<total;cnt++) {
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==TradeSymbol) {
if(OrderMagicNumber()==11) { BS=OrderTicket(); }
if(OrderMagicNumber()==22) { SS=OrderTicket(); }
if(OrderMagicNumber()==33) { BL=OrderTicket(); }
if(OrderMagicNumber()==44) { SL=OrderTicket(); }}}}
int ticket=0;
if(AllowLiveTrade) {
if(PloПоказано первые 50% кода (символов: 10033)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.