Доработка ботов (советников, индикаторов)

Статус
Закрыто для дальнейших ответов.

eevviill

Заблокирован
Сейчас советник выставляет отложенные ордера КМ при выполнении условия LotKM = 4 ( после стольки открытых ордеров ) на расстояние DistanceKMsell или DistanceKMbuy, а нужно что бы он выставлялся не зависимо от LotKM. Если цена ушла от предыдущего открытого ордера на расстояние большее DistanceKMsell или DistanceKMbuy пунктов, то все последующие отложки должны выставлятся с параметрами ордера КМ.
Ну и что ты прикалываешся????
Поставь LotKM=0
 

Степа

Активный участник
если, индюк создает "текстовый документ" и выдает в нем


1;33;D:\terminal\experts\indicators\FuturoFX.mq4;201:8;'f0_31' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;675:23;'f0_32' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;701:14;'f0_32' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;831:11;'f0_32' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;845:17;'f0_32' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;861:17;'f0_32' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;876:17;'f0_32' - comparison expression expected
comparison expression expected (выражение сравнения ожидаемых) чего x_X хз

но сам отображается, что это означает? что он работает некорректно ?!?!?
-скажите а то я не шарю, вознаграждение индюк предсказатель одааааааааа
 
Последнее редактирование:

olcik

Активный участник
Помогите разобраться .Хочу ,что бы показывал макс мин индикатора гистограммы за азиатскую сессию,крутил вертел ниче не получается.o_o
//+------------------------------------------------------------------+
//| i-Sessions.mq4 |
//| Ким Игорь В. aka KimIV |
//| http://www.kimiv.ru |
//| |
//| 16.11.2005 Индикатор торговых сессий |
//+------------------------------------------------------------------+
#property copyright "Ким Игорь В. aka KimIV"
#property link "http://www.kimiv.ru"

#property indicator_chart_window

//------- Внешние параметры индикатора -------------------------------
extern int NumberOfDays = 50; // Количество дней
extern string AsiaBegin = "02:00"; // Открытие азиатской сессии
extern string AsiaEnd = "09:00"; // Закрытие азиатской сессии
extern color AsiaColor = DarkGray; // Цвет азиатской сессии


//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
void init() {
DeleteObjects();
for (int i=0; i<NumberOfDays; i++) {
CreateObjects("AS"+i, AsiaColor);
}
Comment("");
}

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
DeleteObjects();
Comment("");
}

//+------------------------------------------------------------------+
//| Создание объектов индикатора |
//| Параметры: |
//| no - наименование объекта |
//| cl - цвет объекта |
//+------------------------------------------------------------------+
void CreateObjects(string no, color cl) {
ObjectCreate(no, OBJ_RECTANGLE, 1, 0,0, 0,0);
ObjectSet(no, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(no, OBJPROP_COLOR, cl);
ObjectSet(no, OBJPROP_BACK, True);
}

//+------------------------------------------------------------------+
//| Удаление объектов индикатора |
//+------------------------------------------------------------------+
void DeleteObjects() {
for (int i=0; i<NumberOfDays; i++) {
ObjectDelete("AS"+i);
}
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
void start() {
datetime dt=CurTime();

for (int i=0; i<NumberOfDays; i++) {
DrawObjects(dt, "AS"+i, AsiaBegin, AsiaEnd);
dt=decDateTradeDay(dt);
while (TimeDayOfWeek(dt)>5) dt=decDateTradeDay(dt);
}
}

//+------------------------------------------------------------------+
//| Прорисовка объектов на графике |
//| Параметры: |
//| dt - дата торгового дня |
//| no - наименование объекта |
//| tb - время начала сессии |
//| te - время окончания сессии |
//+------------------------------------------------------------------+
void DrawObjects(datetime dt, string no, string tb, string te) {
datetime t1, t2;
double p1, p2,Maximum,Minimum;
int b1, b2;

t1=StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb);
t2=StrToTime(TimeToStr(dt, TIME_DATE)+" "+te);
b1=iBarShift(NULL, 0, t1);
b2=iBarShift(NULL, 0, t2);
//Maximum=WindowPriceMax(1);
//Minimum=WindowPriceMin(1);

int Ind_max =ArrayMaximum(iCustom(NULL,0,"LDInd",1,0),b1-b2,b2);// Индекс бара макс.значения.гистограммы
int Ind_min =ArrayMinimum(iCustom(NULL,0,"LDInd",2,0),b1-b2,b2);// Индекс бара мин.значения.гистограммы
Maximum=iCustom(NULL,0,"LDInd",1,Ind_max);
Minimum=iCustom(NULL,0,"LDInd",2,Ind_min);



ObjectSet(no, OBJPROP_TIME1 , t1);
ObjectSet(no, OBJPROP_PRICE1, Maximum);
ObjectSet(no, OBJPROP_TIME2 , t2);
ObjectSet(no, OBJPROP_PRICE2, Minimum);
}

//+------------------------------------------------------------------+
//| Уменьшение даты на один торговый день |
//| Параметры: |
//| dt - дата торгового дня |
//+------------------------------------------------------------------+
datetime decDateTradeDay (datetime dt) {
int ty=TimeYear(dt);
int tm=TimeMonth(dt);
int td=TimeDay(dt);
int th=TimeHour(dt);
int ti=TimeMinute(dt);

td--;
if (td==0) {
tm--;
if (tm==0) {
ty--;
tm=12;
}
if (tm==1 || tm==3 || tm==5 || tm==7 || tm==8 || tm==10 || tm==12) td=31;
if (tm==2) if (MathMod(ty, 4)==0) td=29; else td=28;
if (tm==4 || tm==6 || tm==9 || tm==11) td=30;
}
return(StrToTime(ty+"."+tm+"."+td+" "+th+":"+ti));
}
//+------------------------------------------------------------------+
 

eevviill

Заблокирован
если, индюк создает "текстовый документ" и выдает в нем


1;33;D:\terminal\experts\indicators\FuturoFX.mq4;201:8;'f0_31' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;675:23;'f0_32' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;701:14;'f0_32' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;831:11;'f0_32' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;845:17;'f0_32' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;861:17;'f0_32' - comparison expression expected
1;33;D:\terminal\experts\indicators\FuturoFX.mq4;876:17;'f0_32' - comparison expression expected
comparison expression expected (выражение сравнения ожидаемых) чего x_X хз

но сам отображается, что это означает? что он работает некорректно ?!?!?
-скажите а то я не шарю, вознаграждение индюк предсказатель одааааааааа
1) Это значит что ты пользуешся дэкомпилированым файлом.
2) На работу не влияет.
3) Это функции которые возвращают 1 и 0. А должны true и false. Это по сути одно и тоже, но компилятору просто не нравится.
4) Если хочешь чтобы не было такого найди int f0_31 поменяй на bool f0_31 ,найди int f0_32 поменяй на bool f0_32
 

eevviill

Заблокирован
Помогите разобраться .Хочу ,что бы показывал макс мин индикатора гистограммы за азиатскую сессию,крутил вертел ниче не получается.o_o
...
Глянул. Вникать не буду так как это надо тратить время.
Но скорее всего надо приравнивать время расчётного бара. Тоесть в диапазоне ли он.
Типа


PHP:
extern start_time_chek = 0;
extern end_time_chek = 4;
...
int last_bar=iBarShift(Symbol(),0,iTime(Symbol(),PERIOD_D1,0));
for(int i=0;i<=last_bar;i++)
{
if(TimeHour(Time[i])>=start_time_chek || TimeHour(Time[i])<end_time_chek)
{
...
}//end if
} //end for
 
Последнее редактирование:

eevviill

Заблокирован
Вот и прошу помощи - так как трейдер а не программист:)
Попробуй так.
PHP:
bool Timing() 
{ 
for(last_order=OrdersTotal()-1;last_order>=0;last_order--)
{
      if(OrderSelect(last_order, SELECT_BY_TICKET) && OrderProfit()<0) 
         if(TimeCurrent() - OrderCloseTime()<LossDealDelay*60) 
            return(false); 
break;
}
      }

А ввобще чем не нравится Sleep() ?
 
Последнее редактирование:

Степа

Активный участник
1) Это значит что ты пользуешся дэкомпилированым файлом.
2) На работу не влияет.
3) Это функции которые возвращают 1 и 0. А должны true и false. Это по сути одно и тоже, но компилятору просто не нравится.
4) Если хочешь чтобы не было такого найди int f0_31 поменяй на bool f0_31 ,найди int f0_32 поменяй на bool f0_32

лови
 

Вложения

Последнее редактирование модератором:

eevviill

Заблокирован
Попробовал, не торгует....
А ты всю функцию вставлял?
По моему там перед последним } не хватает return(true);


Слип. После старта, перед открытием ордера пиши
PHP:
if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS))
{
if(OrderProfit()+OrderCommision()+OrderSwap()<0)
{
Sleep(...);
RefreshRates();
}
}
В слипе количество секунд задержки. Хочешь минуты, умнжай на 60
 
Последнее редактирование:

Sergey55555555

Почетный гражданин
Вот полная функция, с которой брал

PHP:
bool Timing()
{
   if(last_order>0)
      if(OrderSelect(last_order, SELECT_BY_TICKET) && OrderProfit()<0)
         if(TimeCurrent() - OrderCloseTime()<LossDealDelay*60)
            return(false);
   if(EnableNoTrade)
      if(EndNoTrade>StartNoTrade){  if(Hour()>=StartNoTrade && Hour()<EndNoTrade)   return(false); }
      else                       {  if(Hour()>=StartNoTrade || Hour()<EndNoTrade)   return(false); }  
   if(EnableTiming)
      if(EndHour>StartHour)   return(Hour()>=StartHour && Hour()<EndHour);
      else                    return(Hour()>=StartHour || Hour()<EndHour);
}
 

greatiger

Активный участник
Какое обновление? Ты свой пост по ссылке читал?

Ну в смысле чтобы сетка удалялась и заново запускалась от текущей цены если за указанное число свечей (в первоначальном варианте минут) с ее открытия ни один отложенный ордер в ней не сработал...ну как фильтр флета
 

eevviill

Заблокирован
Ну в смысле чтобы сетка удалялась и заново запускалась от текущей цены если за указанное число свечей (в первоначальном варианте минут) с ее открытия ни один отложенный ордер в ней не сработал...ну как фильтр флета
А. Ну коротко не выйдет.
 

Sergey55555555

Почетный гражданин
К первому варианту добавил второй,
со слипом 600, в настройках первого
ставил 0 мин и 10 мин,
торгует без паузы.
 
Статус
Закрыто для дальнейших ответов.

Отслеживают (859) Посмотреть

Верх