ai gen xii mt4.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ai gen xii mt4.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник реализует торговую стратегию на основе анализа трёх баров на старшем и младшем таймфреймах. Сигналы формируются при пробое максимума или минимума последних баров с подтверждением на младшем таймфрейме. Советник работает в заданном временном окне по GMT и управляет позициями через стандартные торговые API MetaTrader 4. Поддерживаются фиксированные уровни стоп-лосса и тейк-профита, трейлинг-стоп и перевод в безубыток. Позиции автоматически закрываются по истечении заданного количества дней. Также реализована функция полного закрытия всех позиций по магическому номеру и вспомогательные функции расчёта объёма лота с учётом ограничений брокера. Встроены утилиты для расчёта локального, серверного и GMT-смещения времени с учётом перехода на летнее время.
Настройки программы
| Настройка | Описание |
|---|---|
| _Desc2 | Описание 2 — Текстовый параметр для дополнительного описания или метки |
| _exPositionsTp | Тип максимума позиций — Определяет тип или режим ограничения количества одновременных позиций |
| _exeTPSLType | Тип TP/SL — Задаёт тип или метод расчёта тейк-профита и стоп-лосса |
| _dxTakeProfit | Тейк-профит — Уровень тейк-профита в пунктах |
| _dxStopLoss | Стоп-лосс — Уровень стоп-лосса в пунктах |
| _ixRisk | Уровень риска — Целочисленный параметр, связанный с расчётом риска |
| _dxRiskDecreaser | Декремент риска — Коэффициент уменьшения размера риска |
| _bxRecovery | Восстановление — Включает или отключает режим восстановления позиции |
| _ixRecoveryTrades | Сделки восстановления — Количество сделок в режиме восстановления |
| _dxRecoveryFactor | Фактор восстановления — Множитель, используемый при расчёте восстановления |
| _bxCloseOnFriday | Закрытие в пятницу — Автоматическое закрытие позиций в пятницу |
| _ixCloseHour | Час закрытия — Час в GMT для автоматического закрытия позиций |
| _ixAutoLotSize | Авто-размер лота — Включает автоматический расчёт размера лота |
| _dxLotSize | Размер лота — Фиксированный размер лота для сделок |
| _bxUsePropFirm | Проп-фирма — Включает режим работы с проприетарной фирмой |
| _dxUsesBalance | Используемый баланс — Значение баланса, используемое для расчётов |
| _dxMaxDrawdownBalance | Макс. просадка баланса — Допустимый максимальный процент просадки по балансу |
| _dxMaxDrawdown | Макс. просадка — Допустимый максимальный процент просадки |
| _bxUseTrailing | Трейлинг-стоп — Включает или отключает трейлинг-стоп |
| _dxTrailingStart | Начало трейлинга — Расстояние в пунктах, при котором начинается трейлинг-стоп |
| _dxTrailingStep | Шаг трейлинга — Шаг сдвига трейлинг-стопа в пунктах |
| _sxTradingDays | Дни торговли — Строка с перечислением дней недели для торговли |
| _ixMaxSpread | Макс. спред — Максимально допустимый спред в пунктах |
| _sxParamDesc1 | Описание параметра 1 — Текстовый параметр описания |
| _sxParamDesc11 | Описание параметра 11 — Текстовый параметр описания |
| _ixExpertMagic | Магический номер — Магический номер для идентификации ордеров советника |
| _sxExpertComment | Комментарий — Текст комментария, добавляемый к ордерам |
| _sxParamDesc10 | Описание параметра 10 — Текстовый параметр описания |
| _sxParamDesc101 | Описание параметра 101 — Текстовый параметр описания |
| _ixGPTModel | Модель GPT — Целочисленный параметр выбора модели |
| _bxGPTBoost | Ускорение GPT — Включает или отключает ускорение модели |
| _eixAggrsTrading | Агрессивность торговли — Параметр агрессивности торгового поведения |
| _iexGPTFunc | Функция GPT — Индекс или идентификатор функции GPT |
| bxApplyNewsFilterToAllPairs | Фильтр новостей для всех пар — Применяет фильтр новостей ко всем торговым парам |
| _ixNewsMinutesBefore | Минуты до новости — Время в минутах до события новости, в течение которого действуют ограничения |
| _ixNewsMinutesAfter | Минуты после новости — Время в минутах после события новости, в течение которого действуют ограничения |
| _ebxDisAnimation | Отключить анимацию — Отключает анимацию интерфейса |
| _bxDrawMenu | Рисовать меню — Включает отрисовку пользовательского меню на графике |
Поиск по коду файла
#include <stdlib.mqh>
extern string _Desc2 = " MM ";
extern int _exPositionsTp = 2;
extern int _exeTPSLType = 1;
extern double _dxTakeProfit = 70.0;
extern double _dxStopLoss = 320.0;
extern int _ixRisk = 180;
extern double _dxRiskDecreaser = 1.0;
extern bool _bxRecovery = FALSE;
extern int _ixRecoveryTrades = 2;
extern double _dxRecoveryFactor = 3.0;
extern bool _bxCloseOnFriday = FALSE;
extern int _ixCloseHour = 21;
extern bool _ixAutoLotSize = TRUE;
extern double _dxLotSize = 0.01;
extern bool _bxUsePropFirm = FALSE;
extern double _dxUsesBalance = 0.0;
extern double _dxMaxDrawdownBalance = 0.0;
extern double _dxMaxDrawdown = 4.3;
extern bool _bxUseTrailing = FALSE;
extern double _dxTrailingStart = 52.0;
extern double _dxTrailingStep = 17.0;
extern string _sxTradingDays = "1,2,3,4,5";
extern int _ixMaxSpread = 0;
extern string _sxParamDesc1 = " ";
extern string _sxParamDesc11 = " MC ";
extern int _ixExpertMagic = 5005;
extern string _sxExpertComment = "AI GEN XII";
extern string _sxParamDesc10 = " ";
extern string _sxParamDesc101 = " GPT ";
extern int _ixGPTModel = 3;
extern bool _bxGPTBoost = FALSE;
extern int _eixAggrsTrading = 1;
extern int _iexGPTFunc = 0;
extern bool bxApplyNewsFilterToAllPairs = TRUE;
extern int _ixNewsMinutesBefore = 120;
extern int _ixNewsMinutesAfter = 60;
extern bool _ebxDisAnimation = FALSE;
extern bool _bxDrawMenu = TRUE;
double Lots = 0.1;
int StartTimeGMT = 400; // Start trading at 4:00 GMT
int StopTimeGMT = 900; // Stop trading at 9:00 GMT
int Hi_Timeframe = PERIOD_H4; // Higher timeframe to test
int Lo_Timeframe = PERIOD_H1; // Lower timeframe to test
int NoBars = 3; // Number of bars
int Pips_offset = 1; // Offset for entry above 3 Bars
int DaysExit = 1; // Exit the same day close (2-next day close, etc).
int StopLoss = 30; // 0 deactivates Stop Loss
int TrailingStop = 0; // 0 deactivates Trailing Stop
int TakeProfit = 0; // 0 deactivates Take Profit
int GainForBE = 0; // How many pips will trigger Break Even
int PipsBE = 0; // Level at which Break Even will be put
int Slippage = 3;
#define MAGIC 200707012
int init()
{
// код доступен только после оплаты
}
int deinit()
{
Comment(WindowExpertName()," finished.");
return(0);
}
int start()
{
// код доступен только после оплаты
}
int _3barHiLo(string symbol, int period, int magic, double lots, int stoploss, int trailingstop, int takeprofit,
int gainforbe, int pipsbe, int slippage, int starttime, int stoptime,
int hi_timeframe=PERIOD_H4, int lo_timeframe=PERIOD_H1, int nobars=3, int pips_offset=1, int daysexit=0)
{
int _Digits = MarketInfo(symbol, MODE_DIGITS), i;
if(_Digits == 0) _Digits = 4;
double _Point = MarketInfo(symbol, MODE_POINT);
if(NormalizeDouble(_Point, _Digits) == 0.0) _Point = Point;
double _Bid = MarketInfo(symbol, MODE_BID);
double _Ask = MarketInfo(symbol, MODE_ASK);
int _iBid = MathRound(_Bid/_Point);
string _cm = "Time GMT: " ;
bool _can_open = true;
datetime _now = TimeCurrent();
datetime _st = MathFloor(_now/86400)*86400 + MathRound(starttime/100)*3600+MathMod(starttime, 100)*60;
datetime _en = MathFloor(_now/86400)*86400 + MathRound(stoptime/100)*3600+MathMod(stoptime, 100)*60;
while(_st <= _now) _st += 86400;
while(_en <= _now) _en += 86400;
if(_st<_en) _can_open = false;
static bool _long = false;
static bool _short = false;
if(_iBid > MathRound(iHigh(symbol, hi_timeframe, iHighest(symbol, hi_timeframe, MODE_HIGH, nobars, 1))/_Point))
if(_iBid >= MathRound(iHigh(symbol, lo_timeframe, iHighest(symbol, lo_timeframe, MODE_HIGH, nobars,1))/_Point)+pips_offset)
_long = _can_open;
if(_iBid < MathRound(iLow(symbol, hi_timeframe, iLowest(symbol, hi_timeframe, MODE_LOW, nobars, 1))/_Point))
if(_iBid >= MathRound(iLow(symbol, lo_timeframe, iLowest(symbol, lo_timeframe, MODE_LOW, nobars,1))/_Point)+pips_offset)
_short = _can_open;
if(!_ip(OP_BUY, symbol, magic))
if(_long) Print("Bid: ", _iBid,"; H4: ",MathRound(iHigh(symbol, hi_timeframe, iHighest(symbol, hi_timeframe, MODE_HIGH, nobars, 1))/_Point),"; H1: ",
MathRound(iHigh(symbol, lo_timeframe, iHighest(symbol, lo_timeframe, MODE_HIGH, nobars,1))/_Point));
if(!_ip(OP_SELL, symbol, magic))
if(_short) Print("Bid: ",_iBid,"; H4: ",MathRound(iLow(symbol, hi_timeframe, iLowest(symbol, hi_timeframe, MODE_LOW, nobars, 1))/_Point),"; H1: ",
MathRound(iLow(symbol, lo_timeframe, iLowest(symbol, lo_timeframe, MODE_LOW, nobars,1))/_Point));
bool _send_ok = true;
if(_long){
if(_ip(OP_SELL, symbol, magic))
_OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), slippage, Red);
if(!_ip(OP_BUY, symbol, magic))
_send_ok = _OrderSend(symbol, OP_BUY, _nv(symbol, lots), _Ask, slippage, _sl(OP_BUY, symbol, _Bid, stoploss), _tp(OP_BUY, symbol, _Bid, takeprofit),
WindowExpertName(), magic, 0, Blue) > 0;
}
if(_short){
if(_ip(OP_BUY, symbol, magic))
_OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), slippage, Blue);
if(!_ip(OP_SELL, symbol, magic))
_send_ok = _OrderSend(symbol, OP_SELL, _nv(symbol, lots), _Bid, slippage, _sl(OP_SELL, symbol, _Ask, stoploss), _tp(OP_SELL, symbol, _Ask, takeprofit),
WindowExpertName(), magic, 0, Red) > 0;
}
if(_ip(OP_BUY, symbol, magic))
{
int diff = MathFloor((TimeCurrent()-OrderOpenTime())/86400.0);
if(TimeDayOfYear(OrderOpenTime())!=DayOfYear()) diff++;
if(diff>=daysexit) _fa(symbol, magic);
}
if(_ip(OP_SELL, symbol, magic))
{
diff = MathFloor((TimeCurrent()-OrderOpenTime())/86400.0);
if(TimeDayOfYear(OrderOpenTime())!=DayOfYear()) diff++;
if(diff>=daysexit) _fa(symbol, magic);
}
if(trailingstop > 0)
for(i=0; i < OrdersTotal(); i++)
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderSymbol() == symbol)
if(OrderMagicNumber() == magic)
if(OrderType() == OP_BUY){
if(MathRound((OrderClosePrice()-OrderStopLoss())/_Point) > trailingstop)
if(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderClosePrice()-trailingstop*_Point, OrderTakeProfit(),
OrderExpiration(), Blue))
Print("OrderModify(OP_BUY) error - ", ErrorDПоказано первые 50% кода (символов: 10968)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.