Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо Roger09
Originally Posted by ForExTyro
Я пытаюсь добавить код к советнику, который будет ограничивать количество сделок, которые он совершает в день, только двумя (2). Только ОДНА длинная сделка и ОДНА короткая сделка в день. Вот код, который у меня есть на данный момент, но при обратном тестировании он не работает.
Можете ли вы мне помочь?
Замените
datetime LongTrade=0;
datetime ShortTrade=0;
на
static datetime LongTrade=0;
static datetime ShortTrade=0;Это оно?
Это оно!
СПАСИБО Roger09
Здравствуйте,
Это хороший пример, как выглядит декомпилированный советник и Ind.
b.
Вот так! Наслаждайтесь!
Здравствуйте, Калензо,
Мне снова нужна ваша помощь, не могли бы вы закодировать для меня дополнительную
информацию, как вы делали раньше, я хотел бы поместить информацию о баре LSMA.
Когда бар LSMA Woodie Bar зеленый, он показывает слово LONG (зеленый цвет),
и когда бар Woodie красный, он показывает слово Short (красный цвет).
посмотрите прикрепленную картинку...
http://i98.photobucket.com/albums/l277/compobey/CCIinfo.jpg
С уважением,
compobey
Запрос о помощи
Привет всем
Я использую очень простую систему, которая делает около +100 пунктов в месяц.
Я хотел бы сделать из нее советника, но я очень новичок в кодировании и чувствую себя потерянным . Может быть, вы, ребята/женщины, поможете мне создать этот советник, и мы все сможем его использовать?
Пожалуйста, дайте мне знать, если вы заинтересованы, и я опубликую детали того, что советник должен делать.
Спасибо
Калензо
Вот так! Наслаждайтесь!
Привет еще раз, Калензо,
Я наблюдал за инди, который вы исправили для меня.
В целом, он работает нормально, но иногда случается, что он ставит неправильный цвет на линию.
Как вы можете видеть на картинке, есть места, где он должен быть Tomato или Red, но вместо этого получается DodgerBlue.
Правила были таковы;
Когда значение (на момент закрытия бара) >, чем предыдущее закрытие бара (идет вверх) =
DodgerBlue, когда значение < 0
Синий, когда значение > 0
Когда значение (на закрытии бара < предыдущего закрытия бара (идет вниз) =
Помидор, когда значение > 0
Красный, когда значение < 0
Я отметил красными стрелками места, где возникают ошибки.
Не могли бы вы взглянуть на код, пожалуйста.
Я постарался объяснить как можно лучше, но дайте мне знать, если вам нужна дополнительная информация.
Спасибо.
Привет еще раз, Калензо,
Я наблюдал за инди, который вы исправили для меня.
В целом он работает нормально, но иногда он ставит неправильный цвет на линию.
Как вы можете видеть на рисунке, есть места, где он должен быть Tomato или Red, но вместо этого получается DodgerBlue.
Правила были таковы;
Когда значение (на момент закрытия бара) >, чем предыдущее закрытие бара (идет вверх) =
DodgerBlue, когда значение < 0
Синий, когда значение > 0
Когда значение (на закрытии бара < предыдущего закрытия бара (идет вниз) =
Помидор, когда значение > 0
Красный, когда значение < 0
Я отметил красными стрелками места, где возникают ошибки.
Не могли бы вы взглянуть на код, пожалуйста.
Я постарался объяснить как можно лучше, но дайте мне знать, если вам нужна дополнительная информация.
Спасибо.Извините, я забыл файл.
как перейти к линейной метке?
Как мне перейти к метке линии в Metatrader 4
что-то вроде
if(a > b) goto fred
if(c > d) goto jim
:fred
сделайте еще немного кода здесь
:jim
сделайте немного кода здесь
Я получил ответ, но мне нужно немного больше разъяснений.
Вместо этого вы можете написать код в функциях. Что-то вроде этого:
if(a > b) ReturnValue = fred();
if(c > d) ReturnValue = jim();
int fred()
{
сделайте здесь еще немного кода
}
int jim()
{
выполните здесь некоторый код
}
что такое ReturnValue? это не функция, как мне ее написать?
В приведенном вами примере 'ReturnValue' - это просто переменная. Она могла бы называться как угодно, но тот, кто дал вам этот код, использовал 'ReturnValue'.
Честно говоря, такой формат не имеет особого смысла, если только вы не собираетесь действительно что-то делать со значением, возвращаемым двумя функциями. Вы не можете использовать концепцию goto, как это было в VB (или это был Basic - это было так давно, что я не могу вспомнить!).
Просто что-то вроде...
if(a>b)DoThisFunction();
if(a<b)DoAnotherFunction();
Тогда, что бы вы ни собирались сделать, когда программа перешла бы к использованию goto, вы вместо этого сделаете это в двух соответствующих функциях.
Надеюсь, это имеет какой-то смысл.
С уважением,
Lux
В приведенном вами примере 'ReturnValue' - это просто переменная. Она могла бы называться как угодно, но тот, кто дал вам этот код, использовал 'ReturnValue'.
Честно говоря, этот формат не имеет особого смысла, если только вы не собираетесь действительно что-то делать со значением, возвращаемым двумя функциями. Вы не можете использовать концепцию goto, как это было в VB (или это был Basic - это было так давно, что я не могу вспомнить!).
Просто что-то вроде...
if(a>b)DoThisFunction();
if(a<b)DoAnotherFunction();
Тогда, что бы вы ни намеревались сделать, когда программа перешла бы к использованию goto, вы вместо этого сделаете это в двух соответствующих функциях.
Надеюсь, это имеет какой-то смысл.
С уважением,
ЛюксСпасибо за ответ, я пытаюсь сделать так, чтобы советник выбирал между двумя условиями, но выбирал то, которое изменится первым.
Так что в вашем примере
if(a>b)DoThisFunction();
if(a<b)DoAnotherFunction();
нужно больше, чем if do this, или if do that, потому что другое условие - изменились ли c и d раньше, чем a и b, если да, то делайте это и игнорируйте a и b. Вот почему я пытался перейти к строке, потому что я не могу заставить его выбирать с помощью if then else.
потому что в действительности у меня
if(a>b && c>d) // делаем покупку здесь
else
if(a>b && c<d) // делаем здесь покупку по закрытию
else
наоборот, делаем продажу или близкую продажу
но если c и d изменились первыми, до a и b, то игнорируйте вышеприведенный код и делайте вышеприведенные тесты на c и d вместо этого.
Извините, это ясно как грязь.
Работа с CSV-файлами - я схожу с ума
Здравствуйте,
Я пишу советника, который работает с CSV-файлами.
Для тестирования я поместил свои CSV-файлы в следующую папку:
/tester/files
Вот только небольшая часть из моего советника:
int handle = 0;
int Long = 0;
handle=FileOpen("LongMarket.csv",FILE_CSV|FILE_READ,';');
if (handle > 0)
{
Long= FileReadNumber(handle);
FileClose(handle);
}
Print("LongMarket = ", Long);
Print("Long handle = ", handle);В моем советнике я читаю CSV-файлы, а затем записываю некоторые целые числа.
Теперь, когда я провожу тест и читаю в журнале "Print"-сообщения, я часто получаю старые целые числа, которые больше не записаны в CSV-файлах!!!
Например:
Сначала написано 3, а мой советник работает и записывает в файл 0,
Я вижу только 3 в этом CSV-файле!!!
Когда я очищаю этот CSV-файл и помещаю новый CSV-файл с 3 в папку "/tester/files"-папка, я могу прочитать только 0 из тестового файла before!!!!. Но я не могу найти, где советник считывает 0!!!
Я схожу с ума!!!!!
Надеюсь, вы сможете понять мой вопрос и подсказать!!!