Скажите пожалуйса, желательно кодом для МТ4. Элементарная штука. Как узнать ХАЙ и ЛОУ сегодняшнего дня ?На любом таймфрейме, обращение к свече D1 маркет не пропускает и выдает ошибку. На демо и реале работает.
А раз возмущается текущим днём, то желательно увидеть снимок ошибок тестирования. Или просто замените iLow на CopyLow если действительно на эту строку ругается…
делаю сеточник из лимиток с тралом впервые. Трал работает но все ордера сначала в кучу собирает и тралит их все вместе.
Подскажите пожалуйста, что нужно добавить, чтобы лимитки тралились с тем же шагом, с которым были выставлены?
вот так выставляются:
//+------------------------------------------------------------------+//| Установка лимиток по |//+------------------------------------------------------------------+if(CountOrdersB()==0)
{
if(Bid > iHigh(NULL,PERIOD_D1,1)&&Bid>iHigh(NULL,PERIOD_H1,1)) //условие для покупки и определение флета
{
for(x=1;x<=MAX_Lines;x++) // считает сколько открыто линий сетки отложенными ордерами, чтобы не превышало указанное в исходных параметрах MAX_Lines
{ //сек/мин/ч/дн/if (OrderSend(Symbol(),OP_BUYLIMIT,lot,Ask-((Delta1-Delta)+Delta*x)*Point,slippage,Ask-((Delta1+Delta*(MAX_Lines-1))+SL)*Point,Ask+TP*Point,"",magic,TimeCurrent()+60*60*24*DN,Blue))
{Print("Open BuyLimit: ",_Symbol);}
else {Print("Error Open BuyLimit: ",_Symbol," / ",GetLastError());}
}
}
}
if(CountOrdersS()==0)
{
if(Ask < iLow(NULL,PERIOD_D1,1)&&Ask<iLow(NULL,PERIOD_H1,1))//условие для продажи и определение флета
{
for(x=1;x<=MAX_Lines;x++)
{
//сек/мин/ч/дн/ if (OrderSend(Symbol(),OP_SELLLIMIT,lot,Bid+((Delta1-Delta)+Delta*x)*Point,slippage,Bid+((Delta1+Delta*(MAX_Lines-1))+SL)*Point,Bid-TP*Point,"",magic,TimeCurrent()+60*60*24*DN,Red))
{Print("Open SellLimit: ",_Symbol);}
else {Print("Error Open SellLimit: ",_Symbol," / ",GetLastError());}
}
}
}
//+------------------------------------------------------------------+
а вот так делаю трал:
//+------------------------------------------------------------------+for(int i1=total-1; i1>=0; i1--)
if(OrderSelect(i1,SELECT_BY_POS))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==magic)
{
if(OrderType()==OP_BUYLIMIT) // Если ордер БайЛимит то тралим его
{
if(Bid-OrderOpenPrice()>(((Delta1-Delta)+Delta*x)*Point) && (Bid-(((Delta1-Delta)+Delta*x)*Point))-OrderOpenPrice()>step_interval)
{
bool mod=OrderModify(OrderTicket(),NormalizeDouble(Ask-(((Delta1-Delta)+Delta*x)*Point+step_interval),Digits),
NormalizeDouble(Ask-(((Delta1+Delta*(MAX_Lines-1))+SL)*Point+step_interval),Digits),
NormalizeDouble((Ask+(TP*Point)+step_interval),Digits),0,0);
if(!mod) Print("Ошибка трала BUYLIMIT=",GetLastError());
}
}
//+------------------------------------------------------------------+if(OrderType()==OP_SELLLIMIT) // Если ордер СеллЛимит то тралим его
{
if(OrderOpenPrice()-Ask>(((Delta1-Delta)+Delta*x)*Point) && OrderOpenPrice()-(Ask+(((Delta1-Delta)+Delta*x)*Point))>step_interval)
{
bool mod1=OrderModify(OrderTicket(),NormalizeDouble(Bid+(((Delta1-Delta)+Delta*x)*Point-step_interval),Digits),
NormalizeDouble(Bid+(((Delta1+Delta*(MAX_Lines-1))+SL)*Point-step_interval),Digits),
NormalizeDouble((Bid-(TP*Point)-step_interval),Digits),0,0);
if(!mod1) Print("Ошибка трала SELLLIMIT=",GetLastError());
}
}
}
//+------------------------------------------------------------------+
делаю сеточник из лимиток с тралом впервые. Трал работает но все ордера сначала в кучу собирает и тралит их все вместе.
Подскажите пожалуйста, что нужно добавить, чтобы лимитки тралились с тем же шагом, с которым были выставлены?
вот так выставляются:
а вот так делаю трал:
насколько понял по коду, подразумевается что x - уровень в сетке. В части трала,он у вас получается для всех ордеров одинаков и поэтому они сбились в кучу.
Tretyakov Rostyslav #: Я ничего не понял...объясни простыми словами, как должен работать трал.
есть сигнал - открылась сетка лимиток с шагом "Delta" в количестве "Х"шт, например байлимит
цена пошла вверх на "N" пипсов - все лимитки переместились вверх (дружно) на те же 10 пипсов.
цена пошла вниз на "N" пипсов - все лимитки (дружно) стоят на месте.
В общем как и с тралением одной лимитки за ценой, только здесь я делаю тралящуюся сетку.
Я знаю что в моей функции такое невозможно, так как я выбираю последний открытый ордер, и теоретически, могу сделать несколько дублирующихся функций по числу лимиток, но это не грамотно по моему.
Наверняка есть какой то более изящный способ, типа через магики или через тикеты сортировать лимитки, но я не знаю как это организовать, пока.
причем учет лимиток у меня по коду, раздельный. Т.е. я отдельно считаю,и открываю и закрываю байлимиты и селллимиты.
насколько понял по коду, подразумевается что x - уровень в сетке. В части трала,он у вас получается для всех ордеров одинаков и поэтому они сбились в кучу.
да. так и есть. Х - это количество лимиток с шагом delta.
да. так и есть. Х - это количество лимиток с шагом delta.
ну так и вычисляйте её (или вспоминайте/берите из каких-то структур). У вас, при трале лимиток, из-за того что X постоянный, для всех ордеров получается одинаковая цена, и они "сбиваются в кучу".
ну так и вычисляйте её (или вспоминайте/берите из каких-то структур). У вас, при трале лимиток, из-за того что X постоянный, для всех ордеров получается одинаковая цена, и они "сбиваются в кучу".
Делаю так, там и отрисовка и расчет риска от рассотяния до макс и мин дня.
Ну да. Мне надо быть повнимательней. Как я смог пропустить слово
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Volodymyr Zubov, 2023.03.14 19:45
Скажите пожалуйса, желательно кодом для МТ4. Элементарная штука. Как узнать ХАЙ и ЛОУ сегодняшнего дня ? На любом таймфрейме, обращение к свече D1 маркет не пропускает и выдает ошибку. На демо и реале работает.Делаю так, там и отрисовка и расчет риска от рассотяния до макс и мин дня.
У меня так не ругается
У меня так не ругается
Странно, но это помогло. Спасибо!
здравствуйте всем!
делаю сеточник из лимиток с тралом впервые. Трал работает но все ордера сначала в кучу собирает и тралит их все вместе.
Подскажите пожалуйста, что нужно добавить, чтобы лимитки тралились с тем же шагом, с которым были выставлены?
вот так выставляются:
а вот так делаю трал:
здравствуйте всем!
делаю сеточник из лимиток с тралом впервые. Трал работает но все ордера сначала в кучу собирает и тралит их все вместе.
Подскажите пожалуйста, что нужно добавить, чтобы лимитки тралились с тем же шагом, с которым были выставлены?
вот так выставляются:
а вот так делаю трал:
здравствуйте всем!
делаю сеточник из лимиток с тралом впервые. Трал работает но все ордера сначала в кучу собирает и тралит их все вместе.
Подскажите пожалуйста, что нужно добавить, чтобы лимитки тралились с тем же шагом, с которым были выставлены?
вот так выставляются:
а вот так делаю трал:
насколько понял по коду, подразумевается что x - уровень в сетке. В части трала,он у вас получается для всех ордеров одинаков и поэтому они сбились в кучу.
Я ничего не понял...объясни простыми словами, как должен работать трал.
есть сигнал - открылась сетка лимиток с шагом "Delta" в количестве "Х"шт, например байлимит
цена пошла вверх на "N" пипсов - все лимитки переместились вверх (дружно) на те же 10 пипсов.
цена пошла вниз на "N" пипсов - все лимитки (дружно) стоят на месте.
В общем как и с тралением одной лимитки за ценой, только здесь я делаю тралящуюся сетку.
Я знаю что в моей функции такое невозможно, так как я выбираю последний открытый ордер, и теоретически, могу сделать несколько дублирующихся функций по числу лимиток, но это не грамотно по моему.
Наверняка есть какой то более изящный способ, типа через магики или через тикеты сортировать лимитки, но я не знаю как это организовать, пока.
причем учет лимиток у меня по коду, раздельный. Т.е. я отдельно считаю,и открываю и закрываю байлимиты и селллимиты.
насколько понял по коду, подразумевается что x - уровень в сетке. В части трала,он у вас получается для всех ордеров одинаков и поэтому они сбились в кучу.
да. так и есть. Х - это количество лимиток с шагом delta.
да. так и есть. Х - это количество лимиток с шагом delta.
ну так и вычисляйте её (или вспоминайте/берите из каких-то структур). У вас, при трале лимиток, из-за того что X постоянный, для всех ордеров получается одинаковая цена, и они "сбиваются в кучу".
ну так и вычисляйте её (или вспоминайте/берите из каких-то структур). У вас, при трале лимиток, из-за того что X постоянный, для всех ордеров получается одинаковая цена, и они "сбиваются в кучу".
спасибо