Спрашивайте! - страница 164

 

Привет

Будет ли это работать? Замените Point на mypoint

функция init() :

myPoint = 0.0001;

if (Digits < 4) myPoint = 0.01;

 

Не мог бы кто-нибудь объяснить мне, что это делает?

Заранее спасибо.

// анализировать сейчас?

bool isAnalyseNow=false;

datetime timeNow = CurTime();

int intervalEval = Evaluate_Interval;

if (Evaluate_Interval == -1) intervalEval = Period();

if (!(intervalEval > 0 && timeNow < timeNextEval)) isAnalyseNow=true;

// анализируем график

if (isAnalyseNow)

{

timeNextEval = timeNow - (timeNow % (intervalEval*60)) + (intervalEval*60);

 

Проблемы с использованием i

Гуру Кодера, я пытаюсь вызвать индикатор, используя вызов iCustom из экспериментального советника. Однако, когда я пытаюсь его включить, он долго компилируется, а когда я нажимаю на Open Chart, все, что я получаю - это серый экран с черными горизонтальными линиями.

 

Я прилагаю советника для изучения.

Я прилагаю советника для изучения. Ниже приведен кусок кода, который я должен закомментировать, потому что у меня с ним проблемы. Я также прилагаю индикатор Bollinger Squeeze V8.

double upB = iCustom(Symbol(),0, "Bollinger Squeeze v8", 1, 14, 50, 13, 0,1);

double loB = iCustom(Symbol(),0, "Bollinger Squeeze v8", 1, 14, 50, 13, 1,1);

double upB2 = iCustom(Symbol(),0, "Bollinger Squeeze v8", 1, 14, 50, 13, 2,1);

double loB2 = iCustom(Symbol(),0, "Bollinger Squeeze v8", 1, 14, 50, 13, 3,1);

double mm = iCustom(Symbol(),0, "Bollinger Squeeze v8", 1, 14, 50, 13, 4,1);

double cciline = iCustom(Symbol(),0, "Bollinger Squeeze v8", 1, 14, 50, 13, 5,1);

 

iCustom при использовании массива

Ниже, при использовании индикатора iDemarker, все компилируется и отображается нормально с правильным wingding. Но когда я пытаюсь включить iCustom индикатора i-Trend, он компилируется нормально, но не отображает правильный ответ. Если таймфрейм 5-минутный, а буфер i-Trend 0 (Up) выше 0.00, iTrend отображает, что он ниже 0.00 wingding(?).

Наверное, я неправильно настроил массив для оператора iCustom? Можете ли вы диагностировать эту проблему и подсказать правильный способ использования индикатора iCustom в массиве(?)?

Буду очень признателен за помощь!!!

Дэйв

int period[]={1,5,15,30,60,240,1440,10080,43200};

//////////////////////////////DEMARKER//////////////////////////////

for(x=0;x<9;x++)

{

if(iDeMarker(Symbol(),period[x],demark_period,0)>0.5)

ObjectSetText("signal"+x+"6",CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);

else

ObjectSetText("signal"+x+"6",CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);

}

//////////////////////////////i-Trend//////////////////////////////

for(x=0;x<9;x++)

{

if(iCustom(Symbol(),period[x],"i-Trend",0,0)>0)

ObjectSetText("signal"+x+"7",CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);

else

ObjectSetText("signal"+x+"7",CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);

}

return(0);
 

Вопрос по советнику

Здравствуйте, простите, что я новичок в советниках, индикаторах и скриптах. Я искал простой советник, который будет покупать или продавать в зависимости от потребностей.

То есть, он будет покупать/продавать, если указанная вами пара повысится/понизится на X количество пунктов. И он также позволит вам установить стоп-лосс и заданный трейлинг-стоп, все до того, как будет заключена сделка.

С таким количеством сложных индикаторов, я не могу найти это.

Помогите форекс-брату, а? lol

***Я забыл упомянуть, что советник запускается/останавливается тогда, когда вы этого хотите.***

Итак, если EURUSD находится на уровне 1.2768. Я включаю советника, и он "чувствует" текущую цену 1.2768. Я предварительно настроил советника на покупку, если цена поднимется на 30 пунктов (неважно, на каком уровне цена находится в данный момент. 1.2768 - это просто пример). Затем после покупки он установит заданный S/L и трейлинг-стоп.

 

Помогите с отчетом, пожалуйста!

Как настроить отчет для получения Close[0]-Open[0] для каждого периода с помощью приведенного ниже отчета? Запутался!

int period[]={1,5,15,30,60,240,1440,10080,43200};[/PHP]

[PHP]for(x=0;x<9;x++)

{

??????

}

return(0);
 

Что-то вроде этого:

int period[]={1,5,15,30,60,240,1440,10080,43200};

double diff[9];

for(int x=0; x<9; x++)

diff[x] = iClose(Symbol(),period[x],0)-iOpen(Symbol(),period[x],0);

[/php]regards

mladen

1Dave7:
How do I set up a statement to get the Close[0]-Open[0] for each period using the below statement?? Confusing!
int period[]={1,5,15,30,60,240,1440,10080,43200};

[php]for(x=0;x<9;x++)

{

??????

}

return(0);
 
mladen:
что-то вроде этого :
int period[]={1,5,15,30,60,240,1440,10080,43200};

double diff[9];

for(int x=0; x<9; x++)

diff[x] = iclose(symbol(),period[x],0)-iopen(symbol(),period[x],0);

с уважением

mladen

Большое спасибо - это будет работать!!!! Я очень ценю вашу щедрую помощь!!!! :-)

 

привет всем.

Я начинающий программист и учусь шаг за шагом.

Я пытаюсь сделать следующий шаг - создать Ea из простого индикатора.

что я хочу сделать, это

когда синяя линия идет вверх, я хочу сделать 1 покупку лотом 0.1,

когда синяя линия заканчивается и переходит в желтую, я хочу закрыть покупку и начать продажу лотом 0.1.

когда желтая линия переходит в синюю, я хочу закрыть продажу и начать покупку.

Если возможно, не мог бы кто-нибудь взглянуть на код ниже и помочь мне в том, куда добавить код Ea. У меня проблемы с операторами If ниже. Я знаю, что они делают, но не знаю, как добавить их в Ea.

спасибо.

#property indicator_separate_window

#include

#property indicator_buffers 2

#property indicator_color1 Blue

#property indicator_color2 yellow

#property indicator_level1 0.00

#property indicator_levelcolor Black

extern int a=9;

extern int b=9;

extern int c=5;

double ev=EMPTY_VALUE;

double Up[];

double Dn[];

double newindi[];

double Trend[];

int init()

{

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_LINE,0,2);

SetIndexBuffer(0,Up);

SetIndexLabel(0, "Up");

SetIndexStyle(1,DRAW_LINE,0,2);

SetIndexBuffer(1,Dn);

SetIndexLabel(1, "Dn");

ArraySetAsSeries(newindi,true);

ArraySetAsSeries(Trend,true);

return(0);

}

int deinit()

{

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1); //---- проверка на возможные ошибки

if(counted_bars>0) counted_bars--; //---- последний подсчитанный бар будет пересчитан

int limit = Bars-counted_bars;

for (int i=limit;i>=0;i--)

{

ArrayResize(newindi,Bars);

ArrayResize(Trend,Bars);

Trend = Trend;

newindi = iCustom(NULL,0, "newindi",a,b,c,0,i);

if (newindi > newindi)

{Trend = 1;}

else

if (newindi < newindi)

{Trend = -1;}

if (Trend > 0)

{

Up = newindi;

if (Trend < 0)

{

Up = newindi;

}

Dn = ev;

}

else

if (Trend < 0)

{

Dn = newindi;

if (Trend > 0)

{

Dn = newindi;

}

Up = ev;

}

}

}

//+------------------------------------------------------------------+