Советники: VR---SIGMA - страница 2

 
ReVerS:
VOLDEMAR:

Он открывает ордер в начале свечи посмотрите результаты и вы увидите что время открытия будет временем открытия свечи



Все правильно, так и есть. Но я говорю не об этом. Если закрыть ордер, например на часовой свече через 20 минут после открытия, то в ту же минуту в том же направлении ордер открывается опять. А мне нужно чтобы советник ждал новую свечу и открывал ордер уже со следующей свечой.
Для этого просто после открытия ордера советником отключите советник . Так как пока он будет видить что прошлая свеча подходит условиям он будет открывать ордера .
 
ReVerS:
Отличный советник. А как сделать, чтобы он начинал торговать с новой свечи, а не подхватывал уже открытую свечу. Например очень часто бывает цена отходит назад в конце периода. Или цена резко пошла в нужном направление, а потом резко обратно. Много всяких вариантов, и в связи с этим например, я закрываю руками ордер, а советник опять открывает в том же направление его. По этому есть необходимость, чтобы он начинал торговать только с открытием новой свечи.

//------------------------------------------------------------------------------------------------------------------------------//
//================================ Открытие нового бара ========================================================================//
//------------------------------------------------------------------------------------------------------------------------------//
// timeperiod- рабочий таймфрейм.
//
int TimeOpenNewBar(int timeperiod) // объявление функции
{
static datetime prevtime = 0;
if(iTime(Symbol(),timeperiod,0) == prevtime){ return(0); } // если время открытия текущего бара равно значению prevtime, то новый бар еще не появился.
else{
prevtime = iTime(Symbol(),timeperiod,0); // если время открытия текущего бара не равно значению prevtime,то появился новый бар.
return(1);
}
}
//------------------------------------------------------------------------------------------------------------------------------//
//==============================================================================================================================//

//------------------------------------------------------------------------------------------------------------------------------//

int start(){

if(TimeOpenNewBar(Period())==1){... здесь располагаете код ...}

return(0);

}

 

И еще:

//--------------------------------------------------------------------------------------------------------------------------//

//================================= Открытие только одного ордера на данной свече ==========================================//

//--------------------------------------------------------------------------------------------------------------------------//

//

// magic_a - Magicnumber для buy ордера.

// magic_b - Magicnumber для sell ордера.


bool CheckExists(int magic_a,int magic_b)

{

bool Result = True;

for(int i = 0; i < OrdersTotal(); i++){

if(OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==true){

if( (OrderMagicNumber() == magic_a || OrderMagicNumber()==magic_b) && OrderSymbol() == Symbol()){

if(OrderOpenTime() >= Time[0])

{ Result = False;}}

}

}

for(i = 0; i < OrdersHistoryTotal(); i++)

{

if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){

if( OrderOpenTime() >= Time[0]

&& (OrderMagicNumber() == magic_a || OrderMagicNumber()==magic_b) && OrderSymbol() == Symbol())

{Result = False;}

}

}

return(Result);

}

//---------------------------------------------------------------------------------------------------------------------------//

//===========================================================================================================================//

//---------------------------------------------------------------------------------------------------------------------------//

 

Парни, ну какой он отличный? Вот результаты на 5-значном диллинг-центре, H1 и лоте 0,01: