bambang aryawan v2@lifeindreamsworld.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «bambang aryawan v2@lifeindreamsworld.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный советник для MetaTrader 4 реализует стратегию усреднения с мартингейлом. При отсутствии открытых позиций он определяет направление на основе сравнения закрытия текущей свечи M30 с дневным High/Low предыдущего дня: если закрытие выше предыдущего дневного максимума — открывается продажа, если ниже минимума — покупка. При наличии открытых позиций советник добавляет усредняющие ордера с заданным шагом и увеличением лота по мартингейлу.
Советник включает несколько систем управления рисками: закрытие позиций по процентной просадке от эквити, ежедневная цель прибыли и лимит убытка, рассчитываемые от баланса. При достижении заданных порогов торговля блокируется до появления новой дневной свечи. Все параметры настраиваются из интерфейса платформы.
Торговые операции выполняются через стандартные функции OrderSend и OrderClose с проверкой свободного маржинального баланса и допустимого объёма лотов. Советник также проверяет ограничение брокера на количество открытых ордеров перед каждой попыткой входа в позицию.
Настройки программы
| Настройка | Описание |
|---|---|
| LotSize | Начальный размер лота для первой позиции. Корректируется в пределах минимального и максимального лота, допустимого брокером. |
| Martingale | Множитель мартингейла, определяющий увеличение размера лота при каждом последующем усредняющем ордере. |
| JarakStepOrders | Расстояние в пунктах между усредняющими ордерами. Если заданное значение меньше минимального стоп-уровя брокера, используется минимально допустимое расстояние. |
| MaxOrders | Максимальное количество открытых ордеров одного типа (Buy или Sell), которые советник допускает на символе. |
| UseCloseOffMaxDD | Переключатель автоматического закрытия всех позиций при превышении заданного процента максимальной просадки (DrawdownPercent). |
| DrawdownPercent | Процент просадки эквити от баланса, при превышении которого происходит автоматическое закрытие всех открытых позиций (если включён параметр UseCloseOffMaxDD). |
| UsePercentTP | Переключатель закрытия позиций при достижении процентной прибыли от баланса (PercentTP). |
| PercentTP | Процент прибыли от баланса, при достижении которого все позиции закрываются (если включён параметр UsePercentTP). |
| UsePercentSL | Переключатель закрытия позиций при достижении процентного убытка от баланса (PercentSL). |
| PercentSL | Процент убытка от баланса, при достижении которого все позиции закрываются (если включён параметр UsePercentSL). |
| UseDailyTargetPercent | Переключатель ежедневной цели прибыли. При достижении DailyTargetPercent торговля блокируется до новой дневной свечи. |
| DailyTargetPercent | Целевой процент ежедневной прибыли от баланса аккаунта. При достижении этого порога торговля блокируется до появления новой дневной свечи (если включён параметр UseDailyTargetPercent). |
| UseDailyLossPercent | Переключатель ежедневного лимита убытка. При достижении DailyLossPercent торговля блокируется до новой дневной свечи. |
| DailyLossPercent | Максимальный процент ежедневного убытка от баланса аккаунта. При достижении этого порога торговля блокируется до появления новой дневной свечи (если включён параметр UseDailyLossPercent). |
| MaxOrderHistoryDays | Максимальное количество дней истории ордеров, учитываемых при расчёте ежедневной прибыли и убытка. |
| Slippage | Допустимое проскальзывание цены в пунктах при открытии и закрытии ордеров. |
| MagicNumber | Магический номер, используемый для идентификации ордеров, открытых данным советником, при фильтрации на символе. |
Поиск по коду файла
#property version "2.00"
#property description " EA Averaging martingale based of HiLo"
#property strict
/*
* last version v1 *
This EA is based on a request by om bambang aryawan ,
the rule is if close is greater than the previous high, run averaging sell martingale,
if close is smaller than the previous low, run averaging buy martingale.
close is by percent ,
distance between orders can be adjusted,
this EA is guaranteed zero error and zero warning ,
guaranteed 100% passes publishing on MQL5 market place ,
I created this EA so that friends can learn to become professional EA sellers in the market place .
* revisi logic v2 *
-if M30 close is lower than previous day's low candle, open sell
-if M30 close is higher than previous day's high candle, open sell
-add daily target profit by percent
-add daily stop loss by percent
***Trading Risk Disclaimer***
Foreign exchange, stock, commodity, and other financial instruments trading involves high risk and is not suitable for all investors.
Before deciding to participate in the financial markets, you must consider your investment goals, experience level,
and risk tolerance carefully. There is a possibility that you may experience losses from 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_TRAПоказано первые 50% кода (символов: 11619)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.