Здравствуйте, гость ( Вход | Регистрация )

26 страниц V « < 16 17 18 19 20 > »   
Ответить в эту темуОткрыть новую тему
> Perceptron, Нейронная сеть
leonid553
сообщение 7.8.2007, 13:17
Сообщение #171





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Ок! В следующей, - трехвалютной версии я, пожалуй, так и сделаю!

Теперь пришла пора заняться отдельной версией!
ты говорил, что там всё в порядке с ордерами. Т.Е. в последней твоей версии советник не обращает внимание на чужие ордера.
Однако, это не так! Вот стоит эта версия на паре GBPCHF,H4 и ночью там был сигнал на вход в BUY.
но позиция не открылась! - см. рис.
Стал разбираться. И немного запутался!
Код
int start()
  {

bool isNewBar=false;
if (ExpertBars !=Bars) {ExpertBars=Bars; isNewBar=true; }  

int _Order=isExpertOrder();


if (isNewBar) {
if (_Order!=0) ZeroBarOrd=true;  //есть ордер
else           ZeroBarOrd=false; //нет ордера
}

Здесь всё ясно пока - для работы по ценам открытия.
Далее идет заблокированный кусочек. Ну раз - заблокированный, - значит не оч. и нужен!


Эскизы прикрепленных изображений
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 7.8.2007, 13:29
Сообщение #172





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



А условие на открытие позиции вот такое -
Код
if (!ZeroBarOrd) {        
//----------------------------------------------------------------------------------------------

  //----проверяем условие на покупку-----
  if   (  (Stochastic[1]<Env_low[0])  &&
          (Stochastic[0]>Env_low[0])  ){
          
    if ( _Order==0) { //если нет открытых ордеров
      Buy ();             //покупаем
    }
    else {                //если открытые ордера есть
    

Далее пошли блоки открытия позиций, и блок закрытия позиций.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 7.8.2007, 13:35
Сообщение #173





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Скорее всего дело не с ордерами а с настройками.
Настройки индикатора и советника соответствуют?
Не работает ли на счету эксперт с таким же MagicNumber?
На закоментированный блок не обращай внимания, я просто забыл его удалить. Его функцию выполняют строки те что выше.
Код
if (isNewBar) {
if (_Order!=0) ZeroBarOrd=true;  //есть ордер
else           ZeroBarOrd=false; //нет ордера
}
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 7.8.2007, 13:54
Сообщение #174





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Всё соответствует!
и магик задан
extern int ExpertID =1111;
А в др. советниках - другие магики. Да и структура там другая.
Непонятина начинается вот здесь :
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 7.8.2007, 14:52
Сообщение #175





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Код
/=======================================================================================
//| Функция проверки наличия ордеров эксперта |==========================================
//| 0 - ордеров нет                           |==========================================
//| 1 - есть ордер Buy                        |==========================================
//| 2 - есть ордер Sell                       |==========================================
//=======================================================================================
int isExpertOrder() {

int _OrdersTotal=OrdersTotal();

//---------- При тестировании проводим упрощённую проверку ордеров.
if (IsTesting()) {              
  if (_OrdersTotal==0) return (0);
  
  for (int i=0; i<_OrdersTotal; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderType()==OP_BUY)  {return(1); break; }    
      if (OrderType()==OP_SELL) {return(2); break; }
    }        
  }
}

for (i=0; i<_OrdersTotal; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==Symbol()) {
        if (OrderMagicNumber()==ExpertID) {
          if (OrderType()==OP_BUY) {
             return(1); break; }
          if (OrderType()==OP_SELL) {
             return(2); break; }
         }  
       }    
     }  
   }  
}
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 7.8.2007, 16:24
Сообщение #176





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Вроде бы разобрался! Установил. Скомпеллировалось.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 7.8.2007, 19:08
Сообщение #177





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Вставляю третью и последнюю пару. В мультивалютный. Отлажу, приготовлю и пришлю тебе.
----------------------------------------------------------------------------------------
А вот с LotsWayChoice = 1; и =3 так и осталась проблема!
В мт4 MQ - CHEMP - там в терминале заложено ограничение до 5 лотов. После чего в журнале пишется ошибка!
Но в др. мт4 ограничений таких нет. А если задать ограничения вручную
LotsMax = 50 (т.е =5 лотов) ,
то все равно не работает!
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 8.8.2007, 6:25
Сообщение #178





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Цитата(NoName @ 7.8.2007, 11:46) *

Число 49 взял от фонаря. Почему именно его - не помню (действительно, почему не 50 ?smile.gif ). Но! Это число должно быть больше или равно периоду Envelopes. Иначе, будет недостаточно данных для корректного расчёта индикатора.
Кстати, этот цикл сильно тормозит советник, т.к. пересчитывается на каждом тике. Лучше использовать внешний индикатор, который я тебе присылал, а его значения снимать в советнике через iCustom.

вот в последней версии для ускоренных ресчетов в тестере - твоя последняя версия "нового поколения" с вызовом внешнего индюка iCustom(NULL,0,"i-StochEnv"
в коде стоит -
double Stochastic[2];
Нужно ли для онлайна задать побольше это число , если у меня период канала равен = 20-25 ?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 8.8.2007, 9:26
Сообщение #179





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Цитата(leonid553 @ 8.8.2007, 9:25) *


вот в последней версии для ускоренных ресчетов в тестере - твоя последняя версия "нового поколения" с вызовом внешнего индюка iCustom(NULL,0,"i-StochEnv"
в коде стоит -
double Stochastic[2];
Нужно ли для онлайна задать побольше это число , если у меня период канала равен = 20-25 ?


Нет. Этот массив с периодом канала никак не связан.
А вот на счёт библиотеки лучше поинтересоваться на форуме у Кима. Думаю, так будет проще, чем самим гадать в чём проблема.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 8.8.2007, 17:46
Сообщение #180





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Обнаружился вроде глюк в версии с вызовом индюка!
в визуальном режиме я увидел что значения (в левом углу) границ канала остаются постоянными - в течение последней свечи!
И меняют значения лишь с началом следующей свечи!
А вот стохастик (как и положено) меняется на каждом тике!
Почему
Comment ("Stochastic[0] ", Stochastic[0] , "\r\n",
"Env_up [0] ", Env_up [0] , "\r\n",
"Env_low[0] ", Env_low[0] , "\r\n",
"Blocking= "+st );
значения Env_up [0] и "Env_low[0] не меняются на каждом тике?
Для тф н4 это оч. существенно!
В итоге мы сильно запаздываем со входом! Либо пропускаем вход!
Отследил в виз. режиме.
Т.к. вход всякий раз происходит после открытия новой свечи!
Это и в "классических" версиях - так же!
И скажи пож, что там на графике за -
Blocking=false?
Пожалуй, я совсем уже "притупил"!


Эскизы прикрепленных изображений
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

26 страниц V « < 16 17 18 19 20 > » 
Ответить в эту темуОткрыть новую тему

 



- Текстовая версия Сейчас: 13.5.2025, 16:43