![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да, требуется только функция запуска.
Спасибо за ваш ответ Калензо.
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).
Будет ли советник нормально работать без функций init() и deinit()?
Что вы имеете в виду?
Я хочу знать, почему функция '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... код, который вы дали нам для защиты. Я использовал ваш код точно на вашей странице. Что происходит: "Вы не можете использовать эту программу с этой учетной записью" появляется на несколько секунд перед "Добро пожаловать в программу", когда правильный номер счета находится в коде.
Спасибо
Rich