MQL госпиталь (бывшая "Больничка"): исправляем ошибки

AlanG

Элитный участник
Здравствуйте! подправьте пожалуйста.

Рабочий он!!:angry:
Для работы индикатора следует положить файлы
PriceSeries.mqh
в папку (директорию): \include\
MAMA_NK.mq4
Heiken Ashi#.mq4
в папку (директорию):\indicators\

лови не достающие файлы;)
IPC = 4;/* Выбор цен, по которым производится расчёт индикатора
(0-CLOSE, 1-OPEN, 2-HIGH, 3-LOW, 4-MEDIAN, 5-TYPICAL, 6-WEIGHTED,
7-Heiken Ashi Close, 8-SIMPL, 9-TRENDFOLLOW, 10-0.5*TRENDFOLLOW,
11-Heiken Ashi Low, 12-Heiken Ashi High, 13-Heiken Ashi Open,
14-Heiken Ashi Close, 15-Heiken Ashi Open0.) */
 

Вложения

Последнее редактирование:

naikvijays

Активный участник
Здравствуйте! подпрвьте пожалуйста.

исправлены здесь

Для полного по функциональности нужно файлы, которые будут помещены в папку, в пост # 1381 от Аланге
 

Вложения

Последнее редактирование:

coler

Интересующийся
Pomoghite pojaluista. Dabavte v robot trailingstop. Stob po otkritie ordera stavleal srazu trailing stop. Sp

Esli eseo mojete, kogda poeavitsea signal po indikatoru, otkriti order i srazu je vstavil trailingstop,stoploss,i takeprofit. I esli order zakrilsea, stob ne otkrival drughie ordera do poevlenia sledusego signala po indikatoru "beforexguru.mq4". Sp bolisoe.

KTOTA POMEJET?????
 

MAYORZ

Местный знаток
Рабочий он!!:angry:
Для работы индикатора следует положить файлы
PriceSeries.mqh
в папку (директорию): \include\
MAMA_NK.mq4
Heiken Ashi#.mq4
в папку (директорию):\indicators\

лови не достающие файлы;)
IPC = 4;/* Выбор цен, по которым производится расчёт индикатора
(0-CLOSE, 1-OPEN, 2-HIGH, 3-LOW, 4-MEDIAN, 5-TYPICAL, 6-WEIGHTED,
7-Heiken Ashi Close, 8-SIMPL, 9-TRENDFOLLOW, 10-0.5*TRENDFOLLOW,
11-Heiken Ashi Low, 12-Heiken Ashi High, 13-Heiken Ashi Open,
14-Heiken Ashi Close, 15-Heiken Ashi Open0.) */

Индикаторы в терминале с серыми ромбиками в правом нижнем углу. Индикатор Heiken Ashi#.ex4 не устанавливается. Если есть в формате mq4 - просьба выложить.
 

AlanG

Элитный участник
Индикаторы в терминале с серыми ромбиками в правом нижнем углу. Индикатор Heiken Ashi#.ex4 не устанавливается. Если есть в формате mq4 - просьба выложить.

хенекен у меня ток такой но все работает:)


MAMA_NK.mq4 может и без хенекен работать просто ставь 1,2,3,или 4,5 ,6
или обычный хенекен пере именуй по пробуй;)
 
Последнее редактирование:

MAYORZ

Местный знаток
MAMA_NK.mq4 и MAMAXX_NK.mq4 в терминале с серыми ромбиками. установил всё как рекомендовали в пост №1381. Непонятно чего не хватает.
 

RoboMaks

Элитный участник

Вложения

  • USDJPYM5.png
    USDJPYM5.png
    44,1 КБ · Просмотры: 258
  • Template_Wav e - v1.mq4
    Template_Wav e - v1.mq4
    26,7 КБ · Просмотры: 69

rich

Активный участник
Доброго времени суток.
Исправте индикатор.В папке лежит,а в терминале нет.
 

Вложения

kaprall

Местный знаток

Вложения

AlexK11

Интересующийся
Господа!
Не могли бы Вы исправить в советнике вместо открытия ордеров BuyStop и SellStop
должны открываться лимитники для работы внутрь диапазона BuyLimit и SellLimit


/*
G e n e r a t e d by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
Website: H Tt P : // W w W. meTaQ Uo T es. n E T
E-mail : SU P p Ort@m E t aqUo Te s. Net
*/
#property copyright "Copyright © 2009, Expforex"
#property link "http://expforex.at.ua"

extern bool BuyStopOpen = TRUE;
extern bool SellStopOpen = TRUE;
extern int Distance = 20;
extern int TPBuyStop = 0;
extern int SLBuyStop = 0;
extern int TPSellStop = 0;
extern int SLSellStop = 0;
extern bool CloseAfterOpen = FALSE;
extern double Lots = 0.1;
extern int Slippage = 1;
extern int Magic = 1;
extern bool CloseIfNotOpen = TRUE;
extern bool OpenAtTime = TRUE;
extern string TimetoOpen = "12:30";
extern bool CloseAtTime = TRUE;
extern string TimetoClose = "15:30";
double Gd_152;
double Gd_160;
int G_ticket_168;
int G_ticket_172;

int start() {
int order_total_4;
if (StrToTime(TimetoOpen) == TimeCurrent() && MagicTotalOrder(Magic, 1) && OpenAtTime) {
if (CloseIfNotOpen) DeleteOrders("", -1, -1);
if (BuyStopOpen) {
if (SLBuyStop > 0) Gd_152 = Ask + Distance * Point - SLBuyStop * Point;
else Gd_152 = 0;
if (TPBuyStop > 0) Gd_160 = Ask + Distance * Point + TPBuyStop * Point;
else Gd_160 = 0;
G_ticket_172 = SetOrder("", OP_BUYSTOP, Lots, Ask + Distance * Point, Gd_152, Gd_160, Magic);
}
if (SellStopOpen) {
if (SLSellStop > 0) Gd_152 = Bid - Distance * Point + SLSellStop * Point;
else Gd_152 = 0;
if (TPSellStop > 0) Gd_160 = Bid - Distance * Point - TPSellStop * Point;
else Gd_160 = 0;
G_ticket_168 = SetOrder("", OP_SELLSTOP, Lots, Bid - Distance * Point, Gd_152, Gd_160, Magic);
}
}
if (StrToTime(TimetoClose) == TimeCurrent() && CloseAtTime) {
if (BuyStopOpen) CPD("", OP_BUY, Magic);
if (SellStopOpen) CPD("", OP_SELL, Magic);
}
if (CloseAfterOpen) {
order_total_4 = OrdersTotal();
for (int pos_0 = order_total_4 - 1; pos_0 >= 0; pos_0--) {
if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType() == OP_BUY && OrderTicket() == G_ticket_172) OrderDelete(G_ticket_168);
if (OrderType() == OP_SELL && OrderTicket() == G_ticket_168) OrderDelete(G_ticket_172);
}
}
}
return (0);
}

int SetOrder(string A_symbol_0, int A_cmd_8, double A_lots_12, double A_price_20, double A_price_28 = 0.0, double A_price_36 = 0.0, int A_magic_44 = 0, int A_datetime_48 = 0, string A_comment_52 = "") {
color color_60;
int datetime_64;
double ask_68;
double bid_76;
double point_84;
int error_92;
int ticket_100;
if (A_symbol_0 == "" || A_symbol_0 == "0") A_symbol_0 = Symbol();
int stoplevel_104 = MarketInfo(A_symbol_0, MODE_STOPLEVEL);
if (A_datetime_48 > 0 && A_datetime_48 < TimeCurrent()) A_datetime_48 = 0;
for (int Li_96 = 1; Li_96 <= 1; Li_96++) {
if ((!IsTesting()) && (!IsExpertEnabled()) || IsStopped()) {
Print("SetOrder(): Остановка работы функции");
break;
}
while (!IsTradeAllowed()) Sleep(5000);
RefreshRates();
datetime_64 = TimeCurrent();
ticket_100 = OrderSend(A_symbol_0, A_cmd_8, A_lots_12, A_price_20, Slippage, A_price_28, A_price_36, A_comment_52, A_magic_44, A_datetime_48, color_60);
if (ticket_100 > 0) return (ticket_100);
error_92 = GetLastError();
if (error_92 == 128/* TRADE_TIMEOUT */ || error_92 == 142 || error_92 == 143) {
Sleep(66000);
if (ExistOrders(A_symbol_0, A_cmd_8, A_magic_44, datetime_64)) break;
} else {
point_84 = MarketInfo(A_symbol_0, MODE_POINT);
ask_68 = MarketInfo(A_symbol_0, MODE_ASK);
bid_76 = MarketInfo(A_symbol_0, MODE_BID);
if (ask_68 == 0.0 && bid_76 == 0.0) Comment("SetOrder(): Проверьте в обзоре рынка наличие символа " + A_symbol_0);
if (error_92 == 130/* INVALID_STOPS */) {
switch (A_cmd_8) {
case OP_BUYLIMIT:
if (A_price_20 > ask_68 - stoplevel_104 * point_84) A_price_20 = ask_68 - stoplevel_104 * point_84;
if (A_price_28 > A_price_20 - (stoplevel_104 + 1) * point_84) A_price_28 = A_price_20 - (stoplevel_104 + 1) * point_84;
if (!(A_price_36 > 0.0 && A_price_36 < A_price_20 + (stoplevel_104 + 1) * point_84)) break;
A_price_36 = A_price_20 + (stoplevel_104 + 1) * point_84;
break;
case OP_BUYSTOP:
if (A_price_20 < ask_68 + (stoplevel_104 + 1) * point_84) A_price_20 = ask_68 + (stoplevel_104 + 1) * point_84;
if (A_price_28 > A_price_20 - (stoplevel_104 + 1) * point_84) A_price_28 = A_price_20 - (stoplevel_104 + 1) * point_84;
if (!(A_price_36 > 0.0 && A_price_36 < A_price_20 + (stoplevel_104 + 1) * point_84)) break;
A_price_36 = A_price_20 + (stoplevel_104 + 1) * point_84;
break;
case OP_SELLLIMIT:
if (A_price_20 < bid_76 + stoplevel_104 * point_84) A_price_20 = bid_76 + stoplevel_104 * point_84;
if (A_price_28 > 0.0 && A_price_28 < A_price_20 + (stoplevel_104 + 1) * point_84) A_price_28 = A_price_20 + (stoplevel_104 + 1) * point_84;
if (A_price_36 <= A_price_20 - (stoplevel_104 + 1) * point_84) break;
A_price_36 = A_price_20 - (stoplevel_104 + 1) * point_84;
break;
case OP_SELLSTOP:
if (A_price_20 > bid_76 - stoplevel_104 * point_84) A_price_20 = bid_76 - stoplevel_104 * point_84;
if (A_price_28 > 0.0 && A_price_28 < A_price_20 + (stoplevel_104 + 1) * point_84) A_price_28 = A_price_20 + (stoplevel_104 + 1) * point_84;
if (A_price_36 <= A_price_20 - (stoplevel_104 + 1) * point_84) break;
A_price_36 = A_price_20 - (stoplevel_104 + 1) * point_84;
}
Print("SetOrder(): Скорректированы ценовые уровни");
}
if (error_92 == 2/* COMMON_ERROR */ || error_92 == 64/* ACCOUNT_DISABLED */ || error_92 == 65/* INVALID_ACCOUNT */ || error_92 == 133/* TRADE_DISABLED */) break;
if (error_92 == 4/* SERVER_BUSY */ || error_92 == 131/* INVALID_TRADE_VOLUME */ || error_92 == 132/* MARKET_CLOSED */) {
Sleep(300000);
break;
}
if (error_92 == 8/* TOO_FREQUENT_REQUESTS */ || error_92 == 141/* TOO_MANY_REQUESTS */) Sleep(100000);
if (error_92 == 139/* ORDER_LOCKED */ || error_92 == 140/* LONG_POSITIONS_ONLY_ALLOWED */ || error_92 == 148/* TRADE_TOO_MANY_ORDERS */) break;
if (error_92 == 146/* TRADE_CONTEXT_BUSY */) while (IsTradeContextBusy()) Sleep(11000);
if (error_92 == 147/* TRADE_EXPIRATION_DENIED */) A_datetime_48 = 0;
else
if (error_92 != 135/* PRICE_CHANGED */ && error_92 != 138/* REQUOTE */) Sleep(7700.0);
}
}
return (0);
}

void CPBS() {
bool is_closed_0;
color color_4;
double order_lots_8;
double price_16;
double price_24;
double price_32;
int error_40;
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
for (int Li_44 = 1; Li_44 <= 1; Li_44++) {
if (!IsTesting() && (!IsExpertEnabled()) || IsStopped()) break;
while (!IsTradeAllowed()) Sleep(5000);
RefreshRates();
price_16 = MarketInfo(OrderSymbol(), MODE_ASK);
price_24 = MarketInfo(OrderSymbol(), MODE_BID);
if (OrderType() == OP_BUY) price_32 = price_24;
else price_32 = price_16;
order_lots_8 = OrderLots();
is_closed_0 = OrderClose(OrderTicket(), order_lots_8, price_32, Slippage, color_4);
if (is_closed_0) break;
error_40 = GetLastError();
if (error_40 == 146/* TRADE_CONTEXT_BUSY */) while (IsTradeContextBusy()) Sleep(11000);
Sleep(5000);
}
} else Print("Некорректная торговая операция. Close ", OrderType());
}

void CPD(string As_0 = "", int A_cmd_8 = -1, int A_magic_12 = -1) {
int order_total_20 = OrdersTotal();
if (As_0 == "0") As_0 = Symbol();
for (int pos_16 = order_total_20 - 1; pos_16 >= 0; pos_16--) {
if (OrderSelect(pos_16, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == As_0 || As_0 == "" && A_cmd_8 < OP_BUY || OrderType() == A_cmd_8) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
if (A_magic_12 < 0 || OrderMagicNumber() == A_magic_12) CPBS();
}
}
}
}

int MagicTotalOrder(int A_magic_0, int Ai_4) {
int Li_16;
int order_total_12 = OrdersTotal();
for (int pos_8 = 0; pos_8 < order_total_12; pos_8++) {
if (OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES))
if (OrderMagicNumber() == A_magic_0) Li_16++;
}
if (Li_16 < Ai_4) return (1);
return (0);
}

int ExistOrders(string As_0 = "", int A_cmd_8 = -1, int A_magic_12 = -1, int Ai_16 = 0) {
int cmd_28;
int order_total_24 = OrdersTotal();
if (As_0 == "0") As_0 = Symbol();
for (int pos_20 = 0; pos_20 < order_total_24; pos_20++) {
if (OrderSelect(pos_20, SELECT_BY_POS, MODE_TRADES)) {
cmd_28 = OrderType();
if (cmd_28 > OP_SELL && cmd_28 < 6) {
if (OrderSymbol() == As_0 || As_0 == "" && A_cmd_8 < OP_BUY || cmd_28 == A_cmd_8) {
if (A_magic_12 < 0 || OrderMagicNumber() == A_magic_12)
if (Ai_16 <= OrderOpenTime()) return (1);
}
}
}
}
return (0);
}

void DeleteOrders(string As_0 = "", int A_cmd_8 = -1, int A_magic_12 = -1) {
bool is_deleted_16;
int error_20;
int cmd_36;
int order_total_32 = OrdersTotal();
if (As_0 == "0") As_0 = Symbol();
for (int pos_24 = order_total_32 - 1; pos_24 >= 0; pos_24--) {
if (OrderSelect(pos_24, SELECT_BY_POS, MODE_TRADES)) {
cmd_36 = OrderType();
if (cmd_36 > OP_SELL && cmd_36 < 6) {
if (OrderSymbol() == As_0 || As_0 == "" && A_cmd_8 < OP_BUY || cmd_36 == A_cmd_8) {
if (A_magic_12 < 0 || OrderMagicNumber() == A_magic_12) {
for (int Li_28 = 1; Li_28 <= 1; Li_28++) {
if (!IsTesting() && (!IsExpertEnabled()) || IsStopped()) break;
while (!IsTradeAllowed()) Sleep(5000);
is_deleted_16 = OrderDelete(OrderTicket());
if (is_deleted_16) break;
error_20 = GetLastError();
Sleep(5000);
}
}
}
}
}
}
}
 
Последнее редактирование модератором:

MAYORZ

Местный знаток
В соседней ветке выложили часы. Подправьте пожалуйста.
 

Вложения

AlanG

Элитный участник
Господа!
Не могли бы Вы исправить в советнике вместо открытия ордеров BuyStop и SellStop
должны открываться лимитники для работы внутрь диапазона BuyLimit и SellLimit
Господа!
Не могли бы Вы исправить в советнике вместо открытия ордеров BuyStop и SellStop
должны открываться лимитники для работы внутрь диапазона BuyLimit и SellLimit


/*
G e n e r a t e d by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
Website: H Tt P : // W w W. meTaQ Uo T es. n E T
E-mail : SU P p Ort@m E t aqUo Te s. Net
*/
#property copyright "Copyright © 2009, Expforex"
#property link "http://expforex.at.ua"

extern bool BuyStopOpen = TRUE;
extern bool SellStopOpen = TRUE;
extern int Distance = 20;
extern int TPBuyStop = 0;
extern int SLBuyStop = 0;
extern int TPSellStop = 0;
extern int SLSellStop = 0;
extern bool CloseAfterOpen = FALSE;
extern double Lots = 0.1;
extern int Slippage = 1;
extern int Magic = 1;
extern bool CloseIfNotOpen = TRUE;
extern bool OpenAtTime = TRUE;
extern string TimetoOpen = "12:30";
extern bool CloseAtTime = TRUE;
extern string TimetoClose = "15:30";
double Gd_152;
double Gd_160;
int G_ticket_168;
int G_ticket_172;

int start() {
int order_total_4;
if (StrToTime(TimetoOpen) == TimeCurrent() && MagicTotalOrder(Magic, 1) && OpenAtTime) {
if (CloseIfNotOpen) DeleteOrders("", -1, -1);
if (BuyStopOpen) {
if (SLBuyStop > 0) Gd_152 = Ask + Distance * Point - SLBuyStop * Point;
else Gd_152 = 0;
if (TPBuyStop > 0) Gd_160 = Ask + Distance * Point + TPBuyStop * Point;
else Gd_160 = 0;
G_ticket_172 = SetOrder("", OP_BUYSTOP, Lots, Ask + Distance * Point, Gd_152, Gd_160, Magic);
}
if (SellStopOpen) {
if (SLSellStop > 0) Gd_152 = Bid - Distance * Point + SLSellStop * Point;
else Gd_152 = 0;
if (TPSellStop > 0) Gd_160 = Bid - Distance * Point - TPSellStop * Point;
else Gd_160 = 0;
G_ticket_168 = SetOrder("", OP_SELLSTOP, Lots, Bid - Distance * Point, Gd_152, Gd_160, Magic);
}
}
if (StrToTime(TimetoClose) == TimeCurrent() && CloseAtTime) {
if (BuyStopOpen) CPD("", OP_BUY, Magic);
if (SellStopOpen) CPD("", OP_SELL, Magic);
}
if (CloseAfterOpen) {
order_total_4 = OrdersTotal();
for (int pos_0 = order_total_4 - 1; pos_0 >= 0; pos_0--) {
if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType() == OP_BUY && OrderTicket() == G_ticket_172) OrderDelete(G_ticket_168);
if (OrderType() == OP_SELL && OrderTicket() == G_ticket_168) OrderDelete(G_ticket_172);
}
}
}
return (0);
}

int SetOrder(string A_symbol_0, int A_cmd_8, double A_lots_12, double A_price_20, double A_price_28 = 0.0, double A_price_36 = 0.0, int A_magic_44 = 0, int A_datetime_48 = 0, string A_comment_52 = "") {
color color_60;
int datetime_64;
double ask_68;
double bid_76;
double point_84;
int error_92;
int ticket_100;
if (A_symbol_0 == "" || A_symbol_0 == "0") A_symbol_0 = Symbol();
int stoplevel_104 = MarketInfo(A_symbol_0, MODE_STOPLEVEL);
if (A_datetime_48 > 0 && A_datetime_48 < TimeCurrent()) A_datetime_48 = 0;
for (int Li_96 = 1; Li_96 <= 1; Li_96++) {
if ((!IsTesting()) && (!IsExpertEnabled()) || IsStopped()) {
Print("SetOrder(): Остановка работы функции");
break;
}
while (!IsTradeAllowed()) Sleep(5000);
RefreshRates();
datetime_64 = TimeCurrent();
ticket_100 = OrderSend(A_symbol_0, A_cmd_8, A_lots_12, A_price_20, Slippage, A_price_28, A_price_36, A_comment_52, A_magic_44, A_datetime_48, color_60);
if (ticket_100 > 0) return (ticket_100);
error_92 = GetLastError();
if (error_92 == 128/* TRADE_TIMEOUT */ || error_92 == 142 || error_92 == 143) {
Sleep(66000);
if (ExistOrders(A_symbol_0, A_cmd_8, A_magic_44, datetime_64)) break;
} else {
point_84 = MarketInfo(A_symbol_0, MODE_POINT);
ask_68 = MarketInfo(A_symbol_0, MODE_ASK);
bid_76 = MarketInfo(A_symbol_0, MODE_BID);
if (ask_68 == 0.0 && bid_76 == 0.0) Comment("SetOrder(): Проверьте в обзоре рынка наличие символа " + A_symbol_0);
if (error_92 == 130/* INVALID_STOPS */) {
switch (A_cmd_8) {
case OP_BUYLIMIT:
if (A_price_20 > ask_68 - stoplevel_104 * point_84) A_price_20 = ask_68 - stoplevel_104 * point_84;
if (A_price_28 > A_price_20 - (stoplevel_104 + 1) * point_84) A_price_28 = A_price_20 - (stoplevel_104 + 1) * point_84;
if (!(A_price_36 > 0.0 && A_price_36 < A_price_20 + (stoplevel_104 + 1) * point_84)) break;
A_price_36 = A_price_20 + (stoplevel_104 + 1) * point_84;
break;
case OP_BUYSTOP:
if (A_price_20 < ask_68 + (stoplevel_104 + 1) * point_84) A_price_20 = ask_68 + (stoplevel_104 + 1) * point_84;
if (A_price_28 > A_price_20 - (stoplevel_104 + 1) * point_84) A_price_28 = A_price_20 - (stoplevel_104 + 1) * point_84;
if (!(A_price_36 > 0.0 && A_price_36 < A_price_20 + (stoplevel_104 + 1) * point_84)) break;
A_price_36 = A_price_20 + (stoplevel_104 + 1) * point_84;
break;
case OP_SELLLIMIT:
if (A_price_20 < bid_76 + stoplevel_104 * point_84) A_price_20 = bid_76 + stoplevel_104 * point_84;
if (A_price_28 > 0.0 && A_price_28 < A_price_20 + (stoplevel_104 + 1) * point_84) A_price_28 = A_price_20 + (stoplevel_104 + 1) * point_84;
if (A_price_36 <= A_price_20 - (stoplevel_104 + 1) * point_84) break;
A_price_36 = A_price_20 - (stoplevel_104 + 1) * point_84;
break;
case OP_SELLSTOP:
if (A_price_20 > bid_76 - stoplevel_104 * point_84) A_price_20 = bid_76 - stoplevel_104 * point_84;
if (A_price_28 > 0.0 && A_price_28 < A_price_20 + (stoplevel_104 + 1) * point_84) A_price_28 = A_price_20 + (stoplevel_104 + 1) * point_84;
if (A_price_36 <= A_price_20 - (stoplevel_104 + 1) * point_84) break;
A_price_36 = A_price_20 - (stoplevel_104 + 1) * point_84;
}
Print("SetOrder(): Скорректированы ценовые уровни");
}
if (error_92 == 2/* COMMON_ERROR */ || error_92 == 64/* ACCOUNT_DISABLED */ || error_92 == 65/* INVALID_ACCOUNT */ || error_92 == 133/* TRADE_DISABLED */) break;
if (error_92 == 4/* SERVER_BUSY */ || error_92 == 131/* INVALID_TRADE_VOLUME */ || error_92 == 132/* MARKET_CLOSED */) {
Sleep(300000);
break;
}
if (error_92 == 8/* TOO_FREQUENT_REQUESTS */ || error_92 == 141/* TOO_MANY_REQUESTS */) Sleep(100000);
if (error_92 == 139/* ORDER_LOCKED */ || error_92 == 140/* LONG_POSITIONS_ONLY_ALLOWED */ || error_92 == 148/* TRADE_TOO_MANY_ORDERS */) break;
if (error_92 == 146/* TRADE_CONTEXT_BUSY */) while (IsTradeContextBusy()) Sleep(11000);
if (error_92 == 147/* TRADE_EXPIRATION_DENIED */) A_datetime_48 = 0;
else
if (error_92 != 135/* PRICE_CHANGED */ && error_92 != 138/* REQUOTE */) Sleep(7700.0);
}
}
return (0);
}

void CPBS() {
bool is_closed_0;
color color_4;
double order_lots_8;
double price_16;
double price_24;
double price_32;
int error_40;
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
for (int Li_44 = 1; Li_44 <= 1; Li_44++) {
if (!IsTesting() && (!IsExpertEnabled()) || IsStopped()) break;
while (!IsTradeAllowed()) Sleep(5000);
RefreshRates();
price_16 = MarketInfo(OrderSymbol(), MODE_ASK);
price_24 = MarketInfo(OrderSymbol(), MODE_BID);
if (OrderType() == OP_BUY) price_32 = price_24;
else price_32 = price_16;
order_lots_8 = OrderLots();
is_closed_0 = OrderClose(OrderTicket(), order_lots_8, price_32, Slippage, color_4);
if (is_closed_0) break;
error_40 = GetLastError();
if (error_40 == 146/* TRADE_CONTEXT_BUSY */) while (IsTradeContextBusy()) Sleep(11000);
Sleep(5000);
}
} else Print("Некорректная торговая операция. Close ", OrderType());
}

void CPD(string As_0 = "", int A_cmd_8 = -1, int A_magic_12 = -1) {
int order_total_20 = OrdersTotal();
if (As_0 == "0") As_0 = Symbol();
for (int pos_16 = order_total_20 - 1; pos_16 >= 0; pos_16--) {
if (OrderSelect(pos_16, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == As_0 || As_0 == "" && A_cmd_8 < OP_BUY || OrderType() == A_cmd_8) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
if (A_magic_12 < 0 || OrderMagicNumber() == A_magic_12) CPBS();
}
}
}
}

int MagicTotalOrder(int A_magic_0, int Ai_4) {
int Li_16;
int order_total_12 = OrdersTotal();
for (int pos_8 = 0; pos_8 < order_total_12; pos_8++) {
if (OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES))
if (OrderMagicNumber() == A_magic_0) Li_16++;
}
if (Li_16 < Ai_4) return (1);
return (0);
}

int ExistOrders(string As_0 = "", int A_cmd_8 = -1, int A_magic_12 = -1, int Ai_16 = 0) {
int cmd_28;
int order_total_24 = OrdersTotal();
if (As_0 == "0") As_0 = Symbol();
for (int pos_20 = 0; pos_20 < order_total_24; pos_20++) {
if (OrderSelect(pos_20, SELECT_BY_POS, MODE_TRADES)) {
cmd_28 = OrderType();
if (cmd_28 > OP_SELL && cmd_28 < 6) {
if (OrderSymbol() == As_0 || As_0 == "" && A_cmd_8 < OP_BUY || cmd_28 == A_cmd_8) {
if (A_magic_12 < 0 || OrderMagicNumber() == A_magic_12)
if (Ai_16 <= OrderOpenTime()) return (1);
}
}
}
}
return (0);
}

void DeleteOrders(string As_0 = "", int A_cmd_8 = -1, int A_magic_12 = -1) {
bool is_deleted_16;
int error_20;
int cmd_36;
int order_total_32 = OrdersTotal();
if (As_0 == "0") As_0 = Symbol();
for (int pos_24 = order_total_32 - 1; pos_24 >= 0; pos_24--) {
if (OrderSelect(pos_24, SELECT_BY_POS, MODE_TRADES)) {
cmd_36 = OrderType();
if (cmd_36 > OP_SELL && cmd_36 < 6) {
if (OrderSymbol() == As_0 || As_0 == "" && A_cmd_8 < OP_BUY || cmd_36 == A_cmd_8) {
if (A_magic_12 < 0 || OrderMagicNumber() == A_magic_12) {
for (int Li_28 = 1; Li_28 <= 1; Li_28++) {
if (!IsTesting() && (!IsExpertEnabled()) || IsStopped()) break;
while (!IsTradeAllowed()) Sleep(5000);
is_deleted_16 = OrderDelete(OrderTicket());
if (is_deleted_16) break;
error_20 = GetLastError();
Sleep(5000);
}
}
}
}
}
}
}
ты бы еще сюда все библиотеки скинул в тексте! :facepalm:
файл кидай тогда по правят
 
Верх