Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Предупреждение о смене направления движения
Здравствуйте,
В советнике, который покупает, например, если MA10>MA20 (и продает напротив), как я могу написать алерт, если Buy и MA10<MA20 (и напротив)?
Спасибо.
Jo
Здравствуйте,
В советнике, который покупает, например, если MA10>MA20 (и продает напротив), как я могу написать алерт, если Buy и MA10<MA20 (и напротив)?
Спасибо.
ДжоПопробуйте так :
if (MA10previousMA20) для первого условия
if (MA10previous>MA20previous && MA10<MA20) для второго условия
Вы пробуете оповещения в обратном тесте? Если да, то причина в этом: оповещения не работают в обратном тесте.
Спасибо. Раньше они работали, как в Build 509.
Спасибо. Раньше они работали, как в Build 509.
:):)
Многое из того, что раньше работало, теперь не работает в этом "новом метатрейдере". Попробуйте использовать мультитаймфрейм в визуальном бэктесте и у вас будет "развлечение" на выходные.
Выглядит знакомо. Я проверю, существует ли он уже.
Есть ли успехи в этом, господин Младен...
Смогли ли вы найти его????
Спасибо
:):):):) Многое из того, что раньше работало, теперь не работает в этом "новом метатрейдере". Попробуйте использовать мультитаймфрейм в визуальном бэктесте и у вас будет "развлечение" на выходные .
Привет Младен
Я вижу, что вы один из тех полезных программистов, поэтому я могу спросить, не могли бы вы сделать советник из добавленного индикатора. Этот не перерисовывается и дает поразительно хорошие сигналы!
Здравствуйте ребята, помогите пожалуйста посмотреть на этот код, что можно сделать чтобы он алертил и показывал стрелки на текущей свече.
Заранее спасибо
// B83A886A5C437CCD9AC15473FD6F1788
void f0_2(string As_0) {
if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) SendMail(WindowExpertName(), As_0);
}
// A8CFDE6331BD59EB2AC96F8911C4B666
void f0_1(string A_name_0, string A_text_8, string A_fontname_16, int A_fontsize_24, color A_color_28, int A_y_32, int A_x_36, int A_corner_40, int A_bool_44) {
ObjectCreate(A_name_0, OBJ_LABEL, 0, 0, 0, 0);
ObjectSetText(A_name_0, A_text_8, A_fontsize_24, A_fontname_16, A_color_28);
ObjectSet(A_name_0, OBJPROP_CORNER, A_corner_40);
ObjectSet(A_name_0, OBJPROP_XDISTANCE, A_x_36);
ObjectSet(A_name_0, OBJPROP_YDISTANCE, A_y_32);
ObjectSet(A_name_0, OBJPROP_BACK, A_bool_44);
}
// 085FEA7ABDC5D904FE69A3081EFD7398
void f0_0(string As_0, int GetBar) {
if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) {
if (sound) PlaySound("News.wav");
if (alert) Alert("Новый сигнал " + As_0+ " @ Symbol: "+Symbol()+" & Period: "+Period()+" & Time: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));
if (email) f0_2("Новый сигнал " + As_0+ " @ Symbol: "+Symbol()+" & Period: "+Period()+" & Time: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));
}
}
// BE8F80182E0C983916DA7338C2C1C040
int f0_3(string A_name_0, string A_name_8) {
if (ObjectFind(A_name_0) == -1) return (0);
if (ObjectFind(A_name_8) == -1) return (0);
if (ObjectGet(A_name_0, OBJPROP_XDISTANCE) > ObjectGet(A_name_8, OBJPROP_XDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_XDISTANCE) < ObjectGet(A_name_8, OBJPROP_XDISTANCE) +
10.0) {
if (ObjectGet(A_name_0, OBJPROP_YDISTANCE) > ObjectGet(A_name_8, OBJPROP_YDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_YDISTANCE) < ObjectGet(A_name_8, OBJPROP_YDISTANCE) +
10.0) return (1);
}
return (0);
}
// E4DB2306E8CC4DEB5830201DE61935CA
double f0_4() {
double Ld_ret_0 = 0;
for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {
if (OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES) == TRUE)
if (OrderSymbol() == Symbol()) Ld_ret_0 += OrderProfit();
}
return (Ld_ret_0);
}
// EA2B2676C28C0DB26D39331A336C6B92
int start() {
строка Ls_0;
double iatr_20;
double Ld_28;
double Ld_36;
int TimeBar=0;
if (f0_3("x", "r4") == 1) {
alert = FALSE;
ObjectDelete("r2");
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
if (f0_3("x", "t4") == 1) {
звук = FALSE;
ObjectDelete("t2");
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
if (f0_3("x", "u4") == 1) {
email = FALSE;
ObjectDelete("u2");
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
if (f0_3("x", "r3") == 1) {
alert = TRUE;
f0_1("r2", "þ", "Wingdings", 14, Red, 55, 65, 1, FALSE);
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
if (f0_3("x", "t3") == 1) {
звук = TRUE;
f0_1("t2", "þ", "Wingdings", 14, Red, 80, 65, 1, FALSE);
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
if (f0_3("x", "u3") == 1) {
email = TRUE;
f0_1("u2", "þ", "Wingdings", 14, Red, 105, 65, 1, FALSE);
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
for (int index_8 = 0; index_8 < 100; index_8++) {
if (G_ibuf_108 < 1000.0) {
TimeBar=Time;
Ls_0 = "BUY";
break;
}
if (G_ibuf_112 < 1000.0) {
TimeBar=Time;
Ls_0 = "ПРОДАВАТЬ";
break;
}
}
if (Ls_0 == "BUY" && ObjectDescription("Signal1") != "BUY") {
f0_0("BUY",TimeBar);
f0_1("Signal1", "BUY", "Wingdings 3", 30, White, 80, 32, 1, FALSE);
}
if (Ls_0 == "SELL" && ObjectDescription("Signal1") != "SELL") {
f0_0("SELL",TimeBar);
f0_1("Signal1", "SELL", "Wingdings 3", 30, White, 80, 25, 1, FALSE);
}
f0_1("r1", "Profit", "Arial", 10, Lime, 50, 80, 1, FALSE);
f0_1("Pr", DoubleToStr(f0_4(), 0), "Arial", 13, Yellow, 50, 35, 1, FALSE);
if (Time[0] == G_time_192) return (0);
G_time_192 = Time[0];
int Li_12 = Bars - IndicatorCounted();
if (IndicatorCounted() > 0) Li_12++;
for (int bars_16 = Bars; bars_16 > 0; bars_16--) {
if (bars_16 <= HistoriBar) {
iatr_20 = iATR(NULL, 0, 100, 0);
Ld_28 = Close - iATR(NULL, 0, PeriodIndikator, bars_16) * Factor;
Ld_36 = Close + iATR(NULL, 0, PeriodIndikator, bars_16) * Factor;
if (Ld_28 > Gd_156 && Gi_180 == 1) Gd_156 = Ld_28;
if (Ld_36 < Gd_148 && Gi_180 == 2) Gd_148 = Ld_36;
если (Gd_156 != 0.0 && Gi_180 == 1) Gd_unused_124 = Gd_156;
if (Gd_148 != 1000.0 && Gi_180 == 2) Gd_unused_132 = Gd_148;
if (Close < Gd_156 && Gi_180 == 1) {
Gi_180 = 2;
if (bars_16 < HistoriBar / 2.0) G_ibuf_112 = High + iatr_20;
Gd_156 = 0;
}
if (Close > Gd_148 && Gi_180 == 2) {
Gi_180 = 1;
if (bars_16 < HistoriBar / 2.0) G_ibuf_108 = Low - iatr_20;
Gd_148 = 1000;
}
}
}
return (0);
}
// 52D46093050F38C27267BCE42543EF60
int deinit() {
Привет Младен Я вижу, что вы один из тех полезных программистов, поэтому я могу спросить, не могли бы вы сделать советника из добавленного индикатора. Этот индикатор не перерисовывается и дает поразительно хорошие сигналы!
wolfsch
Должен вас разочаровать, но этот индикатор использует T3 clean and snake indicator. Так вот, T3 не перерисовывает. Но "змея" является центрированной tma и пересчитывается, что делает этот индикатор пересчитывающимся (перерисовывающимся).
PS: на самом деле это переименованный индикатор "T3 TMA combination", который затем был переименован в индикатор "uni cross". Более подробную информацию о нем вы можете найти здесь: https: //www.mql5.com/en/forum/general.
Здравствуйте ребята, помогите пожалуйста посмотреть на этот код, что можно сделать чтобы он оповещал и показывал стрелки на текущей свече.
Заранее спасибо
// B83A886A5C437CCD9AC15473FD6F1788
void f0_2(string As_0) {
if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) SendMail(WindowExpertName(), As_0);
}
// A8CFDE6331BD59EB2AC96F8911C4B666
void f0_1(string A_name_0, string A_text_8, string A_fontname_16, int A_fontsize_24, color A_color_28, int A_y_32, int A_x_36, int A_corner_40, int A_bool_44) {
ObjectCreate(A_name_0, OBJ_LABEL, 0, 0, 0, 0);
ObjectSetText(A_name_0, A_text_8, A_fontsize_24, A_fontname_16, A_color_28);
ObjectSet(A_name_0, OBJPROP_CORNER, A_corner_40);
ObjectSet(A_name_0, OBJPROP_XDISTANCE, A_x_36);
ObjectSet(A_name_0, OBJPROP_YDISTANCE, A_y_32);
ObjectSet(A_name_0, OBJPROP_BACK, A_bool_44);
}
// 085FEA7ABDC5D904FE69A3081EFD7398
void f0_0(string As_0, int GetBar) {
if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) {
if (sound) PlaySound("News.wav");
if (alert) Alert("Новый сигнал " + As_0+ " @ Symbol: "+Symbol()+" & Period: "+Period()+" & Time: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));
if (email) f0_2("Новый сигнал " + As_0+ " @ Symbol: "+Symbol()+" & Period: "+Period()+" & Time: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));
}
}
// BE8F80182E0C983916DA7338C2C1C040
int f0_3(string A_name_0, string A_name_8) {
if (ObjectFind(A_name_0) == -1) return (0);
if (ObjectFind(A_name_8) == -1) return (0);
if (ObjectGet(A_name_0, OBJPROP_XDISTANCE) > ObjectGet(A_name_8, OBJPROP_XDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_XDISTANCE) < ObjectGet(A_name_8, OBJPROP_XDISTANCE) +
10.0) {
if (ObjectGet(A_name_0, OBJPROP_YDISTANCE) > ObjectGet(A_name_8, OBJPROP_YDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_YDISTANCE) < ObjectGet(A_name_8, OBJPROP_YDISTANCE) +
10.0) return (1);
}
return (0);
}
// E4DB2306E8CC4DEB5830201DE61935CA
double f0_4() {
double Ld_ret_0 = 0;
for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {
if (OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES) == TRUE)
if (OrderSymbol() == Symbol()) Ld_ret_0 += OrderProfit();
}
return (Ld_ret_0);
}
// EA2B2676C28C0DB26D39331A336C6B92
int start() {
строка Ls_0;
double iatr_20;
double Ld_28;
double Ld_36;
int TimeBar=0;
if (f0_3("x", "r4") == 1) {
alert = FALSE;
ObjectDelete("r2");
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
if (f0_3("x", "t4") == 1) {
звук = FALSE;
ObjectDelete("t2");
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
if (f0_3("x", "u4") == 1) {
email = FALSE;
ObjectDelete("u2");
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
if (f0_3("x", "r3") == 1) {
alert = TRUE;
f0_1("r2", "þ", "Wingdings", 14, Red, 55, 65, 1, FALSE);
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
if (f0_3("x", "t3") == 1) {
звук = TRUE;
f0_1("t2", "þ", "Wingdings", 14, Red, 80, 65, 1, FALSE);
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
if (f0_3("x", "u3") == 1) {
email = TRUE;
f0_1("u2", "þ", "Wingdings", 14, Red, 105, 65, 1, FALSE);
f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);
PlaySound("Tick.wav");
G_time_192 = 0;
RefreshRates();
}
for (int index_8 = 0; index_8 < 100; index_8++) {
if (G_ibuf_108 < 1000.0) {
TimeBar=Time;
Ls_0 = "BUY";
break;
}
if (G_ibuf_112 < 1000.0) {
TimeBar=Time;
Ls_0 = "ПРОДАВАТЬ";
break;
}
}
if (Ls_0 == "BUY" && ObjectDescription("Signal1") != "BUY") {
f0_0("BUY",TimeBar);
f0_1("Signal1", "BUY", "Wingdings 3", 30, White, 80, 32, 1, FALSE);
}
if (Ls_0 == "SELL" && ObjectDescription("Signal1") != "SELL") {
f0_0("SELL",TimeBar);
f0_1("Signal1", "SELL", "Wingdings 3", 30, White, 80, 25, 1, FALSE);
}
f0_1("r1", "Profit", "Arial", 10, Lime, 50, 80, 1, FALSE);
f0_1("Pr", DoubleToStr(f0_4(), 0), "Arial", 13, Yellow, 50, 35, 1, FALSE);
if (Time[0] == G_time_192) return (0);
G_time_192 = Time[0];
int Li_12 = Bars - IndicatorCounted();
if (IndicatorCounted() > 0) Li_12++;
for (int bars_16 = Bars; bars_16 > 0; bars_16--) {
if (bars_16 <= HistoriBar) {
iatr_20 = iATR(NULL, 0, 100, 0);
Ld_28 = Close - iATR(NULL, 0, PeriodIndikator, bars_16) * Factor;
Ld_36 = Close + iATR(NULL, 0, PeriodIndikator, bars_16) * Factor;
if (Ld_28 > Gd_156 && Gi_180 == 1) Gd_156 = Ld_28;
if (Ld_36 < Gd_148 && Gi_180 == 2) Gd_148 = Ld_36;
если (Gd_156 != 0.0 && Gi_180 == 1) Gd_unused_124 = Gd_156;
if (Gd_148 != 1000.0 && Gi_180 == 2) Gd_unused_132 = Gd_148;
if (Close < Gd_156 && Gi_180 == 1) {
Gi_180 = 2;
if (bars_16 < HistoriBar / 2.0) G_ibuf_112 = High + iatr_20;
Gd_156 = 0;
}
if (Close > Gd_148 && Gi_180 == 2) {
Gi_180 = 1;
if (bars_16 < HistoriBar / 2.0) G_ibuf_108 = Low - iatr_20;
Gd_148 = 1000;
}
}
}
return (0);
}
// 52D46093050F38C27267BCE42543EF60
int deinit() {Здравствуйте Emmany4, если вы найдете оригинальный код для этого советника, то вероятно сможете добавить или исправить стрелки и алерты на покупку и продажу, но эта версия декомпилирована.
Здравствуйте Emmany4, если бы вы нашли оригинальный код этого советника, то, вероятно, смогли бы добавить или исправить стрелки и алерты на покупку и продажу, но эта версия декомпилирована.
Насколько я понимаю, это неполный декомпилированный код какой-то супертрендовой вариации (той, что использует atr, а не версию cci). Больше ничего. В любом случае, этот код, как он есть, не может работать (большие части его отсутствуют).