neisseria: Пытался создать советник, на основе монетки, орел бай, решек селл. Но он не работает. При тестировании в окне появляются надписи: При открытии ордера ошибка 131, в приложении посмотрел - это не правильный объем. Внимательно посмотрел, ошибки не могу найти. Везде точка стоит, для отделения целой части, а не запятая. Помогите пожалуйста. Код в файле.
А счет позволяет лот 0.01? Может, минимальный лот 0.1?
neisseria: Пытался создать советник, на основе монетки, орел бай, решек селл. Но он не работает. При тестировании в окне появляются надписи: При открытии ордера ошибка 131, в приложении посмотрел - это не правильный объем. Внимательно посмотрел, ошибки не могу найти. Везде точка стоит, для отделения целой части, а не запятая. Помогите пожалуйста. Код в файле.
используйте:
MinLot= MarketInfo( symbol(),MODE_MINLOT )// Минимально возможный объём лота
StepLot= MarketInfo( symbol(),MODE_STEPLOT )// Минимальный шаг изменения лота
Lot lдолжен быть >= MinLot и нормализован c помощью Lot=NormalizeDouble(Lot,Dig);
Lot может быть 0.1, 0.11,0.12 и т.д. Но не может быть 0.99, 0.98 и тем более не может быть 0.998,0.999, 0.111,0.101
К примеру при MinLot=0.1 и StepLot=0.01:
Lot может быть 0.1, 0.11,0.12 и т.д. Но не может быть 0.99, 0.98
Да ну... неужели?
88 или 89 раз увеличьте лот на минимальный шаг. К примеру - лот каждой последующей открываемой позиции должен быть увеличен на минимальный шаг. Т.е. тупо прибавлять к лоту прошлой позиции минимальный шаг изменения лота. 98-я открываемая позиция будет иметь лот 0.98, соответственно, лот 99-й позиции будет увеличен на минимальный шаг 0.98+0.01=0.99...
Вы считаете, что ДЦ не даст открыться таким лотом?
Lot может быть 0.1, 0.11,0.12 и т.д. Но не может быть 0.99, 0.98
Да ну... неужели?
88 или 89 раз увеличьте лот на минимальный шаг. К примеру - лот каждой последующей открываемой позиции должен быть увеличен на минимальный шаг. Т.е. тупо прибавлять к лоту прошлой позиции минимальный шаг изменения лота. 98-я открываемая позиция будет иметь лот 0.98, соответственно, лот 99-й позиции будет увеличен на минимальный шаг 0.98+0.01=0.99...
Вы считаете, что ДЦ не даст открыться таким лотом?
Чорт .... ошибся конечно. не может быть 0.09, 0.08.
А тупо или не тупо - это решать тому кто пишет советника.
kellin: Нет, открываться конечно нужно по ордеру или бай или селл на открытие очередного, или одного из следующих баров. Да и закрываться тоже планирую по ордеру, назначая его по количеству пунктов от открытия.
Позже (на выходных) выложу сюда код для открытия рыночного ордера - либо бай, либо селл (по Вашему выбору), при открытии новой свечи.
Lot может быть 0.1, 0.11,0.12 и т.д. Но не может быть 0.99, 0.98 и тем более не может быть 0.998,0.999, 0.111,0.101
Эту информацию я и так знаю. В моем брокере мин лот 0.01, шаг 0.01. Я для успокоения совести менял его и на 0.1 и на 1 лот, не выходит ничего, ошибка в чем то другом.
Кстати этот советник я ясен пень не намерен использовать, просто я учусь языку программирования. По сути, я прикола ради решил посмотреть как он будет работать на тестере, просто читал как то, что генератор случайных чисел выдает не такие уж и случайные числа, дескать он повторяется. Проблема похоже не в неправильном написании числа, а в алгоритме, только вот в чем она заключается?
T-G: Помогите с задачкой. Вопрос такой у меня сова мартин, открывает колена через заданное кол-во пунктов, но с новым маджиком. Получается открывает по сигналу1 один-три ордера с маджиком = 1, далее минус следующее колено по сигналу2 открываю один-три ордера с маджиком 2 и так далее. Получается каждое колено идет по 1-3 ордера со своим меджиком.
Теперь суть вопроса в чем, как посчитать в цикле ордера каждого меджика например? я пытался так
А если так:
int Count() {
int i, Сounts[100];
for (i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i,SELECT_BY_POS)) {
if (OrderMagicNumber()>Magic+100) continue;
if (OrderType()>1) continue;
Сounts[OrderMagicNumber()]++;
}
}//for Comment(10, Сounts[0] +"="+ Сounts[1] +"="+ Сounts[2]);
}
Подскажите. если кто знает, такой вопрос: нужен зацикленный скрипт который бы с периодичностью раз в 0,5 сек. "нажимал" кнопку "Обновление" на текущем графике с переинициализацией индикаторов. Попробовал сделать зацикленный скрипт с использованием WindowRedraw() и Sleep(500), но переинициализации индикаторов не происходит.
Пытался создать советник, на основе монетки, орел бай, решек селл. Но он не работает. При тестировании в окне появляются надписи: При открытии ордера ошибка 131, в приложении посмотрел - это не правильный объем. Внимательно посмотрел, ошибки не могу найти. Везде точка стоит, для отделения целой части, а не запятая. Помогите пожалуйста. Код в файле.
Пытался создать советник, на основе монетки, орел бай, решек селл. Но он не работает. При тестировании в окне появляются надписи: При открытии ордера ошибка 131, в приложении посмотрел - это не правильный объем. Внимательно посмотрел, ошибки не могу найти. Везде точка стоит, для отделения целой части, а не запятая. Помогите пожалуйста. Код в файле.
используйте:
MinLot= MarketInfo( symbol(),MODE_MINLOT )// Минимально возможный объём лота
StepLot= MarketInfo( symbol(),MODE_STEPLOT )// Минимальный шаг изменения лота
Lot lдолжен быть >= MinLot и нормализован c помощью Lot=NormalizeDouble(Lot,Dig);
где Dig = Кол-во_знаков_после_запятой StepLota, т.е StepLot=0.01 - Dig=2 ... StepLot=0.1 - Dig=1 .....
К примеру при MinLot=0.1 и StepLot=0.01:
Lot может быть 0.1, 0.11,0.12 и т.д. Но не может быть 0.99, 0.98 и тем более не может быть 0.998,0.999, 0.111,0.101
используйте:
MinLot= MarketInfo( symbol(),MODE_MINLOT )// Минимально возможный объём лота
StepLot= MarketInfo( symbol(),MODE_STEPLOT )// Минимальный шаг изменения лота
Lot lдолжен быть >= MinLot и нормализован c помощью Lot=NormalizeDouble(Lot,Dig);
где Dig = Кол-во_знаков_после_запятой StepLota, т.е StepLot=0.01 - Dig=2 ... StepLot=0.1 - Dig=1 .....
К примеру при MinLot=0.1 и StepLot=0.01:
Lot может быть 0.1, 0.11,0.12 и т.д. Но не может быть 0.99, 0.98 и тем более не может быть 0.998,0.999, 0.111,0.101
К примеру при MinLot=0.1 и StepLot=0.01:
Lot может быть 0.1, 0.11,0.12 и т.д. Но не может быть 0.99, 0.98
Да ну... неужели?
88 или 89 раз увеличьте лот на минимальный шаг. К примеру - лот каждой последующей открываемой позиции должен быть увеличен на минимальный шаг. Т.е. тупо прибавлять к лоту прошлой позиции минимальный шаг изменения лота. 98-я открываемая позиция будет иметь лот 0.98, соответственно, лот 99-й позиции будет увеличен на минимальный шаг 0.98+0.01=0.99...
Вы считаете, что ДЦ не даст открыться таким лотом?
К примеру при MinLot=0.1 и StepLot=0.01:
Lot может быть 0.1, 0.11,0.12 и т.д. Но не может быть 0.99, 0.98
Да ну... неужели?
88 или 89 раз увеличьте лот на минимальный шаг. К примеру - лот каждой последующей открываемой позиции должен быть увеличен на минимальный шаг. Т.е. тупо прибавлять к лоту прошлой позиции минимальный шаг изменения лота. 98-я открываемая позиция будет иметь лот 0.98, соответственно, лот 99-й позиции будет увеличен на минимальный шаг 0.98+0.01=0.99...
Вы считаете, что ДЦ не даст открыться таким лотом?
Чорт .... ошибся конечно. не может быть 0.09, 0.08.
А тупо или не тупо - это решать тому кто пишет советника.
Нет, открываться конечно нужно по ордеру или бай или селл на открытие очередного, или одного из следующих баров. Да и закрываться тоже планирую по ордеру, назначая его по количеству пунктов от открытия.
Позже (на выходных) выложу сюда код для открытия рыночного ордера - либо бай, либо селл (по Вашему выбору), при открытии новой свечи.
используйте:
MinLot= MarketInfo( symbol(),MODE_MINLOT )// Минимально возможный объём лота
StepLot= MarketInfo( symbol(),MODE_STEPLOT )// Минимальный шаг изменения лота
Lot lдолжен быть >= MinLot и нормализован c помощью Lot=NormalizeDouble(Lot,Dig);
где Dig = Кол-во_знаков_после_запятой StepLota, т.е StepLot=0.01 - Dig=2 ... StepLot=0.1 - Dig=1 .....
К примеру при MinLot=0.1 и StepLot=0.01:
Lot может быть 0.1, 0.11,0.12 и т.д. Но не может быть 0.99, 0.98 и тем более не может быть 0.998,0.999, 0.111,0.101
Кстати этот советник я ясен пень не намерен использовать, просто я учусь языку программирования. По сути, я прикола ради решил посмотреть как он будет работать на тестере, просто читал как то, что генератор случайных чисел выдает не такие уж и случайные числа, дескать он повторяется. Проблема похоже не в неправильном написании числа, а в алгоритме, только вот в чем она заключается?
Помогите с задачкой.
Вопрос такой у меня сова мартин, открывает колена через заданное кол-во пунктов, но с новым маджиком. Получается открывает по сигналу1 один-три ордера с маджиком = 1, далее минус следующее колено по сигналу2 открываю один-три ордера с маджиком 2 и так далее.
Получается каждое колено идет по 1-3 ордера со своим меджиком.
Теперь суть вопроса в чем, как посчитать в цикле ордера каждого меджика например? я пытался так
А если так:
Не проверял, так, на коленке набросал...
А если так:
Не проверял, так, на коленке набросал...