Спрашивайте! - страница 85

 
cico707:
Я попробовал этот Ea на валюте GBP/USD и думаю, что он может дать хорошие результаты с трейлинг-стопом.

Кто поможет мне вставить трейлинг-стоп?

СПАСИБО

БЭКТЕСТ GBPJPY

 

Как выразить на языке MQL следующее:-

if(boolean_condition_is_true AND (this_is_true OR that_is_true))

То есть, если булево_условие_истинно И(либо_это_истинно ИЛИ_это_истинно) ТО ДЕЛАТЬ_ЧТО-ТО.

Кто-нибудь?

 

В MQL для изменения знака идентификатора с положительного на отрицательный синтаксис выглядит следующим образом: A = - A Однако обратное, похоже, не работает, т.е.: A = + A. Как изменить знак отрицательного значения на положительный?

 
Sadly:
В MQL для изменения знака идентификатора с положительного на отрицательный используется следующий синтаксис: A = - A Однако обратный вариант не работает, т.е.: A = + A. Как изменить знак отрицательного значения на положительный?

A = -A; //Всегда работает ...

Или

A *= -1;

 
Sadly:
Как выразить на языке MQL следующее:-

if(boolean_condition_is_true AND (this_is_true OR that_is_true))

То есть, если булево_условие истинно И(либо это_истинно ИЛИ это_истинно) ТО ДЕЛАТЬ_ЧТО-ТО.

Кто-нибудь?

if(b1 && (b2 || b3))

{

сделать_что-то

}

 

Спасибо, Мишель. Использование того, что вы предложили A *= + A действительно дает положительный знак, т.е. изменяет -A на +A.

 
Michel:
if(b1 && (b2 || b3))

{

сделать_что-то

}

Вот что я делаю...

if(Alarm_Reset && (stepSignalBuffer[shift] Upr_level ))

{

if(stepSignalBuffer[shift] < Lwr_level)

{

PlaySound("twank.wav");

}

else

{

PlaySound("tick.wav");

}

Alarm_Reset = false;

}

else

{

Alarm_Reset = true;

}

}

То есть, если сигнал тревоги был сброшен (на true) и либо signalbuffer < lwr_level , либо signalbuffer> upr_level.

Воспроизведите один звук, если буфер сигналов ниже нижнего уровня, или другой звук, если выше верхнего уровня. Установите сигнал тревоги на false (не нужно, чтобы сработал еще один сигнал тревоги, если это уже сделано.

else

Сбросить сигнал тревоги (т.е. сигнальный буфер находится за пределами нижнего_уровня и верхнего_уровня).

К сожалению, это не то, что происходит, но, по крайней мере, я знаю, что код правильный и, возможно, дело в логике.

Спасибо еще раз, Мишель.

EDIT: Я только что закомментировал stepSignalBuffer[shift], и его значение всегда равно нулю! Я чувствую себя таким идиотом.

 
Sadly:
Спасибо, Мишель. Использование того, что вы предложили A *= + A действительно дает положительный знак, т.е. меняет -A на +A.

Нет, это неправильно, я сказал: A *= -1; а не A *= +A;

Это меняет знак; но если вам нужно иметь положительное число, используйте функцию MathAbs(): A = MathAbs(A); Каким бы ни было A, оно станет положительным.

 

Тестовый код выходного дня

Привет, гуру,

Есть ли какой-нибудь сервер, который может кормить ценой, чтобы дать нам возможность протестировать наш код в субботу и воскресенье?

Я имею в виду, если есть возможность сделать симулятор сервера, чтобы дать возможность тестирования в выходные дни?

Эта идея пришла из-за :

1. В рабочие дни мы серьезно следим за графиком,

в это время мы не можем серьезно набирать код.

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

Может быть, кто-нибудь может дать мне информацию об этой идее?

С наилучшими пожеланиями,

BornToWin

 
Michel:
Нет, это неправильно, я сказал: A *= -1; не A *= +A; Это меняет знак; но если вам нужно иметь положительное число, используйте функцию MathAbs() : A = MathAbs(A); Каким бы ни было A, оно станет положительным.

Я попытался перевернуть знак, что, как оказалось, сработало. Я также попробовал функцию MathsAbs(), и действительно, число стало положительным.

Спасибо, Мишель, вы мне очень помогли.

Причина обращения: