почему эксперт выполняет не все действия в блоке "if", хотя условия для действий соблюдаются и ошибок в эксперте нет
Эксперт почему-то при тестировании выполняет не все действия, хотя все условия соблюдаются. В самом эксперте все написано правильно - это точно.
От чего это может происходить? Может ли на это влиять количество вложенных подусловий и действий в одном блоке "if"?
перед "if"
поставьте
Print по каждому условию, для отладки... может все же в коде ошибка? точнее в логике
---
я вообще стараюсь блоки if писать следующим образом
// 1 if ( A == 1 ) { if ( B == 1 ) { if ( C == 1 ) { if ( D == 1 ) { YES = 1; // ура! } } } }
при этом стараюсь распределить if так что бы самый первый был с самой низкой вероятностью на срабатывание
а самый часто срабатываемый в конце
т е вместо блока
// 2 if ( A== 1 && B == 1 && C == 1 && D == 1 )
первая конструкция по скорости работает быстрее - может не так красива как последняя но как говорится у кого какие цели
но это исключительно для скорости кода
Просто Ваш вопрос не подразумевает ответа, так как катострофически не хватает данных, а потому ветка автоматически - в разряд флуда... На некоторых форумах за вопросы ведущие к флуду, - "банан" выдают) А ежели хотите конструктива - надо хотя бы проблемный участок кода показать.
Просто Ваш вопрос не подразумевает ответа, так как катострофически не хватает данных, а потому ветка автоматически - в разряд флуда... На некоторых форумах за вопросы ведущие к флуду, - "банан" выдают) А ежели хотите конструктива - надо хотя бы проблемный участок кода показать.
ОК, исправляюсь.
Я пыталась сделать, чтобы поэтапно снималась прибыль при достижении определенных ценовых шагов. Эксперт делает максимум дейстий 6, а все остальные "этапы" посылает лесом, при этом не пишет никакой ошибки 8(
...
if(total==1)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY)
{
if(Shag==1&&(Bid-OrderOpenPrice())>=30*Point&&(Bid-OrderOpenPrice())<50*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);
if(Shag==2&&(Bid-OrderOpenPrice())>=50*Point&&(Bid-OrderOpenPrice())<70*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);
if(Shag==3&&(Bid-OrderOpenPrice())>=70*Point&&(Bid-OrderOpenPrice())<90*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);
if(Shag==4&&(Bid-OrderOpenPrice())>=90*Point&&(Bid-OrderOpenPrice())<110*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);
if(Shag==5&&(Bid-OrderOpenPrice())>=110*Point&&(Bid-OrderOpenPrice())<130*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);
if(Shag==6&&(Bid-OrderOpenPrice())>=130*Point&&(Bid-OrderOpenPrice())<150*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);
if(Shag==7&&(Bid-OrderOpenPrice())>=150*Point&&(Bid-OrderOpenPrice())<170*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);
if(Shag==8&&(Bid-OrderOpenPrice())>=170*Point&&(Bid-OrderOpenPrice())<190*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);
и еще несколько других if в этом же блоке...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Эксперт почему-то при тестировании выполняет не все действия, хотя все условия соблюдаются. В самом эксперте все написано правильно - это точно.
От чего это может происходить? Может ли на это влиять количество вложенных подусловий и действий в одном блоке "if"?