Вопросы от Скриптера. - страница 3

 
Scripter:

просто мне кажется код написан не по совсем правильно и наверное можно было-бы его упростить. А как не знаю.


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

 Из-за таких как Вы (общение по чисто выделенной линии - читай ветке), действительно, интересные темы, заслуживающие к себе 

  внимания, отодвигаются  на х-й знает какие страницы и их приходится людям искать. 

 Обращайтесь со своей х-ей в соответствующие ветки и не еб-те мозг в выделенной долгоиграющей ветке.

 Пишите по существу в другой, специально организованной для этого... И люди Вам ответят. Если себя не уважаете, проявите 

  уважение к людям форума... 

 

Помогите с инициализацией!

Есть код:


if (Ord==0) {

OrdTiketOne=OrderSend(Symbol(),OP_BUY,0.01,Ask,5,0,0,"Odin",11101,0,CLR_NONE);

OrderSelect(OrdTiketOne,SELECT_BY_TICKET);

bool ModifyOne=OrderModify(OrdTiketOne,OrderOpenPrice(),OrderOpenPrice()-10000*Point,OrderOpenPrice()+300*Point,0,CLR_NONE);

if (!ModifyOne)Print ("Ticket 1 ",OrderTicket(),", ошибка № - ",GetLastError()); 



OrderSelect(OrdTiketOne,SELECT_BY_TICKET);

double pricetwo=OrderOpenPrice();

OrdTiketTwo=OrderSend(Symbol(),OP_BUYLIMIT,0.01,pricetwo-500*Point,0,0,0,"Dva",11102,0,CLR_NONE);

OrderSelect(OrdTiketTwo,SELECT_BY_TICKET);

bool ModifyTwo=OrderModify(OrdTiketTwo,OrderOpenPrice(),OrderOpenPrice()-10000*Point,OrderOpenPrice()+300*Point,0,CLR_NONE);

if (!ModifyTwo)Print ("Ticket 2 ",OrderTicket(),", ошибка № - ",GetLastError()); Ord=2; Del=1; }



if (Del==1) {

if (OrderSelect(OrdTiketOne, SELECT_BY_TICKET)==true) {

if (OrderCloseTime()>0) { Del=100; Ord=0; }}}



if (Ord==2){ OrderSelect(OrdTiketTwo,SELECT_BY_TICKET);

if (OrderType()==OP_BUY) { OrderSelect(OrdTiketOne,SELECT_BY_TICKET);

double pricethree=OrderOpenPrice();

OrdTiketThree=OrderSend(Symbol(),OP_BUYLIMIT,0.01,pricethree-1100*Point,0,0,0,"Tri",11103,0,CLR_NONE);

OrderSelect(OrdTiketThree,SELECT_BY_TICKET);

bool ModifyThree=OrderModify(OrdTiketThree,OrderOpenPrice(),OrderOpenPrice()-10000*Point,OrderOpenPrice()+600*Point,0,CLR_NONE);

if(!ModifyThree)Print ("Ticket 3 ",OrderTicket(),", ошибка № - ",GetLastError());

Ord=3; Del=2;

}

}



Каждый раз при инициализации советника Ord=0 . Ord=2 если выставлены OrdTiketOne и OrdTiketTwo но если разинициализировать советник и инициализировать его снова то Ord=0, как сделать чтобы советник проверял какие ордера выставлены при инициализации и переменную Ord приравнивал правильно?

 
Scripter:

Помогите с инициализацией!

Есть код:




Каждый раз при инициализации советника Ord=0 . Ord=2 если выставлены OrdTiketOne и OrdTiketTwo но если разинициализировать советник и инициализировать его снова то Ord=0, как сделать чтобы советник проверял какие ордера выставлены при инициализации и переменную Ord приравнивал правильно?


Вероятно первым вызовом в функции старт должн быть контроль открытых позиций
 
Vinin:

Вероятно первым вызовом в функции старт должн быть контроль открытых позиций
Это цикл чтоли?
 
Scripter:
Это цикл чтоли?
Контроль открытых позиций.
 
Scripter:
Это цикл чтоли?


Почему все в цикл упирается?

Хотя конечо нужен цикл для перебора открытых позиций и поиска своих.

 
это для меня наверное сложно.
 
Scripter:
это для меня наверное сложно.

Судя по первому выложенному коду, то очень просто. Вот тот код для меня был сложный. Почему сложный - объяснять не буду.
 
Vinin:

Судя по первому выложенному коду, то очень просто. Вот тот код для меня был сложный. Почему сложный - объяснять не буду.
а по магику нельзя как нибудь выбрать? допустим если магик = 11102 и не равен 11103 то Ord=2.
 
Scripter:
а по магику нельзя как нибудь выбрать? допустим если магик = 11102 и не равен 11103 то Ord=2.

Почему нельзя, конечно можно.
Причина обращения: