Ответ
 
Опции темы
Старый 16.12.2014, 21:14   #3301 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от Ugar Посмотреть сообщение
Вот про это я и говорю. Условие if(MA1>MA2) это буквально тело импульса то есть 1. Передний фронт это: переход от 0 к 1. То есть момент пересечения МА.
По простому это будет:
OnTick()
{
static double LastMA1, LastMA2;
double MA1, MA2;
MA1=iMA(...);
MA2=iMA(...);
//Инициализация прошлого значения
if(LastMA1<0.0000001 || LastMA2<0.0000001)
{
LastMA1=MA1;
LastMA2=MA2;
}
//Если был 0, а стала 1 и количество ордеров не достигло максимального.
if(LastMA1<=LastMA2 && MA1>MA2 && OrdersTotal() < MaxOrders)
{
OrderSend(...);
}
LastMA1=MA1;
LastMA2=MA2;
}}
при каждом новом переднем фронте будет открываться ордер. это будет нормально работать в тестере. Для надёжной работы в реальных условиях, нужно добавить ооооочень много "лишнего" кода.
спасибо за ответ! правда не верится что нельзя проще и короче...вапще удивляет, когда программисты с опытом пишут простую логику очень сложно, а кто имеет мало опыта, проще намного...хотя помню как в школе по математике была контрольная, с простыми заданиями, так вот все отличники думали и решали сложно, поэтому еле сдали на 3ки, те же кто учился на 3ки - написали на 4 и 5, просто отличники не смогли переключить мышление на простое...
а как на счет такого кода, случайно нашел по кодам...будет он работать как надо?

PHP код:
extern int MaxOrders=5;

int start()
{
 if(
OrdersTotal() < 1)
  {
//---------------------

   
if(MA1>MA2)
    {
     
OrderSend(....);
    }

//---------------------
  
}
return(
0);


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 16.12.2014 в 21:19.
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 16.12.2014, 21:26   #3302 (permalink)
 
Аватар для ksardas
 
Регистрация: 20.10.2013
Адрес: Лас-Пальмас-де-Гран-Канария
Сообщений: 701
Репутация: 2595
ksardas ksardas ksardas ksardas ksardas ksardas ksardas ksardas ksardas ksardas ksardas
Сказал(а) спасибо: 680
Поблагодарили 2,598 раз(а) в 582 сообщениях
Поинты: 475
мое имхо
тригер=2
при выполнеии условия если if(.....и ( тригер!=1)
выполнили тригер=1
второеусловие если .....if(тригер=0( тригер!=0)
выполнили тригер=0
и все)))

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Ты не старайся, и у тебя всё получится.
ksardas на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (17.12.2014)
Старый 17.12.2014, 02:58   #3303 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от ksardas Посмотреть сообщение
мое имхо
тригер=2
при выполнеии условия если if(.....и ( тригер!=1)
выполнили тригер=1
второеусловие если .....if(тригер=0( тригер!=0)
выполнили тригер=0
и все)))
спасибо за ответ!
поскольку даже 1 знак неверно написанный в коде меняет логику выполнения программы,не могли бы вы показать на моем примере ваш вариант???

PHP код:
extern int MaxOrders=5;

int start()
{
 if(
OrdersTotal() < MaxOrders)
  {
//---------------------

   
if(MA1>MA2)
    {
     
OrderSend(....);
    }

//---------------------
  
}
return(
0);


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ksardas (19.12.2014)
Старый 17.12.2014, 16:04   #3304 (permalink)
Интересующийся
 
Аватар для Alexz2107
 
Регистрация: 05.05.2011
Сообщений: 16
Репутация: 2
Alexz2107
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Поинты: 20

По умолчанию Как найти проблему?!


Все здравствуйте! Написал советника, а он, собака, виснет. Виснет, я так полагаю, одна функция. Суть в том, что у него несколько режимов работы. В штатном режиме все функционирует прекрасно, когда ситуация становится критической, активируется режим спасения. Переключение тоже проходит безупречно. А вот этот самый режим спасения начинает работать, открывает несколько ордеров и быстро зависает. То есть терминал вроде работает, котировки поступают, но советник ордера не открывает. Пытаюсь снять его с графика, терминал зависает наглухо, закрываю его только Завершением задачи. При перезагрузке запускаю спасение вручную, или оно активируется автоматом - происходит то же самое, несколько ордеров и заклинивает. Подскажите, пожалуйста, как, собственно, искать ошибку? Или лучше с маху переписать всю эту функцию?
Alexz2107 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.12.2014, 16:39   #3305 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,254
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1274
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Alexz2107 Посмотреть сообщение
Все здравствуйте! Написал советника, а он, собака, виснет. Виснет, я так полагаю, одна функция. Суть в том, что у него несколько режимов работы. В штатном режиме все функционирует прекрасно, когда ситуация становится критической, активируется режим спасения. Переключение тоже проходит безупречно. А вот этот самый режим спасения начинает работать, открывает несколько ордеров и быстро зависает. То есть терминал вроде работает, котировки поступают, но советник ордера не открывает. Пытаюсь снять его с графика, терминал зависает наглухо, закрываю его только Завершением задачи. При перезагрузке запускаю спасение вручную, или оно активируется автоматом - происходит то же самое, несколько ордеров и заклинивает. Подскажите, пожалуйста, как, собственно, искать ошибку? Или лучше с маху переписать всю эту функцию?
обычно зависания связаны с зацикливанием или сном. Если он выполняет Sleep(60000); то минуту советник не открывает свойства, не удаляется и вообще ничего не делает. Нужно дождаться когда проснётся.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Alexz2107 (17.12.2014)
Старый 17.12.2014, 17:05   #3306 (permalink)
Интересующийся
 
Аватар для Alexz2107
 
Регистрация: 05.05.2011
Сообщений: 16
Репутация: 2
Alexz2107
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Поинты: 20
Сообщение от Ugar Посмотреть сообщение
обычно зависания связаны с зацикливанием или сном. Если он выполняет Sleep(60000); то минуту советник не открывает свойства, не удаляется и вообще ничего не делает. Нужно дождаться когда проснётся.
Вообще функция зациклена, но зависания происходят, когда условия цикла все еще актуальны. Я сейчас повтыкал на каждом шагу алерты, чтобы видеть, на каком шаге зависает функция. выяснил, что две внешние функции, которые высчитывают значения для этой самой проблемной функции выполняются по много раз в секунду. Периодически процессор грузится на 95-97%. В эти моменты происходит зависание. Если я правильно понял, это как раз от этих высчетов каждую секунду? Правильно ли тогда поставить после каждого открытия ордера Sleep примерно на секунду?

Последний раз редактировалось Alexz2107; 17.12.2014 в 17:07.
Alexz2107 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.12.2014, 17:40   #3307 (permalink)
Интересующийся
 
Аватар для Alexz2107
 
Регистрация: 05.05.2011
Сообщений: 16
Репутация: 2
Alexz2107
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Поинты: 20
Сообщение от Ugar Посмотреть сообщение
обычно зависания связаны с зацикливанием или сном. Если он выполняет Sleep(60000); то минуту советник не открывает свойства, не удаляется и вообще ничего не делает. Нужно дождаться когда проснётся.
Вы правы, зависание происходило, судя по всему из-за зацикливания. Поставил Sleep(1000), высчеты шли раз в секунду, но зависало все равно. Поставил выход из цикла, стало работать корректно. Но теперь ордера открываются только по поступлении тика, выходит очень медленно. А желательно бы организовать выполнение цикла, не дожидаясь новых тиков. Можно ли так выполнить цикл? Там принцип такой:
ФУНКЦИЯ()
а=ФУНКЦИЯ1();
б=ФУНКЦИЯ2();
цикл(а>б)
ФУНКЦИЯ3(в,г)
Хотелось бы, чтобы ФУНКЦИЯ как раз была зациклена и выполнялась, пока условия не станут ложными.
Alexz2107 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.12.2014, 18:58   #3308 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,254
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1274
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Alexz2107 Посмотреть сообщение
Вы правы, зависание происходило, судя по всему из-за зацикливания. Поставил Sleep(1000), высчеты шли раз в секунду, но зависало все равно. Поставил выход из цикла, стало работать корректно. Но теперь ордера открываются только по поступлении тика, выходит очень медленно. А желательно бы организовать выполнение цикла, не дожидаясь новых тиков. Можно ли так выполнить цикл? Там принцип такой:
ФУНКЦИЯ()
а=ФУНКЦИЯ1();
б=ФУНКЦИЯ2();
цикл(а>б)
ФУНКЦИЯ3(в,г)
Хотелось бы, чтобы ФУНКЦИЯ как раз была зациклена и выполнялась, пока условия не станут ложными.
2 варианта:
1. Этот будет работать в тестере, но может не помочь. Засунуть в цикл сон на 0.1 секунду.
Во время сна, советник не работает, но и не грузит процессор.
цикл(а>б)
{
действия в цикле
Sleep(100);
}
2. задействовать системный таймер вместо цикла. Инициализировать его на 0.1 секунды. Этот вариант почти не грузит процессор, но в тестере не будет работать, так как он не умеет моделировать таймер.

Ну или продумать алгоритм так что бы избежать зависания. Может продумать заново и переписать функцию с циклом.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Alexz2107 (18.12.2014)
Старый 18.12.2014, 06:22   #3309 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Сообщение от Ugar Посмотреть сообщение
Ну или продумать алгоритм так что бы избежать зависания. Может продумать заново и переписать функцию с циклом.
Как вариант для нормального снятия советника с чарта можно использовать IsStopped в цикле.
Код:
if(IsStopped()) break; // из цикла
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Alexz2107 (18.12.2014)
Старый 18.12.2014, 15:03   #3310 (permalink)
Интересующийся
 
Аватар для Alexz2107
 
Регистрация: 05.05.2011
Сообщений: 16
Репутация: 2
Alexz2107
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Поинты: 20
Сообщение от Ugar Посмотреть сообщение
2 варианта:
1. Этот будет работать в тестере, но может не помочь. Засунуть в цикл сон на 0.1 секунду.
Во время сна, советник не работает, но и не грузит процессор.
цикл(а>б)
{
действия в цикле
Sleep(100);
}
2. задействовать системный таймер вместо цикла. Инициализировать его на 0.1 секунды. Этот вариант почти не грузит процессор, но в тестере не будет работать, так как он не умеет моделировать таймер.

Ну или продумать алгоритм так что бы избежать зависания. Может продумать заново и переписать функцию с циклом.
Первый вариант вешается. А по поводу второго подробнее можно? Я еще с ним не сталкивался.
Alexz2107 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.12.2014, 15:15   #3311 (permalink)
Интересующийся
 
Аватар для Alexz2107
 
Регистрация: 05.05.2011
Сообщений: 16
Репутация: 2
Alexz2107
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Поинты: 20
Сообщение от AlexeyVik Посмотреть сообщение
Как вариант для нормального снятия советника с чарта можно использовать IsStopped в цикле.
Код:
if(IsStopped()) break; // из цикла
Да дело-то не в снятии. Я вчера доработал функцию, вроде бы все работает идеально, и не виснет, и процессор не грузит, и снимается легко и непринужденно. Чисто технически к советнику сейчас претензий нет. Хотелось бы именно ускорить работу цикла. Функция IsStopped() работает только для снятия с чарта или можно использовать в любой функции?
Alexz2107 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.12.2014, 16:06   #3312 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Сообщение от Alexz2107 Посмотреть сообщение
Да дело-то не в снятии. Я вчера доработал функцию, вроде бы все работает идеально, и не виснет, и процессор не грузит, и снимается легко и непринужденно. Чисто технически к советнику сейчас претензий нет. Хотелось бы именно ускорить работу цикла. Функция IsStopped() работает только для снятия с чарта или можно использовать в любой функции?
Я посоветовал как вариант снятия советника для дальнейшей правки кода без перезагрузки терминала. А по логике IsStoped() должна работать при любой остановке советника. Будь то отжатие кнопки или просто закрытие терминала. Тоесть прекращает выполнение и переходит в деинит.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 18.12.2014, 16:21   #3313 (permalink)
Интересующийся
 
Аватар для Alexz2107
 
Регистрация: 05.05.2011
Сообщений: 16
Репутация: 2
Alexz2107
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Поинты: 20
Сообщение от AlexeyVik Посмотреть сообщение
Я посоветовал как вариант снятия советника для дальнейшей правки кода без перезагрузки терминала. А по логике IsStoped() должна работать при любой остановке советника. Будь то отжатие кнопки или просто закрытие терминала. Тоесть прекращает выполнение и переходит в деинит.
Жаль, тогда мне это и ни к чему. Я думал, это что-то сродни break.
Alexz2107 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.12.2014, 17:13   #3314 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,254
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1274
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Alexz2107 Посмотреть сообщение
Первый вариант вешается. А по поводу второго подробнее можно? Я еще с ним не сталкивался.
Цитата:
//Сначала инициализировать таймер
int OnInit()
{
//---
EventSetMillisecondTimer(100);
//---
return(INIT_SUCCEEDED);
}

//Дальше функция таймера выполняется как цикл, примерно 10 раз в секунду, так как при инициализации было задано 100ms.
void OnTimer()
{

}
Думаю, не надо объяснять как использовать переменные на глобальном уровне для передачи команд в в функцию таймера и как передать результат выполнения обратно.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Alexz2107 (23.12.2014)
Старый 19.12.2014, 01:40   #3315 (permalink)
Местный знаток
 
Аватар для Gnn-life
 
Регистрация: 09.04.2012
Адрес: Питер
Сообщений: 470
Репутация: 982
Gnn-life - Gnn-life - Gnn-life - Gnn-life - Gnn-life - Gnn-life - Gnn-life - Gnn-life -
Сказал(а) спасибо: 552
Поблагодарили 982 раз(а) в 298 сообщениях
Поинты: 102
Уважаемые прогеры...или начинающие, вобщем вопрос? как вставить в советник индикатор i-custom (весь код), дальше разберусь (наверно)...извините учусь....

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Последний раз редактировалось Gnn-life; 19.12.2014 в 01:42.
Gnn-life вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.12.2014, 05:41   #3316 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Сообщение от Gnn-life Посмотреть сообщение
Уважаемые прогеры...или начинающие, вобщем вопрос? как вставить в советник индикатор i-custom(весь код), дальше разберусь (наверно)...извините учусь....
А в документации разве не весь код? _http://docs.mql4.com/ru/indicators/icustom
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 19.12.2014, 14:52   #3317 (permalink)
Почётный гражданин
 
Аватар для Vik940
 
Регистрация: 26.05.2012
Сообщений: 137
Репутация: 333
Vik940 Vik940 Vik940 Vik940
Сказал(а) спасибо: 489
Поблагодарили 332 раз(а) в 115 сообщениях
Поинты: 90
Уважаемые знатоки подскажите пожалуйста существует ли фукция или код автоматической загрузки параметров советника из сет файла при оприделенных условиях. Если да то подскажите где можно почитать о ней или образец кода.Заранее большое спасибо кто ответит.
Vik940 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 19.12.2014, 15:06   #3318 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
По данному вопросу куча инфы в сети, наприме:
_http://www.mqlvopros.net/?qa=57/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D1%87%D0%B8%D1%82%D0%B0%D1%82%D 1%8C-csv-%D1%84%D0%B0%D0%B9%D0%BB-%D0%B8%D0%B7-mql4
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Vik940 (19.12.2014)
Старый 19.12.2014, 16:13   #3319 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Сообщение от Vik940 Посмотреть сообщение
Уважаемые знатоки подскажите пожалуйста существует ли фукция или код автоматической загрузки параметров советника из сет файла при оприделенных условиях. Если да то подскажите где можно почитать о ней или образец кода.Заранее большое спасибо кто ответит.
_http://docs.mql4.com/ru/chart_operations

Последний раз редактировалось NSerega; 19.12.2014 в 17:10.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Vik940 (19.12.2014)
Старый 21.12.2014, 09:15   #3320 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172

Вопрос Помогите с кодом советника


Здравствуйте! Знающие.. можете помочь верно написать код.. как открывать , а потом и закрывать ордера.. вот по примеру( как на картинке.. Линиии рисовая я руками..)

Стрелки там не перерисовываются! Появляются на 1-м баре (т.е мне нужно чтобы советник открывал ордера не на тиках.. а по закрытию сигнального бара.. т.е. сразу по цене открытия текущего бара, как только на предыдущем нарисовались стрелки.. ) (есть и возможность появления на 0 баре, но это пока не нужно.. ). Их рисует индикатор..

в иникаторе исп 3 буфера.

0 - Основной (Расчетный)
1 - Зона перекупленности
2 - Зона перепроданности

Условие появления стрелки вверх.. (открытие длинной позиции и закрытие всех коротких, если такие имеются... .. по цене открытия текущего бара)
Если (Буфер 0 на 1-м баре > -100 и Буфер 2 на 1-м баре Пуст и Буфер 2 на 2-м баре < -100 )

Условие появления стрелки вниз.. (открытие короткой позиции и закрытие всех длинных, если такие имеются.. по цене открытия текущего бара)
Если (Буфер 0 на 1-м баре < 100 и Буфер 1 на 1-м баре Пуст и Буфер 1 на 2-м баре > 100 )

И расчет лота для серии ордеров (как на покупку, так и на продажу...)
старт лот 0.01
1-ордер серии - лот 0.01
2-ордер серии - лот 0.02
3-ордер серии - лот 0.03
4-ордер серии - лот 0.06
5-ордер серии - лот 0.12
6-ордер серии - лот 0.24
7-ордер серии - лот 0.48
Как только закрылась серия ордеров - расчет лота для новой позиции повторяется по приведенной выше схеме..

Подскажите, как жто мне в коде написать.. или дайте ссылку на источник с примерами как это делается верно!) Спасибо!!
Миниатюры:
Нажмите на изображение для увеличения
Название: GBPUSDproH1.png
Просмотров: 13
Размер:	37.2 Кб
ID:	189063  

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 14:06. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
SEO by vBSEO