Спрашивайте! - страница 78

 
Kalenzo:
Да, требуется только функция запуска.

Спасибо за ваш ответ Калензо.

 
Bongo:
Kalenzo,

У меня есть вопрос:

HEDGING:

Я ищу:

if (OrderOpenPrice() = = Bid (или Ask))

Цена открытия должна быть равна новой цене.

Я хеджирую одной парой EURUSD.

Если цена открытия - продажа, а цена 1.3580,

цена покупки должна быть такой же.

Спасибо. Вот коды.

B.

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

if(Buy==0)

{

RefreshRates();

OrderSend(Symbol_1,OP_BUY,lotsi,MarketInfo(Symbol_ 1,MODE_ASK),...

RefreshRates();

if (OrderOpenPrice() == Bid)

{

OrderSend(Symbol_1,OP_SELL,lotsi,MarketInfo(Symbol _1,MODE_BID),...

}

Это должно работать, однако, это будет трудно сделать с рыночным ордером, попробуйте установить отложенные ордера на заданных уровнях.

 

Она не работает.

Советник только покупает.

Если я выберу,

if (OrderOpenPrice() == Bid)

советник покупает и продает.

но не по той же цене, разница в спреде.

 

защита кода

Я хочу знать, почему функция 'AccountNumber()' не возвращает

правильное значение или любое значение в течение секунды или двух.

int Account = 123456;

if (Account != AccountNumber())

{

Comment("Вы не можете использовать эту программу с этим счетом");

return (0);

}

else

{

Комментарий("Добро пожаловать в программу");

}

Спасибо

 

int Account = 123456; //change this to yor acc number

if (Account != AccountNumber())

{

Comment("You can not use this program with this account");

return (0);

}

else

{

Comment("Welcome to Program");

}

 

Да, так и будет. Если вам не нужно запускать какой-либо код при первом подключении советника (init) или отключении советника (deinit).

n7drazen:
Будет ли советник нормально работать без функций init() и deinit()?
 

Что вы имеете в виду?

RBK1959:
Я хочу знать, почему функция 'AccountNumber()' не возвращает значение

правильное значение или любое значение на секунду или две.

int Account = 123456;

if (Account != AccountNumber())

{

Comment("Вы не можете использовать эту программу с этим счетом");

return (0);

}

else

{

Комментарий("Добро пожаловать в программу");

}

Спасибо
 

Задержка

Когда я включаю защиту с правильным номером машины, она сначала говорит, что программа недействительна с этим номером, затем через несколько секунд она включается и говорит, что программа действительна.

Спасибо

Rich

 

To CodersGuru : Нужна помощь, чтобы закрыть позицию...

To CodersGuru : Нужна помощь в закрытии позиции.... (2-й пост)

Здравствуйте, CodersGuru,

Это уже второе сообщение от Вас и, возможно, Вы сейчас очень заняты.

Так что извините, что беспокою вас во второй раз. Первый раз, я изучаю EuroX2_sl, расширенный с 10 пунктов 3 EA скрипт. После нескольких пробных тестов, этот советник нормально открывал позицию, но не закрывал позицию, как мне нужно, когда рынок разворачивался (после установки индикатора). Возможно, что-то не так с кодом (потому что я не программист), и я думаю, что мне нужна ваша помощь, чтобы решить это. Не могли бы вы проверить, какая часть кода может быть неправильной?

Условия следующие:

1. ОТКРЫТЬ ПОКУПКУ при наличии условия индикатора, т.е. стохастика.

2. ЗАКРЫТЬ ПОКУПКУ при наличии индикатора ОТКРЫТЬ ПРОДАЖУ. т.е. стохастик

3. ОТКРЫТЬ ПРОДАЖУ при наличии условия индикатора (№ 2 выше). т.е.: стохастик

4. ЗАКРЫТЬ ПРОДАЖУ при условии существования индикатора (№1 выше). т.е.: стохастик.

Я думаю, что позиция OPEN в порядке, но проблема в позиции CLOSE, так как она не закрывается (BUY или SELL), даже когда индикатор существует.

Код, как я это сделал:

-------- часть скрипта из EuroX2_sl расширена от 10 пунктов 3, как я думаю для закрытия позиции -------

// важно правильно войти в рынок,

// но еще важнее правильно выйти из него...

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()<=OP_SELL && // проверка наличия открытой позиции

OrderSymbol()==Symbol()) // проверка наличия символа

{

//+--------------------------------------------------------------

if(OrderType()==OP_BUY) // открыта длинная позиция

{

//+-------------------------------------------------------------------

//+ УСЛОВИЕ ДЛЯ ЗАКРЫТИЯ ПОЗИЦИИ

//+-------------------------------------------------------------------

//+--------------- ЗАКРЫТЬ ПОЗИЦИЮ НА ПОКУПКУ ----------------------------

if ( Stoch_Main_M15_Cu < Stoch_Sig_M15_Cu )

//+------------------------------------------------------------------

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // закрываем позицию

return(0); // выход

}

//+-----------------------------------------------------------------------

// проверка наличия трейлинг-стопа

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

return(0);

}

}

}

}

//+---------------CLOSE SELL POSITION --------------------------------

else // переходим в короткую позицию

{ //+ НЕ УДАЛЯТЬ

if(OrderType()==OP_SELL) // открыта короткая позиция

{

}

// следует ли ее закрыть?

//+----------------------------------------------------------------------------

if ( Stoch_Main_M15_Cu > Stoch_Sig_M15_Cu )

//+-----------------------------------------------------------------------------

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // закрываем позицию

return(0); // выход

}

//+----------------------------------------

// проверка наличия трейлинг-стопа

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Poi nt*TrailingStop,OrderTakeProfit(),0,Red);

return(0);

}

}

}

}

}

}

--------------------------------------------------------------

Спасибо,

fxgroup

 

Лаг

codersguru:
Что вы имеете в виду?

Codersguru... код, который вы дали нам для защиты. Я использовал ваш код точно на вашей странице. Что происходит: "Вы не можете использовать эту программу с этой учетной записью" появляется на несколько секунд перед "Добро пожаловать в программу", когда правильный номер счета находится в коде.

Спасибо

Rich