При привышении максимального размера канала отложенные ордера на пробитие не устанавливаются

 

Ледис енд джентельменс.

Есть функция, которая определяет канал, при пробитии которого срабатывают отложенные ордера. Пожалуйчта помогите внести изменения, что бы при превышении опреленной ширины канала в пипах, отложенные ордера не выставлялись. Я не програмер, слышал токо про бейсик. Один пытался (шрифт изменений выделил) но не работает. Посмотрите, помогите. Вот кусок кода.

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();

 

кто- ниб поможет?

 
sever29 писал(а) >>

кто- ниб поможет?

я тут ордер сенд что то не заметил.

вообще, если хотите чтобы л.ди помогли, то советую выложить файл mq4

 
там много всего разного, думаю этого куска кода достаточно
 
sever29 писал(а) >>
там много всего разного, думаю этого куска кода достаточно

почему вы решили, что достаточно? где тут ордерсенд?

пока не появится ордерсенд, здесь делать нечего.

 
sever29 >>:

Для выкладывания кода есть кнопка [SRC]

код получается вот таким
 
Да, но я уже выложил, что мог.
 
sever29 писал(а) >>
Да, но я уже выложил, что мог.

Хотите результата, сделайте что просят.

 
sever29 >>:
Да, но я уже выложил, что мог.

у вас же есть готовый код ... а вы выложили из него какую то выжимку


у тех кто готов помочь нет времени на создание недостающего кода

--

Viin Виктор правильно заметил


а теоритически

решение в вашем коде вроде стоит

//

if (SendOrder && Day_OfWeek() && FlatChannelSize <= MaxFlatChannelSize * MyPoint)

{

SendPendingOrders(); // тогда выставлять

}



что бы корректно понять что там у вас не так - нужно иметь иметь весь

 
это всеравно, что выложить в кодобазу:(