demea_fixed@fxsignalspot.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «demea_fixed@fxsignalspot.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник отслеживает изменение цены закрытия текущего бара и при достижении заданного ценового движения в течение определённого интервала времени открывает сделки в направлении изменения цены. Для каждой сделки поддерживаются фиксированный тейк-профит, стоп-лосс и трейлинг-стоп.
Советник управляет открытыми ордерами, автоматически перемещая стоп-лоссы в соответствии с настроенным трейлингом. Также он отображает на графике информацию о чистом доходе за текущий и предыдущие дни, а также текущий баланс счёта.
Размер лота рассчитывается на основе процента риска от баланса счёта. Торговые операции выполняются через стандартный API MetaTrader 4 с обработкой ошибок и проверкой торгового контекста. Советник использует магические номера для разделения покупочных и продавцовских ордеров.
Настройки программы
| Настройка | Описание |
|---|---|
| cSeconds | Временной интервал — Временной интервал в секундах, в течение которого должно произойти ценовое движение для открытия ордера. |
| MinPriceShot | Минимальное ценовое движение — Минимальное ценовое движение в пунктах, при котором открывается новый ордер. |
| MaxOrdersCount | Максимальное количество ордеров — Максимальное количество одновременно открытых ордеров. |
| RiskPercent | Процент риска — Процент риска от баланса счёта, используемый для расчёта размера лота. |
| TakeProfit | Тейк-профит — Значение тейк-профита в пунктах для каждого ордера. |
| StopLoss | Стоп-лосс — Значение стоп-лосса в пунктах для каждого ордера. |
| TrailingStop | Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах для автоматического перемещения стоп-лосса. |
| Slippage | Допустимое проскальзывание — Допустимое отклонение цены исполнения ордера в пунктах. |
| BuyMagic | Магический номер покупок — Магический номер для идентификации покупательских ордеров, открытых советником. |
| SellMagic | Магический номер продаж — Магический номер для идентификации продавцовских ордеров, открытых советником. |
Поиск по коду файла
#import "stdlib.ex4"
string ErrorDescription(int a0);
#import
extern int cSeconds = 14;
extern int MinPriceShot = 6;
extern int MaxOrdersCount = 1;
extern double RiskPercent = 10.0;
double Gd_104 = 0.1;
extern int TakeProfit = 20;
extern int StopLoss = 15;
extern int TrailingStop = 3;
extern int Slippage = 3;
extern int BuyMagic = 25;
extern int SellMagic = 65;
int G_datetime_136 = 0;
double G_close_140 = -1.0;
string Gs_148 = "TT scalper ea";
double Gd_156;
int init() {
// код доступен только после оплаты
}
int deinit() {
return (0);
}
int start() {
// код доступен только после оплаты
}
int f0_9(int A_cmd_0, int A_magic_4) {
int count_8 = 0;
for (int pos_12 = OrdersTotal() - 1; pos_12 >= 0; pos_12--) {
if (!OrderSelect(pos_12, SELECT_BY_POS, MODE_TRADES)) Print("OrderSelect error : " + ErrorDescription(GetLastError()));
else {
if (OrderSymbol() == Symbol()) {
if (OrderType() == A_cmd_0)
if (OrderMagicNumber() == A_magic_4) count_8++;
}
}
}
return (count_8);
}
void f0_3(double A_lots_0) {
int error_8;
double price_16 = 0;
double price_24 = 0;
RefreshRates();
while (IsTradeContextBusy()) Sleep(1000);
int datetime_32 = TimeCurrent();
int ticket_12 = OrderSend(Symbol(), OP_BUY, A_lots_0, Ask, Slippage, 0, 0, "", BuyMagic, 0, Blue);
if (ticket_12 == -1) {
while (ticket_12 == -1 && TimeCurrent() - datetime_32 < 60 && !IsTesting()) {
error_8 = GetLastError();
Print("Error Opening BUY. (" + error_8 + ")" + ErrorDescription(error_8));
if (error_8 == 148/* TRADE_TOO_MANY_ORDERS */) return;
Sleep(1000);
while (IsTradeContextBusy()) Sleep(1000);
Print("??????");
RefreshRates();
ticket_12 = OrderSend(Symbol(), OP_BUY, A_lots_0, Ask, Slippage, 0, 0, "", BuyMagic, 0, Blue);
}
if (ticket_12 == -1) {
error_8 = GetLastError();
Print("Error opening BUY. (" + error_8 + ")" + ErrorDescription(error_8));
}
}
if (ticket_12 != -1) {
Print("Opened BUY for " + Symbol() + " " + Period() + " Lots " + DoubleToStr(A_lots_0, 2) + "!");
if (OrderSelect(ticket_12, SELECT_BY_TICKET, MODE_TRADES)) {
if (StopLoss != 0 || TakeProfit != 0) {
if (TakeProfit > 0) price_16 = f0_8(0);
if (StopLoss > 0) price_24 = Ask - StopLoss * Gd_156 - (Ask - Bid);
price_16 = f0_2(price_16);
price_24 = f0_2(price_24);
int status=OrderModify(ticket_12, OrderOpenPrice(), price_24, price_16, 0, Green);
}
}
}
}
void f0_5(double A_lots_0) {
int error_8;
double price_16 = 0;
double price_24 = 0;
RefreshRates();
while (IsTradeContextBusy()) Sleep(1000);
int datetime_32 = TimeCurrent();
int ticket_12 = OrderSend(Symbol(), OP_SELL, A_lots_0, Bid, Slippage, 0, 0, "", SellMagic, 0, Red);
if (ticket_12 == -1) {
while (ticket_12 == -1 && TimeCurrent() - datetime_32 < 60 && !IsTesting()) {
error_8 = GetLastError();
Print("Error opening SELL. (" + error_8 + ")" + ErrorDescription(error_8));
if (error_8 == 148/* TRADE_TOO_MANY_ORDERS */) return;
Sleep(1000);
while (IsTradeContextBusy()) Sleep(1000);
Print("??????");
RefreshRates();
ticket_12 = OrderSend(Symbol(), OP_SELL, A_lots_0, Bid, Slippage, 0, 0, "", SellMagic, 0, Red);
}
if (ticket_12 == -1) {
error_8 = GetLastError();
Print("Error opening SELL. (" + error_8 + ")" + ErrorDescription(error_8));
}
}
if (ticket_12 != -1) {
Print("Opened SELL for " + Symbol() + " " + Period() + " Lots " + DoubleToStr(A_lots_0, 2) + "!");
if (OrderSelect(ticket_12, SELECT_BY_TICKET, MODE_TRADES)) {
if (StopLoss != 0 || TakeProfit != 0) {
Показано первые 50% кода (символов: 8003)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.