Ответ
 
Опции темы
Старый 26.09.2013, 11:36   #1661 (permalink)
Новичок форума
 
Аватар для Leonup
 
Регистрация: 23.12.2011
Сообщений: 56
Репутация: 5
Leonup
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
Поинты: 58
Сообщение от hoz Посмотреть сообщение
А легко. Буду писать чтоб проще так:

PHP код:
IsCrossed()
{
    
int cnt// Создаём счётчик
   
    // Тело функции
    
for (i=Bars-1i>=0i--)
    {
        if (
машки пересеклись)
        {
            
// Можно выполнить какое-то условие...
            
cnt++; // А тут инкремент к счётчику, т.е. значение cnt
                       //.. увеличится на 1
         

    }

Тут получается что будет проход по всем барам в истории и прибавлять к счётчику 1, если на каком-то баре есть пересечение.
Сообщение от qqmber Посмотреть сообщение
Набросал скриптец, который рисует палки в местах выполнения твоего условия. Так надо?

Скрытый текст

Код:
int tx(int i0, int j, int k, int k_price) {
double jma0,kma0,jma1,kma1;

   for(int i=i0; i>0; i--) {
      jma0=iMA(NULL,0,j,0,0,0,i);
      kma0=iMA(NULL,0,k,0,0,k_price,i);
      jma1=iMA(NULL,0,j,0,0,0,i+1);
      kma1=iMA(NULL,0,k,0,0,k_price,i+1);
      if(jma0-kma0 > 0 && jma1-kma1 <=0) return(i);
   }
   return(-1);     
}

int start() {
int t5x11,t5x21,t5x31;

   for(int start=WindowFirstVisibleBar(); start>0; start=t5x11-1) {
      t5x31=tx(start,5,31,PRICE_LOW); 
      t5x21=tx(t5x31,5,21,PRICE_CLOSE);
      t5x11=tx(t5x21,5,11,PRICE_HIGH);
      if(t5x11>0) ObjectCreate(""+t5x11,0,0,Time[t5x11],0,0,0);      
   }
}
[свернуть]

Огромное Вам спасибо! Применю.
Leonup вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 26.09.2013, 14:04   #1662 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от hoz Посмотреть сообщение
Понял то я понял, но решение кривое. У меня нет слов...
А как надо было?
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 26.09.2013, 16:27   #1663 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Есть заголовочный файл hoz_Base@Include.mqh. Он использует различные библиотеки, в том числе и hoz_LoggingToAnywhere@Library.mq4.
Вот так импортирую функцию библиотеки hoz_LoggingToAnywhere@Library.mq4:

PHP код:
#import "hoz_LoggingToAnywhere@Library.ex4"
    
void fPrint (stringfs_Text);
#import
#import "hoz_HandlingWithErrorS.ex4"
    
string fErrorToString(int fi_Error);
    
string fErrorDescription (int fi_Error);
#import 

При компиляции самой библиотеки hoz_LoggingToAnywhere@Library.mq4 компилятор ругается:

PHP код:
'StringConcatenate' incompatible types    D:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\include\hoz_Base@Include.mqh (7512

Открываю строку ошибки:

PHP код:
fPrint (StringConcatenate ("fInitBase() => "fErrorToString (bi_Err))); 

Чего он упёрся то? Что ему нужно? Тип и параметры библиотечной функции я передал канкретно. Чего она с типами то не нравится?

Сама функция с которой непонятки вот:

PHP код:
void fPrint (stringfs_Text)          // Возвращаемая пустая строка
{
    if (
StringLen (fs_Text) > 0)
    {
        if (
bs_LibName != ""fs_Text StringConcatenate (bs_LibName" => "fs_Text);

        if (
bb_PrintPermission)
            Print (
fs_Text);

        if (
bb_CommentPermission)
            
Comment (fs_Text);
    }
    
//---- Очищаем переменную
    
fs_Text "";
//---- 
    
return;

// ================================================== ================ //

В общем, вот так если сделать, то всё работает нормально:

PHP код:
string m StringConcatenate ("fInitBase() => "fErrorToString (bi_Err));
   
fPrint (m); 

Но так мне не нравится. Растягивание каждой подобной операции в коде. Как этого избежать?

Последний раз редактировалось hoz; 26.09.2013 в 16:49.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 26.09.2013, 16:39   #1664 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ansol Посмотреть сообщение
А как надо было?
Как-нить логичнее
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 26.09.2013, 16:44   #1665 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от hoz Посмотреть сообщение
Как-нить логичнее
Ну-ну! Я бы послушал, так что продолжайте плз!
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 26.09.2013, 16:48   #1666 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от hoz Посмотреть сообщение
Есть заголовочный файл hoz_Base@Include.mqh.
Покажи 70-80 строки этого файла.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 26.09.2013, 17:02   #1667 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от qqmber Посмотреть сообщение
Покажи 70-80 строки этого файла.
Так компилируется щяс, но мне не нравится такой вариант:

PHP код:
void fInitBase()
{
//   fInitTrade();
   
if (bd_SymPoint == 0.0)
       {
bd_SymPoint fGet_Point(Symbol());}
   
fGet_MarketInfo (Symbol(), -1);
   
bi_LotPrecision fLotPrecision ();
   
bd_MINLOT MarketInfo(Symbol(), MODE_MINLOT);
   
bd_MAXLOT MarketInfo(Symbol(), MODE_MAXLOT);
   
bd_LOTSTEP MarketInfo(Symbol(), MODE_LOTSTEP);
   
bb_RealTrade = (!IsTesting() && !IsOptimization());
   
bb_VirtualTrade = (IsOptimization() || (IsTesting() && !IsVisualMode()));
   
bi_Err GetLastError();
   
//---- Контролируем возможные ошибки
   
string m StringConcatenate ("fInitBase() => "fErrorToString (bi_Err));
   
fPrint (m); 

А было когда писал так:

PHP код:
void fInitBase()
{
//   fInitTrade();
   
if (bd_SymPoint == 0.0)
       {
bd_SymPoint fGet_Point(Symbol());}
   
fGet_MarketInfo (Symbol(), -1);
   
bi_LotPrecision fLotPrecision ();
   
bd_MINLOT MarketInfo(Symbol(), MODE_MINLOT);
   
bd_MAXLOT MarketInfo(Symbol(), MODE_MAXLOT);
   
bd_LOTSTEP MarketInfo(Symbol(), MODE_LOTSTEP);
   
bb_RealTrade = (!IsTesting() && !IsOptimization());
   
bb_VirtualTrade = (IsOptimization() || (IsTesting() && !IsVisualMode()));
   
bi_Err GetLastError();
   
//---- Контролируем возможные ошибки
   
fPrint (StringConcatenate ("fInitBase() => "fErrorToString (bi_Err))); 
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 26.09.2013, 17:03   #1668 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ansol Посмотреть сообщение
Ну-ну! Я бы послушал, так что продолжайте плз!

Решу наболевшие вопросы, и продолжим..
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ansol (26.09.2013)
Старый 26.09.2013, 17:16   #1669 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от hoz Посмотреть сообщение
Так компилируется щяс, но мне не нравится такой вариант:
Понял.
Значение, возвращаемое функцией, нельзя передавать ссылкой, только значением. Попробуй string& -> string в fPrint() или терпи временную переменную.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 26.09.2013, 17:24   #1670 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Я тока что это понял. Придётся данную функцию по ходу в заголовочном файла вписать. Иначе никак. Документация говорит, что так.
Опять таки, ущербность языка. Казалось бы, функция относится к какой-то библиотеке, а её туда поместить нельзя
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 26.09.2013, 21:38   #1671 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ansol Посмотреть сообщение
Ну-ну! Я бы послушал, так что продолжайте плз!

Если желание не отпало, то можно продолжить. Только приготовьтесь столкнуться с граблями сразу. Вот что я спрашивал, нада сразу догнать как обойти.
Я понимаю, что можно вместо библиотек всё писать в инклюдах, но как-то не хочется так. Хочу отдельными компилируемыми файлами. А в данном случае нельзя передавать параметры по ссылке. В общем, вот такая вот хрень. Писал я библиотеки почти неделю, и щяс вот вообще головняк вышел, озадачило меня. Получается, что всё то, что я разгруппировал по отдельным библиотеками, придётся либо паковать в одну, либо в заголовочный файл всё помещать. А это не особо удобно.
Может ещё варианты есть?
А дальше, уже появится вариант с наиболее адекватной реализацией списка инструментов
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 27.09.2013, 04:45   #1672 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от hoz Посмотреть сообщение
Если желание не отпало, то можно продолжить. Только приготовьтесь столкнуться с граблями сразу. Вот что я спрашивал, нада сразу догнать как обойти.
Я понимаю, что можно вместо библиотек всё писать в инклюдах, но как-то не хочется так. Хочу отдельными компилируемыми файлами. А в данном случае нельзя передавать параметры по ссылке. В общем, вот такая вот хрень. Писал я библиотеки почти неделю, и щяс вот вообще головняк вышел, озадачило меня. Получается, что всё то, что я разгруппировал по отдельным библиотеками, придётся либо паковать в одну, либо в заголовочный файл всё помещать. А это не особо удобно.
Может ещё варианты есть?
А дальше, уже появится вариант с наиболее адекватной реализацией списка инструментов
Так, давай помедленнее.
Во-первых, не вижу причин огорчаться, ну не передает ссылку, передавай значение, тебе что за печаль? Убери & и будет все работать. Ты же не собираешься внутри принта массивы модифицировать, не?
Во-вторых, нормальная ситуация это когда код в библиотеке а описания его в заголовочном файле. Если так и сделано, ОК, но ты опять тут про передачу по ссылке говоришь. Какая связь?
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 27.09.2013, 07:50   #1673 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от qqmber Посмотреть сообщение
Так, давай помедленнее.
Во-первых, не вижу причин огорчаться, ну не передает ссылку, передавай значение, тебе что за печаль? Убери & и будет все работать. Ты же не собираешься внутри принта массивы модифицировать, не?
Там задумка другая. Если в вызывающей функции есть переменная и она при каком-то условии принимает некоторое значение, то дальше по коду, если она вызывается, то у неё будет другое значение. А в другом условие, например, не нужно "тянуть" то что было принято пару шагов назад. Вот типа так:

PHP код:
void Function()
{
    
string fName "строковое значение";

    if (
некое условие1)
    {
         
fName fName "строковое значение, которое пришло с условием";
         
fPrint (StringConcatenate ("fInitBase() => ",  fName));
    }
    
    if (
некое условие2)
    {
         
fName fName "другое условие, (предыдущее нам уже не нужно)";
         
fPrint (StringConcatenate ("fInitBase() => ",  fName));
     }


Ну вот грубо говоря так. Можно, конечно, внутри вызывающей функции что-то делать, но задумка было не явно.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 27.09.2013, 07:59   #1674 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от qqmber Посмотреть сообщение
Во-первых, не вижу причин огорчаться, ну не передает ссылку, передавай значение, тебе что за печаль?

Значение то передать можно, но если необходимо именно целый массив? Как тогда? Постоянно дополнительные массивы подключать в них загонять всё что получилось и потом передавать?

Сообщение от qqmber Посмотреть сообщение
Во-вторых, нормальная ситуация это когда код в библиотеке а описания его в заголовочном файле. Если так и сделано, ОК, но ты опять тут про передачу по ссылке говоришь. Какая связь?

Сделано именно так. А про передачу по ссылке говоря, т.к. импортировать функции, у которых параметром выступает массив передающий значение по ссылке, из библиотек нельзя. Вот в чём суть. Тогда получается, что такие функции в библиотеках держать нельзя, а работать они исправно будут только, если их "держать" в самих же заголовочных файлах. Вот это хреново. Я понятно излагаюсь?
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 27.09.2013, 10:33   #1675 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от hoz Посмотреть сообщение
Значение то передать можно, но если необходимо именно целый массив? Как тогда? Постоянно дополнительные массивы подключать в них загонять всё что получилось и потом передавать?

Сделано именно так. А про передачу по ссылке говоря, т.к. импортировать функции, у которых параметром выступает массив передающий значение по ссылке, из библиотек нельзя. Вот в чём суть. Тогда получается, что такие функции в библиотеках держать нельзя, а работать они исправно будут только, если их "держать" в самих же заголовочных файлах. Вот это хреново. Я понятно излагаюсь?
Не вполне понятно, но это я туплю, видимо.
Вот чего нельзя сделать, это отдать в библиотечную функцию строку или массив ссылкой, чтобы внутри функции строку эту изменить. Можно отдать строку значением, как и делается в большинстве случаев, с библиотеками или без. В частности, всем вариантам Print-a можно и нужно отдавать строки значением, а не ссылкой, и пусть он там свою копию строки принтует.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 27.09.2013, 11:00   #1676 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от hoz Посмотреть сообщение
Там задумка другая. Если в вызывающей функции есть переменная и она при каком-то условии принимает некоторое значение, то дальше по коду, если она вызывается, то у неё будет другое значение. А в другом условие, например, не нужно "тянуть" то что было принято пару шагов назад. Вот типа так:

PHP код:
void Function()
{
    
string fName "строковое значение";

    if (
некое условие1)
    {
         
fName fName "строковое значение, которое пришло с условием";
         
fPrint (StringConcatenate ("fInitBase() => ",  fName));
    }
    
    if (
некое условие2)
    {
         
fName fName "другое условие, (предыдущее нам уже не нужно)";
         
fPrint (StringConcatenate ("fInitBase() => ",  fName));
     }


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

Тут я сам не верно изложил мысль. Имелось в виду так:

PHP код:
void Function()
{
    
string fName "строковое значение";

    if (
некое условие1)
    {
         
fName fName "строковое значение, которое пришло с условием";
         
fPrint (StringConcatenate ("fInitBase() => ",  fName));
    }
    
    if (
некое условие2)
    {
         
fName fName "другое условие, (предыдущее нам уже не нужно)";
         
fPrint (StringConcatenate ("fInitBase() => ",  fName));
     }
    
fPrint (StringConcatenate ("fInitBase() => ",  fName/*что-то ещё*/));

В зависимости от условия fName принимает значение какое-то. Потом в любом случает отработает функция fPrint() и там переменную fName если не обнулить, то она будет уже иметь какое-то значение. А хорошо бы, чтоб была возможность обнулять, т.е. с неё же возвращать пустое значение!

Последний раз редактировалось Юлия; 27.09.2013 в 12:26.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 27.09.2013, 11:09   #1677 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от qqmber Посмотреть сообщение
Не вполне понятно, но это я туплю, видимо.
Вот чего нельзя сделать, это отдать в библиотечную функцию строку или массив ссылкой, чтобы внутри функции строку эту изменить. Можно отдать строку значением, как и делается в большинстве случаев, с библиотеками или без. В частности, всем вариантам Print-a можно и нужно отдавать строки значением, а не ссылкой, и пусть он там свою копию строки принтует.

Ну давай на примере. Есть заголовочный файл Base.mqh
Есть библиотека Base.mq4(которая есс-но компилируется в Base.ex4)

В библиотеке есть функция:
PHP код:
void InitializeArray_STR (stringfsa_Array[], string fs_Value "")
{
    for (
int li_int 0li_int ArraySize (fsa_Array); li_int++)
    {
        
fsa_Array[li_int] = fs_Value;
    }


Массив fsa_Array[] инициализируется заданным значением и возвращается по ссылке. Сами функции в mql4 возвращать могут только вещественные и булевые значения. Массивы нельзя. Для этого то тут и есть необходимость передать по ссылке массив fsa_Array[].
Если так нельзя, а так нельзя, то как это обойти?
Создать пачку временных массивов в заголовочном файле и полученное значение в функции передавать в те временные массивы? Другого варианта типа нет?

ВОПРОС СНИМАЮ. НЕЛЬЗЯ ПЕРЕДАВАТЬ ПО ССЫЛКЕ ЭЛЕМЕНТЫ МАССИВОВ, А МАССИВЫ МОЖНО.

Последний раз редактировалось hoz; 27.09.2013 в 11:57.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.09.2013, 15:48   #1678 (permalink)
gzh
Интересующийся
 
Аватар для gzh
 
Регистрация: 11.12.2012
Сообщений: 47
Репутация: 2
gzh
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Поинты: 64
Господа программисты, помогите пожалуйста с кодом, никак не получается. Я новичок в программировании, только учусь. Хочу написать простой советник по фракталам: появился нижний фрактал - Buy, появился верхний фрактал - Sell.
Подскажите, что не правильно, как правильно. Буду благодарен!!

for (int i=0; i<OrdersTotal(); i++) {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if (OrderType()==1 && Close[2] < Close[3] && Close[1] > Close[2]) OrderClose(OrderTicket(),OrderLots(),Ask,0);

if (OrderType()==0 && Close[2] > Close[3] && Close[1] < Close[2]) OrderClose(OrderTicket(),OrderLots(),Bid,0); }


if (OrdersTotal()==0) {

if (Close[2] < Close[3] && Close[1] > Close[2]) OrderSend(Symbol(),0,lot,Ask,0,0,0);

if (Close[2] > Close[3] && Close[1] < Close[2]) OrderSend(Symbol(),1,lot,Bid,0,0,0); }
gzh вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.09.2013, 15:51   #1679 (permalink)
gzh
Интересующийся
 
Аватар для gzh
 
Регистрация: 11.12.2012
Сообщений: 47
Репутация: 2
gzh
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Поинты: 64
Господа программисты, помогите пожалуйста с кодом, никак не получается. Я новичок в программировании, только учусь. Хочу написать простой советник по фракталам: появился нижний фрактал - Buy, появился верхний фрактал - Sell.
Подскажите, что не правильно, как правильно. Буду благодарен!!!

for (int i=0; i<OrdersTotal(); i++) {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if (OrderType()==1 && Close[2] < Close[3] && Close[1] > Close[2]) OrderClose(OrderTicket(),OrderLots(),Ask,0);

if (OrderType()==0 && Close[2] > Close[3] && Close[1] < Close[2]) OrderClose(OrderTicket(),OrderLots(),Bid,0); }


if (OrdersTotal()==0) {

if (Close[2] < Close[3] && Close[1] > Close[2]) OrderSend(Symbol(),0,lot,Ask,0,0,0);

if (Close[2] > Close[3] && Close[1] < Close[2]) OrderSend(Symbol(),1,lot,Bid,0,0,0); }
gzh вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.09.2013, 15:55   #1680 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Фрактал вычисляется так:
PHP код:
double iFractalsstring symbolint timeframeint modeint shift
Расчет индикатора Fractals
А вы тут какую-то свечную комбинацию высматриваете
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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