extern string af4 = " Use EUR/USD M1 and USD/CHF M1 simultaneously";
extern string a = "-------1-st order bar -------";
extern int TF_Op1 = 4;
extern string b = "-------1-st order Silence -------";
extern int TFSilence1 = 2;
extern int PerSilence1 = 11;
extern int BuffSilence1 = 220;
extern int Sil_Level1 = 80;
extern string ñ = "-------Legs Silence -------";
extern int TFSilence2 = 3;
extern int PerSilence2 = 12;
extern int BuffSilence2 = 96;
extern int Sil_Level2 = 80;
extern string k = "------- Legs MA -------";
extern int TF_MA2 = 3;
extern int Per_MA2 = 30;
extern string Block = "-------Values -------";
extern double PipStepExponent = 1.0;
extern double LotExponent1 = 1.7;
extern double LotExponent2 = 2.08;
extern int StepX = 5;
extern double LotSize = 0.01;
extern bool FixLot = True;
extern int LotStep = 2000;
extern int PipStep = 10;
extern int PipStep2 = 20;
extern int TP = 10;
extern int MaxTrades = 10;
extern string GeneralBlock = "-------General Values-------";
extern bool Ostanov = TRUE;
extern double Limit = 50.0;
extern int OpenNewTF = 1;
extern int OpenNextTF = 1;
extern int Povtor = 1;
extern string d = "Friday Session Limitations";
extern bool CloseFriday = TRUE;
extern int CloseFridayHour = 19;
extern string OfficialVariable = "-------Variables-------";
extern string InformationOnChartString = "InformationOnChart - Turn OFF when use tester (slows down)";
extern bool InformationOnChart = TRUE;
extern int MagicNumber = 12345;
extern string af5 = "Enjoy Your Trading ";
extern int LotDecimal = 0;
int g_datetime_312 = 0;
int g_datetime_316 = 0;
int g_ticket_324;
int gi_328;
int gia_332[10] = {0, 1, 5, 15, 30, 60, 240, 1440, 10080, 43200**;
bool gi_336;
bool gi_340;
double g_lots_344;
double g_lots_352;
double g_lots_360;
double g_lots_368;
double g_price_392;
string g_comment_400;
int gi_408;
// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
LotDecimal = f0_3();
return (0);
**
// 52D46093050F38C27267BCE42543EF60
int deinit() {
return (0);
**
// EA2B2676C28C0DB26D39331A336C6B92
int start() {
int slippage_8;
double iopen_0 = iOpen(Symbol(), gia_332[TF_Op1], 0);
if (iopen_0 < Bid) gi_408 = 1;
else
if (iopen_0 > Bid) gi_408 = -1;
if (LotDecimal == 0) LotDecimal = f0_3();
f0_4();
gi_336 = TRUE;
gi_340 = TRUE;
if (Ostanov && f0_6("buy") > 0 && f0_6("sell") > 0 && f0_2("buy", "Balance") + f0_2("sell", "Balance") >= AccountEquity() / Limit) {
slippage_8 = 3;
for (int pos_12 = OrdersTotal() - 1; pos_12 >= 0; pos_12--) {
if (!(OrderSelect(pos_12, SELECT_BY_POS, MODE_TRADES))) break;
if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), slippage_8);
if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), slippage_8);
**
**
if (g_datetime_312 != iTime(NULL, gia_332[OpenNewTF], 0)) {
g_ticket_324 = 0;
gi_328 = f0_6("buy");
if (CloseFriday == TRUE && DayOfWeek() == 5 && TimeCurrent() >= StrToTime(CloseFridayHour + ":00")) return (0);
if (gi_408 > 0) {
if (iRSI(NULL, PERIOD_H1, 14, PRICE_CLOSE, 0) < 70.0) {
if (iCustom(NULL, gia_332[TFSilence1], "Silence2_02", PerSilence1, BuffSilence1, 2, 0) < Sil_Level1) {
if (gi_328 == 0 && gi_336 == TRUE) {
g_comment_400 = "TENGRI " + Symbol() + " - Buy " + ((gi_328 + 1));
g_lots_360 = f0_8("buy");
while (g_ticket_324 < 1) {
g_price_392 = f0_1("buy");
Print("Ïîêóïàåì. Íîâûé. Ïàðàìåòðû. ñèìâîë=" + Symbol() + ", ëîò=" + DoubleToStr(g_lots_360, 2) + ", öåíà=" + DoubleToStr(Ask, 4) + " ïðîôèò=" + DoubleToStr(g_price_392,
4) + ", êîììåíò=" + g_comment_400 + " ìàäæèê=" + MagicNumber);
g_ticket_324 = OrderSend(Symbol(), OP_BUY, g_lots_360, NormalizeDouble(Ask, Digits), 3, 0, g_price_392, g_comment_400, MagicNumber, 0, Blue);
if (g_ticket_324 < 1) {
Print("Îøèáêà: ", GetLastError(), " Íîâàÿ ïîïûòêà ïîêóïêè ÷åðåç " + (60 * Povtor) + " ñåêóíä");
Sleep(1000 * (60 * Povtor));
**
RefreshRates();
**
**
**
**
**
gi_328 = f0_6("sell");
if (CloseFriday == TRUE && DayOfWeek() == 5 && TimeCurrent() >= StrToTime(CloseFridayHour + ":00")) return (0);
if (gi_408 < 0) {
if (iRSI(NULL, PERIOD_H1, 14, PRICE_CLOSE, 0) > 30.0) {
if (iCustom(NULL, gia_332[TFSilence1], "Silence2_02", PerSilence1, BuffSilence1, 2, 0) < Sil_Level1) {
if (gi_328 == 0 && gi_340 == TRUE) {
g_comment_400 = "TENGRI " + Symbol() + " - Sell " + ((gi_328 + 1));
g_lots_368 = f0_8("sell");
while (g_ticket_324 < 1) {
g_price_392 = f0_1("sell");
Print("Ïðîäàåì. Íîâûé. Ïàðàìåòðû. ñèìâîë=" + Symbol() + ", ëîò=" + DoubleToStr(g_lots_368, 2) + ", öåíà=" + DoubleToStr(Bid, 4) + " ïðîôèò=" + DoubleToStr(g_price_392,
4) + ", êîììåíò=" + g_comment_400 + " ìàäæèê=" + MagicNumber);
g_ticket_324 = OrderSend(Symbol(), OP_SELL, g_lots_368, NormalizeDouble(Bid, Digits), 3, 0, g_price_392, g_comment_400, MagicNumber, 0, Red);
if (g_ticket_324 < 1) {
Print("Îøèáêà: ", GetLastError(), " Íîâàÿ ïîïûòêà ïîêóïêè ÷åðåç " + (60 * Povtor) + " ñåêóíä");
Sleep(1000 * (60 * Povtor));
**
RefreshRates();
**
**
**
**
**
g_datetime_312 = iTime(NULL, gia_332[OpenNewTF], 0);
**
if (g_datetime_316 != iTime(NULL, gia_332[OpenNextTF], 0)) {
g_ticket_324 = 0;
gi_328 = f0_6("buy");
if (gi_328 > 0 && f0_5("buy")) {
g_comment_400 = "TENGRI " + Symbol() + " - Buy " + ((gi_328 + 1));
g_lots_344 = f0_0("buy");
while (g_ticket_324 < 1) {
Print("Ïîêóïàåì. Ñëåäóþùèé. Ïàðàìåòðû. ñèìâîë:" + Symbol() + ", ëîò=" + DoubleToStr(g_lots_344, 2) + ", öåíà =" + DoubleToStr(Ask, 4) + ", êîììåíò=" + g_comment_400 +
", ìàäæèê=" + MagicNumber);
g_ticket_324 = OrderSend(Symbol(), OP_BUY, g_lots_344, NormalizeDouble(Ask, Digits), 3, 0, 0, g_comment_400, MagicNumber, 0, Blue);
if (g_ticket_324 < 1) {
Print("Îøèáêà: ", GetLastError(), " Íîâàÿ ïîïûòêà ïîêóïêè ÷åðåç " + (60 * Povtor) + " ñåêóíä");
Sleep(1000 * (60 * Povtor));
** else f0_7("buy");
RefreshRates();
**
**
gi_328 = f0_6("sell");
if (gi_328 > 0 && f0_5("sell")) {
g_comment_400 = "TENGRI " + Symbol() + " - Sell " + ((gi_328 + 1));
g_lots_352 = f0_0("sell");
while (g_ticket_324 < 1) {
Print("Ïðîäàåì. Ñëåäóþùèé. Ïàðàìåòðû. ñèìâîë:" + Symbol() + ", ëîò=" + DoubleToStr(g_lots_352, 2) + ", öåíà=" + DoubleToStr(Bid, 4) + ", êîììåíò=" + g_comment_400 +
", ìàäæèê=" + MagicNumber);
g_ticket_324 = OrderSend(Symbol(), OP_SELL, g_lots_352, NormalizeDouble(Bid, Digits), 3, 0, 0, g_comment_400, MagicNumber, 0, Red);
if (g_ticket_324 < 1) {
Print("Îøèáêà: ", GetLastError(), " Íîâàÿ ïîïûòêà ïðîäàæè ÷åðåç " + (60 * Povtor) + " ñåêóíä");
Sleep(1000 * (60 * Povtor));
** else f0_7("sell");
RefreshRates();
**
**
g_datetime_316 = iTime(NULL, gia_332[OpenNextTF], 0);
**
return (0);
**
// 58589B952D118B97C4A28CB05C8B07C9
double f0_1(string as_0) {
double ld_ret_8 = 0;
if (TP < MarketInfo(Symbol(), MODE_STOPLEVEL)) TP = MarketInfo(Symbol(), MODE_STOPLEVEL);
if (as_0 == "buy") ld_ret_8 = Ask + TP * Point;
if (as_0 == "sell") ld_ret_8 = Bid - TP * Point;
return (ld_ret_8);
**
// D2CF3D6D811D4B244554948A1F410D11
void f0_7(string as_0) {
double price_12;
double price_20 = f0_10(as_0);
for (int pos_8 = OrdersTotal() - 1; pos_8 >= 0; pos_8--) {
OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (as_0 == "buy") {
if (OrderType() == OP_BUY) {
price_12 = price_20 + TP * Point;
if (OrderTakeProfit() != price_12) {
Print("Ìîäèôèöèðóåì ïîêóïêó. Áåçóáûòîê = " + DoubleToStr(price_20, 4) + ", ÒÐ = " + DoubleToStr(TP, 4) + " Íîâûé óðîâåíü = " + DoubleToStr(price_12, 4));
OrderModify(OrderTicket(), price_20, OrderStopLoss(), price_12, 0, Yellow);
**
**
**
if (as_0 == "sell") {
if (OrderType() == OP_SELL) {
price_12 = price_20 - TP * Point;
if (OrderTakeProfit() != price_12) {
Print("Ìîäèôèöèðóåì ïðîäàæó. Áåçóáûòîê = " + DoubleToStr(price_20, 4) + ", ÒÐ = " + DoubleToStr(TP, 4) + " Íîâûé óðîâåíü = " + DoubleToStr(price_12, 4));
OrderModify(OrderTicket(), price_20, OrderStopLoss(), price_12, 0, Yellow);
**
**
**
**
**
**
// E22AEE74FEDC5B53CC5722692844859F
double f0_8(string as_0) {
double ld_ret_8;
double ld_16 = MarketInfo(Symbol(), MODE_MINLOT);
if (as_0 == "buy") {
if (FixLot) ld_ret_8 = LotSize;
else ld_ret_8 = NormalizeDouble(LotSize * NormalizeDouble(AccountEquity() / LotStep, 0), LotDecimal);
**
if (as_0 == "sell") {
if (FixLot) ld_ret_8 = LotSize;
else ld_ret_8 = NormalizeDouble(LotSize * NormalizeDouble(AccountEquity() / LotStep, 0), LotDecimal);
**
if (ld_ret_8 < ld_16) ld_ret_8 = ld_16;
return (ld_ret_8);
**
// 0C1C283FB795A42D00E5DA5185B18FF6
double f0_0(string as_0) {
double ld_ret_8;
int li_16 = f0_6(as_0);
if (as_0 == "buy") {
if (li_16 >= StepX) ld_ret_8 = NormalizeDouble(f0_9(as_0, "Lots") * LotExponent2, LotDecimal);
else ld_ret_8 = NormalizeDouble(f0_9(as_0, "Lots") * LotExponent1, LotDecimal);
**
if (as_0 == "sell") {
if (li_16 >= StepX) ld_ret_8 = NormalizeDouble(f0_9(as_0, "Lots") * LotExponent2, LotDecimal);
else ld_ret_8 = NormalizeDouble(f0_9(as_0, "Lots") * LotExponent1, LotDecimal);
**
return (ld_ret_8);
**
// B7D597BCB469A3CD268D777F4C7E519B
int f0_5(string as_0) {
int li_20;
double ima_8 = iMA(Symbol(), gia_332[TF_MA2], Per_MA2, 0, MODE_SMA, PRICE_CLOSE, 0);
bool li_ret_16 = FALSE;
if (as_0 == "buy" && ima_8 < Bid) {
if (iCustom(NULL, gia_332[TFSilence2], "Silence2_02", PerSilence2, BuffSilence2, 2, 0) < Sil_Level2) li_20 = NormalizeDouble(PipStep * MathPow(PipStepExponent, f0_6(as_0)), 0);
else li_20 = NormalizeDouble(PipStep2 * MathPow(PipStepExponent, f0_6(as_0)), 0);
if (f0_9(as_0, "Price") - Ask >= li_20 * Point && f0_6(as_0) < MaxTrades) li_ret_16 = TRUE;
**
if (as_0 == "sell" && ima_8 > Bid) {
if (iCustom(NULL, gia_332[TFSilence2], "Silence2_02", PerSilence2, BuffSilence2, 2, 0) < Sil_Level2) li_20 = NormalizeDouble(PipStep * MathPow(PipStepExponent, f0_6(as_0)), 0);
else li_20 = NormalizeDouble(PipStep2 * MathPow(PipStepExponent, f0_6(as_0)), 0);
if (Bid - f0_9(as_0, "Price") >= li_20 * Point && f0_6(as_0) < MaxTrades) li_ret_16 = TRUE;
**
return (li_ret_16);
**
// E356135A6654284FD355B41550922373
double f0_9(string as_0, string as_8) {
double order_open_price_16;
double order_lots_24;
int ticket_36 = 0;
for (int pos_32 = OrdersTotal() - 1; pos_32 >= 0; pos_32--) {
OrderSelect(pos_32, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (as_0 == "buy") {
if (OrderType() == OP_BUY) {
if (OrderTicket() > ticket_36) {
order_open_price_16 = OrderOpenPrice();
order_lots_24 = OrderLots();
ticket_36 = OrderTicket();
**
**
**
if (as_0 == "sell") {
if (OrderType() == OP_SELL) {
if (OrderTicket() > ticket_36) {
order_open_price_16 = OrderOpenPrice();
order_lots_24 = OrderLots();
ticket_36 = OrderTicket();
**
**
**
**
**
if (as_8 == "Price") return (order_open_price_16);
if (as_8 == "Lots") return (order_lots_24);
return (0.0);
**
// CBBD1151F6D49BC6C817A0B96D15036D
int f0_6(string as_0) {
int count_8 = 0;
for (int pos_12 = OrdersTotal() - 1; pos_12 >= 0; pos_12--) {
OrderSelect(pos_12, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (as_0 == "buy")
if (OrderType() == OP_BUY) count_8++;
if (as_0 == "sell")
if (OrderType() == OP_SELL) count_8++;
**
**
return (count_8);
**
// FE5FF5AE6A41BFD8BC58597971C9273D
double f0_10(string as_0) {
double ld_8 = 0;
double ld_16 = 0;
for (int pos_24 = OrdersTotal() - 1; pos_24 >= 0; pos_24--) {
OrderSelect(pos_24, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (as_0 == "buy") {
if (OrderType() == OP_BUY) {
ld_8 += OrderOpenPrice() * OrderLots();
ld_16 += OrderLots();
**
**
if (as_0 == "sell") {
if (OrderType() == OP_SELL) {
ld_8 += OrderOpenPrice() * OrderLots();
ld_16 += OrderLots();
**
**
**
**
ld_8 = NormalizeDouble(ld_8 / ld_16, Digits);
return (ld_8);
**
// A82BE0F551B8708BC08EB33CD9DED0CF
void f0_4() {
if (InformationOnChart) {
Comment("" + " AUTO TRADE " + Symbol()
+ "\n"
+ " ------------------------------------------------"
+ "\n"
+ " Broker: " + AccountCompany() + ". AccountLeverage: 1:" + DoubleToStr(AccountLeverage(), 0)
+ "\n"
+ " ------------------------------------------------"
+ "\n"
+ " Buy open -> " + f0_6("buy") + " MaxTrades -> " + MaxTrades
+ "\n"
+ " Open balance: " + DoubleToStr(f0_2("buy", "Balance"), 2)
+ "\n"
+ " Open lot: " + DoubleToStr(f0_2("buy", "Lot"), 2)
+ "\n"
+ " ------------------------------------------------"
+ "\n"
+ " Sell open -> " + f0_6("sell") + " MaxTrades -> " + MaxTrades
+ "\n"
+ " Open balance: " + DoubleToStr(f0_2("sell", "Balance"), 2)
+ "\n"
+ " Open lot: " + DoubleToStr(f0_2("sell", "Lot"), 2)
+ "\n"
+ " ------------------------------------------------"
+ "\n"
+ " Close Lock: " + DoubleToStr(AccountEquity() / Limit, 2)
+ "\n"
+ " Balance Buy && Sell: " + DoubleToStr(f0_2("buy", "Balance") + f0_2("sell", "Balance"), 2));
**
**
// 99A808D8D16122D70E44BD7F709D30FB
double f0_2(string as_0, string as_8) {
double ld_ret_16 = 0;
for (int pos_24 = OrdersTotal() - 1; pos_24 >= 0; pos_24--) {
OrderSelect(pos_24, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (as_0 == "buy") {
if (OrderType() == OP_BUY) {
if (as_8 == "Balance") ld_ret_16 = ld_ret_16 + OrderProfit() - OrderSwap() - OrderCommission();
if (as_8 == "Lot") ld_ret_16 += OrderLots();
**
**
if (as_0 == "sell") {
if (OrderType() == OP_SELL) {
if (as_8 == "Balance") ld_ret_16 = ld_ret_16 + OrderProfit() - OrderSwap() - OrderCommission();
if (as_8 == "Lot") ld_ret_16 += OrderLots();
**
**
**
**
return (ld_ret_16);
**
// 9F2853B599796FEF77DFE429BC6626A4
double f0_3() {
double lotstep_0 = MarketInfo(Symbol(), MODE_LOTSTEP);
int li_ret_8 = MathCeil(MathAbs(MathLog(lotstep_0) / MathLog(10)));
return (li_ret_8);
**