FXCORE1_V1
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «fxcore100.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
FXCORE1_V1 — торговый советник для MetaTrader 4, анализирующий рынок с помощью скользящих средних, полос Боллинджера, стохастика и RSI. Советник поддерживает три режима работы: анализ рынка с поиском сигналов, обработка закрытия ордеров при достижении целевой прибыли и верификация открытия ордеров с размещением лимитных ордеров. Торговля осуществляется через стандартные API MetaTrader 4 (OrderSend, OrderClose, OrderDelete).
Настройки программы
| Настройка | Описание |
|---|---|
| InpMagicNumberFxCore | Магический номер — Идентификатор ордеров советника для фильтрации на текущем символе |
| InpStopLevelFxCore | Стоп-уровень — Минимальное расстояние в пунктах между ценой открытия и уровнем стоп-лосс/тейк-профит |
| InpMaxOrderFxCore | Максимум ордеров — Максимальное количество одновременных ордеров советника на символе |
| InpHabilitaFatorFxCore | Включить множитель лота — Активирует увеличение размера лота по экспоненциальному множителю при каждом следующем ордере |
| InpFatorFxCore | Множитель лота — Коэффициент умножения базового лота при наращивании позиции |
| InpHabilitaSomaFxCore | Включить суммирование лота — Активирует добавление фиксированного приращения лота к текущему объёму позиции |
| InpLoteSomaFxCore | Приращение лота — Фиксированное увеличение объёма лота при наращивании позиции |
| InpSinalModeFxCore | Режим сигнала — Выбор режима генерации сигналов: только MA или комбинация полос Боллинджера, стохастика и RSI |
| SINALIMA | Разделитель IMA — Визуальный разделитель в панели настроек для группы параметров скользящей средней |
| InpIMAFrame | Таймфрейм IMA — Таймфрейм для расчёта скользящих средних |
| InpPeriodoIMAFxCore | Период IMA — Период быстрой скользящей средней |
| InpPeriodoLongIMAFxCore | Период длинной IMA — Период медленной скользящей средней для подтверждения тренда |
| SINALBB | Разделитель BB — Визуальный разделитель в панели настроек для группы параметров полос Боллинджера |
| InpSinalBBFxCore | Включить сигнал BB — Включает использование полос Боллинджера в системе генерации сигналов |
| Bands B TimeFrame (InpBBFrame) | Таймфрейм BB — Таймфрейм для расчёта полос Боллинджера |
| InpBBPeriodFxCore | Период BB — Период расчёта полос Боллинджера |
| vBandsBordFxCore | Отклонение полос — Количество стандартных отклонений для верхней и нижней полосы Боллинджера |
| SINALST | Разделитель Stochastic — Визуальный разделитель в панели настроек для группы параметров стохастика |
| InpSinalStochasticFxCore | Включить сигнал Stochastic — Включает использование стохастика в системе генерации сигналов |
| Stochastic TimeFrame (InpStochasticFrame) | Таймфрейм Stochastic — Таймфрейм для расчёта индикатора стохастик |
| InpPeriodStochastcFxCore | Период Stochastic — Основной период стохастика |
| InpPeriodStochastcCFxCore | Период %K Stochastic — Период линии %K индикатора стохастик |
| InpSlowingStochastcFxCore | Замедление Stochastic — Коэффициент замедления (сглаживания) линии стохастика |
| SINALRSI | Разделитель RSI — Визуальный разделитель в панели настроек для группы параметров RSI |
| InpSinalRSIFxCore | Включить сигнал RSI — Включает использование RSI в системе генерации сигналов |
| InpRSIFrame | Таймфрейм RSI — Таймфрейм для расчёта индикатора RSI |
| InpPeriodRSIFxCore | Период RSI — Период расчёта индикатора RSI |
| InpRSIMaxFxCore | Максимум RSI — Верхний порог уровня RSI для определения перекупленности |
| InpRSIMinFxCore | Минимум RSI — Нижний порог уровня RSI для определения перепроданности |
Поиск по коду файла
#property version "1.00"
#property description "FXCORE1_V1 BETA DEVELOPER "
#property description "This EA is 100% FREE "
#property description "Coder: r**************o*@gmail.com "
#property description "Donation Link : "
#property strict
enum ENUM_SINALMODE {
IMA = 0,// IMA
BB_RSI_STOCH = 1,// BB RSI STOCH
};
string vg_versao = " FXCORE1_V1 BETA DEVELOPER 2018-03-03 ";
extern int InpMagicNumberFxCore = 988827;
extern int InpStopLevelFxCore = 20;
extern int InpMaxOrderFxCore = 15;
extern bool InpHabilitaFatorFxCore = true;
extern double InpFatorFxCore = 2.0;
extern bool InpHabilitaSomaFxCore = FALSE;
extern double InpLoteSomaFxCore = 1.0;
int InpModoFxCore = 2;
extern ENUM_SINALMODE InpSinalModeFxCore = IMA;
extern string SINALIMA= "------------------------- SINAL IMA-------------------------";
input ENUM_TIMEFRAMES InpIMAFrame= PERIOD_CURRENT;
extern int InpPeriodoIMAFxCore = 5;
extern int InpPeriodoLongIMAFxCore = 20;
extern string SINALBB= "------------------------- SINAL BB-------------------------";
extern bool InpSinalBBFxCore = TRUE;
input ENUM_TIMEFRAMES InpBBFrame= PERIOD_CURRENT; // Bands B TimeFrame
extern int InpBBPeriodFxCore = 20;
extern int vBandsBordFxCore = 2;
extern string SINALST= "------------------------- SINAL Stochastic-------------------------";
extern bool InpSinalStochasticFxCore = TRUE;
input ENUM_TIMEFRAMES InpStochasticFrame= PERIOD_CURRENT; // Stochastic TimeFrame
extern int InpPeriodStochastcFxCore = 5;
extern int InpPeriodStochastcCFxCore = 3;
extern int InpSlowingStochastcFxCore = 3;
extern string SINALRSI= "------------------------- SINAL RSI-------------------------";
extern bool InpSinalRSIFxCore = TRUE;
input ENUM_TIMEFRAMES InpRSIFrame= PERIOD_CURRENT;
extern int InpPeriodRSIFxCore = 9;
extern int InpRSIMaxFxCore = 70;
extern int InpRSIMinFxCore = 30;
int vg_CountOrdersFxCore = 0;
int vg_OrderTotalFxCore;
int vg_HistTotalFxCore;
int vg_PosFxCore;
int vg_QtdDigitsFxCore;
int vg_TipoOrderFxCore;
int vg_TicketFxCore;
double vg_MinLotOpenOrderFxCore;
double vg_CloseProfitFxCore;
double vg_PointFxCore;
double vg_MinLotFxCore;
double vg_MaxLotFxCore;
double vg_StopLevelFxCore;
double vg_LastOrdemLotsFxCore;
double vg_LastOrdemOpenPriceFxCore;
double vg_ProfitCloseFxCore;
double vg_ProfitTotalFxCore;
double vg_ProfitOpenFxCore;
string vg_PriceFxCore;
string vg_AlertFxCore = "";
string vg_MensagemFxCore;
int init() {
// код доступен только после оплаты
}
int deinit() {
Comment("");
return (0);
}
int start() {
// код доступен только после оплаты
}
int CountOrdersFxCore() {
vg_OrderTotalFxCore = OrdersTotal();
vg_CountOrdersFxCore = 0;
for (vg_PosFxCore = 0; vg_PosFxCore < vg_OrderTotalFxCore; vg_PosFxCore++) {
OrderSelect(vg_PosFxCore, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != InpMagicNumberFxCore) continue;
vg_CountOrdersFxCore++;
}
return (vg_CountOrdersFxCore);
}
int OpenOrdersFxCore(int a_cmd_0, double a_lots_4, double a_price_12, color a_color_20) {
return (OrderSend(Symbol(), a_cmd_0, a_lots_4, a_price_12, 3, 0, 0, "", InpMagicNumberFxCore, 0, a_color_20));
return (0);
}
int CloseOrdersFxCore() {
vg_OrderTotalFxCore = OrdersTotal();
for (vg_PosFxCore = vg_OrderTotalFxCore - 1; vg_PosFxCore >= 0; vg_PosFxCore--) {
OrderSelect(vg_PosFxCore, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != InpMagicNumberFxCore) continue;
switch (OrderType()) {
case OP_BUY:
OrderClose(OrderTicket(), OrderLots(), Bid, 1, CLR_NONE);
vg_PriceFxCore = Bid;
break;
case OP_SELL:
OrderClose(OrderTicket(), OrderLots(), Ask, 1, CLR_NONE);
vg_PriceFxCore = Ask;
break;
case OP_BUYLIMIT:
OrderDelete(OrderTicket());
break;
case OP_SELLLIMIT:
OrderDelete(OrderTicket());
}
}
return (0);
}
double GetLastLotFxCore() {
vg_OrderTotalFxCore = OrdersTotal();
vg_LastOrdemLotsFxCore = 0;
for (vg_PosFxCore = 0; vg_PosFxCore < vg_OrderTotalFxCore; vg_PosFxCore++) {
OrderSelect(vg_PosFxCore, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != InpMagicNumberFxCore) continue;
vg_LastOrdemLotsFxCore = OrderLots();
}
return (vg_LastOrdemLotsFxCore);
}
double GetTotalProfitFxCore() {
vg_OrderTotalFxCore = OrdersTotal();
vg_ProfitCloseFxCore = 0;
for (vg_PosFxCore = 0; vg_PosFxCore < vg_OrderTotalFxCore; vg_PosFxCore++) {
OrderSelect(vg_PosFxCore, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != InpMagicNumberFxCore) continue;
vg_ProfitCloseFxCore += OrderProfit();
}
return (vg_ProfitCloseFxCore);
}
int GetSinalFxCore() {
double ima_0;
double ima_8;
double ima_16;
double ibands_24;
double ibands_32;
double istochastic_40;
double irsi_48;
if (InpSinalModeFxCore == 0) {
ima_0 = iMA(Symbol(), InpIMAFrame, InpPeriodoIMAFxCore, 0, MODE_SMA, PRICE_CLOSE, 0);
ima_8 = iMA(Symbol(), InpIMAFrame, InpPeriodoIMAFxCore, 0, MODE_SMA, PRICE_CLOSE, 1);
ima_16 = iMA(Symbol(), InpIMAFrame, InpPeriodoLongIMAFxCore, 0, MODE_SMA, PRICE_CLOSE, 1);
if (ima_0 > ima_8 && ima_8 > ima_16) return (-15);
if (!(ima_0 < ima_8 && ima_8 < ima_16)) return (0);
return (15);
}
if (InpSinalModeFxCore == 1) {
ibands_24 = iBands(Symbol(), InpBBFrame, InpBBPeriodFxCore, vBandsBordFxCore, 0, PRICE_CLOSE, MODE_UPPER, 0);
ibands_32 = iBands(Symbol(), InpBBFrame, InpBBPeriodFxCore, vBandsBordFxCore, 0, PRICE_CLOSE, MODE_LOWER, 0);
istochastic_40 = iStochastic(Symbol(), InpStochasticFrame, InpPeriodStochastcFxCore, InpPeriodStochastcCFxCore, InpSlowingStochastcFxCore, MODE_SMA, 0, MODE_SIGNAL, 0);
irsi_48 = iRSI(Symbol(), InpRSIFrame, InpPeriodRSIFxCore, PRICE_CLOSE, 0);
if (InpSinalBBFxCore && (!InpSinalStochasticFxCore) && (!InpSinalRSIFxCore)) {
if (Close[0] > ibands_24) return (15);
if (Close[0] >= ibands_32) return (0);
return (-15);
}
if ((!InpSinalBBFxCore) && InpSinalStochasticFxCore && (!InpSinalRSIFxCore)) {
if (istochastic_40 > InpRSIMaxFxCore) return (15);
if (istochastic_40 >= InpRSIMinFxCore) return (0);
return (-15);
}
if ((!InpSinalBBFxCore) && !InpSinalStochasticFxCore && InpSinalRSIFxCore) {
if (irsi_48 > InpRSIMaxFxCore) return (15);
if (irsi_48 >= InpRSIMinFxCore) return (0);
return (-15);
}
if (InpSinalBBFxCore && InpSinalStochasticFxCore && (!InpSinalRSIFxCore)) {
if (Close[0] > ibands_24 && istochastic_40 > InpRSIMaxFxCore) return (15);
if (!(Close[0] < ibands_32 && istochastic_40 < InpRSIMinFxCore)) return (0);
return (-15);
}
if (InpSinalBBFxCore && (!InpSinalStochasticFxCore) && InpSinalRSIFxCore) {
if (Close[0] > ibands_24 && irsi_48 > InpRSIMaxFxCore) return (15);
if (!(Close[0] < ibands_32 && irsi_48 < InpRSIMinFxCore)) return (0);
return (-15);
}
if ((!InpSinalBBFxCore) && InpSinalStochasticFxCore && InpSinalRSIFxCore) {
if (istochastic_40 > InpRSIMaxFxCore && irsi_48 > InpRSIMaxFxCore) return (15);
if (!(istochastic_40 < InpRSIMinFxCore && irsi_48 < InpRSIMinFxCore)) return (0);
return (-15);
}
if (InpSinalBBFxCore && InpSinalStochasticFxCore && InpSinalRSIFxCore) {
if (Close[0] > ibands_24 && istochastic_40 > InpRSIMaxFxCore && irsi_48 > InpRSIMaxFxCore) return (15);
if (!(Close[0] < ibands_32 && istochastic_40 < InpRSIMinFxCore && irsi_48 < InpRSIMinFxCore)) return (0);
return (-15);
}
}
return (0);
}
int AnalizandoMercadoFxCore() {
if (GetTotalProfitFxCore() >= vg_CloseProfitFxCore) CloseOrdersFxCore();
if (CountOrdersFxCore() == 0 && GetLastLotFxCore() == 0.0) {
if (GetSinalFxCore() == -15)
if (OpenOrdersFxCore(OP_BUY, vg_MinLotOpenOrderFxCore, Ask, Blue) > 0) return (0);
if (GetSinalFxCore() == 15)
if (OpenOrdersFxCore(OP_SELL, vg_MinLotOpenOrderFxCore, Bid, Red) > 0) return (0);
}
if (CountOrdersFxCore() > 0 && CountOrdersFxCore() < InpMaxOrderFxCore) {
vg_TipoOrderFxCore = -1;
vg_LastOrdemOpenPriceFxCore = 0;
vg_OrderTotalFxCore = OrdersTotal();
for (vg_PosFxCore = 0; vg_PosFxCore < vg_OrderTotalFxCore; vg_PosFxCore++) {
OrderSelect(vg_PosFxCore, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != InpMagicNumberFxCore) continue;
vg_TipoOrderFxCore = OrderType();
vg_LastOrdemOpenPriceFxCore = OrderOpenPrice();
}
if (vg_TipoOrderFxCore == OP_BUY) {
if (Ask > vg_LastOrdemOpenPriceFxCore - InpStopLevelFxCore * vg_PointFxCore) return (0);
if (InpHabilitaFatorFxCore) {
if (NormalizeDouble(vg_MinLotOpenOrderFxCore * MathPowПоказано первые 50% кода (символов: 17097)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.