Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 414

 
bergkamp.:

после выхода из старт он продолжит торговлю после смены сигнала ?

при изменении означенного условия продолжит.

bergkamp.:

и чем отличается действия ? это и это

(не вдаваясь в подробности) ни чем.

 
bergkamp.:

после выхода из старт он продолжит торговлю после смены сигнала ?

и чем отличается действия ? это и это


Во втором случае функции start() возвращается ноль, в первом ничего не возвращается.
 
khorosh:

Во втором случае функции start() возвращается ноль, в первом ничего не возвращается.

ой ой. ааагромнгое зхаблуждение, приводящее к поиску ошибок там где их нет.

функция возвращает некое неопределенное число, вполне возможно что вернет 0, хотя не факт.

поэтму не путайте человека. иначе напорется и будет не рад.

 
bergkamp.:

после выхода из старт он продолжит торговлю после смены сигнала ?

и чем отличается действия ? это и это

Ничем не отличается при системном вызове (по тику). Это важно для самостоятельного вызова функции start(). И то, если важно возвращаемое значение.
 
sergeev:

ой ой. ааагромнгое зхаблуждение, приводящее к поиску ошибок там где их нет.

функция возвращает некое неопределенное число, вполне возможно что вернет 0, хотя не факт.

поэтму не путайте человека. иначе напорется и будет не рад.

Возможно, никогда не использовал значение функции "старт". Так считал потому, что обычно то что в скобках у return() - это возвращаемое значение для функции, а если значения нет, значит ничего. Но "старт" не обычная функция, а специальная, возможно поэтому могут быть какие-то отклонения.
 
khorosh:
то что в скобках у return() - это возвращаемое значение для функции, а если значения нет, значит ничего.

нет и еще раз нет!

не учите новичков глупостям.


int F1() { return; }

int F2() { }

int a=F1(), b=F2();

Print(a);

Print(b);


-----

Слава Богу, что добавили режим strict

 
  1. Здравствуйте, подскажите как в индикаторе корреляции, отображающем в главном окне 2 валютные пары в линиях от определенной заданной даты времени, реализовать условие, чтобы вторая коррелируемая пара и дальше продолжала отображаться на графике в реальном времени, а не только до момента прикрепления индикатора к графику.Например, в главном окне евродоллара чтобы продолжал отображаться фунтодоллар. Стандартное построение индикатора (по барам)не подходит из за постоянной перерисовки.
  2. #property indicator_chart_window
    #property indicator_buffers 2


    extern datetime startDate = 1389107200;
    extern int period = 1;
    extern int priceType = MODE_CLOSE;
    extern int shift = 0;
    extern int mode = MODE_EMA;
    extern string addSymbol = "GBPUSD";
    extern color curSymbolColor = Red;
    extern color addSymbolColor = Aqua;

    int drawBars = 0;
    int addBars = 100;
    double a[], b[], c[];

    // ----
    int init(){
    IndicatorBuffers(3);
    SetIndexBuffer(0,a);
    SetIndexBuffer(1,b);
    SetIndexBuffer(2,c);
    SetIndexStyle(0,DRAW_LINE,EMPTY,EMPTY,curSymbolColor);
    SetIndexStyle(1,DRAW_LINE,EMPTY,EMPTY,addSymbolColor);
    drawBars = iBarShift(NULL,0,startDate);
    if (iClose(addSymbol,0,0) == 0) addSymbol = "";
    drawBars += period + addBars;
    }

    // ----
    int start(){
    int bars = 0, i = 0, si = 0, pos = 0;
    static double delta = 0;

    bars = IndicatorCounted();
    if (bars < 0) return(-1);
    i = Bars - bars - 1;

    if (i > drawBars) i = drawBars;
    si = i;

    while (i > 0){
    if (i < drawBars - period - addBars){
    a[i] = iMA(NULL,0,period,shift,mode,priceType,i);
    }
    pos = iBarShift(addSymbol,0,Time[i]);
    c[i] = price(addSymbol,0,priceType,pos);
    i--;
    }
    si -= period + addBars + 1;
    i = si;

    while(i > 0){
    b[i] = iMAOnArray(c,0,period,shift,mode,i);
    if (i == si){
    delta = b[i] - a[i];
    }
    b[i] -= delta;
    i--;
    }
    }

    //----
    double price(string symb,int tf, int type, int i){
    double p = 0;
    if (symb=="0") symb = Symbol();

    switch(type){
    case MODE_OPEN :
    p = iOpen(symb,tf,i); break;
    case MODE_LOW :
    p = iLow(symb,tf,i); break;
    case MODE_HIGH :
    p = iHigh(symb,tf,i); break;
    case MODE_CLOSE :
    p = iClose(symb,tf,i); break;
    }
    return(p);
    }
 
Возможен просто вариант автообновления индикатора, например, через каждые 2-3 минуты.
 

Помогите пожалуйста, не знаю в какую тему писать.

Имеется советник, требуется добавить в него возможность умножать последующий выигранный лот на 2. пример:

1. Риск

2. Профит

3. Стоплос

4. СтартТайм

5. Размер лота

6. Если лот закрыт положительно то:

7. Кол-во последующих увеличенных лотов (1, 2, 3 или 4)

7.1. Умножаемый выигранный лот (каждый 2, на Х)

7.2. Умножаемый выигранный лот (каждый 3, на Х)

7.3. Умножаемый выигранный лот (каждый 4, на Х)

7.4. Умножаемый выигранный лот (каждый 5, на Х)

Х - изменяемое значение (Если Х=0 то ло не умножается)

Пример 1:

Если ставка 0.03 = сыграла в +, то следующая ставка 0.06

Если ставка 0.06 = сыграла в +, то следующая ставка 0.09

Если ставка 0.09 = не сыграла в +, то следующая ставка стандарт 0.03

Пример 2:

Если ставка 0.03 = сыграла в +, то следующая ставка 0.06

Если ставка 0.06 = не сыграла в +, то следующая ставка 0.03

Если ставка 0.03 = сыграла в +, то следующая ставка стандарт 0.06

и т.д.

Вот сам советник. Буду очень признательный в Вашей помощи.

Файлы:
 
Здравствуйте!
А в функциях "Kim" есть такая функция, которая рассчитывает количество прибыли от последнего открытого ордера?

Я не нашел, вот сейчас "ломаю голову" над самопальной функцией расчета кол - ва прибыли последнего открытого ордера.
Причина обращения: