Написал советник, есть проблема. - страница 2

 
Noterday >>:
Я и 100 уже ставил, всё равно ошибка 130. А какой буфер зигзига мне взять то нужно? ZigzagBuffer? Или мне нужно использовать HighMapBuffer и LowMapBuffer? Блин. Код то простенький должен быть, а что-то никто так сказать толком ничего и не может.....

если сравниваешь с high то наверно HighMapBuffer

 

Ладно. Спасибо за ответы) Еще раз опишу то что мне нужно, может кто еще что скажет...

Как сделать так: мне нужно чтобы определенное действие происходило когда ZZ зафиксирует свою точку на Ihigh или Ilow бара, и не важно перерисует ли он её потом или нет. Как реализовать это? Я так понимаю, сама линия ZZ содержится в буфере ZigzagBuffer? Или мне нужно использовать в ZZ HighMapBuffer и LowMapBuffer?


 
Noterday >>:

Ну что? никто помочь не может?) Скажу конкретнее, нужно сделать так: если зигзаг прочертил линию к HIGH или к LOW то мне нужно открыть позицию (если к HIGH то sell, а если к LOW то buy), причем неважно перерисуется ли потом зигзаг или нет. Вот пример кода, поправьте, если что-то не так делаю потому что в тестере постоянно появляются ошибки ordersend error 130:



Я бы так сделал:

int counted_bars=IndicatorCounted();

int i=Bars=counted_bars-1;

while(i>=0){

double ZZ_1 = iCustom(NULL,0,"ZigZag",0,0,1);

  if (ZZ_1 == High[i+1]){
  OrderSend(Symbol(),OP_SELL,Lot(),Bid,10,ZZ_1+(10*Point),Bid-(10*Point),"SELL",0,0,Red);

}
  if (ZZ_1 ==Low[i+1] ){
  OrderSend(Symbol(),OP_BUY,Lot(),Ask,10,ZZ_1-(10*Point),Ask+(10*Point),"BUY",0,0,Blue);

}

 
Noterday >>:

Ну что? никто помочь не может?) Скажу конкретнее, нужно сделать так: если зигзаг прочертил линию к HIGH или к LOW то мне нужно открыть позицию (если к HIGH то sell, а если к LOW то buy), причем неважно перерисуется ли потом зигзаг или нет. Вот пример кода, поправьте, если что-то не так делаю потому что в тестере постоянно появляются ошибки ordersend error 130:



Да. Период индикатора укажи.
 
Noterday >>:

Ну что? никто помочь не может?) Скажу конкретнее, нужно сделать так: если зигзаг прочертил линию к HIGH или к LOW то мне нужно открыть позицию (если к HIGH то sell, а если к LOW то buy), причем неважно перерисуется ли потом зигзаг или нет. Вот пример кода, поправьте, если что-то не так делаю потому что в тестере постоянно появляются ошибки ordersend error 130:


Поправил:


int counted_bars=IndicatorCounted();

int i=Bars=counted_bars-1;

while(i>=0){

double ZZ_1 = iCustom(NULL,0,"ZigZag",0,0,i+1); // если нужен предыдущий бар

if (ZZ_1 == High[i+1]){
OrderSend(Symbol(),OP_SELL,Lot(),Bid,10,ZZ_1+(10*Point),Bid-(10*Point),"SELL",0,0,Red);

}
if (ZZ_1 ==Low[i+1] ){
OrderSend(Symbol(),OP_BUY,Lot(),Ask,10,ZZ_1-(10*Point),Ask+(10*Point),"BUY",0,0,Blue);

}
 
Ничего не помогло :( Кругом одни ordersend error 130. Хотя стоп пробовал ставить аж 200 пунктов :)
 

Даже так не помогает...что-то мне всё это не нравится. Ладно, буду разбираться. ВСЕМ СПАСИБО!!!! :)


 

а может он у вас ругается на Magic Number=0

 

Никогда раньше не ругался... помоему это необязательный параметр, тем более что ошибка 130 говорит о неправильном стопе...


Я вот тут что подумал...может у меня что-то с котировками не так и он цены нормально получить не может? Почему я так подумал? Потому что я минутный график не могу пролистать дальше чем 1 сентября 2009. Хотя в настройках стоит разрешить 2000000 баров.


А может ктонибудь написать такой советник побыстрому:? чтобы открывались сделки - я у себя проверить хочу.

 

а по поводу ЗигЗага попробуйте запустить следующий код в тестере поставив скорость на минимум и бросив индикатор на график и с помошью F12 смотрите что происходит с цифрами

в верхнем левом углу надеюсь вы поймете мою мысль как это использовать

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
double UP, DN;
int start()
  {
//----
double Buf_0 = iCustom(NULL, 0, "ZigZag", 0, 0);
double Buf_UP = iCustom(NULL, 0, "ZigZag", 1, 0);
double Buf_DN = iCustom(NULL, 0, "ZigZag", 2, 0);
if(Buf_UP != 0) UP = Buf_UP; // последние значение вершинки
if(Buf_DN != 0) DN = Buf_DN; // последние значение донышка
Comment("Буфер №0: ", Buf_0, "\n", "Буфер №1: ", UP, "\n", "Буфер №2: ", DN);
//----
   return(0);
  }
//+------------------------------------------------------------------+
Причина обращения: