Я много раз читал о том, что код должен быть по-возможности лаконичным. В роботе, мне потребовалось сделать так, что бы он начал торговать крупным лотом, только после того, как прошло 8 неудачных сделок подряд. Моих знаний, хватило только на то, что бы создать вот такого монстра:Спойлер
if(OrderSelect(HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
{
if (OrderProfit() {
if(OrderSelect(HistoryTotal()-2,SELECT_BY_POS,MODE_HISTORY))
{
if (OrderProfit() {
if(OrderSelect(HistoryTotal()-3,SELECT_BY_POS,MODE_HISTORY))
{
if (OrderProfit() {
if(OrderSelect(HistoryTotal()-4,SELECT_BY_POS,MODE_HISTORY))
{
if (OrderProfit() {
if(OrderSelect(HistoryTotal()-5,SELECT_BY_POS,MODE_HISTORY))
{
if (OrderProfit() {
if(OrderSelect(HistoryTotal()-6,SELECT_BY_POS,MODE_HISTORY))
{
if (OrderProfit() {
if(OrderSelect(HistoryTotal()-7,SELECT_BY_POS,MODE_HISTORY))
{
if (OrderProfit() {
if(OrderSelect(HistoryTotal()-8,SELECT_BY_POS,MODE_HISTORY))
{
if (OrderProfit() {
sell();
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
Как можно сделать более лаконично?
рекомендую посмотреть урок №2
после просмотра моментально сможете уложиться в 5 строк кода вместо этого монстра... :)
А можете немного намекнуть, какими циклами можно обойтись, что бы решить задачу с минимумом кода? :) for? while? switch?
