Ошибки, баги, вопросы - страница 1611

 
Slawa:
В четвёрочном тестере только OnInit, OnTick, OnDeinit. Ни таймер, ни события от чарта, ни тики от чужих символов и даже тестерный Sleep не работают

Спасибо за ответ. Насколько я понимаю, доделывать обработчик таймера не будете? 

 

Ошибка в новой версии компилятора, build 1354:

2016.07.08 14:10:04.626 MetaCOT2 COT Absolute Changes (EURUSD,H1) math overflow or undefined calculation detected. Check source code, please

Сообщение возникает еще до вызова OnInit. Какие-либо сложные объекты не используются. Расчеты также не производятся. В предыдущих версиях все работало нормально.

Проявляется при загрузке любого пользовательского индикатора

 
coderex:
по типу std::cout и std::cin хочешь изобразить?

Нет, это уже давно пройденный этап.

неудобно было, что printf() в MQL в отличии от С++ переносит на новую строку когда его об этом не просят

 

Здесь сразу несколько ошибок

class B;
class A { public:
        virtual B *f() { Print( __FUNCSIG__ ); return &this; }
};
class B : public A { public:
        virtual B *f() { Print( __FUNCSIG__ ); return &this; }
};
void OnStart() 
{
        A a;
        a.f().f();
}

1. Неявное преобразование от базового класса к производному. Должно быть явное, иначе - сообщение об ошибке

        virtual B *f() { Print( __FUNCSIG__ ); return (B *)&this; } //(*)
2. Ошибка при выполнении: результат (снизу вверх)

B* B::f()
B* A::f()

а если переписать в С++, то там результат был бы

B* A::f()
B* A::f()  

 
Если уж на то пошло, здесь еще и ошибка каста. Каст &this к B* должен выкинуть ошибку. В плюсах кстати по идее тоже
 
Комбинатор:
Если уж на то пошло, здесь еще и ошибка каста. Каст &this к B* должен выкинуть ошибку. В плюсах кстати по идее тоже
Явное преобразование допустимо (проверьте в С++)
 
A100:
Явное преобразование допустимо (проверьте в С++)
Здесь нужен dynamic_cast, с ним работает?
 
Комбинатор:
Здесь нужен dynamic_cast, с ним работает?
если
        virtual B *f() { Print( __FUNCSIG__ ); return dynamic_cast<B *>( &this ); }

то результат выполнения правильный (снизу вверх):

invalid pointer access
B* A::f()

 
A100:

Другой каст в вашем примере применять некорректно.

Значит ошибка в приведении типов в mql которое должно разворачиваться в динамический каст, что по факту не происходит или происходит неправильно.

 

Уважаемые господа!

В МТ4 очень удобно сделана установка стоп-ордеров путём перетаскивания: когда я тяну курсор от линии сделки, я сразу вижу размер прибыли, которая будет получена, если сделка закроется по цене, на которой стоит курсор.

В своей торговле я использую стратегию, где часто бывает нужно аналогичное средство, но не для одной сделки, а для ВСЕХ сделок, открытых на данном графике.

Т.е. хотелось бы. чтобы при установке курсора на какую-либо цену я видел размер СУММАРНОЙ ПРИБЫЛИ, которая будет, если ВСЕ сделки закроются по цене, на которой стоит курсор.

И уж совсем было бы роскошно, если бы при отпускании кнопки мыши на всех открытых сделках автоматически устанавливались нужные для получения этой прибыли ТР и SL, как это сейчас происходит для одиночной сделки.

Может быть, я хочу слишком многого, но я описал идеальную ситуацию. По минимуму мне нужен калькулятор, которому на вход подаются уровни и объёмы открытых сделок (все сделки - однонаправленные, либо все sell, либо все buy) и цена закрытия, а на выходе он выдаёт суммарную прибыль, которая будет получена после закрытия всех сделок при достижении заданной цены. Или, например, это может быть индикатор в виде горизонтальной линии, которая показывает цену, при закрытии по которой групповая прибыль будет равна нулю. Сейчас я считаю это на калькуляторе врукопашную, но это очень долго и чревато ошибками.

Я бы и сам поискал на Маркете, но не знаю, что искать. Это должен быть советник, индикатор, робот или что-то ещё? Если не существует ничего такого готового, готов обсудить условия заказа на написание такого средства.