Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 405

 
Link_x:
Обратите внимание на значение переменной, которая задает количество лотов, при открытии позиции.
Это значение равно нулю.
Невозможно открыть позицию с нулевым объемом для торга.




Такое то же возможно, главное - написать код правильно.



Вы точно понимаете о чем говорите?
 
Trader7777:

И может быть с третьего раза кто-то все-таки обратит внимание на мою просьбу??

Написал функцию САМ, но тестер выдает ошибку 4051, то есть невозможное к-во лотов. Кто-то выскажет свое мнение по этому поводу??


for (int i = OrdersTotal()-1; i>0; i--)  // надо i>=0
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)    // не надо OrderType() == otype, далее проверяете на бай и сел, а про отложки варианта нет.
Lot = NormalizeDouble (((OrderOpenPrice()-Bid)*Point)*OrderLots()/TP,2); 

ТР это тейк профит к выбранному ордеру? Так берите значение с ордера, тейк профиты бывают же разные.

На данный момент вы ищете на сколько пунктов вы в просадке, делете на тейк профит и множите на значение лота.

Если тикет на покупку, то вы в профите когда бид выше за цену покупки (аск). (Bid - OrderOpenPrice())

Вы не учитываете отрицательные и положительные по профиту тикеты в целом,

вдруг вам не хватит свободных средств для открытия таким лотом, ведь один отрицательный может перекрыть все положительные.

return (TotalLot); функция может вернуть 0, при определенных обстоятельствах, далее делается на это проверки?

 
Trader7777:

Вы точно понимаете о чем говорите?

Указанная выше фраза имеет несколько смыслов. Смысловые понятия этой фразы описаны ниже.

1 - Упрек в том, что я неправильно осознал код и соответственно дал неверное наставление.
2 - Указание на сложность понимания моих текстов.
3 - Сомнение в моем психологическом здравии.

Выберите один из вариантов для продолжения общения со мной, т.к. я не могу ответить на ваш вопрос, интуитивно выбрав вариант толкования фразы.
 
Link_x:

Указанная выше фраза имеет несколько смыслов. Смысловые понятия этой фразы описаны ниже.

1 - Упрек в том, что я неправильно осознал код и соответственно дал неверное наставление.
2 - Указание на сложность понимания моих текстов.
3 - Сомнение в моем психологическом здравии.

Выберите один из вариантов для продолжения общения со мной, т.к. я не могу ответить на ваш вопрос, интуитивно выбрав вариант толкования фразы.

Уверен, что 1. Вы не можете достоверно судить каким лотом открывается позиция, хотя бы потому, что код открытия позиции автором не приведён. А там где вы увидели ноль, так это начальное значение переменной. Вам рано пока ещё кого-либо учить.
 
Здравствуйте товарищи. Я в программировании новичок, только изучаю MQL4. Объясните пожалуйста как сделать чтобы при достижении определенных условий открывался один ордер, а не на каждой свече как у меня. Может стандартный пример кода есть или еще что?
 
hmpr:
Здравствуйте товарищи. Я в программировании новичок, только изучаю MQL4. Объясните пожалуйста как сделать чтобы при достижении определенных условий открывался один ордер, а не на каждой свече как у меня. Может стандартный пример кода есть или еще что?
Алгоритм такой: проверяете наличие открытых ордеров советником, если уже есть открытый ордер, выходите из start(). Коды здесь.
 
Trader7777:

И может быть с третьего раза кто-то все-таки обратит внимание на мою просьбу??

Написал функцию САМ, но тестер выдает ошибку 4051, то есть невозможное к-во лотов. Кто-то выскажет свое мнение по этому поводу??

функция поиска лота, необходимого для выхода из просадки после  

//закрытия сетки ордеров

Чтобы оценить правильность кода, нужно точно знать, что хотел автор получить. Вашей информации недостаточно. Что вы хотели получить не совсем понятно. Если вы хотели скомпенсировать убыток после закрытия сетки путём открытия противоположного ордера, рассчитывая что цена пройдёт в направлении этого последнего ордера какое-то количество пунктов, то процесс компенсации зависит как от лота этого ордера, так и от расстояния, которое цена пройдёт в благоприятном направлении. Значит для вычислении лота надо задаться ещё величиной дистанции, которую должна пройти цена для компенсации убытка. Хотя возможно вы имели ввиду что-то другое.
 

код заканчивается видом

хочется вставить функцию sleep с периодом 30 сек

чтоб весь код работал 2 раза в минуту, а не с каждым тиком, и

как корректно вставить эту функцию ? куда ? и как ? желательно в конце кода, с примером, спасибо

 
bergkamp.:

код заканчивается видом

хочется вставить функцию sleep с периодом 30 сек

чтоб весь код работал 2 раза в минуту, а не с каждым тиком, и

как корректно вставить эту функцию ? куда ? и как ? желательно в конце кода, с примером, спасибо

Запоминайте время в конце кода функции. Затем сравнивайте его с текущим временем и если текущее становится больше запомненного на 30 секунд снова запускайте функцию.
 
khorosh:
Запоминайте время в конце кода функции. Затем сравнивайте его с текущим временем и если текущее становится больше запомненного на 30 секунд снова запускайте функцию.
вот примерчик бы ... если просто вставить sleep в конце кода, как он будет работать ?