Scalp2
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «scalp2.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Scalp2 — торговый советник для MetaTrader 4, использующий сигналы пользовательского индикатора для открытия и закрытия рыночных позиций. Советник фильтрует вход по спреду, размещает ордера Buy/Sell с фиксированными параметрами StopLoss и TakeProfit, а также поддерживает трейлинг-стоп.
Управление лотом реализовано с возможностью увеличения размера позиции в зависимости от результата предыдущих сделок с заданным множителем и ограничением максимального лота. Все ордера маркируются магическим номером для идентификации и управления.
Закрытие позиций может выполняться автоматически при развороте сигнала индикатора. Советник работает на каждом тике, обрабатывая рыночные события и торговые операции через стандартные средства MetaTrader 4.
Настройки программы
| Настройка | Описание |
|---|---|
| MaxSpread | Максимально допустимый спред в пунктах для открытия позиций. |
| Lots | Начальный размер лота для открытия позиции. |
| KLot | Множитель, на который увеличивается лот после убыточной сделки. |
| MaxLot | Максимально допустимый размер лота. При превышении лот сбрасывается до начального значения. |
| StopLoss | Стоп-лосс для открытой позиции, задаётся в пунктах. |
| TakeProfit | Тейк-профит для открытой позиции, задаётся в пунктах. |
| TrailingStop | Расстояние трейлинг-стопа от текущей цены в пунктах. При значении 0 трейлинг отключён. |
| TrailingStep | Шаг трейлинг-стопа, определяющий расстояние до текущей цены в пунктах. |
| TrailingStart | Минимальная прибыль в пунктах, при достижении которой активируется трейлинг-стоп. |
| Slip | Допустимое отклонение цены при исполнении ордера в пунктах. |
| Shift | Сдвиг бара индикатора, определяющий, с какого бара считывать сигнал. |
| CloseSig | Прибыль, при достижении которой позиция закрывается в пунктах. |
| Magic | Магический номер, используемый для идентификации ордеров, управляемых данным советником. |
| IndName | Имя пользовательского индикатора, сигналы которого используются для открытия и закрытия позиций. |
| PeriodSetting | Параметр периода, передаваемый пользовательскому индикатору при расчёте сигналов. |
Поиск по коду файла
#property version "1.00"
#property strict
input int MaxSpread = 10; // Max Spread
extern double Lots = 0.1; // лот
extern double KLot = 1; // умножение лота
extern double MaxLot = 5; // максимальный лот
extern int StopLoss = 2000; // лось
extern int TakeProfit = 3000; // язь
extern int TrailingStop = 250; // трал
extern int TrailingStep = 20; // шаг трала
extern int TrailingStart = 300; // старт трала
extern int Slip = 30; // реквот
extern int Shift = 2; // бар индикатора
extern int CloseSig = 1; // 1-закрытие по сигналу
extern int Magic = 123; // магик
extern string IndName = "Ts scalp 8";
extern int PeriodSetting = 3;
double _spread;
bool newtrade;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
Comment("");
}
void PutOrder(int type,double price)
{
int r=0;
color clr=Green;
double sl=0,tp=0;
if(type==1 || type==3 || type==5)
{
clr=Red;
if(StopLoss>0)
sl=NormalizeDouble(price+StopLoss*_Point,_Digits);
if(TakeProfit>0)
tp=NormalizeDouble(price-TakeProfit*_Point,_Digits);
}
if(type==0 || type==2 || type==4)
{
clr=Blue;
if(StopLoss>0)
sl=NormalizeDouble(price-StopLoss*_Point,_Digits);
if(TakeProfit>0)
tp=NormalizeDouble(price+TakeProfit*_Point,_Digits);
}
r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,_Digits),Slip,sl,tp,"",Magic,0,clr);
return;
}
int CountTrades()
{
int count=0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()<2)
count++;
}
}
}
return(count);
}
double Lot()
{
double lot=Lots;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderProfit()>0)
break;
if(OrderProfit()<0)
{
lot=OrderLots()*KLot;
break;
}
}
}
}
if(lot>MaxLot)
lot=Lots;
return(lot);
}
void Trailing()
{
bool mod;
double sl=0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRAПоказано первые 50% кода (символов: 3341)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.