to Reshetov^ Вот так, что-ли: int start() { Comment("Открытых позиций: ", OrdersTotal()); string smb=Symbol(); int tf=Period(); gsID=smb+IsDemo()+IsTesting()+IsOptimization()+"."+Magic; inf=""; INF(TTS(TimeCurrent()), true); main(Magic, smb, tf); Comment(inf); и где и как отобразится количество?
Почему у меня нарушена функция "комментарий" и "правка" ? Нет верхних опций - наверху абсолютно чисто - нельзя добавлять, например, картинки. С чем это связано?
yosuf: to Reshetov^ Вот так, что-ли: int start() { Comment("Открытых позиций: ", OrdersTotal()); string smb=Symbol(); int tf=Period(); gsID=smb+IsDemo()+IsTesting()+IsOptimization()+"."+Magic; inf=""; INF(TTS(TimeCurrent()), true); main(Magic, smb, tf); Comment(inf); и где и как отобразится количество?
Есть такая волшебная комбинация: Ctrl+Alt+M и полезная кнопка "Enter", чтобы собеседникам зрение не портить. Поскольку зрение дороже, то ничего конкретного не могу ответить по Вашей кодопомойке.
//+------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------+int start(){
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
int maxValueIdx=ArrayMaximum(num_array);
Alert("Max value = ", num_array[maxValueIdx]);
return(0);
}
//+------------------------------------------------------------------+
но как переменную iCustom засунуть в ArrayMaximum это же не массив получается?
Я не зря привёл ссылку на документацию. Есть такая весчь, как описание параметров, которые необходимо подавать на вход функции. Если там написано, что параметром должно быть имя массива, то вместо него сунуть туда другую функцию (в частности iCustom()) ни к чему хорошему не приведёт. Это значит, что мы должны перед вызовом функции ArrayMaximum() объявить массив, затем циклом заполнить этот массив значениями и только псле этого можно вызывать ArrayMaximum()
drknn: Я не зря привёл ссылку на документацию. Есть такая весчь, как описание параметров, которые необходимо подавать на вход функции. Если там написано, что параметром должно быть имя массива, то вместо него сунуть туда другую функцию (в частности iCustom()) ни к чему хорошему не приведёт. Это значит, что мы должны перед вызовом функции ArrayMaximum() объявить массив, затем циклом заполнить этот массив значениями и только псле этого можно вызывать ArrayMaximum()
я пробовал засунуть код самого индикатора в советник но ничего не работает, тут ИМХО суть в том что в индикаторе нужно обозначать буферы а в советниках этого не видел нигде, поэтому индикатор работает, а в советнике тот же код нет. В индикаторе есть массив заполненный циклом sm[i] и индюк его видит, а советник с тем же кодом уже нет. Может в советниках по другому как то объявлять надо массивы в отличие от индикаторов?
Alexandr24: я пробовал засунуть код самого индикатора в советник но ничего не работает, тут ИМХО суть в том что в индикаторе нужно обозначать буферы а в советниках этого не видел нигде, поэтому индикатор работает, а в советнике тот же код нет. В индикаторе есть массив заполненный циклом sm[i] и индюк его видит, а советник с тем же кодом уже нет. Может в советниках по другому как то объявлять надо массивы в отличие от индикаторов?
to Reshetov^ Вот так, что-ли: int start() { Comment("Открытых позиций: ", OrdersTotal()); string smb=Symbol(); int tf=Period(); gsID=smb+IsDemo()+IsTesting()+IsOptimization()+"."+Magic; inf=""; INF(TTS(TimeCurrent()), true); main(Magic, smb, tf); Comment(inf); и где и как отобразится количество?
Подскажите как работать с ArrayMaximum в советнике? в индикаторе делал и работает, обозначил массивы, буферы, а в советнике непонятно.
Нужно сперва подготовить массив. Попробуйте на деле скрипт, приведённый в справке метаэдитора:
Нужно сперва подготовить массив. Попробуйте на деле скрипт, приведённый в справке метаэдитора:
В индикаторе у меня это выглядит так:
sm[i]=...........;
double IndexMaxValue=ArrayMaximum(sm,n,shift);
непойму как это прикрутить к вашему скрипту, как это в советнике сделать?
через iCustom могу вывести sm[i], но как переменную iCustom засунуть в ArrayMaximum это же не массив получается?
но как переменную iCustom засунуть в ArrayMaximum это же не массив получается?
Я не зря привёл ссылку на документацию. Есть такая весчь, как описание параметров, которые необходимо подавать на вход функции. Если там написано, что параметром должно быть имя массива, то вместо него сунуть туда другую функцию (в частности iCustom()) ни к чему хорошему не приведёт. Это значит, что мы должны перед вызовом функции ArrayMaximum() объявить массив, затем циклом заполнить этот массив значениями и только псле этого можно вызывать ArrayMaximum()
я пробовал засунуть код самого индикатора в советник но ничего не работает, тут ИМХО суть в том что в индикаторе нужно обозначать буферы а в советниках этого не видел нигде, поэтому индикатор работает, а в советнике тот же код нет. В индикаторе есть массив заполненный циклом sm[i] и индюк его видит, а советник с тем же кодом уже нет. Может в советниках по другому как то объявлять надо массивы в отличие от индикаторов?
Проработаете это - вопросы отпадут: https://www.mql5.com/ru/articles/mt4
https://www.mql5.com/ru/articles/1497