Помогите зачинающиму програмеру........ Пожалуста ...... - страница 4

 
CamanchR:
сам екран
Это не эксперт, а индикатор.
 

Ребята, прямо чуствую как умнею общаясь на форуме, помогите поумнеть ещё немножко.....

мне надо вызвать из експерта пользов индюк  XAOS PATTERNS EXPLORER, но там есть 4 линии и 2 вида сигнальных ромбиков. Мне нужны значения етих ромбиков но не в 0 варе а уже в законченых (чтобы они были уже сформированными я додумался брать их просто со смещением 1).

Вызываю так:       double fox_SELL=iCustom(NULL,0,"XAOS PATTER",7,0,1,6,1); 
                            double fox_BAY=iCustom(NULL,0,"XAOS PATTER",7,0,1,5,1);

 с первыми 3 параметрами нет проблем а вот- 7,0,1 - внешние для индюка указываю (их там 3 я 3 и указал), 6 - номер буфера значка сигнального, 1 смещение относительно 0-го Вара - я так читаю параметры........

но не фурычит!!!!!!!! у меня НУЛИ!!???   помогите получить таки данные, что я делаю не так? дам сам индюк может кто научит.....
 

Файлы:
 
Номера буферов начинаются с нуля, шестого буфера в индикаторе нет. Посмотрите на значения в Окне данных, очень удобно. И проверьте, правильно ли написано имя индикатора в iCustom, что на эту тему написано в журнале?
 
granit77:
Номера буферов начинаются с нуля, шестого буфера в индикаторе нет. Посмотрите на значения в Окне данных, очень удобно. И проверьте, правильно ли написано имя индикатора в iCustom, что на эту тему написано в журнале?


Номера буферов исправил, действительно (пропустил.....), с названием проверил всё правильно - точно такое название у меня показывает в разделе МетаТрейдера пользов индюки "XAOS PATTER" в журнале по етому поводу ничего нет... Я пока просто вывел строку в код для проверки данных:

Alert("ДОШЛИ СЮДА ПРОВЕРЯЕМ ", " ЗНАК селл= ",fox_SELL," ЗНАК бай= ",fox_BAY ); и по нулям

мне кажется что не правильно расписываю iCustom, но  опыта у меня маловато              HELLP))))))))))))  

 
VladislavVG:
Это не эксперт, а индикатор.


Владислав, спасибо что пишите, я выслал картинку чтобы показать что там в журнале написано, експерта самого визуально не видно, а индикаторы как раз все на екране. помогите правильно вызвать      double fox_SELL=iCustom(NULL,0,"XAOS PATTER",7,0,1,5,1); 
                                                                   double fox_BAY=iCustom(NULL,0,"XAOS PATTER",7,0,1,4,1);

 я вставил в код пока 

                                        Alert("ДОШЛИ СЮДА ПРОВЕРЯЕМ ", " ЗНАК селл= ",fox_SELL," ЗНАК бай= ",fox_BAY ); и по нулям 

 

жду помощи от всех кто разбирается и у кого есть время и желание помочь)))))))))))))) 

Файлы:
 

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

Есть формальная ошибка в типах внешних переменных индикатора. AlarmOn и SHOW_SIGNALS должны быть extern bool. Но должно работать и так.

 
granit77:

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

Есть формальная ошибка в типах внешних переменных индикатора. AlarmOn и SHOW_SIGNALS должны быть extern bool. Но должно работать и так.


Я пробывал вообще похжее, делал строку "комент" и пробывал смореть что там покажет мне - НУЛИ ; я вызывал переменные и сразу за ними вставлял "комент" и смотрел....  или я не правильно это делал?    Вот кусочек кода для наглядности:

double fox_SELL=iCustom(NULL,0,"XAOS_PATTER"15,0,1,4,1);
double fox_BAY=iCustom(NULL,0,"XAOS_PATTER",15,0,1,5,1);

total=OrdersTotal();
//Comment( LotsCounting() );
//=======================================================================
// Проверка средств
if(AccountFreeMargin()<(1000*Lots))
{
Alert("ПРОВЕРЯЕМ СРЕДСТВА ВСЁ ОК ", "МА = ", MA, " is coming!!!");
Print("У вас недостаточно денег. Free Margin = ", AccountFreeMargin());
return(0);
}

//============Открытие позиций =======================================
if ( NumberOfPositions(NULL, -1, Magic )<Orders ) { //если открытых позиций менее Orders
//====================================================================
// Проверка условий для совершения сделки бай
if (! NumberOfBarOpenLastPos(NULL, 0,OP_BUY, Magic) ==0) { //запрет неск. поз на одном баре

//Alert("ДОШЛИ СЮДА2 ", " XA1 CLOSE= ",XA1_CLOSE, " XA2 OPEN= ", XA2_OPEN, " XA3 HICH= ",XA3_HIGH, " XA4 LOW= ", XA4_LOW);
 Comment("ДОШЛИ СЮДА ПРОВЕРЯЕМ ", " ЗНАК селл= ",fox_SELL," ЗНАК бай= ",fox_BAY );

if ((Chinkou1>MA1 && Chinkou<MA ) || XA1_CLOSE<level2 )//покупаем
//(Ten1<=Kij1 && Ten>Kij && Ask>SpanA1 && Ask>SpanB1 && Open[1]<Close[1]) || (Chinkou1<=Close[11] && Chinkou>Close[10] && Ask>SpanA1 && Ask>SpanB1 && Open[1]<Close[1])
{ CloseSell(); Stamp(); SL=0;TP=0;
if(StopLoss>0) SL=Ask-Point*StopLoss;
if(TakeProfit>0) TP=Ask+Point*TakeProfit;
lots=LotsCounting();
ticket=WHCOrderSend(Symbol(),OP_BUY,lots,Ask,3,SL,TP,"Покупаем",Magic,0,Green);
 

 
CamanchR:


Я пробывал вообще похжее, делал строку "комент" и пробывал смореть что там покажет мне - НУЛИ ; я вызывал переменные и сразу за ними вставлял "комент" и смотрел....  или я не правильно это делал?    Вот кусочек кода для наглядности:

double fox_SELL=iCustom(NULL,0,"XAOS_PATTER"15,0,1,4,1);
double fox_BAY=iCustom(NULL,0,"XAOS_PATTER",15,0,1,5,1);

total=OrdersTotal();
//Comment( LotsCounting() );
//=======================================================================
// Проверка средств
if(AccountFreeMargin()<(1000*Lots))
{
Alert("ПРОВЕРЯЕМ СРЕДСТВА ВСЁ ОК ", "МА = ", MA, " is coming!!!");
Print("У вас недостаточно денег. Free Margin = ", AccountFreeMargin());
return(0);
}

//============Открытие позиций =======================================
if ( NumberOfPositions(NULL, -1, Magic )<Orders ) { //если открытых позиций менее Orders
//====================================================================
// Проверка условий для совершения сделки бай
if (! NumberOfBarOpenLastPos(NULL, 0,OP_BUY, Magic) ==0) { //запрет неск. поз на одном баре

//Alert("ДОШЛИ СЮДА2 ", " XA1 CLOSE= ",XA1_CLOSE, " XA2 OPEN= ", XA2_OPEN, " XA3 HICH= ",XA3_HIGH, " XA4 LOW= ", XA4_LOW);
 Comment("ДОШЛИ СЮДА ПРОВЕРЯЕМ ", " ЗНАК селл= ",fox_SELL," ЗНАК бай= ",fox_BAY );

if ((Chinkou1>MA1 && Chinkou<MA ) || XA1_CLOSE<level2 )//покупаем
//(Ten1<=Kij1 && Ten>Kij && Ask>SpanA1 && Ask>SpanB1 && Open[1]<Close[1]) || (Chinkou1<=Close[11] && Chinkou>Close[10] && Ask>SpanA1 && Ask>SpanB1 && Open[1]<Close[1])
{ CloseSell(); Stamp(); SL=0;TP=0;
if(StopLoss>0) SL=Ask-Point*StopLoss;
if(TakeProfit>0) TP=Ask+Point*TakeProfit;
lots=LotsCounting();
ticket=WHCOrderSend(Symbol(),OP_BUY,lots,Ask,3,SL,TP,"Покупаем",Magic,0,Green);
 


Ребята!!! Я справился с проблемой, переписал вычисления индюка в експерт, чуток переработал и оформил как функцию - работает и точно повторяет данные индюка...... Всем спасибо))))
 
CamanchR:
...Ребята!!! Я справился с проблемой, переписал вычисления индюка в експерт, чуток переработал и оформил как функцию - работает и точно повторяет данные индюка...... Всем спасибо))))
Сам молодец.
 

Подскажите пожалуйста блок удаления отложенника.....

Советник выставляет два отложенника в заданный период времени и при срабатываниии одного второй нужно удалить !!!! Как это сделать ??????

Помогите кто чем может ....................