Есть код советника где используется данный индикатор TrendToTrend_open
код ниже
Вопрос - почему советник выставляет этот индикатор с ценой закрытия?
//--- входные параметрыinputint LongTrend=14; // Период LongTrendinputint ShortTrend=7; // Период ShortTrendinputint EA_Magic=0; // Magic Number советникаinputdouble Lot=0.02; // Количество лотовinputdouble STR= 0.14;
inputdouble TR= 0.1;
inputdouble TP= 0.55;
//--- глобальные переменныеint TrendToTrend;
int TrendToTrendOpen;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- достаточно ли количество баров для работыif(Bars(_Symbol,_Period)<60) // общее количество баров на графике меньше 60?
{
Alert("На графике меньше 60 баров, советник не будет работать!!");
return(-1);
}
TrendToTrend=iCustom(_Symbol,0,"TrendToTrend",LongTrend,ShortTrend);
TrendToTrendOpen=iCustom(_Symbol,0,"TrendToTrend_open",LongTrend,ShortTrend);
if(TrendToTrend<0||TrendToTrendOpen<0)
{
Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
return(-1);
}
return(0);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- освобождаем хэндлы индикаторовIndicatorRelease(TrendToTrend);
IndicatorRelease(TrendToTrendOpen);
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
staticdatetime Old_Time;
datetime New_Time[1];
bool IsNewBar=false;
// копируем время текущего бара в элемент New_Time[0]int copied=CopyTime(_Symbol,_Period,0,1,New_Time);
if(copied>0) // ok, успешно скопировано
{
if(Old_Time!=New_Time[0]) // если старое время не равно
{
IsNewBar=true; // новый барif(MQL5InfoInteger(MQL5_DEBUGGING)) Print("Новый бар",New_Time[0],"старый бар",Old_Time);
Old_Time=New_Time[0]; // сохраняем время бара
}
}
else
{
Alert("Ошибка копирования времени, номер ошибки =",GetLastError());
ResetLastError();
return;
}
//--- советник должен проверять условия совершения новой торговой операции только при новом бареif(IsNewBar==false)
{
return;
}
//--- Имеем ли мы достаточное количество баров на графике для работыint Mybars=Bars(_Symbol,_Period);
if(Mybars<60) // если общее количество баров меньше 60
{
Alert("На графике менее 60 баров, советник работать не будет!!");
return;
}
return;
}
Тыкните мне, пожалуйста, где почитать ответ на свой вопрос.
Есть советник, в него зашито две стратегии, которые открывают сделки по разным прицнипам. В итоге формируется общая позиция.
Чуть позднее мне надо понять, какой вклад в позицию внесла каждая стратегия. То есть какой стратегией (или двумя) сформирована позиция.
Как это сделать?
Спасибо!
Если в советнике есть возможность отключить одну из стратегий, и можно менять в настройках магический номер. То повесьте на счет два советника и отключите в каждом одну из стратегий и назначте разные магики для позиций, потом в в истории отследите по магикам что дает больший плюс или минус.
Kino: Если в советнике есть возможность отключить одну из стратегий, и можно менять в настройках магический номер. То повесьте на счет два советника и отключите в каждом одну из стратегий и назначте разные магики для позиций, потом в в истории отследите по магикам что дает больший плюс или минус.
Спасибо за ответ. Я сделал через статические переменные, которые меняют своё значение, если позиция по стратегии открыта (при закрытии и стоп-лоссе тоже меняются значения). В общем так работает нормально, но я понимаю, что после перезапуска советника он потеряет свои ордера.
int BarsAmountPassed(datetime open_time)
{
datetime time_array[];
int n;
Print("inpupt time=",TimeToString(open_time));
CopyTime(_Symbol,_Period,open_time,TimeCurrent(),time_array);
n=ArraySize(time_array);
Print("number of elements in array=",n);
return(n);
}
Вызываю так например:
int bars;
bars=BarsAmountPassed(1365198000);
Print(__FUNCTION__+": Баров прошло с этого времени ",bars);
Есть код советника где используется данный индикатор TrendToTrend_open
код ниже
Вопрос - почему советник выставляет этот индикатор с ценой закрытия?
Здравствуйте!
Тыкните мне, пожалуйста, где почитать ответ на свой вопрос.
Есть советник, в него зашито две стратегии, которые открывают сделки по разным прицнипам. В итоге формируется общая позиция.
Чуть позднее мне надо понять, какой вклад в позицию внесла каждая стратегия. То есть какой стратегией (или двумя) сформирована позиция.
Как это сделать?
Спасибо!
Здравствуйте!
Тыкните мне, пожалуйста, где почитать ответ на свой вопрос.
Есть советник, в него зашито две стратегии, которые открывают сделки по разным прицнипам. В итоге формируется общая позиция.
Чуть позднее мне надо понять, какой вклад в позицию внесла каждая стратегия. То есть какой стратегией (или двумя) сформирована позиция.
Как это сделать?
Спасибо!
Если в советнике есть возможность отключить одну из стратегий, и можно менять в настройках магический номер. То повесьте на счет два советника и отключите в каждом одну из стратегий и назначте разные магики для позиций, потом в в истории отследите по магикам что дает больший плюс или минус.
Спасибо за ответ. Я сделал через статические переменные, которые меняют своё значение, если позиция по стратегии открыта (при закрытии и стоп-лоссе тоже меняются значения). В общем так работает нормально, но я понимаю, что после перезапуска советника он потеряет свои ордера.
почему не тикают бабки?
спс друг помог ..буду знать
а то компы в подвале стоят ....биткойны майнят поц отдыхает.. пусь тож ченить делает
Не пойму, почему функция возвращает 0:
Вызываю так например:
n пишет правильное, а возвращает 0.Не пойму, почему функция возвращает 0:
Вызываю так например:
n пишет правильное, а возвращает 0.