И все же у меня не получается определить почему не создаются уровни с помощью ObjectCreate. Все функции отрабатываются, а объекты OBJ_TREND не создаются
Ну допустим, Вы объявили переменные на глобальном уровне, а Вы присвоили этим переменным значения?
Если нет, то получается Вы говорите программе "создай объект с такими-то характеристиками с именем..." и тут проблема - имя не задано. Вот он и не создает.
Может проще будет указать его прямо в коде ObjectCreate?
Спасибо! Почему-то не сообразил так сразу сделать, ведь в 4 версии также определяется имя объекта.
У меня не получается исправить ошибку с переполнением массива. Я о ней писал на 88 странице. Эксперт работает какое-то время и вылетает. А точнее работает один проход от начала до конца эксперта и на втором проходе в указанном ниже цикле массив переполняется с указанием на строку:
H=High[j];
void CreateLevels()
{
double High[];
ArrayResize(High,0);
ArraySetAsSeries(High,true);
CopyHigh(_Symbol,_Period,0,Candle,High);
ArrayResize(HBar,0);
ArrayResize(HBar,1000);
int countH=0;
int f1;
double H;
for(int j=Nachalo;j<=Candle;j++)
{
//--- поиск макс -----------------------------------if(iHighest(Symbol(),0,10,MN*2,j-MN)==j)
{
f1=0;
H=High[j]; // отметка текущего хая
... // здесь обработка флага f1if(f1==0) // если занесение хая в массив разрешено
{
HBar[countH][0]=High[j];
countH++;
}
}
}
}
Самое главное я не понимаю как массив High[] переполняется, ведь указано конкретное количество хаев? И почему терминал указывает на переполнение в строке H=High[j]; ?
Пожалуйста, можете подсказать как правильно реализовать задуманное? Может как-то обнулить массив High[] или в переменную Н можно каким-то другим способом записать хай конкретной свечи?
Добрый день! Я столкнулся со следующей проблемой... Сгенерировал эксперта... Запустил его на фьючерсе на индекс РТС. А там, лоты не дробные = не работает манименеджмент, и котриовки кратные 10 = не работает трэйлинг стоп. Пожалуйста, подскажите, можно ли решить эту проблему?
Как округлять значения iМа до 10 или 5 я знаю, в крайнем случае, думаю, отдельно запустить трэйлингстоп.
oldiol: А там, лоты не дробные = не работает манименеджмент, и котриовки кратные 10 = не работает трэйлинг стоп. Пожалуйста, подскажите, можно ли решить эту проблему?
У инструмента есть такое свойство, как Volume_Step (типа, "шаг лота"). Посмотрите, может удастся его использовать применительно к недробным объёмам.
Ну а котировки кратные 10 - надо просто шаг трейлингстопа сделать таким же.
Пожалуйста, подскажите, как посмотреть сколько памяти занимает эксперт и как происходит перерспределение?
Диспетчера задач Windows вам должно хватить.
Эту статью полистайте.
А вообще, разберите ваш эксперт на скрипты, заставьте все функции работать, а потом уж собирайте их в кучу.
И все же у меня не получается определить почему не создаются уровни с помощью ObjectCreate. Все функции отрабатываются, а объекты OBJ_TREND не создаются
На глобальном уровне определены переменные:
string oRes, oSup, oPP, oRes1, oRes2, oRes3, oSup1, oSup2, oSup3, textPP, textR1, textR2, textR3, textS1, textS2, textS3;
Код, который должен создавать уровни:
Народ, помогите разобраться с этим. ПожалуйстаУровни создаются, только их не видно)
Задайте координаты - время / цена. У Вас там нули сплошные заданы.
Уровни создаются, только их не видно)
Задайте координаты - время / цена. У Вас там нули сплошные заданы.
Он делает объект без привязок, потом его модифицирует. Тут.
Не создаётся объект из-за некорректного (не назначенного) имени. (Выше уже ответили). Соответственно, и модификации не поддаётся, чтоб его увидеть.
Ну допустим, Вы объявили переменные на глобальном уровне, а Вы присвоили этим переменным значения?
Если нет, то получается Вы говорите программе "создай объект с такими-то характеристиками с именем..." и тут проблема - имя не задано. Вот он и не создает.
Может проще будет указать его прямо в коде ObjectCreate?
У меня не получается исправить ошибку с переполнением массива. Я о ней писал на 88 странице. Эксперт работает какое-то время и вылетает. А точнее работает один проход от начала до конца эксперта и на втором проходе в указанном ниже цикле массив переполняется с указанием на строку:
H=High[j];
Самое главное я не понимаю как массив High[] переполняется, ведь указано конкретное количество хаев? И почему терминал указывает на переполнение в строке H=High[j]; ?
Пожалуйста, можете подсказать как правильно реализовать задуманное? Может как-то обнулить массив High[] или в переменную Н можно каким-то другим способом записать хай конкретной свечи?
Попробуйте так:
Основание: индексация массива начинается с нуля, поэтому при Candle==100 последний элемент массива проидексирован числом 99, а не числом 100.
Попробуйте так:
Основание: индексация массива начинается с нуля, поэтому при Candle==100 последний элемент массива проидексирован числом 99, а не числом 100.
Добрый день! Я столкнулся со следующей проблемой... Сгенерировал эксперта... Запустил его на фьючерсе на индекс РТС. А там, лоты не дробные = не работает манименеджмент, и котриовки кратные 10 = не работает трэйлинг стоп. Пожалуйста, подскажите, можно ли решить эту проблему?
Как округлять значения iМа до 10 или 5 я знаю, в крайнем случае, думаю, отдельно запустить трэйлингстоп.
У инструмента есть такое свойство, как Volume_Step (типа, "шаг лота"). Посмотрите, может удастся его использовать применительно к недробным объёмам.
Ну а котировки кратные 10 - надо просто шаг трейлингстопа сделать таким же.
У инструмента есть такое свойство, как Volume_Step (типа, "шаг лота"). Посмотрите, может удастся его использовать применительно к недробным объёмам.
Ну а котировки кратные 10 - надо просто шаг трейлингстопа сделать таким же.