[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 189
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Когдато учил основы программирования (25 лет назад - Algol 60 :))) Тогда все начиналось с создания алгоритма (квадратики, ромбики), а потом этот алгоритм описывался языком. Сейчас ни где алгоритмов не вижу, команд - не знаю.
Ребята, посоветуйте толковый учебник по mql4. Желательно с конкретными примерами написания экспертов, начиная с алгоритма.
Когдато учил основы программирования (25 лет назад - Algol 60 :))) Тогда все начиналось с создания алгоритма (квадратики, ромбики), а потом этот алгоритм описывался языком. Сейчас ни где алгоритмов не вижу, команд - не знаю.
Ребята, посоветуйте толковый учебник по mql4. Желательно с конкретными примерами написания экспертов, начиная с алгоритма.
https://book.mql4.com/ru/
профи подскажите пожалуйста, согласно справке по языку mql5 там нет функции iHighest как рассчитать максимальный хай за N период??? ..нужно написать функцию самостоятельно,..попробовал через copyHigh и fmax, но так лишь для определенного периода и не то конечно, помогите
Вот Вам Пример:
Только с шифтами разберитесь как следует.
1. Пытаюсь запустить советник в режиме тестирования с визуализацией. Советник простой: выдает сообщение через Alert. Когда Alert стоит в init, то сообщение выдается при запуске. Когда стоит в start, то советник не реагирует при поступлении нового тестирующего тика. В чем дело?
2. В этом же режиме тестирования запускаю скрипт, который выдает через Alert значения Time[1], Close[1],... (для справки). Выяснил, что указанные значения берутся по текущему (настоящему) времени, а не по времени прихода тестирующих тиков и формируемых на графике баров. Что можно предпринять?
У меня для EURGBP возвращает - 0 (это Альпари) шорт и -0.68 лонг и это точно в долларах.
Для альпари тип вычисления свопа равен 0, а у меня 1,
Хотя мне нужно знать все типы вычисления.
Сегодня решил проверить методом научного тыка, но не получилось пробовал все комбинации: умножение, деление или не использовал вообще.
Вот код который все это высчитывает и возвращает ближайшее к реальному свопу значение.
int a,b,c,d,dd;
dd=1;
double raznica;
for ( j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {
int a_=0,b_=0,c_=0,d_=0;
raznica=1000000;
OrderSelect(j, SELECT_BY_POS, MODE_HISTORY);
if(OrderSwap()!=0){
if(OrderType()==OP_BUY){
for(a=-dd;a<=dd;a++){
for(b=-dd;b<=dd;b++){
for(c=-dd;c<=dd;c++){
for(d=-dd;d<=dd;d++){
double gg=MathPow(MarketInfo(OrderSymbol(),MODE_SWAPLONG),a)*MathPow(OrderLots(),b)*MathPow(MarketInfo(OrderSymbol(),MODE_TICKVALUE),c)*MathPow(MarketInfo(OrderSymbol(),MODE_BID),d);
if(MathAbs(gg-OrderSwap())<raznica){raznica=MathAbs(gg-OrderSwap());a_=a;b_=b;c_=c;}
}}}}
Alert(" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+"РАСЧЕТНЫЙ СВОП = "+gg+"\n a= "+a_+" b = "+b_+" c = "+c_+" d = "+d_);
}//if(OrderType()==OP_BUY){
if(OrderType()==OP_SELL){
for(a=-dd;a<=dd;a++){
for(b=-dd;b<=dd;b++){
for(c=-dd;c<=dd;c++){
for(d=-dd;d<=dd;d++){
gg=MathPow(MarketInfo(OrderSymbol(),MODE_SWAPSHORT),a)*MathPow(OrderLots(),b)*MathPow(MarketInfo(OrderSymbol(),MODE_TICKVALUE),c)*MathPow(MarketInfo(OrderSymbol(),MODE_BID),d);
if(MathAbs(gg-OrderSwap())<raznica){raznica=MathAbs(gg-OrderSwap());a_=a;b_=b;c_=c;}
}}}}
Alert(" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+"РАСЧЕТНЫЙ СВОП = "+gg+"\n a= "+a_+" b = "+b_+" c = "+c_+" d = "+d_);
}//if(OrderType()==OP_SELL){
}//if(OrderSwap()!=0){
}//for ( j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {
Результатов не получил ни для альпари ни для БРОКО.
То, есть
MarketInfo(OrderSymbol(),MODE_SWAPLONG)
OrderLots()
MarketInfo(OrderSymbol(),MODE_TICKVALUE)
MarketInfo(OrderSymbol(),MODE_BID)
Недостаточно для расчета свопа.
Здесь должно быть что то еще, но вот что?
Спасибо chief2000, но вы написали через стандартные iHighest и iLowest вот в чем и проблема их то в mql 5 и нет
Теперь вижу что я невнимательно прочитал вопрос.
Неужели действительно в 5-й версии придется все вручную описывать? Что-то тут не то - может проблема с документацией?
Для альпари тип вычисления свопа равен 0, а у меня 1,
Вася_Вася ну ты че паришься я ж тебе ответил здесь 'Свопы в mql4' коротенько
если надо могу подробней,
всего 4 варианта
для каждого своя формула
Вася_Вася ну ты че паришься я ж тебе ответил здесь 'Свопы в mql4' коротенько
если надо могу подробней,
всего 4 варианта
для каждого своя формула
да, можно остальные формулы?