286 lines
8.2 KiB
Markdown
286 lines
8.2 KiB
Markdown
# 🎯 Timeframe Entry System - Mode-Based & Flexible
|
|
|
|
## 📋 **Overview**
|
|
|
|
Sistem timeframe entry yang fleksibel dan cerdas yang memungkinkan pengguna memilih timeframe entry berdasarkan mode trading atau preferensi manual. Sistem ini memberikan kontrol penuh atas timeframe entry sambil tetap mempertahankan optimasi performa.
|
|
|
|
## 🔧 **Fitur Utama**
|
|
|
|
### **1. Mode-Based Timeframe Selection**
|
|
- **Mode 0 (Scalping)**: M1 & M5 only
|
|
- **Mode 1 (Intraday)**: M5 & M15
|
|
- **Mode 2 (Swing)**: M15 & H1
|
|
|
|
### **2. Flexible Entry Options**
|
|
- **Mode-Based**: Otomatis berdasarkan mode trading
|
|
- **Current Chart**: Entry pada timeframe chart yang dibuka
|
|
- **All Timeframes**: Entry pada semua timeframe (M1/M5/M15/H1)
|
|
- **Manual Selection**: Pilih timeframe secara manual
|
|
|
|
### **3. Priority System**
|
|
```
|
|
Mode-Based > Current Chart > All Timeframes > Manual
|
|
```
|
|
|
|
## 🎛️ **Parameter Input**
|
|
|
|
### **Timeframe Entry Settings**
|
|
```mql5
|
|
input group "=== Timeframe Entry Settings ==="
|
|
input bool UseModeBasedTimeframe = true; // Use Mode-Based Timeframe Selection
|
|
input bool EnableM1Entry = true; // Enable M1 Entry (Scalping)
|
|
input bool EnableM5Entry = true; // Enable M5 Entry (Intraday)
|
|
input bool EnableM15Entry = false; // Enable M15 Entry (Swing)
|
|
input bool EnableH1Entry = false; // Enable H1 Entry (Trend)
|
|
input bool UseCurrentChartTimeframe = false; // Use Current Chart Timeframe Only
|
|
input bool UseAllTimeframes = false; // Use All Available Timeframes
|
|
```
|
|
|
|
## 🎯 **Mode-Based Logic**
|
|
|
|
### **Mode 0: Scalping**
|
|
```mql5
|
|
if(UseModeBasedTimeframe && Mode == MODE_SCALPING) {
|
|
return (_Period == PERIOD_M1 || _Period == PERIOD_M5);
|
|
}
|
|
```
|
|
- **M1**: Entry sangat presisi untuk scalping
|
|
- **M5**: Balance antara presisi dan stabilitas
|
|
- **Alasan**: Butuh entry yang cepat dan akurat
|
|
|
|
### **Mode 1: Intraday**
|
|
```mql5
|
|
if(UseModeBasedTimeframe && Mode == MODE_INTRADAY) {
|
|
return (_Period == PERIOD_M5 || _Period == PERIOD_M15);
|
|
}
|
|
```
|
|
- **M5**: Setup dan entry untuk intraday
|
|
- **M15**: Konfirmasi trend untuk intraday
|
|
- **Alasan**: Menghindari noise M1, fokus pada setup yang solid
|
|
|
|
### **Mode 2: Swing**
|
|
```mql5
|
|
if(UseModeBasedTimeframe && Mode == MODE_SWING) {
|
|
return (_Period == PERIOD_M15 || _Period == PERIOD_H1);
|
|
}
|
|
```
|
|
- **M15**: Entry timing untuk swing
|
|
- **H1**: Trend analysis untuk swing
|
|
- **Alasan**: Swing trading butuh timeframe yang lebih tinggi
|
|
|
|
## 🔄 **Alternative Entry Modes**
|
|
|
|
### **Current Chart Timeframe**
|
|
```mql5
|
|
if(UseCurrentChartTimeframe) {
|
|
return true; // Allow entry on any timeframe that chart is opened
|
|
}
|
|
```
|
|
- **Fleksibilitas**: Entry pada timeframe chart yang dibuka
|
|
- **Kemudahan**: Tidak perlu setting manual
|
|
- **Cocok untuk**: Trader yang suka switching timeframe
|
|
|
|
### **All Timeframes**
|
|
```mql5
|
|
if(UseAllTimeframes) {
|
|
return (_Period == PERIOD_M1 || _Period == PERIOD_M5 ||
|
|
_Period == PERIOD_M15 || _Period == PERIOD_H1);
|
|
}
|
|
```
|
|
- **Maksimal**: Entry pada semua timeframe
|
|
- **Fleksibilitas**: Maksimal opportunity
|
|
- **Risiko**: Bisa terlalu banyak signal
|
|
|
|
### **Manual Selection**
|
|
```mql5
|
|
return ((EnableM1Entry && _Period == PERIOD_M1) ||
|
|
(EnableM5Entry && _Period == PERIOD_M5) ||
|
|
(EnableM15Entry && _Period == PERIOD_M15) ||
|
|
(EnableH1Entry && _Period == PERIOD_H1));
|
|
```
|
|
- **Kontrol**: Pilih timeframe secara manual
|
|
- **Presisi**: Sesuaikan dengan strategi pribadi
|
|
- **Kompleksitas**: Perlu setting manual
|
|
|
|
## 📊 **Dashboard Integration**
|
|
|
|
### **Entry Mode Display**
|
|
```mql5
|
|
string entryModeInfo = StringFormat("Entry Mode: %s", GetTimeframeEntryMode());
|
|
color entryModeColor = IsEntryTimeframe() ? clrLime : clrRed;
|
|
DrawLabel("entry_mode_info",10,baseY+324,entryModeInfo,entryModeColor,8);
|
|
```
|
|
|
|
### **Mode Descriptions**
|
|
- **Mode-Based: Scalping (M1/M5)**
|
|
- **Mode-Based: Intraday (M5/M15)**
|
|
- **Mode-Based: Swing (M15/H1)**
|
|
- **Current Chart TF: [TIMEFRAME]**
|
|
- **All Timeframes: M1/M5/M15/H1**
|
|
- **Manual: [ENABLED TIMEFRAMES]**
|
|
|
|
## 🎯 **Usage Examples**
|
|
|
|
### **Scenario 1: Scalping Mode**
|
|
```
|
|
Mode: 0 (Scalping)
|
|
UseModeBasedTimeframe: true
|
|
Result: Entry hanya pada M1 & M5
|
|
Dashboard: "Entry Mode: Mode-Based: Scalping (M1/M5)"
|
|
```
|
|
|
|
### **Scenario 2: Intraday Mode**
|
|
```
|
|
Mode: 1 (Intraday)
|
|
UseModeBasedTimeframe: true
|
|
Result: Entry hanya pada M5 & M15
|
|
Dashboard: "Entry Mode: Mode-Based: Intraday (M5/M15)"
|
|
```
|
|
|
|
### **Scenario 3: Current Chart Mode**
|
|
```
|
|
UseCurrentChartTimeframe: true
|
|
Chart: M15
|
|
Result: Entry pada M15
|
|
Dashboard: "Entry Mode: Current Chart TF: M15"
|
|
```
|
|
|
|
### **Scenario 4: Manual Selection**
|
|
```
|
|
UseModeBasedTimeframe: false
|
|
EnableM5Entry: true
|
|
EnableM15Entry: true
|
|
Result: Entry pada M5 & M15
|
|
Dashboard: "Entry Mode: Manual: M5 M15"
|
|
```
|
|
|
|
## ⚙️ **Configuration Recommendations**
|
|
|
|
### **Scalping (Mode 0)**
|
|
```mql5
|
|
UseModeBasedTimeframe = true
|
|
UseCurrentChartTimeframe = false
|
|
UseAllTimeframes = false
|
|
// M1 & M5 akan otomatis aktif
|
|
```
|
|
|
|
### **Intraday (Mode 1)**
|
|
```mql5
|
|
UseModeBasedTimeframe = true
|
|
UseCurrentChartTimeframe = false
|
|
UseAllTimeframes = false
|
|
// M5 & M15 akan otomatis aktif
|
|
```
|
|
|
|
### **Swing (Mode 2)**
|
|
```mql5
|
|
UseModeBasedTimeframe = true
|
|
UseCurrentChartTimeframe = false
|
|
UseAllTimeframes = false
|
|
// M15 & H1 akan otomatis aktif
|
|
```
|
|
|
|
### **Flexible Trading**
|
|
```mql5
|
|
UseModeBasedTimeframe = false
|
|
UseCurrentChartTimeframe = true
|
|
UseAllTimeframes = false
|
|
// Entry pada timeframe chart yang dibuka
|
|
```
|
|
|
|
### **Maximum Opportunity**
|
|
```mql5
|
|
UseModeBasedTimeframe = false
|
|
UseCurrentChartTimeframe = false
|
|
UseAllTimeframes = true
|
|
// Entry pada semua timeframe
|
|
```
|
|
|
|
## 🔍 **Validation & Safety**
|
|
|
|
### **Input Validation**
|
|
```mql5
|
|
int activeModes = 0;
|
|
if(UseModeBasedTimeframe) activeModes++;
|
|
if(UseCurrentChartTimeframe) activeModes++;
|
|
if(UseAllTimeframes) activeModes++;
|
|
if(!UseModeBasedTimeframe && !UseCurrentChartTimeframe && !UseAllTimeframes) activeModes++;
|
|
|
|
if(activeModes > 1) {
|
|
EssentialLog("⚠️ WARNING: Multiple timeframe entry modes enabled!");
|
|
EssentialLog(" Priority: Mode-Based > Current Chart > All Timeframes > Manual");
|
|
}
|
|
```
|
|
|
|
### **Priority System**
|
|
1. **Mode-Based**: Jika aktif, gunakan mode-based logic
|
|
2. **Current Chart**: Jika mode-based tidak aktif, gunakan current chart
|
|
3. **All Timeframes**: Jika keduanya tidak aktif, gunakan all timeframes
|
|
4. **Manual**: Jika semua tidak aktif, gunakan manual selection
|
|
|
|
## 📈 **Performance Benefits**
|
|
|
|
### **1. Optimized Detection**
|
|
- Confirmation hanya pada timeframe entry yang aktif
|
|
- Reduced computational load
|
|
- Faster signal processing
|
|
|
|
### **2. Focused Analysis**
|
|
- Entry pada timeframe yang sesuai dengan mode
|
|
- Reduced false signals
|
|
- Better signal quality
|
|
|
|
### **3. Flexible Control**
|
|
- User dapat menyesuaikan dengan preferensi
|
|
- Easy switching between modes
|
|
- No code modification required
|
|
|
|
## 🎯 **Best Practices**
|
|
|
|
### **1. Mode Selection**
|
|
- **Scalping**: Gunakan Mode 0 dengan M1/M5
|
|
- **Intraday**: Gunakan Mode 1 dengan M5/M15
|
|
- **Swing**: Gunakan Mode 2 dengan M15/H1
|
|
|
|
### **2. Parameter Tuning**
|
|
- **UseModeBasedTimeframe**: Aktifkan untuk mode-based logic
|
|
- **UseCurrentChartTimeframe**: Aktifkan untuk fleksibilitas
|
|
- **UseAllTimeframes**: Aktifkan untuk maksimal opportunity
|
|
|
|
### **3. Monitoring**
|
|
- **Dashboard**: Monitor entry mode status
|
|
- **Logs**: Perhatikan warning jika multiple modes aktif
|
|
- **Performance**: Monitor signal quality per timeframe
|
|
|
|
## 🔄 **Future Enhancements**
|
|
|
|
### **1. Adaptive Timeframe**
|
|
- Otomatis switch timeframe berdasarkan market conditions
|
|
- Volatility-based timeframe selection
|
|
- Performance-based optimization
|
|
|
|
### **2. Pair-Specific Timeframes**
|
|
- Timeframe berbeda untuk pair berbeda
|
|
- XAUUSD: M1/M5
|
|
- BTCUSD: M5/M15
|
|
- Forex: M5/M15
|
|
|
|
### **3. Advanced Priority System**
|
|
- Weighted timeframe selection
|
|
- Market session-based selection
|
|
- News event-based selection
|
|
|
|
## 📊 **Conclusion**
|
|
|
|
Sistem timeframe entry yang fleksibel ini memberikan:
|
|
|
|
1. **✅ Mode-Based Logic**: Otomatis sesuai mode trading
|
|
2. **✅ Flexible Options**: Berbagai pilihan entry mode
|
|
3. **✅ Performance Optimization**: Confirmation hanya pada timeframe yang diperlukan
|
|
4. **✅ User Control**: Kontrol penuh atas timeframe entry
|
|
5. **✅ Dashboard Integration**: Informasi real-time di dashboard
|
|
6. **✅ Safety Validation**: Validasi input dan priority system
|
|
|
|
**Sistem ini membuat SmartBot lebih fleksibel dan user-friendly sambil tetap mempertahankan performa yang optimal!**
|
|
|