
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Округляет ли MathFloor десятичные знаки до ближайшего ЦЕЛОГО числа?
MathFloor() делает то, что написано в документации... "Функция MathFloor возвращает числовое значение, представляющее наибольшее целое число, которое меньше или равно x".
Имеет ли смысл использовать FirstTarget как пользовательский параметр в "OrderClose()" - Если предположить, что "sizeClose" был правильным? (см. процитированный код)
Нет... у вас есть это:
когда вы, вероятно, имеете в виду это...
FirstTarget = OrderOpenPrice() + ( ( OrderTakeProfit()-OrderOpenPrice() ) / 2 ) ;
Используйте скобки (и пробелы), чтобы все было ясно и недвусмысленно.
Ваш код не помог - извините.
Почему? Это неправильно? В каком смысле?
Можете ли вы вывести пользовательские переменные? Если да, то я, должно быть, делаю это неправильно, поскольку они не отображаются в журнале.
Да, вы можете вывести любые переменные. ... что вы делаете? Покажите ваш код.
Что касается печати пользовательских переменных, как я могу сделать это для "FirstTarget_Buy"?
Я собираюсь потратить время на то, чтобы просмотреть весь мой код и вывести много информации - я понимаю, как это сделать с bools и ints (целое число -1 не работает, а bool - это истинное или ложное утверждение - легко.), но я не понимаю, как это сделать, когда вы присваиваете функции пользовательской переменной?
Спасибо, что пролили свет на формулу "FirsTarget" выше! Извините, я хотел сказать, что ваш код не помог в том смысле, что я не понимаю, как составить формулу... Я нахожу это действительно контр-интуитивным - можно было бы подумать, что вызов "OrderSelect" позволит вам просто увидеть, какой размер лота был на этом тиковом ордере... и затем просто разделить его...
Извините, что показался полным идиотом!
Извините, что показался полным идиотом!
Вовсе нет, вам просто нужно найти свое слепое пятно и просветить его, как только вы это сделаете, вы удивитесь, почему вам было так трудно, все легко, когда вы знаете как.
Что касается печати пользовательских переменных, как бы я сделал это для "FirstTarget_Buy"?
Я собираюсь потратить время на то, чтобы просмотреть весь мой код и распечатать много - я понимаю, как это сделать с bools и ints (integer -1 fail, а bool это true или false statement - легко.), но я не понимаю, как это сделать, когда вы присваиваете функции пользовательской переменной?
Я хотел сказать, что ваш код не помог в том смысле, что я не понимаю, как составить формулу... Я нахожу это действительно контр-интуитивным - Вы могли бы подумать, что вызов "OrderSelect" позволит Вам просто увидеть, какой размер лота был на этом тиковом ордере... и затем просто разделить его...
Вы можете просто выбрать ордер, использовать OrderLots() и разделить на два... Вы можете сделать это, и во многих ситуациях это будет работать. Я пишу код для всех случаев, которые я могу предвидеть, чтобы мне не пришлось постоянно исправлять его, когда он ломается...
Если размер вашей позиции составляет 2.0 лота; это деленное на два будет 1.0 лот, и это будет работать...
Если размер вашей позиции 0.3 лота; это деление на два будет 0.15 лота, и это будет недопустимый размер позиции, если MODE_LOTSTEP равен 0.1 ... вы можете использовать 0.1 или 0.2 НЕ 0.15, поэтому вам нужно закодировать эту проверку и настройку.
То, что у вас есть здесь, не будет работать во всех случаях ...
Ахххх! Я только что провел последние 15-20 минут, размазывая отпечатки по всему месту - я начинаю понимать, где я ошибаюсь. По сути, я выбираю отложенный заказ... НО, поскольку это отложенный ордер, в тот момент, когда я его выбираю, есть большая вероятность, что OrderLots, стоп и цели изменились, поэтому мне нужно поместить его в цикл, чтобы он синхронизировался с тем, как мои отложенные ордера постоянно рассчитываются до их срабатывания.
Этот чертов doubletostr :P - Точно, RaptorUK! Теперь я вижу, что все рассчитано правильно, благодаря вашей корректировке :)
Думаю, теперь я знаю, как сделать большую часть этого - просто из любопытства, какой оператор "if" будет работать, чтобы вызывать ТОЛЬКО тот ордер, который был ТРИГГЕРИРОВАН. На данный момент я вызываю его, когда у меня открыт рыночный ордер, но я пытаюсь понять, как мне вызывать, когда сработал отложенный ордер?
Код ниже и соответствующий оператор "if" просто вызывают открытые отложенные ордера. Просто нужен способ "перейти" к определенной пользовательской функции (например, void) на основании того, что сработал ордер? (Если это имеет смысл!)
Спасибо, что многое прояснили для меня :)
Ахххх! Я только что провел последние 15-20 минут, размазывая отпечатки по всему месту - я начинаю понимать, где я ошибаюсь.
Легко, когда знаешь как
Думаю, теперь я знаю, как сделать большую часть этого - Просто из любопытства, какой оператор "if" будет работать, чтобы вызывать ТОЛЬКО тот ордер, который был ТРИГГЕРИРОВАН. На данный момент я вызываю его, когда у меня открыт рыночный ордер, но я пытаюсь понять, как мне вызывать, когда сработал отложенный ордер?
Когда отложенный ордер срабатывает, он становится OP_BUY или OP_SELL, так что ....
if(OrderType() == OP_BUY || OrderType() == OP_SELL) { }
Один совет - используйте больше пробелов ... когда вы получаете ошибку деления на ноль и хотите найти, где это происходит, легко искать пробел/пробел и просто найти ваши деления вместо всех ваших комментариев ... поэтому я использую пробелы вокруг = + - / % и т.д.
Хороший совет - я так и сделаю! Спасибо за помощь :) Я отпишусь, если у меня получится!
Я не получаю никакой информации относительно отпечатков? Абсолютно ничего не появляется в журнале. Я предполагаю, что это происходит потому, что ничего не выбирается в качестве OrderType прямо из первого оператора "if"? Из того, что я вижу здесь в коде, я бы подумал, что я не далеко ушел, по крайней мере...?
Хорошо, я вернулся! ... Но новости не очень хорошие - я пробовал и тестировал множество вариантов кода, но безуспешно. Вот на чем я сейчас остановился.
Я не получаю никакой информации об отпечатках? Абсолютно ничего не появляется в журнале. Я предполагаю, что это происходит потому, что ничего не выбирается в качестве OrderType прямо из первого оператора "if"? Из того, что я вижу здесь в коде, я бы подумал, что я не далеко ушел, по крайней мере...?
Как вы выбираете заказ перед тем, как сделать это?
if(OrderType() == OP_BUY ){
У вас все еще есть проблемы здесь
Почему бы и нет...
2013.07.31 11:13:52 2013.02.01 16:00 trendfishing_play_ground EURUSD,H1: Order Select returned the error of 0 // Not sure what is going on here? 2013.07.31 11:13:52 2013.02.01 16:00 trendfishing_play_ground EURUSD,H1: The Lots to close is: 0.09000 // This is the right calculation based // upon the total lots opened on a pending order - to half. 2013.07.31 11:13:52 2013.02.01 16:00 trendfishing_play_ground EURUSD,H1: The Lotstep is: 0.01000 2013.07.31 11:13:52 2013.02.01 16:00 trendfishing_play_ground EURUSD,H1: The minimum lots are: 0.01000 2013.07.31 11:13:52 2013.02.01 16:00 trendfishing_play_ground EURUSD,H1: FirstTarget_Buy: 1.37931 // This price is also correct.