кто- ниб поможет?
там много всего разного, думаю этого куска кода достаточно
Да, но я уже выложил, что мог.
у вас же есть готовый код ... а вы выложили из него какую то выжимку
у тех кто готов помочь нет времени на создание недостающего кода
--
Viin Виктор правильно заметил
а теоритически
решение в вашем коде вроде стоит
//
if (SendOrder && Day_OfWeek() && FlatChannelSize <= MaxFlatChannelSize * MyPoint)
{
SendPendingOrders(); // тогда выставлять
}
что бы корректно понять что там у вас не так - нужно иметь иметь весь
это всеравно, что выложить в кодобазу:(
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ледис енд джентельменс.
Есть функция, которая определяет канал, при пробитии которого срабатывают отложенные ордера. Пожалуйчта помогите внести изменения, что бы при превышении опреленной ширины канала в пипах, отложенные ордера не выставлялись. Я не програмер, слышал токо про бейсик. Один пытался (шрифт изменений выделил) но не работает. Посмотрите, помогите. Вот кусок кода.
int FlatStartBar = iBarShift (Symbol(), 0, iTime(Symbol(), PERIOD_D1, 0) + FlatStartHour*3600 + (FlatStartMinute)*60);
/*int FlatCurrentBar = iBarShift (Symbol(), 0, TimeCurrent());*/
if ((Hour() > FlatStartHour || (Hour() == FlatStartHour && Minute() >= FlatStartMinute)) &&
(Hour() < FlatEndHour || (FlatEndMinute > 0 && Hour() == FlatEndHour && Minute() < FlatEndMinute)) && TimeCurrent() >= Time[0])
{
if (!IsOptimization() && !(IsTesting() && !IsVisualMode()))
{
ObjectDelete("НLine");
ObjectDelete("LLine");
}
HighFlatLevel = iHigh(Symbol(), 0, iHighest(Symbol(), 0, MODE_HIGH, FlatStartBar + 1/*(60/Period())*/, 0));
LowFlatLevel = iLow(Symbol(), 0, iLowest(Symbol(), 0, MODE_LOW, FlatStartBar + 1/*(60/Period())*/, 0));
double FlatChannelSize = HighFlatLevel - LowFlatLevel;
if (!IsOptimization() && !(IsTesting() && !IsVisualMode()))
{
ObjectCreate("НLine", 1, 0, 0, HighFlatLevel);
ObjectCreate("LLine", 1, 0, 0, LowFlatLevel);
}
// }
}
if (Hour() > FlatEndHour || Hour() == FlatEndHour && Minute() >= FlatEndMinute)
{
if (SendOrder && Day_OfWeek() && FlatChannelSize <= MaxFlatChannelSize * MyPoint)
{
double FlatChannelWidth = HighFlatLevel - LowFlatLevel;
BuyStopLevel = NormalizeDouble(HighFlatLevel + FlatChannelWidth*(PendingOrdersLevels - 1)/2 + Delta*MyPoint, Digits);
SellStopLevel = NormalizeDouble(LowFlatLevel - FlatChannelWidth*(PendingOrdersLevels - 1)/2 - Delta*MyPoint, Digits);
TPBuyLevels1 = NormalizeDouble(HighFlatLevel + FlatChannelWidth*(TPLevels1 - 1), Digits);
TPSellLevels1 = NormalizeDouble(LowFlatLevel - FlatChannelWidth*(TPLevels1 - 1), Digits);
TPBuyLevels2 = NormalizeDouble(HighFlatLevel + FlatChannelWidth*(TPLevels2 - 1), Digits);
TPSellLevels2 = NormalizeDouble(LowFlatLevel - FlatChannelWidth*(TPLevels2 - 1), Digits);
SendPendingOrders();