А возможно ли использовать один индикатор на одном графике для покупки и продажи с двумя разными параметрами???
А возможно ли использовать один индикатор на одном графике для покупки и продажи с двумя разными параметрами???
На данный момент это выглядит так:
l_ienvelopes_0 = iEnvelopes(NULL, 0, EnvPeriod, EnvMethod, SdvigU,EnvUpperDev, EnvPrice, MODE_UPPER, Shift);
l_ienvelopes_8 = iEnvelopes(NULL, 0, EnvPeriod, EnvMethod, SdvigL,EnvLowerDev, EnvPrice, MODE_LOWER, Shift);
if ((Close[Shift] < l_ienvelopes_8 && g_lots_236 != Time[0])&& (MathAbs(Open[0] - Open[FilterD]) <= FilterV * Point)) {
l_ticket_16 = OrderSend(Symbol(), OP_BUY, Lots(), Ask, Slippage, Ask - SL * Point, Ask + TP * Point, "foreXer_" + Symbol(), Magic, 0, DarkGreen);
if (l_ticket_16 > 0) g_lots_236 = Time[0];
Print(GetLastError());
Sleep(500);
RefreshRates();
}
if ((Close[Shift] > l_ienvelopes_0 && g_lots_240 != Time[0])&& (MathAbs(Open[0] - Open[FilterDS]) <= FilterVS * Point)) {
l_ticket_16 = OrderSend(Symbol(), OP_SELL, Lots(), Bid, Slippage, Bid + SL * Point, Bid - TP * Point, "foreXer_" + Symbol(), Magic, 0, DeepPink);
if (l_ticket_16 > 0) g_lots_240 = Time[0];
Print(GetLastError());
Sleep(500);
RefreshRates();
}
Где l_ienvelopes_0 используется для покупки
а l_ienvelopes_8 используется для продажи
НО оказывается важны здесь только MODE_UPPER и MODE_LOWER
Ситуёвина получается такая что на графике неа данный момент рисуется 4 линии две верхних и две нижних, а толку с них никокого. Советник берёт любую из них которая подходит по условиям и выставляет сделку!
Как сделать так что-бы советник для покупки учитывал только MODE_UPPER именно l_ienvelopes_0, а для продажи MODE_LOWER только l_ienvelopes_8 Другие линии недолжны учитываться!
А чего это код ломанный?
А я и не говорю что это код индюка! Это код советника использующего индикатор! На графике отображается по двум разным параметрам отображает 4 линии вот как откинуть две не нужные??? То есть мне нужна верхняя с l_ienvelopes_0 и нижняя с l_ienvelopes_8
А он берёт какую ему удобно! Можно сделать что-бы он реагировал только на те линии которые мне нужно?
В коде рассчитываются только две линии и они же используются. Какие четыре. Откуда они взялись
То есть мне нужна верхняя с l_ienvelopes_0 и нижняя с l_ienvelopes_8
А он берёт какую ему удобно! Можно сделать что-бы он реагировал только на те линии которые мне нужно?
Он берет то, что прописано в коде, и не с графика, а рассчитывает значения индикатора сам, внутри эксперта.
Те индикаторы, что повешены на график, ему параллельны.
В переменную l_ienvelopes_0 вносится значение MODE_UPPER индикатора iEnvelopes с параметрами,
прописанными в его строке на баре с номером Shift.
В переменную l_ienvelopes_8 вносится значение MODE_LOWER индикатора iEnvelopes с параметрами,
прописанными в его строке на баре с номером Shift.
Shift обычно определяется во внешних переменных как 0 или 1.
И никаких чудес в этой части кода больше не происходит.
l_ienvelopes_0 = iEnvelopes(NULL, 0, EnvPeriod, EnvMethod, SdvigU,EnvUpperDev, EnvPrice, MODE_UPPER, Shift); l_ienvelopes_8 = iEnvelopes(NULL, 0, EnvPeriod, EnvMethod, SdvigL,EnvLowerDev, EnvPrice, MODE_LOWER, Shift);
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
А возможно ли использовать один индикатор на одном графике для покупки и продажи с двумя разными параметрами???
На данный момент это выглядит так:
l_ienvelopes_0 = iEnvelopes(NULL, 0, EnvPeriod, EnvMethod, SdvigU,EnvUpperDev, EnvPrice, MODE_UPPER, Shift);
l_ienvelopes_8 = iEnvelopes(NULL, 0, EnvPeriod, EnvMethod, SdvigL,EnvLowerDev, EnvPrice, MODE_LOWER, Shift);
if ((Close[Shift] < l_ienvelopes_8 && g_lots_236 != Time[0])&& (MathAbs(Open[0] - Open[FilterD]) <= FilterV * Point)) {
l_ticket_16 = OrderSend(Symbol(), OP_BUY, Lots(), Ask, Slippage, Ask - SL * Point, Ask + TP * Point, "foreXer_" + Symbol(), Magic, 0, DarkGreen);
if (l_ticket_16 > 0) g_lots_236 = Time[0];
Print(GetLastError());
Sleep(500);
RefreshRates();
}
if ((Close[Shift] > l_ienvelopes_0 && g_lots_240 != Time[0])&& (MathAbs(Open[0] - Open[FilterDS]) <= FilterVS * Point)) {
l_ticket_16 = OrderSend(Symbol(), OP_SELL, Lots(), Bid, Slippage, Bid + SL * Point, Bid - TP * Point, "foreXer_" + Symbol(), Magic, 0, DeepPink);
if (l_ticket_16 > 0) g_lots_240 = Time[0];
Print(GetLastError());
Sleep(500);
RefreshRates();
}
Где l_ienvelopes_0 используется для покупки
а l_ienvelopes_8 используется для продажи
НО оказывается важны здесь только MODE_UPPER и MODE_LOWER
Ситуёвина получается такая что на графике неа данный момент рисуется 4 линии две верхних и две нижних, а толку с них никокого. Советник берёт любую из них которая подходит по условиям и выставляет сделку!
Как сделать так что-бы советник для покупки учитывал только MODE_UPPER именно l_ienvelopes_0, а для продажи MODE_LOWER только l_ienvelopes_8 Другие линии недолжны учитываться!