Сразу 2 проблемы в 2-х терминалах - страница 2 123456 Новый комментарий Igor Malcev 2007.08.09 00:08 #11 cloud666: Почему так??? Эта задачка на внимательность :-) заметьте если код расположен так то выполняется первое условие int slu = 2; int PP = 1; if(OrderType()==0){ if((slu)>PP){ Print("Тест 1 пройден!!!"); PP=slu; }} if((OrderType()==0) && (slu)>PP){ Print("Тест 2 пройден!!!"); PP=slu; } а если так то второе int slu = 2; int PP = 1; if((OrderType()==0) && (slu)>PP){ Print("Тест 2 пройден!!!"); PP=slu; } if(OrderType()==0){ if((slu)>PP){ Print("Тест 1 пройден!!!"); PP=slu; }} :-) Теперь догадались почему? :-) [Deleted] 2007.08.09 05:02 #12 ??? В обоих случаях 1 выдает!? Может оригинальный терминал поможет??? И все же почему: объясни плиз, если не трудно... Victor Nikolaev 2007.08.09 05:34 #13 А почему все время в условии используется (slu)>PP. Разве нельзя без скобок? [Deleted] 2007.08.09 07:21 #14 Vinin: А почему все время в условии используется (slu)>PP. Разве нельзя без скобок? Можно! В чем проблема, не поможете??? Victor Nikolaev 2007.08.09 07:49 #15 Так оба условия абсолютно одинаковы, и результат всегда будет один и тот же. Вопрос в другом - а что же мы хотим получить? [Deleted] 2007.08.09 07:54 #16 Vinin: Так оба условия абсолютно одинаковы, и результат всегда будет один и тот же. Вопрос в другом - а что же мы хотим получить? Вот и именно, что условия одни!!! Выаолняется код условия, если первое условие верно!!! Вот в чем проблема! Мож терминал на оригинал сменить??? Victor Nikolaev 2007.08.09 07:57 #17 Так и должно быть. В первом присваиваешь PP=slu, второе условие уже выполняться не будет, Если сделаешь slu>=PP, то будет выполняться в обоих случаях [Deleted] 2007.08.09 08:05 #18 Вот код, который выдает ERR_NO_RESULT, ПОЧЕМУ? su=OrderOpenPrice()+Point*MinProfit; sd=OrderOpenPrice()-Point*MinProfit; if((OrderStopLoss()!=su) && (OrderStopLoss()!=sd)) { if((OrderType()==0) && (PP>=Point*ProfitPoints) && (OrderStopLoss()<OrderOpenPrice())) { OrderModify(OrderTicket(), 0, su, 0, 0, 0); } if((OrderType()==1) && (PP>=Point*ProfitPoints) && (OrderStopLoss()>OrderOpenPrice())) { OrderModify(OrderTicket(), 0, sd, 0, 0, 0); } } Victor Nikolaev 2007.08.09 08:11 #19 Посмотри внимательно описание функции OrderModify(), там про это написано. [Deleted] 2007.08.09 08:16 #20 Vinin: Посмотри внимательно описание функции OrderModify(), там про это написано. Как же задать условие? или в чем тут ошибка: if(ProfitPoints!=0) { slu=Bid-OrderOpenPrice(); b=Bid; sld=OrderOpenPrice()-Ask; a=Ask; if((OrderType()==0) && (slu>PP)) { PP=slu; } if((OrderType()==1) && (sld>PP)) { PP=sld; } su=OrderOpenPrice()+Point*MinProfit; sd=OrderOpenPrice()-Point*MinProfit; if((OrderStopLoss()!=su) && (OrderStopLoss()!=sd)) { if((OrderType()==0) && (PP>=Point*ProfitPoints) && (OrderStopLoss()<OrderOpenPrice())) { OrderModify(OrderTicket(), 0, su, 0, 0, 0); } if((OrderType()==1) && (PP>=Point*ProfitPoints) && (OrderStopLoss()>OrderOpenPrice())) { OrderModify(OrderTicket(), 0, sd, 0, 0, 0); } } 123456 Новый комментарий
Почему так???
Эта задачка на внимательность :-)
заметьте если код расположен так то выполняется первое условие
а если так то второе
:-) Теперь догадались почему? :-)И все же почему: объясни плиз, если не трудно...
А почему все время в условии используется (slu)>PP.
Разве нельзя без скобок?
Можно! В чем проблема, не поможете???
Так оба условия абсолютно одинаковы, и результат всегда будет один и тот же. Вопрос в другом - а что же мы хотим получить?
Вот и именно, что условия одни!!! Выаолняется код условия, если первое условие верно!!! Вот в чем проблема! Мож терминал на оригинал сменить???
Посмотри внимательно описание функции OrderModify(), там про это написано.
Как же задать условие? или в чем тут ошибка: