// it is important to enter the market correctly, // but it is more important to exit it correctly... for(cnt=0;cnt<total;cnt++){OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);if(OrderType()<=OP_SELL&&// check for opened position OrderSymbol()==Symbol())// check for symbol{OrderSend(if(OrderType()==OP_BUY)// long position is opened
И последний вопрос. Возможно ли в советнике сделать так, чтобы сигнал (главный) использовался на одном таймфрейме (например H1), а к позиции добавляли по сигналам с младшего TF(например M5)? А то я написал, а он сделки открывает без остановок (или может Sleep() надо добавить). Вроде один сигнал на H1, а он сделок открыл целую сотню. В переменных все правильно вроде, сделано по предыдущему бару, а не по нулевому. Только в одном условии используется пробой максимума предыдущего бара (High(0)>High(1)), ну и минимума соответственно. Вообще возможно такое использование, или только на одном тайм-фрейме должен работать советник? Истории тоже хватает.
Necron писал(а)>> И последний вопрос. Возможно ли в советнике сделать так, чтобы сигнал (главный) использовался на одном таймфрейме (например H1), а к позиции добавляли по сигналам с младшего TF(например M5)? А то я написал, а он сделки открывает без остановок (или может Sleep() надо добавить). Вроде один сигнал на H1, а он сделок открыл целую сотню. В переменных все правильно вроде, сделано по предыдущему бару, а не по нулевому. Только в одном условии используется пробой максимума предыдущего бара (High(0)>High(1)), ну и минимума соответственно. Вообще возможно такое использование, или только на одном тайм-фрейме должен работать советник? Истории тоже хватает.
А это уже как Вам будет угодно. Хоть по всем таймфреймам, да еще и по всем инструментам доступным.
Часть 2.
Посмотри внимательно на этот кусок
Спасибо огромное!
И последний вопрос. Возможно ли в советнике сделать так, чтобы сигнал (главный) использовался на одном таймфрейме (например H1), а к позиции добавляли по сигналам с младшего TF(например M5)? А то я написал, а он сделки открывает без остановок (или может Sleep() надо добавить). Вроде один сигнал на H1, а он сделок открыл целую сотню. В переменных все правильно вроде, сделано по предыдущему бару, а не по нулевому. Только в одном условии используется пробой максимума предыдущего бара (High(0)>High(1)), ну и минимума соответственно. Вообще возможно такое использование, или только на одном тайм-фрейме должен работать советник? Истории тоже хватает.
А это уже как Вам будет угодно. Хоть по всем таймфреймам, да еще и по всем инструментам доступным.
А это уже как Вам будет угодно. Хоть по всем таймфреймам, да еще и по всем инструментам доступным.
А в переменных просто поставить 5 где таймфрейм и все (если для пятиминутки)?
high5=iHigh(NULL,5,1);
А в переменных просто поставить 5 где таймфрейм и все (если для пятиминутки)?
high5=iHigh(NULL,5,1);
А как тогда часовики?
А как тогда часовики?
high=iHigh(NULL,60,1); Или что-то не так?
Подскажите, как передать функции одну размерность из двумерного массива?
что-то я запутался.
int testarray[5][2] = {1,2,3,4,5,6,7,8,9,10};
void testfunc(int &inarray[]){
string out_str="Result: "+inarray[0];
for (int i=1;i<5;i++){
out_str += (", "+inarray[i]);
}
Print(out_str);
}
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
Print("Call first:");
testfunc(testarray[][0]);
Print("Call second:");
testfunc(testarray[][1]);
//----
return(0);
}
//+-----------
Не компилится. :(
массив это цельный компонент, передавай его целиком и обрабатывай как нужно..