Martingale Bone Crusher
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «martingale bone crusher xiii.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для MetaTrader 4, реализующий стратегию мартингейла на основе пересечения двух скользящих средних. Определяет направление сделки по соотношению MA с разными периодами и открывает позиции BUY или SELL. При убыточных сделках применяется увеличение объёма по мультипликатору. Включает трейлинг-стоп, стоп-лосс и тейк-профит в пунктах, а также фильтр по часовому диапазону торговли.
Настройки программы
| Настройка | Описание |
|---|---|
| Choose between two strategies (Strategy) | Стратегия — Выбор между двумя вариантами мартингейла |
| Multiply for Martingale (Multiply) | Множитель — Коэффициент увеличения лота при мартингейле |
| Lot size (Lotsize) | Размер лота — Начальный размер лота для сделки |
| TrailingStop pips distance (TrailingStop) | Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах |
| Stop Loss pips distance (Stop_Loss) | Стоп-лосс — Расстояние стоп-лосса в пунктах |
| Take Profit pips distance (Take_Profit) | Тейк-профит — Расстояние тейк-профита в пунктах |
| Moving Average Period (MA_PERIOD) | Период MA — Период первой скользящей средней |
| Moving Average Period (MA_PERIOD1) | Период MA1 — Период второй скользящей средней |
| Magic Number (MagicNumber) | Магический номер — Идентификатор ордеров советника |
| Timeset | Настройка времени — Текстовый параметр временного периода |
| Start hour (Start) | Начало — Начальный час торговой сессии |
| End hour (End) | Конец — Конечный час торговой сессии |
| Maximum allowed loss (Maximum_loss) | Максимальный убыток — Допустимое количество убыточных сделок подряд |
| Wait time for loss in minutes (WaitTime) | Время ожидания — Время ожидания после убытка в минутах |
Поиск по коду файла
#property version "1.06"
#property strict
enum optoin{Martingale1,Martingale2};
input optoin Strategy=Martingale2; // Choose between two strategies
extern double Multiply=2.0; // Multiply for Martingale
extern double Lotsize=0.01; // Lot size
extern double TrailingStop=30; // TrailingStop pips distance
extern int Stop_Loss=100; // Stop Loss pips distance
extern int Take_Profit=50; // Take Profit pips distance
extern int MA_PERIOD=1; // Moving Average Period
extern int MA_PERIOD1=50; // Moving Average Period
extern int MagicNumber=562148; // Magic Number
extern string Timeset="Timeset";
extern int Start=0; // Start hour
extern int End=24; // End hour
extern int Maximum_loss=3; // Maximum allowed loss
extern int WaitTime=180; // Wait time for loss in minutes
int count_0=0;
datetime TimeSent;
double pips;
int cnt,freeze_level;
double priceopen,stoploss,takeprofit;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
}
void OnTick()
{
// код доступен только после оплаты
}
int Open_Order(int tip,double llots)//martingale
{
int ticket=-1;
if(openorderthispair(Symbol())==0)
{
if(tip==0)
{
while(ticket==-1)
{
if(((AccountStopoutMode()==1) &&
(AccountFreeMarginCheck(Symbol(),OP_BUY,LotsOptimized1Mx(llots))>AccountStopoutLevel()))
|| ((AccountStopoutMode()==0) &&
((AccountEquity()/(AccountEquity()-AccountFreeMarginCheck(Symbol(),OP_BUY,LotsOptimized1Mx(llots)))*100)>AccountStopoutLevel())))
if(AccountFreeMarginCheck(Symbol(),OP_BUY,LotsOptimized1Mx(llots)))
if(CheckMoneyForTrade(Symbol(),LotsOptimized1Mx(llots*Multiply),OP_BUY))
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY order opened : ",OrderOpenPrice());
Alert("we just got a buy signal on the ",_Period,"M",_Symbol);
SendNotification("we just got a buy signal on the1 "+(string)_Period+"M"+_Symbol);
SendMail("Order sent successfully","we just got a buy signal on the1 "+(string)_Period+"M"+_Symbol);
}
if(AccountFreeMargin()<(10000*llots))//check for money ?
{
Print("We have no money. Free Margin = ",AccountFreeMargin());
break;
}
ticket=OrderSend(Symbol(),OP_BUY,LotsOptimizedMx(llots*Multiply),ND(Ask),3,NDTP(Bid-Stop_Loss*pips),NDTP(Bid+Take_Profit*pips),"Long 1",MagicNumber,0,PaleGreen);
if(ticket>-1) break;
}
}
if(tip==1)
{
ticket=-1;
while(ticket==-1)
{
if(((AccountStopoutMode()==1) &&
(AccountFreeMarginCheck(Symbol(),OP_SELL,LotsOptimized1Mx(llots))>AccountStopoutLevel()))
|| ((AccountStopoutMode()==0) &&
((AccountEquity()/(AccountEquity()-AccountFreeMarginCheck(Symbol(),OP_SELL,LotsOptimized1Mx(llots)))*100)>AccountStopoutLevel())))
if(AccountFreeMarginCheck(Symbol(),OP_SELL,LotsOptimized1Mx(llots)))
if(CheckMoneyForTrade(Symbol(),LotsOptimized1Mx(llots),OP_SELL))
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ",OrderOpenPrice());
Alert("we just got a sell signal on the ",_Period,"M",_Symbol);
SendMail("Order sent successfully","we just got a sell signal on the "+(string)_Period+"M"+_Symbol);
}
if(AccountFreeMargin()<(10000*llots))//check for money ?
{
Print("We have no money. Free Margin = ",AccountFreeMargin());
break;
}
ticket=OrderSend(Symbol(),OP_SELL,LotsOptimizedMx(llots*Multiply),ND(Bid),3,NDTP(Ask+Stop_Loss*pips),NDTP(Ask-Take_Profit*pips),"Short 1",MagicNumber,0,Red);
if(ticket>-1) break;
}
}
}
return(0);
}
int Open_Order1(int tip,double llots)
{
int ticket=-1;
if(OrdersTotal()==0)
{
if(tip==0)
{
while(ticket==-1)
{
if(((AccountStopoutMode()==1) &&
(AccountFreeMarginCheck(Symbol(),OP_BUY,llots)>AccountStopoutLevel()))
|| ((AccountStopoutMode()==0) &&
((AccountEquity()/(AccountEquity()-AccountFreeMarginCheck(Symbol(),OP_BUY,llots))*100)>AccountStopoutLevel())))
if(CheckMoneyForTrade(Symbol(),LotsOptimized1x(),OP_BUY))
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY order opened : ",OrderOpenPrice());
Alert("we just got a buy signal on the ",_Period,"M",_Symbol);
SendNotification("we just got a buy signal on the1 "+(string)_Period+"M"+_Symbol);
SendMail("Order sent successfully","we just got a buy signal on the1 "+(string)_Period+"M"+_Symbol);
}
Показано первые 50% кода (символов: 16213)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.