i-UrovenZero
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «i_urovenzero_v.2.0._.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор i-UrovenZero v.2.0 — это пользовательский индикатор для MetaTrader 4, предназначенный для мониторинга уровня маржи и отображения критических ценовых уровней на графике. Он рассчитывает и отображает горизонтальные линии для цен безубыточности, нулевого уровня маржи и уровня стоп-аута на основе открытых позиций.
Индикатор поддерживает несколько режимов расчёта в зависимости от режима свободной маржи счёта, отображая различную информацию для хеджевых и неттинговых аккаунтов. При критическом снижении уровня маржи индикатор выводит визуальные предупреждения — метки LOCK и DEAD ZONE.
Дополнительно реализован модуль расчёта взаимосвязи прибыли, расстояния и лотов, блок детальной информации об аккаунте (баланс, спред, свопы, минимальный/максимальный лот) и звуковые уведомления, срабатывающие при пересечении заданных порогов уровня маржи.
Настройки программы
| Настройка | Описание |
|---|---|
| CALC_Bar_0 | Текстовый разделитель-заголовок для блока расчёта. |
| CALC_0 | Включает или отключает отображение блока расчёта взаимосвязи прибыли, расстояния и лотов на графике. |
| ?????? ???????? ?????? ???? (Lots_R) | Количество лотов для расчётов в блоке CALC. |
| ?????? ???????? ????????? ? ??????? (Rastojanie_R) | Расстояние (в ценовых пунктах) для расчётов в блоке CALC. |
| ?????? ???????? ???????/?????? ? ?????? (Pribyl_R) | Прибыль (в денежном выражении) для расчётов в блоке CALC. |
| ???? ???????? ??????? ?????? (cvet_CALC_0) | Цвет текста в блоке расчёта CALC для основных параметров. |
| ???? ??????? ?????????? ???????? (cvet_CALC_R) | Цвет текста в блоке расчёта CALC для результатов. |
| ????????? ?? ??????? (Ugol_0) | Угол привязки объектов блока расчёта CALC на графике (0-3). |
| ???????? ????????? ?? ??????????? (MP_X_0) | Горизонтальное смещение (в пикселях) от угла графика для блока расчёта CALC. |
| ???????? ????????? ?? ????????? (MP_Y_0) | Вертикальное смещение (в пикселях) от угла графика для блока расчёта CALC. |
| Shrift_Bar | Текстовый разделитель-заголовок для блока настроек шрифта. |
| RazmerShrifta | Размер шрифта для текстовых меток на графике. |
| ZeroProfit_Block | Текстовый разделитель-заголовок для блока настроек уровня безубыточности. |
| ZeroProfit | Включает или отключает отображение горизонтальной линии уровня безубыточности по всем позициям. |
| Colour_ZP | Цвет горизонтальной линии уровня безубыточности по всем позициям. |
| 0,1,2,3,4 (Style_ZP) | Стиль линии уровня безубыточности (0-4). |
| 0,1,2,3,4 (Width_ZP) | Толщина линии уровня безубыточности. |
| ZeroBUY_Block | Текстовый разделитель-заголовок для блока настроек нулевого уровня BUY. |
| ZeroBUY | Включает или отключает отображение горизонтальной линии нулевого уровня для позиций BUY. |
| Colour_ZB | Цвет горизонтальной линии нулевого уровня для позиций BUY. |
| 0,1,2,3,4 (Style_ZB) | Стиль линии нулевого уровня для позиций BUY (0-4). |
| 0,1,2,3,4 (Width_ZB) | Толщина линии нулевого уровня для позиций BUY. |
| ZeroSELL_Block | Текстовый разделитель-заголовок для блока настроек нулевого уровня SELL. |
| ZeroSELL | Включает или отключает отображение горизонтальной линии нулевого уровня для позиций SELL. |
| Colour_ZS | Цвет горизонтальной линии нулевого уровня для позиций SELL. |
| 0,1,2,3,4 (Style_ZS) | Стиль линии нулевого уровня для позиций SELL (0-4). |
| 0,1,2,3,4 (Width_ZS) | Толщина линии нулевого уровня для позиций SELL. |
| ZeroMargin_Block | Текстовый разделитель-заголовок для блока настроек уровня нулевой свободной маржи. |
| ZeroMargin | Включает или отключает отображение горизонтальной линии уровня нулевой свободной маржи. |
| Colour_ZM | Цвет горизонтальной линии уровня нулевой свободной маржи. |
| 0,1,2,3,4 (Style_ZM) | Стиль линии уровня нулевой свободной маржи (0-4). |
| 0,1,2,3,4 (Width_ZM) | Толщина линии уровня нулевой свободной маржи. |
| ZeroMarginPr_Block | Текстовый разделитель-заголовок для блока настроек процентного уровня маржи. |
| ZeroMarginPr | Включает или отключает отображение горизонтальной линии процентного уровня маржи. |
| ???????? ?? ?????? ?????? ??? ?????????????? (Procent_ZM) | Процентное значение порога уровня маржи для срабатывания звуковых уведомлений и отображения меток LOCK/DEAD ZONE. |
| 0,1,2,3,4 (Style_ZM_Procent) | Стиль линии процентного уровня маржи (0-4). |
| 0,1,2,3,4 (Width_ZM_Procent) | Толщина линии процентного уровня маржи. |
| Zona_LOCK_Param | Текстовый разделитель-заголовок для блока настроек зоны LOCK. |
| Cvet_zony_LOCK_p | Включает или отключает отображение цветной зоны LOCK на графике. |
| ???? ???? LOCK (Cvet_zony_LOCK) | Цвет зоны LOCK (область между уровнем маржи и уровнем блокировки). |
| ZeroFull_Block | Текстовый разделитель-заголовок для блока настроек уровня полной нулевой маржи. |
| ZeroFull | Включает или отключает отображение горизонтальной линии уровня полной нулевой маржи (StopOut). |
| Colour_ZF | Цвет горизонтальной линии уровня полной нулевой маржи (StopOut). |
| 0,1,2,3,4 (Style_ZF) | Стиль линии уровня полной нулевой маржи (0-4). |
| 0,1,2,3,4 (Width_ZF) | Толщина линии уровня полной нулевой маржи. |
| ZeroFull_Pr_Block | Текстовый разделитель-заголовок для блока настроек уровня стоп-аута в процентах. |
| ZeroFull_Pr | Включает или отключает отображение горизонтальной линии уровня стоп-аута в процентах. |
| 0,1,2,3,4 (Style_ZF_Procent) | Стиль линии уровня стоп-аута в процентах (0-4). |
| 0,1,2,3,4 (Width_ZF_Procent) | Толщина линии уровня стоп-аута в процентах. |
| Zona_dDZ_Param | Текстовый разделитель-заголовок для блока настроек зоны DEAD ZONE. |
| Cvet_zony_dDZ_f | Включает или отключает отображение цветной зоны DEAD ZONE на графике. |
| ???? ???? DEAD ZONE (Cvet_zony_dDZ) | Цвет зоны DEAD ZONE (область между уровнем полной маржи и нулевой маржи). |
| INFO_Bar_1 | Текстовый разделитель-заголовок для первого блока информации. |
| INFO_1 | Включает или отключает первый блок информационных меток на графике (уровни маржи, безубыточность, стоп-аут). |
| ????????? ?? ??????? (Ugol) | Угол привязки текстовых меток первого блока информации на графике (0-3). |
| ???????? ????????? ?? ??????????? (MP_X) | Горизонтальное смещение (в пикселях) от угла графика для первого блока информационных меток. |
| ???????? ????????? ?? ????????? (MP_Y) | Вертикальное смещение (в пикселях) от угла графика для первого блока информационных меток. |
| INFO_Bar_2 | Текстовый разделитель-заголовок для второго блока информации. |
| INFO_2 | Включает или отключает второй блок информационных меток на графике (баланс, минимальный/максимальный лот, спред, свопы). |
| ???? ????. ?????? 2 (cvet_dop_info) | Цвет текста дополнительной информации во втором блоке меток. |
| ????????? ?? ??????? (Ugol_2) | Угол привязки текстовых меток второго блока информации на графике (0-3). |
| ???????? ????????? ?? ??????????? (MP_X_2) | Горизонтальное смещение (в пикселях) от угла графика для второго блока информации. |
| ???????? ????????? ?? ????????? (MP_Y_2) | Вертикальное смещение (в пикселях) от угла графика для второго блока информации. |
| INFO_Bar_3 | Текстовый разделитель-заголовок для третьего блока информации. |
| ????????? ?? ??????? ????. ?????? 3 (Ugol_3) | Угол привязки меток LOCK и DEAD ZONE на графике (0-3). |
| Sound_Bar | Текстовый разделитель-заголовок для блока звуковых настроек. |
| SoundPlay_Menshe | Включает или отключает воспроизведение звука при снижении уровня маржи ниже заданного порога. |
| Sound_Alert | Файл звукового уведомления, воспроизводимого при снижении уровня маржи ниже порога. |
| SoundPlay_Bolshe | Включает или отключает воспроизведение звука при превышении уровня маржи заданного порога. |
| Sound_OK | Файл звукового уведомления, воспроизводимого при превышении уровня маржи порога. |
Поиск по коду файла
#property indicator_chart_window
extern string CALC_Bar_0 = "=== ?????? ???????? ===";
extern bool CALC_0 = false;
extern double Lots_R = 1.0; // ?????? ???????? ?????? ????
extern double Rastojanie_R = 100.0; // ?????? ???????? ????????? ? ???????
extern double Pribyl_R = 0.0; // ?????? ???????? ???????/?????? ? ??????
extern color cvet_CALC_0 = Violet; //???? ???????? ??????? ??????
extern color cvet_CALC_R = Yellow; //???? ??????? ?????????? ????????
extern int Ugol_0 = 2; // ????????? ?? ???????
extern int MP_X_0 = 10; // ???????? ????????? ?? ???????????
extern int MP_Y_0 = 10; // ???????? ????????? ?? ?????????
extern string Shrift_Bar = "=== ?????? ?????? ===";
extern int RazmerShrifta = 9;
extern string ZeroProfit_Block = "=== ?????. ?????? ????????? ===";
extern bool ZeroProfit = true;
extern color Colour_ZP = DarkTurquoise;
extern int Style_ZP = 1; //0,1,2,3,4
extern int Width_ZP = 2; //0,1,2,3,4
extern string ZeroBUY_Block = "=== ?????. ????????? ??? BUY ===";
extern bool ZeroBUY = true;
extern color Colour_ZB = DarkTurquoise;
extern int Style_ZB = 2; //0,1,2,3,4
extern int Width_ZB = 1; //0,1,2,3,4
extern string ZeroSELL_Block = "=== ?????. ????????? ??? SELL ===";
extern bool ZeroSELL = true;
extern color Colour_ZS = DarkTurquoise;
extern int Style_ZS = 2; //0,1,2,3,4
extern int Width_ZS = 1; //0,1,2,3,4
extern string ZeroMargin_Block = "=== ?????. ??????? ????? ===";
extern bool ZeroMargin = true;
extern color Colour_ZM = Yellow;
extern int Style_ZM = 0; //0,1,2,3,4
extern int Width_ZM = 2; //0,1,2,3,4
extern string ZeroMarginPr_Block = "=== ?????. % ??????? ????? ===";
extern bool ZeroMarginPr = true;
extern int Procent_ZM = 150; // ???????? ?? ?????? ?????? ??? ??????????????
extern int Style_ZM_Procent = 2; //0,1,2,3,4
extern int Width_ZM_Procent = 1; //0,1,2,3,4
extern string Zona_LOCK_Param = "=== ?????. ???? LOCK ===";
extern bool Cvet_zony_LOCK_p = false;
extern color Cvet_zony_LOCK = C'70,70,00'; // ???? ???? LOCK
extern string ZeroFull_Block = "=== ?????. ??????? ????? ===";
extern bool ZeroFull = true;
extern color Colour_ZF = Red;
extern int Style_ZF = 0; //0,1,2,3,4
extern int Width_ZF = 2; //0,1,2,3,4
extern string ZeroFull_Pr_Block = "=== StopOut/??????.????.??????? ===";
extern bool ZeroFull_Pr = true;
extern int Style_ZF_Procent = 2; //0,1,2,3,4
extern int Width_ZF_Procent = 1; //0,1,2,3,4
extern string Zona_dDZ_Param = "=== ?????. ??????? ???? ===";
extern bool Cvet_zony_dDZ_f = false;
extern color Cvet_zony_dDZ = C'70,00,00'; // ???? ???? DEAD ZONE
extern string INFO_Bar_1 = "=== ?????? ?????????? 1 ===";
extern bool INFO_1 = true;
extern int Ugol = 3; // ????????? ?? ???????
extern int MP_X = 10; // ???????? ????????? ?? ???????????
extern int MP_Y = 10; // ???????? ????????? ?? ?????????
extern string INFO_Bar_2 = "=== ?????? ?????????? 2 ===";
extern bool INFO_2 = false;
extern color cvet_dop_info = Silver; // ???? ????. ?????? 2
extern int Ugol_2 = 3; // ????????? ?? ???????
extern int MP_X_2 = 10; // ???????? ????????? ?? ???????????
extern int MP_Y_2 = 10; // ???????? ????????? ?? ?????????
extern string INFO_Bar_3 = "=== ?????? ?????????? 3 ===";
extern int Ugol_3 = 1; // ????????? ?? ??????? ????. ?????? 3
extern string Sound_Bar = "=== ??????????????? ????? ===";
extern bool SoundPlay_Menshe = true;
extern string Sound_Alert = "Alert.wav";
extern bool SoundPlay_Bolshe = false;
extern string Sound_OK = "clock.wav";
string comment = "";
ObjectDelete ("??????? ??????? ?????");
ObjectDelete ("??????? ?????");
ObjectDelete ("LOCK");
ObjectDelete ("DEAD ZONE");
ObjectDelete ("DEAD ZONE =");
ObjectDelete ("DEAD ZONE = 2");
ObjectDelete ("GAME OVER");
ObjectDelete ("GAME OVER 2");
ObjectDelete ("GAME OVER 3");
ObjectDelete ("????????? 1 ?? ??? 1 ???? - ????");
ObjectDelete ("???????? ?? ?????? ??????? ?????");
ObjectDelete ("??????? ??????????????? ???????? ??????? ?? / StopOut");
ObjectDelete ("????? ??????? ?????????");
ObjectDelete ("??????? ????????? BUY");
ObjectDelete ("??????? ????????? SELL");
ObjectDelete ("?????????? ?? ?????? ?????? ????????? - ????");
ObjectDelete ("????? ??????? ????????? - ????");
ObjectDelete ("?????????? ?? ??????? ????? - ????");
ObjectDelete ("??????? ??????? ????? - ????");
ObjectDelete ("??????? ????? - ????");
ObjectDelete ("??????? ???? - ????");
ObjectDelete ("??????? ???? - ????");
ObjectDelete ("???? LOCK - ????");
ObjectDelete ("??????? ??????????????? ???????? ??????? ?? / StopOut - ????");
ObjectDelete ("????? ?????? ????? - ????");
ObjectDelete ("????? ?? ?????????? ??? - ????");
ObjectDelete ("??????????? ??? - ????");
ObjectDelete ("???????????? ??? - ????");
ObjectDelete ("?????, ?? - ????");
ObjectDelete ("???? BUY, ?? - ????");
ObjectDelete ("???? SELL, ?? - ????");
ObjectDelete ("??????? - ??????");
ObjectDelete ("?????????? - ??????");
ObjectDelete ("????? ???? - ??????");
ObjectDelete ("?????? ??????? - ??????");
ObjectDelete ("??????????? - ??????");
ObjectDelete ("ZeroLevel");
ObjectDelete ("ZeroLevel_BUY");
ObjectDelete ("ZeroLevel_SELL");
Comment("");
int start()
{
// код доступен только после оплаты
}
double i, total = OrdersTotal();
double lots=0.0, shift, shift_ZLB, shift_ZLS;
Comment_("----------------------------");
Comment_(" " + AccountName());
string type = "????"; if (IsDemo()) type = "????";
Comment_(" ??? ?????: " + type + " - ?: " + AccountNumber());
Comment_(" ?????: 1/" + AccountLeverage());
Comment_("----------------------------");
double minlot = MarketInfo(Symbol(),MODE_MINLOT); //?????? ???????????? ????
double maxlot = MarketInfo(Symbol(),MODE_MAXLOT); //?????? ???????????? ????
double lot_cena = MarketInfo(Symbol(),MODE_MARGINREQUIRED); //???? 1.0 ????
double lot_zalog = MarketInfo(Symbol(),MODE_MARGININIT); //????? ?? 1.0 ???
double min_balans = (lot_cena + lot_zalog) * minlot; //?????? ????????? ???????????? ????
double lotsss = AccountFreeMargin()*minlot/min_balans; //?????????? ????? ??????? ????? ??????
double pp_cena = MarketInfo(Symbol(),MODE_TICKVALUE); //???? ?????? ??????
double swap_long = MarketInfo(Symbol(),MODE_SWAPLONG); //???? ??? BUY ? ???????
double swap_short = MarketInfo(Symbol(),MODE_SWAPSHORT); //???? ??? SELL ? ???????
double spread = MarketInfo(Symbol(),MODE_SPREAD); //?????? ??????
double sredsva = AccountEquity(); //????????? ?? ????? ????????
if (AccountBalance() < min_balans)
{
if (AccountEquity() < min_balans)
{
if (OrderProfit() < min_balans)
{
ObjectDelete("GAME OVER");
if(ObjectFind("GAME OVER") != 0)
{
ObjectCreate("GAME OVER", OBJ_LABEL, 0, 0, 0);
ObjectSetText("GAME OVER", "GAME OVER", RazmerShrifta*4, "Verdana", Colour_ZF);
ObjectSet("GAME OVER", OBJPROP_CORNER, Ugol);
ObjectSet("GAME OVER", OBJPROP_XDISTANCE, MP_X+3);
ObjectSet("GAME OVER", OBJPROP_YDISTANCE, MP_Y+RazmerShrifta*2);
}
ObjectDelete("GAME OVER 2");
if(ObjectFind("GAME OVER 2") != 0)
{
ObjectCreate("GAME OVER 2", OBJ_LABEL, 0, 0, 0);
ObjectSetText("GAME OVER 2", "???????? ??? ??? ?? ?????? ???????????", RazmerShrifta, "Verdana", Yellow);
ObjectSet("GAME OVER 2", OBJPROP_CORNER, Ugol);
ObjectSet("GAME OVER 2", OBJPROP_XDISTANCE, MP_X);
ObjectSet("GAME OVER 2", OBJPROP_YDISTANCE, MP_Y+RazmerShrifta+2);
}
ObjectDelete("GAME OVER 3");
if(ObjectFind("GAME OVER 3") != 0)
{
ObjectCreate("GAME OVER 3", OBJ_LABEL, 0, 0, 0);
ObjectSetText("GAME OVER 3", "???????? ?????? ? ??????? ? ?????? :)", RazmerShrifta-1, "Verdana", Gray);
ObjectSet("GAME OVER 3", OBJPROP_CORNER, Ugol);
ObjectSet("GAME OVER 3", OBJPROP_XDISTANCE, MP_X+43);
ObjectSet("GAME OVER 3", OBJPROP_YDISTANCE, MP_Y);
WindowRedraw();
}
}
}
}
double lots_bzu = 0;
double sum_bzu = 0;
for (double i_bzu = 0; i_bzu < OrdersTotal(); i_bzu++)
{
if ( !OrderSelect ( i_bzu , SELECT_BY_POS , MODE_TRADES )) break;
if ( OrderSymbol () != Symbol()) continue;
if ( OrderType () == OP_BUY)
{
lots_bzu = lots_bzu + OrderLots ();
sum_bzu = sum_bzu + OrderLots () * OrderOpenPrice ();
}
if ( OrderType () == OP_SELL )
{
lots_bzu = lots_bzu - OrderLots ();
sum_bzu = sum_bzu - OrderLots () * OrderOpenPrice ();
}
double price_bzu = 0;
if (lots_bzu != 0 )
price_bzu = sum_bzu / lots_bzu; // ??????? ?????? ?????????
}
double lots_bzu_B = 0;
double sum_bzu_B = 0;
for (double i_bzu_B = 0; i_bzu_B < OrdersTotal(); i_bzu_B++)
{
if ( !OrderSelect ( i_bzu_B , SELECT_BY_POS , MODE_TRADES )) break;
if ( OrderSymbol () != Symbol()) continue;
if ( OrderType () == OP_BUY)
{
lots_bzu_B = lots_bzu_B + OrderLots ();
sum_bzu_B = sum_bzu_B + OrderLots () * OrderOpenPrice ();
}
double price_bzu_B = 0;
if (lots_bzu_B != 0 )
price_bzu_B = sum_bzu_B / lots_bzu_B; // ??????? ????????? BUY
}
double lots_bzu_S = 0;
double sum_bzu_S = 0;
for (double i_bzu_S = 0; i_bzu_S < OrdersTotal(); i_bzu_S++)
{
if ( !OrderSelect ( i_bzu_S , SELECT_BY_POS , MODE_TRADES )) break;
if ( OrderSymbol () != Symbol()) continue;
if ( OrderType () == OP_SELL)
{
lots_bzu_S = lots_bzu_S + OrderLots ();
sum_bzu_S = sum_bzu_S + OrderLots () * OrderOpenPrice ();
}
double price_bzu_S = 0;
if (lots_bzu_S != 0 )
price_bzu_S = sum_bzu_S / lots_bzu_S; // ??????? ????????? SELL
}
if (ZeroProfit == true)
{
ObjectDelete("????? ??????? ?????????");
ObjectCreate("????? ??????? ?????????", OBJ_HLINE, 0, 0, price_bzu);
ObjectSet("????? ??????? ?????????", OBJPROP_COLOR, Colour_ZP);
ObjectSet("????? ??????? ?????????", OBJPROP_STYLE, Style_ZP);
ObjectSet("????? ??????? ?????????", OBJPROP_WIDTH, Width_ZP);
}
else {Comment_("????.-?????.?????????");}
if (ZeroBUY == true)
{
ObjectDelete("??????? ????????? BUY");
ObjectCreate("??????? ????????? BUY", OBJ_HLINE, 0, 0, price_bzu_B);
ObjectSet("??????? ????????? BUY", OBJPROP_COLOR, Colour_ZB);
ObjectSet("??????? ????????? BUY", OBJPROP_STYLE, Style_ZB);
ObjectSet("??????? ????????? BUY", OBJPROP_WIDTH, Width_ZB);
}
else {Comment_("????.-???????.SELL=0");}
if (ZeroSELL == true)
{
ObjectDelete("??????? ????????? SELL");
ObjectCreate("??????? ????????? SELL", OBJ_HLINE, 0, 0, price_bzu_S);
ObjectSet("??????? ????????? SELL", OBJPROP_COLOR, Colour_ZS);
ObjectSet("??????? ????????? SELL", OBJPROP_STYLE, Style_ZS);
ObjectSet("??????? ????????? SELL", OBJPROP_WIDTH, Width_ZS);
}
else {Comment_("????.-???????.BUY=0");}
if(AccountFreeMarginMode() == 0)
Comment_(" v.0"); // + " - ??????????????? ???????/?????? ?? ????????????. \n ????????? ????? ?? ??????? ?? ???. ????.");
else if(AccountFreeMarginMode() == 2)
Comment_(" v.2"); // + " - ??????????????? ?????? ?? ????????????. \n ????????? ????? ?? ??????????? ??? ????????? ???. ????.");
else if(AccountFreeMarginMode() == 1)
{
Comment_(" v.1"); // + " - ??? ??????? ????????? ??????? ???????????? ??? ??????????????? ???????, \n ??? ? ?????? ?? ???????? ???????? ?? ??????? ?????.");
for(i=0; i<total; i++)
{
OrderSelect(i, SELECT_BY_POS);
if(OrderSymbol() == Symbol() && OrderType() == OP_BUY)
lots += OrderLots();
else if(OrderSymbol() == Symbol() && OrderType() == OP_SELL)
lots -= OrderLots();
}
if(lots == 0.0)
{
ObjectDelete("ZeroLevel");
Comment_(" ??? ????????? ???????." ); //"All Postions Are Locked. Calculations cancelled."
Comment_(" ??? ??????? ??? ??????." );
Comment_("----------------------------");
}
else
{
Comment_(" ???????...");
Comment_("----------------------------");
double u_shift, shift22;
ObjectDelete("??????? ??????? ?????");
shift = AccountFreeMargin() / (MarketInfo(Symbol(), MODE_TICKVALUE) * lots); //????????? ?? ???? ?? ??????? ?????
u_shift = Bid - shift*Point;
if (ZeroMargin == true)
{
ObjectCreate("??????? ??????? ?????", OBJ_HLINE, 0, 0, u_shift);
ObjectSet("??????? ??????? ?????", OBJPROP_COLOR, Colour_ZM);
ObjectSet("??????? ??????? ?????", OBJPROP_STYLE, Style_ZM);
ObjectSet("??????? ??????? ?????", OBJPROP_WIDTH, Width_ZM);
}
else {Comment_("????.-???????.?=0");}
double d_shift_3, u_shift_3, dDZ, OMarginLevel; //
OMarginLevel = AccountEquity()/AccountMargin()*100; //??????? ??????? ?? ?????
d_shift_3 = AccountEquity() / (MarketInfo(Symbol(), MODE_TICKVALUE) * lots);
u_shift_3 = Bid - d_shift_3*Point; // ??????? ??????? ?????
dDZ = d_shift_3 - shift; // ??????? ????
ObjectDelete("??????? ?????");
if (ZeroFull == true)
{
ObjectCreate("??????? ?????", OBJ_HLINE, 0, 0, u_shift_3);
ObjectSet("??????? ?????", OBJPROP_COLOR, Colour_ZF);
ObjectSet("??????? ?????", OBJPROP_STYLE, Style_ZF);
ObjectSet("??????? ?????", OBJPROP_WIDTH, Width_ZF);
}
else {Comment_("????.-???????.?????");}
double d_pZM, ur_pZM;
d_pZM = d_shift_3 - dDZ*Procent_ZM/100; //????????? ?? ???? ? % ?? ??????? ?????
ur_pZM = Bid - d_pZM*Point; // ??????? % ?? ??????? ?????
ObjectDelete("???????? ?? ?????? ??????? ?????");
if (ZeroMarginPr == true)
{
ObjectCreate("???????? ?? ?????? ??????? ?????", OBJ_HLINE, 0, 0, ur_pZM);
ObjectSet("???????? ?? ?????? ??????? ?????", OBJPROP_COLOR, Colour_ZM);
ObjectSet("???????? ?? ?????? ??????? ?????", OBJPROP_STYLE, Style_ZM_Procent);
ObjectSet("???????? ?? ?????? ??????? ?????", OBJPROP_WIDTH, Width_ZM_Procent);
}
else {Comment_("????.- %.??.?=0");}
if (SoundPlay_Menshe == true)
{
if (OMarginLevel <= Procent_ZM) PlaySound(Sound_Alert);
}
else {Comment_("????.???-????.<.%?=0");}
if (SoundPlay_Bolshe == true)
{
if (OMarginLevel > Procent_ZM) PlaySound(Sound_OK);
}
else {Comment_("????.???-????.>.%?=0");}
if (OMarginLevel <= Procent_ZM)
{
if (OMarginLevel > 100)
{
ObjectDelete("LOCK");
if(ObjectFind("LOCK") != 0)
ObjectCreate("LOCK", OBJ_LABEL, 0, 0, 0);
ObjectSetText("LOCK", "LOCK", RazmerShrifta*5, "Verdana", Colour_ZM);
ObjectSet("LOCK", OBJPROP_CORNER, Ugol_3);
ObjectSet("LOCK", OBJPROP_XDISTANCE, MP_X);
ObjectSet("LOCK", OBJPROP_YDISTANCE, MP_Y);
}
}
if (OMarginLevel <= 100)
{
ObjectDelete("DEAD ZONE");
if(ObjectFind("DEAD ZONE") != 0)
ObjectCreate("DEAD ZONE", OBJ_LABEL, 0, 0, 0);
ObjectSetText("DEAD ZONE", "DEAD ZONE", RazmerShrifta*2.3, "Verdana", Colour_ZF);
ObjectSet("DEAD ZONE", OBJPROP_CORNER, Ugol_3);
ObjectSet("DEAD ZONE", OBJPROP_XDISTANCE, MP_X+4);
ObjectSet("DEAD ZONE", OBJPROP_YDISTANCE, MP_Y+RazmerShrifta*2.3);
}
double d_pZF, ur_pZF, Afto_Procent_ZF;
Afto_Procent_ZF = AccountStopoutLevel(); //Stop Out (?????????????? ???????? ???????)
d_pZF = d_shift_3 - dDZ*Afto_Procent_ZF/100; //????????? ?? ?????? ???????? ??
ur_pZF = Bid - d_pZF*Point;
ObjectDelete ("??????? ??????????????? ???????? ??????? ?? / StopOut");
if (ZeroFull_Pr == true)
{
ObjectCreate("??????? ??????????????? ???????? ??????? ?? / StopOut", OBJ_HLINE, 0, 0, ur_pZF);
ObjectSet("??????? ??????????????? ???????? ??????? ?? / StopOut", OBJPROP_COLOR, Colour_ZF);
ObjectSet("??????? ??????????????? ???????? ??????? ?? / StopOut", OBJPROP_STYLE, Style_ZF_Procent);
ObjectSet("??????? ??????????????? ???????? ??????? ?? / StopOut", OBJPROP_WIDTH, Width_ZF_Procent);
}
else {Comment_("????.- ????.%.????.??");}
double dZM, price_bzu2, dZP, Znakov, Znak_Z;
Znak_Z = MarketInfo(Symbol(),MODE_DIGITS);
dZM = -shift;
Znakov = MathPow ( 10 , Znak_Z );
if (lots < 0) { price_bzu2 = (Ask - priПоказано первые 50% кода (символов: 27049)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.