phoenix_ea_v5_7_3_nmc.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «phoenix_ea_v5_7_3_nmc.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Phoenix EA V5.7.3 — торговый советник для платформы MetaTrader 4, работающий в трёх режимах управления позициями. Советник анализирует ценовые данные с помощью набора технических индикаторов и формирует торговые сигналы на их совпадении. Поддерживается ручное и автоматическое управление рисками, а также функции трейлинг-стопа, выхода в безубыток и принудительного закрытия позиций по времени.
Настройки программы
| Настройка | Описание |
|---|---|
| C_INIT | Разделитель начальных настроек — Текстовый параметр-разделитель для группы начальных настроек |
| True means the builtin values are used to trade (U_PrefSettings) | Использовать встроенные настройки — Переключатель использования встроенных значений по умолчанию для выбранного инструмента |
| C_PhoenixSettings | Разделитель настроек режима — Текстовый параметр-разделитель для группы настроек режима торговли |
| Daraknor changed 5.6.8 to mode 1 by default for stable trading 5.6.8 (U_Mode) | Режим торговли — Выбор режима торговли: 1 — одна позиция, 2 — две позиции, 3 — три позиции |
| C_M1_Settings | Разделитель настроек режима 1 — Текстовый параметр-разделитель для настроек режима 1 |
| U_M1_BreakEvenAfterPips | Безубыток после пунктов — Число пунктов прибыли, после которого позиция переводится в безубыток |
| set here to activate trailing stop, value of 0 disables. (P_M1_TS) | Скользящий стоп режима 1 — Размер скользящего стопа в пунктах; ноль отключает функцию |
| C_M12_Settings | Разделитель общих настроек режимов 1 и 2 — Текстовый параметр-разделитель для общих настроек режимов 1 и 2 |
| not necessary for standard currencies, assign here for U_PrefSettings=false (P_M12_TP) | Тейк-профит режимов 1 и 2 — Уровень фиксации прибыли для режимов 1 и 2 |
| not necessary for standard currencies, assign here for U_PrefSettings=false (P_M12_SL) | Стоп-лосс режимов 1 и 2 — Уровень стоп-лосса для режимов 1 и 2 |
| set to number of trades to open (U_M12_MaxTrades) | Максимум сделок — Максимальное количество одновременно открытых сделок |
| Set to number of Consec confirming signals. (U_M12_ConsecSignals) | Подтверждающих сигналов — Требуемое количество последовательных совпадающих сигналов для входа |
| C_M2_Settings | Разделитель настроек режима 2 — Текстовый параметр-разделитель для настроек режима 2 |
| P_M2_OpenTrade_2 | Открытие второй сделки — Порог прибыли первой сделки для запуска второй |
| not necessary for standard currencies, assign here for U_PrefSettings=false (P_M2_TP) | Тейк-профит режима 2 — Уровень фиксации прибыли для второй сделки режима 2 |
| not necessary for standard currencies, assign here for U_PrefSettings=false (P_M2_SL) | Стоп-лосс режима 2 — Уровень стоп-лосса для второй сделки режима 2 |
| U_M2_CloseTrade_1 | Закрытие первой сделки — Автоматическое закрытие первой сделки при открытии второй |
| C_M3 | Разделитель настроек режима 3 — Текстовый параметр-разделитель для настроек режима 3 |
| P_M3_CloseTrade_23 | Закрытие сделок 2 и 3 — Условие закрытия сделок 2 и 3 при убытке первой сделки в пунктах |
| not necessary for standard currencies, assign here for U_PrefSettings=false (P_M3_TP) | Тейк-профит режима 3 — Уровень фиксации прибыли для сделок режима 3 |
| not necessary for standard currencies, assign here for U_PrefSettings=false (P_M3_SL) | Стоп-лосс режима 3 — Уровень стоп-лосса для сделок режима 3 |
| P_M3_T1adj | Корректировка TP сделки 1 — Коэффициент корректировки уровня фиксации прибыли для первой сделки |
| P_M3_T2adj | Корректировка TP сделки 2 — Коэффициент корректировки уровня фиксации прибыли для второй сделки |
| Added 5.7.0 (P_M3_T3adj) | Корректировка TP сделки 3 — Коэффициент корректировки уровня фиксации прибыли для третьей сделки |
| C_Function_Y | Разделитель управления рисками — Текстовый параметр-разделитель для группы настроек управления рисками |
| Money management (U_MM) | Управление рисками — Включение автоматического управления размером лота |
| Money management will override setting (U_Lots) | Базовый лот — Базовый размер лота при отключённом управлении рисками |
| U_MaxRisk | Максимальный риск — Максимальный допустимый риск в процентах от свободного маржи |
| U_DecreaseFactor | Фактор уменьшения лота — Параметр уменьшения лота при серии убыточных сделок |
| Micro means 0.01 lot size is allowed (U_AccIsMicro) | Микросчёт — Флаг микросчёта, разрешающий минимальный размер лота 0.01 |
Поиск по коду файла
#define MAGICMA_A 20061120 //modified to simple range by Daraknor 5.6.6
#define MAGICMA_B 20061121 //If you run two copies of Phoenix on one account, modify Magic numbers on one EA.
#define MAGICMA01 20061122
#define MAGICMA02 20061123
#define MAGICMA03 20061124
extern string C_INIT = "=== Use INIT section - ignore all P_ settings =====";
extern bool U_PrefSettings = true; //True means the builtin values are used to trade
extern string C_PhoenixSettings = "===== Phoenix Mode Selected ==============================";
extern int U_Mode = 1; //Daraknor changed 5.6.8 to mode 1 by default for stable trading 5.6.8
extern string C_M1_Settings = "====== Phoenix Mode 1 (Stable) ==================";
extern int U_M1_BreakEvenAfterPips = 0;
extern int P_M1_TS = 0; //set here to activate trailing stop, value of 0 disables.
extern string C_M12_Settings = "==== Phoenix Mode 1 & 2 - shared fields ==================";
extern int P_M12_TP = 0; //not necessary for standard currencies, assign here for U_PrefSettings=false
extern int P_M12_SL = 0; //not necessary for standard currencies, assign here for U_PrefSettings=false
extern int U_M12_MaxTrades = 1; //set to number of trades to open
extern int U_M12_ConsecSignals = 5; //Set to number of Consec confirming signals.
extern string C_M2_Settings = "===== Phoenix Mode 2 (2 trades-testing, move 2nd SL)===";
extern int P_M2_OpenTrade_2 = 0;
extern int P_M2_TP = 0; //not necessary for standard currencies, assign here for U_PrefSettings=false
extern int P_M2_SL = 0; //not necessary for standard currencies, assign here for U_PrefSettings=false
extern bool U_M2_CloseTrade_1 = false;
extern string C_M3 = "====== Phoenix Mode 3 (3 trades-testing, moving SL, incr profit) =====";
extern int P_M3_CloseTrade_23 = 0;
extern int P_M3_TP = 0; //not necessary for standard currencies, assign here for U_PrefSettings=false
extern int P_M3_SL = 0; //not necessary for standard currencies, assign here for U_PrefSettings=false
extern double P_M3_T1adj = 0.8;
extern double P_M3_T2adj = 1.0;
extern double P_M3_T3adj = 1.2; //Added 5.7.0
extern string C_Function_Y = "====== U_MM Money Management decreases lotsize in a losing streak =====";
extern bool U_MM = true; //Money management
extern double U_Lots = 1; //Money management will override setting
extern double U_MaxRisk = 0.05; //
extern int U_DecreaseFactor = 901000; //
extern bool U_AccIsMicro = false; //Micro means 0.01 lot size is allowed
extern double U_MinLot = 00.01; //Set to be micro safe by default, maybe this should change
extern double U_MaxLot = 99.00; //Set to previous max value by default
extern string C_Function_X = "====== Grace Functionality ======";
extern int U_GraceHours = 0; //Setting of 0 disables, 24 = 24 hours Daraknor 5.6.6
extern int U_ForceHours = 0; //Setting of 0 disables, 48 = 48 hours Darankor 5.6.6
extern int U_Grace_TS = 10; //Trailing stop in pips to use during Grace Exit: should be small
extern string C_Signal1 = "====== Signal 1 ===================================";
extern bool U_UseSig1 = true;
extern double P_Percent = 0;
extern int P_EnvPeriod = 0;
extern string C_Signal2 = "====== Signal 2 ==================================";
extern bool U_UseSig2 = true;
extern int P_SMAPeriod = 0;
extern int P_SMA2Bars = 0;
extern string C_Signal3 = "====== Signal 3 ==================================";
extern bool U_UseSig3 = true;
extern int P_OSMAFast = 0; //Daraknor 5.7.1 contrib Yashil, switched these to be standard usage.
extern int P_OSMASlow = 0; //Should have no visible effect at all.
extern double P_OSMASignal = 0;
extern string C_Signal4 = "====== Signal 4 ==================================";
extern bool U_UseSig4 = true;
extern int P_Fast_Period = 0;
int P_Fast_Price = PRICE_OPEN; // NOTE: not external - Daraknor 5.7.2
extern int P_Slow_Period = 0;
int P_Slow_Price = PRICE_OPEN; // NOTE: not external - Daraknor 5.7.2
extern double P_DVBuySell = 0;
extern double P_DVStayOut = 0;
extern string C_Signal5 = "====== Signal 5 =================================";
extern bool U_UseSig5 = true;
extern int U_T1From = 0;
extern int U_T1Until = 24;
extern int U_T2From = 0;
extern int U_T2Until = 0;
extern int U_T3From = 0;
extern int U_T3Until = 0;
extern int U_T4From = 0;
extern int U_T4Until = 0;
bool dummyResult;
int W_Buy_Signal =0; //confirming signals code Added 5.6.4
int W_Sell_Signal =0;
int W_s_time =0;
int W_M1_TS =0;
int init()
{
// код доступен только после оплаты
}
if(P_M1_TS!=0)
{
P_M12_TP = 999; // - pcontour TS update
if( P_M1_TS < MarketInfo(Symbol(),MODE_STOPLEVEL) )
{
Print("Trailing stop below broker minumum. TS changed to: ",MODE_STOPLEVEL);
P_M1_TS = MarketInfo(Symbol(),MODE_STOPLEVEL);
}
}
if(U_MinLot==0) U_MinLot = MarketInfo(Symbol(),MODE_MINLOT); //Pcontour 5.7.3
if(U_MaxLot==0) U_MaxLot = MarketInfo(Symbol(),MODE_MAXLOT); //Pcontour 5.7.3
return(0);
}
void start()
{
// код доступен только после оплаты
}
void M1_A_Update_TStop_if_Applicable()
{
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA_A || OrderSymbol()!=Symbol()) continue;
if(OrderType() == OP_BUY)
{
if(((Bid - OrderOpenPrice()) > 0) && (OrderStopLoss() < (Bid - Point * P_M1_TS)) && (Bid > OrderOpenPrice()))
{
if (P_M3_CloseTrade_23 > 1 ) W_M1_TS = P_M1_TS - MathRound ( ( (Bid - OrderOpenPrice()) / Point ) / P_M3_CloseTrade_23) ;
else W_M1_TS = P_M1_TS;
if (W_M1_TS < MarketInfo(Symbol(),MODE_STOPLEVEL)) W_M1_TS = MarketInfo(Symbol(),MODE_STOPLEVEL) ;
dummyResult = OrderModify(
OrderTicket(),
OrderOpenPrice(),
Bid - Point * W_M1_TS, //SL
Bid + Point * W_M1_TS, //TP
0,
GreenYellow);
}
}
if(OrderType() == OP_SELL)
{
if(((OrderOpenPrice() - Ask) > 0) && (OrderStopLoss() > (Ask + Point * P_M1_TS)) && (Ask < OrderOpenPrice()))
{
if (P_M3_CloseTrade_23 > 1 ) W_M1_TS = P_M1_TS - MathRound ( ( (OrderOpenPrice() - Ask) / Point ) / P_M3_CloseTrade_23 );
else W_M1_TS = P_M1_TS;
if (W_M1_TS < MarketInfo(Symbol(),MODE_STOPLEVEL)) W_M1_TS = MarketInfo(Symbol(),MODE_STOPLEVEL) ;
dummyResult = OrderModify(
OrderTicket(),
OrderOpenPrice(),
Ask + Point * W_M1_TS, //SL
Ask - Point * W_M1_TS, //TP
0,
Red);
}
}
}
}
void M1_B_Update_TStop_if_BreakEven()
{
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA_A || OrderSymbol()!=Symbol()) continue;
if(OrderType() == OP_BUY)
{
if((Bid-OrderOpenPrice()) > (Point*U_M1_BreakEvenAfterPips) && (OrderStopLoss()< OrderOpenPrice()))
dummyResult = OrderModify(
OrderTicket(),
OrderOpenPrice(),
OrderOpenPrice(),
OrderTakeProfit(),
0,
GreenYellow);
}
if(OrderType() == OP_SELL)
{
if((OrderOpenPrice()-Ask) > (Point*U_M1_BreakEvenAfterPips) && (OrderStopLoss()> OrderOpenPrice()))
dummyResult = OrderModify(
OrderTicket(),
OrderOpenPrice(),
OrderOpenPrice(),
OrderTakeProfit(),
0,
Red);
}
}
}
void M2_A_MakeSecondTrade_If_Profit()
{
int err = 0, total = OrdersTotal();
for(int z = total - 1; z >= 0; z --)
{
if(!OrderSelect( z, SELECT_BY_POS))
{
err = GetLastError();
Print("OrderSelect( ", z, ", SELECT_BY_POS ) - Error #",err );
continue;
}
if(OrderSymbol() != Symbol()) continue;
if(OrderMagicNumber() == MAGICMA_B) break;
if(OrderMagicNumber() != MAGICMA_A) continue;
if(OrderType() == OP_BUY && (Bid-OrderOpenPrice() > Point*P_M2_OpenTrade_2))
{
if(OrderSend(Symbol(),OP_BUY,Y_MM_OptimizeLotSize(),Ask,3,Ask - P_M2_SL * Point,Ask + P_M2_TP * Point,"Mode2_SecondTrade",MAGICMA_B,0,Blue) < 0)
{
err = GetLastError();
Print("Error Ordersend(",err,"): ");
return;
}
if(U_M2_CloseTrade_1==true) {M2_A_1_CloseFirstTrade();}
return;
}
if(OrderType() == OP_SELL && (OrderOpenPrice()-Ask > Point*P_M2_OpenTrade_2))
{
if(OrderSend(Symbol(),OP_SELL,Y_MM_OptimizeLotSize(),Bid,3,Bid + P_M2_SL * Point,Bid - P_M2_TP*Point,"Mode2_SecondTrade",MAGICMA_B,0,Red) < 0)
{
err = GetLastError();
Print("Error Ordersend(",err,"): ");
return;
}
if(U_M2_CloseTrade_1==true) {M2_A_1_CloseFirstTrade();}
return;
}
}
}
int M2_A_1_CloseFirstTrade()
{
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA_A || OrderSymbol()!=Symbol()) continue;
dummyResult = OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
return(0);
}
return(0);
}
int M3_A_Mode3_OpenTrade_If_Signal()
{
int Signal = 0, err = 0, total = OrdersTotal(), decimalPlaces=1;
if(U_AccIsMicro==true) decimalPlaces=2;
double lots123 = NormalizeDouble(Y_MM_OptimizeLotSize()/3,decimalPlaces);
if(lots123 < 0.1 && U_AccIsMicro==false) {lots123=0.1;}
if(lots123 < 0.01 && U_AccIsMicro==true) {lots123=0.01;}
if(M3_A_1_NumberOfOpenPositions(Symbol()) < 1)
{
if(Z_CheckSignal(Signal)==1)
{
if(OrderSend(Symbol(),OP_SELL,lots123,Bid,3,Bid+P_M3_SL*PoinПоказано первые 50% кода (символов: 23246)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.