[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 612

 
Отбираю ордера, естественно, на истории. Может, и тут фор как-то не так прописан?
 
TarasBY:
Моск у человека "перетёк" в пальцы, которые только и выстукивают "HELP!"...

очень полезное сообщение....спасибо огромное...пойду пальцы помою..
 
lottamer:
подскажите плиз...что за нафик.. в исходном виде (без PlaySound("alert.wav"); ) - работает. Но если добавить к любому звену кроме назначения флага еще и какое-то действие (сыграть музычку например)...то флаги печатаются 0000 а музыка играется во всю! подскажите где ошибка?


Что это за код??????? !!!!!??         Большую скобку ставьте сразу за малыми скобками условия оператора иф. Иначе она до ж.... . Или же пропишите ещё условие иф, в котором участвуют ваши флаги, иначе что они там же. Что они делают? 

В общем, отдыхать вам надо! 

 

TarasBY,

 Var1 и прочие назвал как у меня, вставил блок fGet_MineGV() внутри init, а блок  fSave_MineGV()  внутри staft.

При компиляции советник выдал кучу ошибок.

Я попробовал по очереди. Сначала вставил в    init, откомпилировал. Ошибок 0, одно замечаание: is not referenced and willbe removed from exp-file. Ну тут мне понятно, он не может найти файл, потому что того еще нет. Он должен записаться внутри  staft.

Так вот, когда я пытаюсь второй блок прописать внутрь  staft, он и выдает множество ошибок. 

 
lottamer:

подскажите плиз...что за нафик.. в исходном виде (без PlaySound("alert.wav"); ) - работает. Но если добавить к любому звену кроме назначения флага еще и какое-то действие (сыграть музычку например)...то флаги печатаются 0000 а музыка играется во всю! подскажите где ошибка?

if(Stoch_1>Stoch_2) flag1=1 ;  
      {Print (flag1,flag2,flag3,flag4);
      
if(Stoch_1<Stoch_2 && flag1==1) flag2=1;
      {Print (flag1,flag2,flag3,flag4);

if ((Stoch_1>Stoch_2) && flag1==1 && flag2==1) flag3=1; 
      {Print (flag1,flag2,flag3,flag4)

Зачем же вы сравниваете одно и тоже кучу раз подряд?
 

 if(Stoch_1>Stoch_2) { flag1=1 ;   Print (flag1,flag2,flag3,flag4); }
   

if(Stoch_1<Stoch_2 && flag1==1) flag2=1; Print (flag1,flag2,flag3,flag4); }
   
  if ((Stoch_1>Stoch_2) && flag1==1 && flag2==1) {flag3=1;  Print (flag1,flag2,flag3,flag4);PlaySound("alert.wav");}

   
if(Stoch_1<Stoch_2 && flag1==1 && flag2==1 && flag3==1) flag4=1;
{Print (flag1,flag2,flag3,flag4);}
if(Stoch_1>Stoch_2 && flag1==1 && flag2==1 && flag3==1 && flag4==1)
{OrderSend (Symbol( ), OP_SELL, 0.01 ,Bid, 0, 0, 0, NULL, 450, 0, CLR_NONE);
Print ("OUT");}



flag1=0;
flag2=0;
flag3=0;
flag4=0;

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

 
Dimka-novitsek:

Доброго дня! Помогите, пожалуста, разобрать ся с модификацией ордера, то-есть, с циклом отбора ордера для её условия. Я сперва нахожу ордер , сработавший по тейкпрофиту- это конкретный ордер с тикетом  tacket .  Так вот, примерно раз из десяти цикл не работает, о чём говорит конкретное расхождение зелёнойи синей линии в тестере. И визуализация- стоплосс иногда не движется. 

В общем, помогите, пожалуста!  

 

Условие 

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
1 .Выполняется, если в истории термина нет ордеров, и продолжать цикл в таком случае не имеет смысла.
2. Чтобы найти ордер, сработавший именно по тейкпрофиту надо сравнить значение ТП со значением цены закрытия ордера
3.  Если вам нужен не любой ордер,закрытый по ТП, надо найти последний.
4. Еси в if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)) используется значение tucket, Выбранное в предыдущем цикле, ордер нельзя модифицировать, потому, что он уже закрыт. 
 

1 .Выполняется, если в истории термина нет ордеров, и продолжать цикл в таком случае не имеет смысла.  

 

Спасибо!!!  Во где собака зарыта.. Вот это да!!   Как же вообще он хоть иногда модифицировался?  

2. Чтобы найти ордер, сработавший именно по тейкпрофиту надо сравнить значение ТП со значением цены закрытия ордера

Я сначала отбираю в цикле на истории именно определённый ордер, а потом, кажется, так и сравниваю. 

 
Чтобы перевести стоку в комментарий, а не продолжать вставку кода, надо в конце строки ;?
 

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;    У меня в цикле это так- если в истории термина нет ордеров, и продолжать цикл в таком случае не имеет смысла, тогда континуэ! 

Так всё ведь так? 

Во, загадка!!! 

Причина обращения: