Cobra Adrenaline ver 1.11
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «cobra adrenaline 111.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Cobra Adrenaline ver 1.11 — торговый советник для MetaTrader 4, разработанный CoolMan (2010–2011). Советник работает на основе скользящей средней (SMA) с настраиваемым периодом и использует внешнюю DLL-библиотеку cobra.dll для расчёта шагов и возврата в пипах. Основная логика сосредоточена в функции start(), вызываемой на каждом тике.
Советник выставляет лимитные ордера Buy Limit и Sell Limit с возможностью сетки (lim_setup) и динамического расчёта лота (Dinamic_lot). Имеются функции модификации стоп-лосса и тейк-профита, а также закрытия позиций при достижении определённых условий. Встроена защита по балансу и эквити (balance, balance_f, balance_p).
На графике отображается информационная панель с данными о счёте, балансе, эквити, направлении BUY/SELL и параметрах работы. Доступен временной фильтр (t1, t2), переключатели части сигналов (part_buy, part_sell) и магический номер для идентификации ордеров. Для работы требуется разрешение на использование DLL.
Настройки программы
| Настройка | Описание |
|---|---|
| Name | Название советника, отображаемое на графике |
| Cop | Строка копирайта, отображаемая в заголовке советника |
| no | Текстовый параметр-заглушка для информационной панели на графике |
| n1 | Текстовая метка для информационной панели на графике |
| n_s1 | Текстовая метка-разделитель для информационной панели на графике |
| n2 | Текстовая метка для информационной панели на графике |
| n2_ | Текстовая метка для информационной панели на графике |
| Dinamic_lot | Коэффициент динамического расчёта размера позиции на основе свободного маржинального баланса (0 — отключено) |
| Lots | Фиксированный размер лота для открытия ордеров |
| n_s7 | Текстовая метка-разделитель для информационной панели на графике |
| n7 | Текстовая метка для информационной панели на графике |
| n7_ | Текстовая метка для информационной панели на графике |
| balance | Минимальный баланс для работы советника (при достижении — остановка) |
| n11 | Текстовая метка для информационной панели на графике |
| n11_ | Текстовая метка для информационной панели на графике |
| balance_f | Минимальный эквити для работы советника (при достижении — полная остановка) |
| n12 | Текстовая метка для информационной панели на графике |
| n12_ | Текстовая метка для информационной панели на графике |
| balance_p | Процент от баланса для фильтрации (проверка баланса в процентах) |
| n_s9 | Текстовая метка-разделитель для информационной панели на графике |
| part_ind | Заголовок индикатора направления BUY/SELL на информационной панели |
| part_buy | Переключатель включения/отключения покупочных сигналов (TRUE/FALSE) |
| part_sell | Переключатель включения/отключения продажных сигналов (TRUE/FALSE) |
| n_s8 | Текстовая метка-разделитель для информационной панели на графике |
| n9 | Текстовая метка для информационной панели на графике |
| greed | Коэффициент для расчёта расстояния до тейк-профита (в пипах) |
| n_s2 | Текстовая метка-разделитель для информационной панели на графике |
| n3 | Текстовая метка для информационной панели на графике |
| lim_step | Шаг в пунктах между лимитными ордерами в сетке |
| n_s3 | Текстовая метка-разделитель для информационной панели на графике |
| n8 | Текстовая метка для информационной панели на графике |
| lim_setup | Количество лимитных ордеров в сетке при открытии |
| n_s4 | Текстовая метка-разделитель для информационной панели на графике |
| n4 | Текстовая метка для информационной панели на графике |
| Op_step | Шаг в пунктах для расчёта условий открытия лимитных ордеров |
| n_s5 | Текстовая метка-разделитель для информационной панели на графике |
| n5 | Текстовая метка для информационной панели на графике |
| period | Период скользящей средней (SMA) для анализа ценовых данных |
| n_s6 | Текстовая метка-разделитель для информационной панели на графике |
| n6 | Текстовая метка для информационной панели на графике |
| MagicNumber | Магический номер для идентификации ордеров, управляемых советником |
| n13 | Текстовая метка для информационной панели на графике |
| extended | Расширение диапазона проверки тейк-профита в пунктах |
| n14 | Текстовая метка для информационной панели на графике |
| n15 | Текстовая метка для информационной панели на графике |
| time_f | Переключатель временного фильтра (TRUE — торговля только в заданном интервале часов) |
| t1 | Час начала торговой сессии для временного фильтра |
| t2 | Час окончания торговой сессии для временного фильтра |
| n16 | Текстовая метка для информационной панели на графике |
| p1 | Цвет для отображения заголовка информационной панели на графике |
| p2 | Цвет для отображения данных информационной панели на графике |
| p3 | Цвет для отображения разделителей информационной панели на графике |
| p4 | Цвет для отображения статуса информационной панели на графике |
Поиск по коду файла
/*
Generated by ex4-to-mq4 decompiler FREEWARE 4.0.451.7
Website: Ht tp:// w w W. m eT AQ U oT ES . n E t
E-mail : SU pPo r t@me ta qUO tES. neT
*/
#import "cobra.dll"
string check_acc(int a0);
bool ma_step_sell(double a0, double a1, double a2, double a3, int a4);
bool ma_step_buy(double a0, double a1, double a2, double a3, int a4);
double get_ret_pip(int a0, double a1, double a2, double a3);
double get_ret_p_pip(double a0, double a1, double a2, double a3, double a4);
#import
extern string Name = "+++++++++ Cobra Adrenaline ver 1.11 +++++++++";
extern string Cop = "++++++++ Copyright ? 2010, CoolMan +++++++++";
extern string no = "";
extern string n1 = "??????? ?????????";
extern string n_s1 = "------------------------------------------";
extern string n2 = "???????????? ???";
extern string n2_ = "???? 0, ?? ????????";
extern double Dinamic_lot = 0.0;
extern double Lots = 0.1;
extern string n_s7 = "------------------------------------------";
extern string n7 = "???????? ??????. ?????????? ?????";
extern string n7_ = "???? 0, ?? ????????";
extern double balance = 0.0;
extern string n11 = "????????????? ??????. ?????????? ?????";
extern string n11_ = "???? 0, ?? ????????";
extern double balance_f = 0.0;
extern string n12 = "?????????? ??????. ????????? % ? ????";
extern string n12_ = "???? 0, ?? ????????";
extern double balance_p = 0.0;
extern string n_s9 = "------------------------------------------";
extern string part_ind = "??????????? ???????? BUY/SELL";
extern bool part_buy = TRUE;
extern bool part_sell = TRUE;
extern string n_s8 = "------------------------------------------";
extern string n9 = "????????? ???????? ?????";
extern double greed = 1.0;
extern string n_s2 = "------------------------------------------";
extern string n3 = "??? ????? ????????";
extern int lim_step = 50;
extern string n_s3 = "------------------------------------------";
extern string n8 = "?????????? ??????????";
extern int lim_setup = 5;
extern string n_s4 = "------------------------------------------";
extern string n4 = "?????? ?? ?????????? ???????";
extern int Op_step = 10;
extern string n_s5 = "------------------------------------------";
extern string n5 = "?????? ?????????? ???????";
extern int period = 144;
extern string n_s6 = "------------------------------------------";
extern string n6 = "?????????? ?????";
extern int MagicNumber = D'14.02.2009 04:31:30';
extern string n13 = "??? ??????? ????????? ? 1 ?? 10";
extern int extended = 1;
extern string n14 = "??????? ??????? ? ?????. ???????? ? t1 ?? t2";
extern string n15 = "?? ???????? ?????????, ????????, ?? 23 ?? 2";
extern bool time_f = FALSE;
extern int t1 = 7;
extern int t2 = 11;
extern string n16 = "?????????????? ??????";
extern color p1 = DarkTurquoise;
extern color p2 = DodgerBlue;
extern color p3 = MediumSeaGreen;
extern color p4 = Red;
string Gs_440 = "Cobra Adrenaline ver 1.11";
datetime Gt_448;
int Gi_452 = 0;
int Gi_464 = 0;
string Gs_468;
int Gi_492 = 0;
double Gd_496 = 0.0;
double Gd_504 = 0.0;
double Gd_512;
double Gd_520;
double Gd_528;
int init() {
// код доступен только после оплаты
}
int deinit() {
return (0);
}
int start() {
// код доступен только после оплаты
}
double Ld_92;
double Ld_100;
double Ld_108;
double Ld_116;
bool Li_124;
bool Li_128;
double Ld_132;
double Ld_140;
double Ld_180;
double Ld_188;
if (!IsDllsAllowed()) {
Comment("????? dll ????????. ????????? ?????????.");
Print("????? dll ????????. ????????? ?????????.");
return (0);
}
int Li_0 = OrdersTotal() - 1;
int Li_8 = 0;
int Li_12 = 0;
for (int Li_4 = 0; Li_4 <= Li_0; Li_4++) {
OrderSelect(Li_4, SELECT_BY_POS);
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol()) {
if (OrderType() < OP_BUYLIMIT) Li_8++;
if (OrderType() > OP_SELL && OrderType() < OP_BUYSTOP) Li_12++;
}
}
if (Li_8 != Gi_492 && Li_8 == 0) CloseLimit();
bool Li_16 = TRUE;
if (time_f == TRUE) {
if (Hour() >= t1 && Hour() <= t2) Li_16 = TRUE;
else Li_16 = FALSE;
}
bool Li_20 = TRUE;
if (Time[0] == Gi_448) Li_20 = FALSE;
Gt_448 = Time[0];
int Li_24 = 0;
while (IsTradeContextBusy()) {
Sleep(60000);
Li_24++;
if (Li_24 >= 10) {
Print("???????? ????? ?????");
break;
}
}
HideTestIndicators(FALSE);
if (Seconds() % 60 == 0) Gd_512 = ND(iMA(Symbol(), 0, period, 0, MODE_SMA, PRICE_CLOSE, 1));
HideTestIndicators(FALSE);
if (Gd_512 == 0.0) return (0);
double Ld_28 = MarketInfo(Symbol(), MODE_MINLOT);
double Ld_36 = MarketInfo(Symbol(), MODE_MARGININIT);
double Ld_44 = MarketInfo(Symbol(), MODE_STOPLEVEL);
double Ld_52 = (Gd_520 + Ld_36) * Ld_28;
double Ld_60 = Ld_28;
for (double Ld_68 = 0; Ld_60 < 1.0; Ld_68++) Ld_60 = 10.0 * Ld_60;
int Li_80 = 0;
Li_8 = 0;
Li_12 = 0;
for (Li_4 = Li_0; Li_4 >= 0; Li_4--) {
OrderSelect(Li_4, SELECT_BY_POS);
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol()) {
if (OrderType() < OP_BUYLIMIT) Li_8++;
if (OrderType() > OP_SELL && OrderType() < OP_BUYSTOP) Li_12++;
}
}
Gi_492 = Li_8;
if ((Li_8 == 0 && Li_20 == TRUE) || (Li_8 == 0 && Li_12 < lim_setup)) CloseLimit();
bool Li_88 = TRUE;
if (balance != 0.0 || balance_f != 0.0 || balance_p != 0.0) {
if (AccountEquity() < balance && Li_8 == 0) {
Print("???????? ???????? balance. ???????? ?????? ?????? ????????");
Comment("???????? ???????? balance. ???????? ?????? ?????? ????????");
Alert("???????? ???????? balance. ???????? ?????? ?????? ????????");
return (0);
}
if (AccountEquity() <= balance_f) {
Print("???????? ???????? balance_f. ?????? ?????? ???????????? ??????");
Comment("???????? ???????? balance_f. ?????? ?????? ???????????? ??????");
Alert("???????? ???????? balance_f. ?????? ?????? ???????????? ??????");
Li_88 = FALSE;
return (0);
}
Ld_92 = 0;
if (balance != 0.0 && balance_f == 0.0 && balance_p == 0.0) Ld_92 = balance;
if (balance == 0.0 && balance_f != 0.0 && balance_p == 0.0) Ld_92 = AccountBalance() - balance_f;
if (balance == 0.0 && balance_f == 0.0 && balance_p != 0.0) Ld_92 = AccountBalance() * balance_p / 100.0;
Ld_100 = 0;
Ld_100 = get_ret_pip(lim_step, Lots, Gd_528, Ld_92);
Ld_108 = 0;
Ld_116 = 100000;
for (Li_4 = Li_0; Li_4 >= 0; Li_4--) {
OrderSelect(Li_4, SELECT_BY_POS);
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol()) {
if (OrderType() == OP_BUY)
if (Ld_108 < OrderOpenPrice()) Ld_108 = OrderOpenPrice();
if (OrderType() == OP_SELL)
if (Ld_116 > OrderOpenPrice()) Ld_116 = OrderOpenPrice();
}
}
if (Ld_100 != 0.0 && Ld_108 != 0.0 || Ld_116 != 100000.0 && Li_8 <= 1) {
Gd_496 = ND(Ld_108 - Ld_100 * Point);
Gd_504 = ND(Ld_116 + Ld_100 * Point);
}
if (Li_8 <= 1) modify_order(Gd_496, Gd_504);
else {
for (Li_4 = Li_0; Li_4 >= 0; Li_4--) {
OrderSelect(Li_4, SELECT_BY_POS);
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol()) {
if (OrderStopLoss() != 0.0) {
if (OrderType() == OP_BUY) Gd_496 = OrderStopLoss();
if (OrderType() == OP_SELL) Gd_504 = OrderStopLoss();
}
}
}
modify_order(Gd_496, Gd_504);
}
lim_setup = MathFloor(Ld_100 / lim_step);
Control(Ld_100);
}
if (Dinamic_lot != 0.0) {
if (balance == 0.0 && balance_f == 0.0 && balance_p == 0.0) Lots = NormalizeDouble(AccountFreeMargin() * Dinamic_lot / 1000.0 / Gd_520, Ld_68);
else Lots = NormalizeDouble(Ld_92 * Dinamic_lot / 1000.0 / Gd_520, Ld_68);
}
if (Lots < Ld_28) Lots = Ld_28;
Li_12 = 0;
for (Li_4 = Li_0; Li_4 >= 0; Li_4--) {
OrderSelect(Li_4, SELECT_BY_POS);
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol()) {
if (OrderType() < OP_BUYLIMIT) Li_8++;
if (OrderType() > OP_SELL && OrderType() < OP_BUYSTOP) Li_12++;
}
}
if (Li_20 == TRUE && Li_16 == TRUE) {
Li_124 = FALSE;
Li_128 = FALSE;
if (Op_step < Ld_44) Op_step = Ld_44;
Li_124 = ma_step_buy(Ask, Bid, Point, Gd_512, Op_step);
Li_128 = ma_step_sell(Ask, Bid, Point, Gd_512, Op_step);
Ld_132 = ND(Gd_512 - Op_step * Point);
if (Ld_132 > Bid - Ld_44 * Point) Ld_132 = Bid - Ld_44 * Point;
if (Li_124 && Li_8 == 0 && Li_12 == 0 && Li_88 && part_buy) OpenBuyLim(Ld_132);
Ld_140 = ND(Gd_512 + Op_step * Point);
if (Ld_140 < Ask + Ld_44 * Point) Ld_140 = Ask + Ld_44 * Point;
if (Li_128 && Li_8 == 0 && Li_12 == 0 && Li_88 && part_sell) OpenSellLim(Ld_140);
}
Li_8 = 0;
for (Li_4 = Li_0; Li_4 >= 0; Li_4--) {
OrderSelect(Li_4, SELECT_BY_POS);
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol())
if (OrderType() < OP_BUYLIMIT) Li_8++;
}
double Ld_148 = 0;
double Ld_156 = 0;
double Ld_164 = 1000000;
double Ld_172 = 0;
if (Li_8 != 0) {
for (Li_4 = Li_0; Li_4 >= 0; Li_4--) {
OrderSelect(Li_4, SELECT_BY_POS);
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol()) {
if (OrderType() < OP_BUYLIMIT) Ld_148 += OrderLots();
Ld_156 += OrderProfit() + OrderSwap();
if (OrderType() == OP_BUY)
if (OrderOpenPrice() < Ld_164) Ld_164 = OrderOpenPrice();
if (OrderType() == OP_SELL)
if (OrderOpenPrice() > Ld_172) Ld_172 = OrderOpenPrice();
}
}
Ld_188 = get_ret_p_pip(greed, Gd_520, Ld_148, Ld_156, Gd_528);
if (Ld_188 != 0.0) {
if (Ld_172 == 0.0 && Ld_164 != 0.0) Ld_180 = ND(Bid + Ld_188 * Point);
if (Ld_172 != 0.0 && Ld_164 == 1000000.0) Ld_180 = ND(Ask - Ld_188 * Point);
}
modify_order_take(Ld_180);
}
bool Li_196 = FALSE;
double Ld_200 = 1000000;
double Ld_208 = 0;
double Ld_216 = Lots;
if (Li_8 != Gi_452) {
if (Li_8 > Gi_452) {
Gi_452 = Li_8;
Li_196 = TRUE;
}
if (Li_8 < Gi_452) Gi_452 = Li_8;
}
if (Li_196 == TRUE) {
for (Li_4 = Li_0; Li_4 >= 0; Li_4--) {
OrderSelect(Li_4, SELECT_BY_POS);
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol()) {
if (OrderType() == OP_BUYLIMIT) {
if (OrderOpenPrice() < Ld_200) {
Ld_200 = OrderOpenPrice();
Ld_216 = OrderLots();
}
}
if (OrderType() == OP_SELLLIMIT) {
if (OrderOpenPrice() > Ld_208) {
Ld_208 = OrderOpenPrice();
Ld_216 = OrderLots();
}
}
}
}
if (Ld_200 != 1000000.0 && balance == 0.0 && balance_f == 0.0 && balance_p == 0.0) OpenBuyLim_plus(Ld_216, Ld_200);
if (Ld_208 != 0.0 && balance == 0.0 && balance_f == 0.0 && balance_p == 0.0) OpenSellLim_plus(Ld_216, Ld_208);
}
double Ld_224 = 0;
double Ld_232 = 0;
double Ld_240 = 0;
double Ld_248 = 0;
for (Li_4 = Li_0; Li_4 >= 0; Li_4--) {
OrderSelect(Li_4, SELECT_BY_POS);
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol()) {
if (OrderType() == OP_BUY) {
Ld_224 += OrderLots();
Ld_240 = OrderStopLoss();
Ld_248 = OrderTakeProfit();
continue;
}
if (OrderType() == OP_SELL) {
Ld_224 -= OrderLots();
Ld_240 = OrderStopLoss();
Ld_248 = OrderTakeProfit();
}
}
}
if (MarketInfo(Symbol(), MODE_TICKVALUE) * Ld_224 != 0.0) Ld_232 = ND(Bid - AccountEquity() / (MarketInfo(Symbol(), MODE_TICKVALUE) * Ld_224) * Point);
int Li_256 = 10;
int Li_260 = 4;
int Li_264 = 50;
int Li_268 = 50;
ObjectCreate("Comment_info_n1", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Comment_info_n1", "Cobra Adrenaline ver 1.11", Li_256, "Verdana", p1);
ObjectSet("Comment_info_n1", OBJPROP_CORNER, Li_260);
ObjectSet("Comment_info_n1", OBJPROP_XDISTANCE, Li_264);
ObjectSet("Comment_info_n1", OBJPROP_YDISTANCE, Li_268);
ObjectCreate("Comment_info_n2", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Comment_info_n2", "???????? ?????? forex-shop.net", Li_256, "Verdana", p1);
ObjectSet("Comment_info_n2", OBJPROP_CORNER, Li_260);
ObjectSet("Comment_info_n2", OBJPROP_XDISTANCE, Li_264);
ObjectSet("Comment_info_n2", OBJPROP_YDISTANCE, Li_268 + 1.5 * Li_256);
ObjectCreate("Comment_info_n3", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Comment_info_n3", "_________________________________________", Li_256, "Verdana", p3);
ObjectSet("Comment_info_n3", OBJPROP_CORNER, Li_260);
ObjectSet("Comment_info_n3", OBJPROP_XDISTANCE, Li_264);
ObjectSet("Comment_info_n3", OBJPROP_YDISTANCE, Li_268 + 2.5 * Li_256);
ObjectCreate("Comment_info_n4", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Comment_info_n4", "????? ?????: " + DoubleToStr(AccountNumber(), 0), Li_256, "Verdana", p2);
ObjectSet("Comment_info_n4", OBJPROP_CORNER, Li_260);
ObjectSet("Comment_info_n4", OBJPROP_XDISTANCE, Li_264);
ObjectSet("Comment_info_n4", OBJPROP_YDISTANCE, Li_268 + 4.5 * Li_256);
ObjectCreate("Comment_info_n6", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Comment_info_n6", "_________________________________________", Li_256, "Verdana", p3);
ObjectSet("Comment_info_n6", OBJPROP_CORNER, Li_260);
ObjectSet("Comment_info_n6", OBJPROP_XDISTANCE, Li_264);
ObjectSet("Comment_info_n6", OBJPROP_YDISTANCE, Li_268 + 6 * Li_256);
ObjectCreate("Comment_info_n5", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Comment_info_n5", "???????? ??? ???????? ???????: " + DoubleToStr(Ld_148, 2), Li_256, "Verdana", p2);
ObjectSet("Comment_info_n5", OBJPROP_CORNER, Li_260);
ObjectSet("Comment_info_n5", OBJPROP_XDISTANCE, Li_264);
ObjectSet("Comment_info_n5", OBJPROP_YDISTANCE, Li_268 + 7.5 * Li_256);
ObjectCreate("Comment_info_n9", OBJ_Показано первые 50% кода (символов: 21351)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.