ThreeBreaky
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «threebreaky_v1.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
ThreeBreaky — торговый советник для MetaTrader 4, объединяющий три независимые торговые системы в одном эксперте. Каждая система использует собственные рыночные метрики для определения моментов открытия и закрытия позиций.
Советник обрабатывает событие OnTick, проверяя условия всех трёх систем и управляя ордерами через стандартные торговые функции MetaTrader 4. Позиции открываются с заданным объёмом лотов и стоп-лоссом. Для закрытия позиций применяется анализ данных индикатора SAR.
Три системы различаются по используемым подходам: первая основана на сравнении текущей волатильности со средним значением диапазона, вторая — на индикаторе Ишимоку, третья — на сравнении размеров текущих и предыдущих свечных тел. Идентификация ордеров каждой системы осуществляется через уникальные магические числа.
Настройки программы
| Настройка | Описание |
|---|---|
| Use system 1 (System1) | System1 — Переключатель активности первой торговой системы |
| Use system 2 (System2) | System2 — Переключатель активности второй торговой системы |
| Use system 3 (System3) | System3 — Переключатель активности третьей торговой системы |
| Magic Number (system will use Magic+1, Magic+2, Magic+3) (MagicNumber) | MagicNumber — Магическое число для идентификации ордеров (система использует MagicNumber+1, MagicNumber+2, MagicNumber+3) |
| Order Lots (Lots) | Lots — Объём лотов для ордеров |
| Stop loss pips (StopLoss) | StopLoss — Стоп-лосс в пипсах |
| Take profit pips (order will be always closed with indicator) (TakeProfit) | TakeProfit — Тейк-профит в пипсах |
Поиск по коду файла
#property version "1.00"
#property strict
extern bool System1 = true; // Use system 1
extern bool System2 = true; // Use system 2
extern bool System3 = true; // Use system 3
extern int MagicNumber = 900; // Magic Number (system will use Magic+1, Magic+2, Magic+3)
extern double Lots = 1; // Order Lots
extern int StopLoss = 20; // Stop loss pips
extern int TakeProfit = 0; // Take profit pips (order will be always closed with indicator)
double p, lots, atrSL;
datetime buyTag1, sellTag1, buyTag2, sellTag2, buyTag3, sellTag3, timeTag;
double atrDaily[73], atrDMedia, atr1, atrD,
spanA, spanB,
size1, maxSize,
sar1, sar2;
int OnInit()
{
// код доступен только после оплаты
}
void OnTick()
{
// код доступен только после оплаты
}
if (timeTag < Time[0])
{
HideTestIndicators(true);
for ( int i=1 ; i<= 72; i++ ) atrDaily[i] = iHigh(Symbol(),PERIOD_CURRENT,i) - iLow(Symbol(),PERIOD_CURRENT,i);
atrDMedia = iMAOnArray(atrDaily,0,72,0,MODE_SMA,1);
atr1 = iATR(Symbol(),PERIOD_CURRENT,1,1);
atrD = iATR(Symbol(),PERIOD_D1,14,1);
spanA = iIchimoku(Symbol(),PERIOD_CURRENT,9,26,52,MODE_SENKOUSPANA,1);
spanB = iIchimoku(Symbol(),PERIOD_CURRENT,9,26,52,MODE_SENKOUSPANB,1);
size1 = MathAbs(Close[1] - Open[1]);
maxSize = 0;
for ( int i=2; i<= 21; i++)
{
double size = MathAbs(Open[i] - Close[i]);
if( size > maxSize ) maxSize = size;
}
sar1 = iSAR(Symbol(),PERIOD_CURRENT,0.005,0.2,1);
sar2 = iSAR(Symbol(),PERIOD_CURRENT,0.005,0.2,2);
timeTag = TimeCurrent();
}
if( OrdersTotal() > 0 ) close1();
if( OrdersTotal() > 0 ) close2();
if( OrdersTotal() > 0 ) close3();
if( System1 )
{
if( Close[1] > Open[1] && atr1 > atrDMedia*4 && !orderOpen(MagicNumber+1) && buyTag1 < Time[0] )
{
int ticket1;
ticket1 = OrderSend(Symbol(),OP_BUY,Lots,Ask,0,SL(OP_BUY),0,"ThreeBreaky 1",MagicNumber+1,0,Blue);
if (ticket1 > -1) buyTag1 = TimeCurrent();
}
if( Close[1] < Open[1] && atr1 > atrDMedia*4 && !orderOpen(MagicNumber+1) && sellTag1 < Time[0] )
{
int ticket1;
ticket1 = OrderSend(Symbol(),OP_SELL,Lots,Bid,0,SL(OP_SELL),0,"ThreeBreaky 1",MagicNumber+1,0,Red);
if (ticket1 > -1) sellTag1 = TimeCurrent();
}
}
if( System2 )
{
if( Close[2] < spanA && Close[2] < spanB && Close[1] > spanA && Close[1] > spanB && !orderOpen(MagicNumber+2) && buyTag2 < Time[0] )
{
int ticket2;
ticket2 = OrderSend(Symbol(),OP_BUY,Lots,Ask,0,SL(OP_BUY),0,"ThreeBreaky 2",MagicNumber+2,0,Blue);
if (ticket2 > -1) buyTag2 = TimeCurrent();
}
if( Close[2] > spanA && Close[2] > spanB && Close[1] < spanA && Close[1] < spanB && !orderOpen(MagicNumber+2) && sellTag2 < Time[0] )
{
Показано первые 50% кода (символов: 4639)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.