smc manual ea with seperation.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smc manual ea with seperation.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для MetaTrader 4, предназначенный для автоматизации торговли на основе пользовательских трендовых линий, размещаемых на графике. Он создаёт набор линий, обозначающих уровни входа, стоп-лосса и тейк-профита для ордеров типа BuyStop, SellStop, BuyLimit и SellLimit, и управляет открытыми позициями: закрывает их при достижении заданных уровней, а также при необходимости корректирует стоп-лосс поTrailing Stop. Советник проверяет свободный маржинал, количество открытых и исторических ордеров, и открывает новые позиции в соответствии с текущей ценой относительно размещённых линий.
Настройки программы
| Настройка | Описание |
|---|---|
| Lots | Объём лота — Базовый размер лота для новых ордеров. |
| MaximumRisk | Максимальный риск — Доля свободного маржи, используемая для расчёта размера лота. |
| DecreaseFactor | Фактор уменьшения — Коэффициент, уменьшающий размер лота при наличии убыточных ордеров в истории. |
| Slippage | Допустимое проскальзывание — Максимально допустимое отклонение цены исполнения от запрошенной. |
| >0 enables trailing stop (UseTrailingStop) | Использовать трейлинг-стоп — Включает или выключает автоматическую корректировку стоп-лосса по мере движения цены в прибыльную сторону. |
| TrailingStop | Расстояние трейлинг-стопа — Расстояние в пунктах, на которое стоп-лосс отступает от текущей цены при активном трейлинг-стопе. |
| >0 LIMITS(restricts) trades to ONE PER DAY (OneTradePerDay) | Одна сделка в день — Ограничивает количество новых сделок до одной в день при включённом значении. |
Поиск по коду файла
extern double Lots =0.1;
extern double MaximumRisk =0.02;
extern double DecreaseFactor =3;
extern double Slippage =3;
extern int UseTrailingStop =1;//>0 enables trailing stop
extern double TrailingStop =20;
extern int OneTradePerDay =0;//>0 LIMITS(restricts) trades to ONE PER DAY
double LotsOptimized()
{
double lot=Lots;
int orders=HistoryTotal(); // history orders total
int losses=0; // number of losses orders without a break
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
if(DecreaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
if(OrderProfit()>0) break;
if(OrderProfit()<0) losses++;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
if(lot<0.1) lot=0.1;
return(lot);
}
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int cnt,total,ticket,MinDist,tmp;
double Spread;
if(Bars<100){
Print("bars less than 100");
return(0);
}
MinDist=MarketInfo(Symbol(),MODE_STOPLEVEL);
Spread=(Ask-Bid);
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 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);
if(Minute()==0){
Print(Symbol(),"BuyStop:",BuyStop," BuyStopSL:",BuyStopSL," BuyStopTP:",BuyStopTP,
" SellStop:",SellStop," SellStopSL:",SellStopSL," SellStopTP:",SellStopTP);}
total=OrdersTotal();
if(total>0)
{
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber()==16384 &&
OrderType()==OP_BUY &&
OrderSymbol()==Symbol())
{
if(Close[1] < BuyStopSL)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Violet); // close LONG Показано первые 50% кода (символов: 10030)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.