PipeBomb
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «pipebomb_ea (2).mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
PipeBomb — торговый советник для платформы MetaTrader 4, разработанный автором Bluto. Советник автоматизирует процесс торговли, генерируя сигналы на основе пересечения линий пользовательского индикатора StepMA и открывая сделки в соответствии с этими сигналами.
Советник поддерживает фиксированный и процентный риск через параметр управления денежными средствами: при активном режиме размер позиции рассчитывается на основе текущего баланса счёта и заданного процента риска. Также доступны стоп-лосс и тейк-профит для контроля рисков.
Советник отслеживает открытые позиции на счёте, обновляет стоп-лоссы при благоприятном движении цены и закрывает позиции противоположного направления при смене торгового сигнала. Все операции выполняются через стандартные торговые API MetaTrader 4.
Настройки программы
| Настройка | Описание |
|---|---|
| LotSize | Размер лота — Размер лота для открытия позиции при отключённом управлении денежными средствами. |
| Slippage | Слиппаж — Допустимое отклонение цены при исполнении рыночных ордеров. |
| StopLoss | Стоп-лосс — Уровень стоп-лосса в пунктах для ограничения убытков по позиции. |
| TakeProfit | Тейк-профит — Уровень тейк-профита в пунктах для фиксации прибыли по позиции. |
| RiskPercent | Процент риска — Процент от баланса счёта, используемый для расчёта размера позиции при активном управлении денежными средствами. |
| UseMoneyMgmt | Использовать управление денежными средствами — Переключатель, определяющий, используется ли автоматический расчёт размера позиции на основе процентного риска или фиксированный размер лота. |
Поиск по коду файла
extern double LotSize=5;
extern int Slippage=3;
extern double StopLoss=20;
extern double TakeProfit=600;
extern double RiskPercent=2.0;
extern bool UseMoneyMgmt=true;
int MagicNumber=0;
int ticket;
int BuyOrders=0;
int SellOrders=0;
int i;
bool Buy_A_Bomb=false, Sell_A_Bomb=false;
double StepMA_Up_1=0;
double StepMA_Up_2=0;
double StepMA_Dn_1=0;
double StepMA_Dn_2=0;
double MM_MinLotSize=0;
double MM_MaxLotSize=0;
double MM_LotStep=0;
double MM_Decimals=0;
double MM_OrderLotSize=0;
int MM_AcctLeverage=0;
int MM_CurrencyLotSize=0;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
MM_AcctLeverage = AccountLeverage();
MM_MinLotSize = MarketInfo(Symbol(),MODE_MINLOT);
MM_MaxLotSize = MarketInfo(Symbol(),MODE_MAXLOT);
MM_LotStep = MarketInfo(Symbol(),MODE_LOTSTEP);
MM_CurrencyLotSize = MarketInfo(Symbol(),MODE_LOTSIZE);
if(MM_LotStep == 0.01) {MM_Decimals = 2;}
if(MM_LotStep == 0.1) {MM_Decimals = 1;}
if (UseMoneyMgmt == true)
{
MM_OrderLotSize = AccountEquity() * (RiskPercent * 0.01) / (MM_CurrencyLotSize / MM_AcctLeverage);
MM_OrderLotSize = StrToDouble(DoubleToStr(MM_OrderLotSize,MM_Decimals));
}
else
{
MM_OrderLotSize = LotSize;
}
if (MM_OrderLotSize < MM_MinLotSize) {MM_OrderLotSize = MM_MinLotSize;}
if (MM_OrderLotSize > MM_MaxLotSize) {MM_OrderLotSize = MM_MaxLotSize;}
double StepMA_Up_1 = iCustom(NULL,Period(),"N_StepMA_1_Email",7,1,0,500,false,0,1);
double StepMA_Up_2 = iCustom(NULL,Period(),"N_StepMA_1_Email",7,1,0,500,false,0,2);
double StepMA_Dn_1 = iCustom(NULL,Period(),"N_StepMA_1_Email",7,1,0,500,false,1,1);
double StepMA_Dn_2 = iCustom(NULL,Period(),"N_StepMA_1_Email",7,1,0,500,false,1,2);
if(StepMA_Up_1 < StepMA_Dn_1 && StepMA_Up_2 > StepMA_Dn_2) {Sell_A_Bomb=true;Buy_A_Bomb=false;}
if(StepMA_Up_1 > StepMA_Dn_1 && StepMA_Up_2 < StepMA_Dn_2) {Sell_A_Bomb=false;Buy_A_Bomb=true;}
BuyOrders=0;
SellOrders=0;
for(i=OrdersTotal();i >= 0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
if (OrderType() == OP_BUY && StopLoss > 0)
{
BuyOrders++;
if (StopLoss > 0 && Bid - (StopLoss * Point) > OrderStopLoss())
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid - (StopLoss * Point),Digits),OrderTakeProfit(),0);
}
}
if (OrderType() == OP_SELL)
{
SellOrders++;
if (StopLoss > 0 && Ask + (StopLoss * Point) < OrderStopLoss())
{
OrderModify(OrderTicket(),OПоказано первые 50% кода (символов: 6155)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.