Dyora Add Listing

Your Wishlist : 0 Items

FIBOSIGNALBOT

Trade Signals & Alerts
Visit Now
  • Viewed - 23
  • Bookmark - 0

Telegram Description

MENYEDIAKAN SIGNAL GOLD/XAUUSD KHAS KEPADA AHLI CHANNEL SAYA @ TEKNIK BBMA+FIBO @ SCALPING / INTRADAY @ SIGNAL 3 – 5 KALI SEHARI @ SIGNAL 20 PIPS @ TP/SL/LAYER AKAN UPDATE SETIAP MASA @ HARI² CETAK USD CHANNEL ANDA

Latest Channel Posts

Channel Image
//+------------------------------------------------------------------+
//| TrendMaster.mq5 |
//| Copyright 2025, FXMaster Labs, Version 1.5 |
//| https://www.fxmlabs.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, FXMaster Labs"
#property link "https://www.fxmlabs.com"
#property version "1.5"
#property description "Expert Advisor dengan konfirmasi multi-timeframe dan manajemen risiko adaptif"

//+------------------------------------------------------------------+
//| Input parameters |
//+------------------------------------------------------------------+
input group "Strategy Settings"
input int FastMAPeriod = 12; // Periode MA Cepat
input int SlowMAPeriod = 26; // Periode MA Lambat
input double MinADXLevel = 25.0; // Level Min ADX (Kekuatan Trend)
input int ATRPeriod = 14; // Periode ATR untuk Volatilitas

input group "Risk Management"
input double RiskPercent = 1.0; // Risiko per Trade (% Equity)
input double RewardRatio = 2.0; // Rasio Risk:Reward
input bool UseTrailingStop = true; // Gunakan Trailing Stop
input int NewsFilterHours = 2; // Jam Sebelum/Sesudah Berita (Nonaktifkan)

input group "Trade Execution"
input int MagicNumber = 12345; // EA Magic Number
input string TradeComment = "TrendMaster"; // Komentar Order

//+------------------------------------------------------------------+
//| Global variables |
//+------------------------------------------------------------------+
int handleFastMA, handleSlowMA, handleADX, handleATR;
datetime lastTradeTime;
const long pipValue = 100000; // Untuk EURUSD (1 pip = 0.00010)

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// Inisialisasi indikator
handleFastMA = iMA(_Symbol, PERIOD_CURRENT, FastMAPeriod, 0, MODE_EMA, PRICE_CLOSE);
handleSlowMA = iMA(_Symbol, PERIOD_CURRENT, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE);
handleADX = iADX(_Symbol, PERIOD_CURRENT, 14);
handleATR = iATR(_Symbol, PERIOD_CURRENT, ATRPeriod);

if(handleFastMA == INVALID_HANDLE handleSlowMA == INVALID_HANDLE
handleADX == INVALID_HANDLE || handleATR == INVALID_HANDLE)
{
Print("Error creating indicators");
return(INIT_FAILED);
}

// Verifikasi parameter
if(RiskPercent <= 0 || RiskPercent > 5)
{
Alert("RiskPercent harus antara 0.1-5%");
return(INIT_PARAMETERS_INCORRECT);
}

return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
// Bersihkan handle indikator
IndicatorRelease(handleFastMA);
IndicatorRelease(handleSlowMA);
IndicatorRelease(handleADX);
IndicatorRelease(handleATR);
}

//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
// Cek jam trading untuk menghindari berita
if(IsNewsTime()) return;

// Cek hanya 1 trade per bar
if(lastTradeTime == iTime(_Symbol, PERIOD_CURRENT, 0)) return;

// Dapatkan data indikator
double fastMA[2], slowMA[2], adx[2], atr[2];
CopyBuffer(handleFastMA, 0, 1, 2, fastMA);
CopyBuffer(handleSlowMA, 0, 1, 2, slowMA);
CopyBuffer(handleADX, 0, 1, 2, adx); // Main ADX line
CopyBuffer(handleATR, 0, 0, 2, atr);

// Konfirmasi sinyal dengan timeframe lebih tinggi (H1)
2025-07-05T08:20:46+00:00
Channel Image
double h4FastMA = iMA(_Symbol, PERIOD_H1, FastMAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0);
double h4SlowMA = iMA(_Symbol, PERIOD_H1, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);

// Hitung level SL/TP berdasarkan ATR
double atrValue = atr[1];
double stopLoss = atrValue * 1.5;
double takeProfit = stopLoss * RewardRatio;

// Sinyal Trading
bool buySignal = false;
bool sellSignal = false;

// Konfirmasi trend kuat
if(adx[1] > MinADXLevel)
{
// Sinyal Buy: MA cepat memotong ke atas + konfirmasi H1
if(fastMA[1] > slowMA[1] && fastMA[0] <= slowMA[0] && h4FastMA > h4SlowMA)
buySignal = true;

// Sinyal Sell: MA cepat memotong ke bawah + konfirmasi H1
if(fastMA[1] < slowMA[1] && fastMA[0] >= slowMA[0] && h4FastMA < h4SlowMA)
sellSignal = true;
}

// Eksekusi order
if(buySignal)
{
double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
double sl = ask - stopLoss;
double tp = ask + takeProfit;
double lotSize = CalculateLotSize(stopLoss);

OpenTrade(ORDER_TYPE_BUY, lotSize, ask, sl, tp);
lastTradeTime = iTime(_Symbol, PERIOD_CURRENT, 0);
}
else if(sellSignal)
{
double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
double sl = bid + stopLoss;
double tp = bid - takeProfit;
double lotSize = CalculateLotSize(stopLoss);

OpenTrade(ORDER_TYPE_SELL, lotSize, bid, sl, tp);
lastTradeTime = iTime(_Symbol, PERIOD_CURRENT, 0);
}

// Update trailing stop
if(UseTrailingStop)
UpdateTrailingStop(atrValue);
}

//+------------------------------------------------------------------+
//| Hitung ukuran lot berdasarkan risiko |
//+------------------------------------------------------------------+
double CalculateLotSize(double stopLossPoints)
{
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double riskAmount = AccountInfoDouble(ACCOUNT_EQUITY) * (RiskPercent / 100);
double pointValue = SymbolInfoDouble(_Symbol, SYMBOL_POINT);

// Validasi untuk menghindari division by zero
if(stopLossPoints == 0 pointValue == 0 tickValue == 0)
return 0.01;

double lotSize = riskAmount / (stopLossPoints * tickValue * pointValue * pipValue);
return NormalizeDouble(lotSize, 2);
}

//+------------------------------------------------------------------+
//| Fungsi buka posisi |
//+------------------------------------------------------------------+
bool OpenTrade(ENUM_ORDER_TYPE orderType, double lotSize, double price, double sl, double tp)
{
// Validasi lot size
if(lotSize < SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN))
lotSize = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
if(lotSize > SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX))
lotSize = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);

MqlTradeRequest request = {0};
MqlTradeResult result = {0};

request.action = TRADE_ACTION_DEAL;
request.symbol = _Symbol;
request.volume = lotSize;
request.magic = MagicNumber;
request.comment = TradeComment;
request.type = orderType;
request.price = price;
request.sl = sl;
request.tp = tp;
request.type_filling = ORDER_FILLING_FOK;

if(!OrderSend(request, result))
{
Print("OrderSend error: ", GetLastError());
return false;
}
return true;
}

//+------------------------------------------------------------------+
//| Update trailing stop |
//+------------------------------------------------------------------+
void UpdateTrailingStop(double atrValue)
{
for(int i = PositionsTotal()-1; i >= 0; i--)
{
if(PositionSelectByTicket(PositionGetTicket(i)))
{
long magic;
PositionGetInteger(POSITION_MAGIC, magic);
string symbol = PositionGetString(POSITION_SYMBOL);

if(magic == MagicNumber && symbol == _Symbol)
{
2025-07-05T08:20:46+00:00
Channel Image
double currentSl = PositionGetDouble(POSITION_SL);
double newSl = 0;
double currentPrice = 0;

if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
{
currentPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID);
newSl = currentPrice - (atrValue * 1.2);
if(newSl > currentSl && newSl > PositionGetDouble(POSITION_PRICE_OPEN))
{
ModifyPosition(newSl, PositionGetDouble(POSITION_TP));
}
}
else
{
currentPrice = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
newSl = currentPrice + (atrValue * 1.2);
if((newSl < currentSl || currentSl == 0) && newSl < PositionGetDouble(POSITION_PRICE_OPEN))
{
ModifyPosition(newSl, PositionGetDouble(POSITION_TP));
}
}
}
}
}
}

//+------------------------------------------------------------------+
//| Modifikasi posisi terbuka |
//+------------------------------------------------------------------+
bool ModifyPosition(double sl, double tp)
{
MqlTradeRequest request = {0};
MqlTradeResult result = {0};

request.action = TRADE_ACTION_SLTP;
request.symbol = _Symbol;
request.sl = sl;
request.tp = tp;
request.position = PositionGetTicket(0);

if(!OrderSend(request, result))
{
Print("Modify error: ", GetLastError());
return false;
}
return true;
}

//+------------------------------------------------------------------+
//| Filter berita ekonomi |
//+------------------------------------------------------------------+
bool IsNewsTime()
{
if(NewsFilterHours <= 0) return false;

MqlDateTime currentTime;
TimeCurrent(currentTime);

// Contoh: nonaktifkan trading 2 jam sebelum/sesudah NFP
// Implementasi aktual memerlukan integrasi kalender ekonomi
if(currentTime.mon == 1 && currentTime.day <= 7 && currentTime.hour >= 12) // Contoh NFP Jumat pertama bulan
if(currentTime.hour >= 12 - NewsFilterHours && currentTime.hour <= 12 + NewsFilterHours)
return true;

return false;
}
//+------------------------------------------------------------------+
2025-07-05T08:20:46+00:00
Channel Image
NEW ORDER - XAUUSD Buy ========================== Entry Price: 1774.23 (0.01 Lots) No SL TP: 1776.23 (20 Pips) ========================== Max Win: 2.00 USD ( 0.13% )
2022-12-06T19:00:03+00:00
Channel Image
NEW ORDER - XAUUSD Buy

==========================
Entry Price: 1768.39 (0.01 Lots)
No SL
No TP
==========================
2022-12-06T19:00:02+00:00
Channel Image
NEW ORDER - XAUUSD Buy

==========================
Entry Price: 1774.23 (0.01 Lots)
No SL
TP: 1776.23 (20 Pips)
==========================
Max Win: 2.00 USD ( 0.13% )
2022-12-06T15:00:03+00:00

GPT Description

Related Video

No video available.

Item Reviews - 0

No reviews yet.

Add Review