bambang aryawan v2.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «bambang aryawan v2.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Bambang Aryawan V2 — это торговый советник для MetaTrader 4, реализующий стратегию усреднения с мартингейлом на основе ценовых уровней High/Low. При каждом тике советник сравнивает закрытие таймфрейма M30 с предыдущим дневным максимумом или минимумом: если закрытие выше предыдущего High — открывается продажа, если ниже предыдущего Low — открывается покупка. Далее при движении цены против позиции запускается механизм усреднения с увеличением лота.
Советник предоставляет гибкое управление рисками: закрытие всех позиций по процентному тейк-профиту или стоп-лоссу, закрытие при превышении заданной просадки, а также дневные лимиты прибыли и убытка. При достижении дневной цели или лимита убытка торговля приостанавливается до появления нового дневного бара. Все параметры настраиваются из внешних переменных.
Встроены проверки допустимости объёма сделки, проверки свободного маржинального баланса и контроль количества ордеров. Советник использует стандартные торговые функции MetaTrader 4 для отправки, закрытия и удаления ордеров. Лот-размер автоматически нормализуется в соответствии с ограничениями брокера.
Настройки программы
| Настройка | Описание |
|---|---|
| LotSize | Начальный размер лота — Начальный размер лота для первой позиции. Нормализуется в соответствии с ограничениями брокера. |
| Martingale | Коэффициент мартингейла — Коэффициент увеличения лота при каждом последующем усреднении. Например, значение 1.2 увеличивает лот на 20%. |
| JarakStepOrders | Шаг между усреднёнными ордерами (пункты) — Расстояние между усреднёнными ордерами, выраженное в пунктах. Используется при добавлении позиций в рамках усреднения. |
| MaxOrders | Максимальное количество ордеров — Максимальное количество одновременно открытых ордеров одного типа, разрешённых советником. |
| UseCloseOffMaxDD | Закрытие при превышении просадки — Переключатель автоматического закрытия всех ордеров при превышении максимальной просадки, заданной параметром DrawdownPercent. |
| DrawdownPercent | Процент максимальной просадки — Процент просадки от баланса, при превышении которого все ордера закрываются автоматически. |
| UsePercentTP | Включить тейк-профит по проценту — Переключатель тейк-профита по процентному соотношению прибыли от баланса. |
| PercentTP | Процент тейк-профита от баланса — Процент прибыли от баланса, при достижении которого все ордера закрываются. Активируется параметром UsePercentTP. |
| UsePercentSL | Включить стоп-лосс по проценту — Переключатель стоп-лосса по процентному соотношению убытка от баланса. |
| PercentSL | Процент стоп-лосса от баланса — Процент убытка от баланса, при достижении которого все ордера закрываются. Активируется параметром UsePercentSL. |
| UseDailyTargetPercent | Включить дневную цель прибыли — Переключатель дневной цели прибыли. При достижении цели DailyTargetPercent торговля приостанавливается до нового дневного бара. |
| DailyTargetPercent | Дневная цель прибыли (%) — Целевая дневная прибыль в процентах от баланса. При достижении цели торговля приостанавливается до нового дневного бара. |
| UseDailyLossPercent | Включить дневной лимит убытка — Переключатель дневного лимита убытка. При достижении лимита DailyLossPercent торговля приостанавливается до нового дневного бара. |
| DailyLossPercent | Дневной лимит убытка (%) — Максимальный дневной убыток в процентах от баланса. При достижении этого лимита торговля приостанавливается до нового дневного бара. |
| MaxOrderHistoryDays | Количество дней для проверки истории ордеров — Количество дней истории ордеров, учитываемых при расчёте дневной прибыли и убытка. |
| Slippage | Допустимое проскальзывание (пункты) — Допустимое проскальзывание цены при отправке ордеров, измеряемое в пунктах. |
| MagicNumber | Магический номер — Магический номер для идентификации ордеров, открытых данным советником. |
Поиск по коду файла
#property version "2.00"
#property description " EA Averaging martingale based of HiLo"
#property strict
/*
* last version v1 *
EA ini Based on Request by om bambang aryawan ,
the rule is if close is greater than previous high run averaging sell martingale,
if close is smaller than previous low run averaging buy martingale.
close by percent ,
distance between orders can be adjusted,
this EA is guaranteed zero errors and zero warnings ,
guaranteed 100% pass publish mql5 market place ,
I created this EA so friends can learn to become professional EA sellers in the market place .
* logic revision v2 *
-close m30 smaller than previous day candle low op sell
-close m30 greater than previous day candle high op sell
-add daily target profit by percent
-add daily stop loss by percent
***Trading Risk Disclaimer***
Trading forex, stocks, commodities, and other financial instruments involves high risk and is not suitable for all investors.
Before deciding to participate in the financial markets, you should carefully consider your investment objectives, level of experience,
and risk tolerance. There is a possibility that you may lose part or all of your initial investment,
therefore you should not invest money that you cannot afford to lose.
*/
#import "stdlib.ex4"
string ErrorDescription(int errorcode);
#import
enum Opsi
{
Yes = 1,
No = 0
};
extern double LotSize = 0.01;
extern double Martingale = 1.2;
extern double JarakStepOrders = 10;
extern int MaxOrders = 100;
extern Opsi UseCloseOffMaxDD = No;
extern double DrawdownPercent = 30;
extern Opsi UsePercentTP = Yes;
extern double PercentTP = 0.03;
extern Opsi UsePercentSL = No;
extern double PercentSL = 0;
extern bool UseDailyTargetPercent = true;
extern double DailyTargetPercent = 0.1; // Target keuntungan harian dalam persen
extern bool UseDailyLossPercent = false;
extern double DailyLossPercent = 0.5; // Batas kerugian harian dalam persen
extern int MaxOrderHistoryDays = 1; // Maksimal hari untuk memeriksa order historis
extern int Slippage = 5;
extern int MagicNumber = 0;
bool ControlFlag = true; // ControlFlag
double AutoPoint;
int getlasterror;
int tiket;
double price;
string error;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
}
void OnTick()
{
// код доступен только после оплаты
}
double FindLastOrderPrice(int orderType) //Function to find price value based on order type
{
double lastOrderPrice = 0;
int prevTicket = 0;
for (int i = OrdersTotal() - 1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == orderType)
{
int curTicket = OrderTicket();
if (curTicket > prevTicket)
{
lastOrderPrice = OrderOpenPrice();
prevTicket = curTicket;
}
}
}
}
return lastOrderPrice;
}
void CloseAllOrders(int orderType) // Fungsi untuk menutup semua pesanan dengan tipe tertentu
{
for (int i = OrdersTotal() - 1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS) && OrderType() == orderType)
{
if(!OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), Slippage))
{
Print("gagal close");
}
}
}
}
void DeletePoOrders(int orderType) // Fungsi untuk menutup semua pesanan dengan tipe tertentu
{
for (int i = OrdersTotal() - 1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS) && OrderType() == orderType)
{
if(!OrderDelete(OrderTicket(), clrGray))
{
Print("gagal Delete PO");
}
}
}
}
int jumlahorder(int tipe) // fungsi menghitung jumlah order.
{
int total = 0;
for (int i = 0; i < OrdersTotal(); i++)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol(Показано первые 50% кода (символов: 11562)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.