Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
CodersGuru : нужна помощь по поводу 10 пунктов 3 EA....
Здравствуйте, 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 && // проверяем наличие открытой позиции
OrderType()<=OP_BUY &&
OrderType()>=OP_SELL &&
OrderType()>=OP_BUY &&
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+Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
--------------------------------------------------------------
Спасибо,
fxgroup
Чтение данных из окна другой валютной пары
Мой советник находится в окне "GBPJPY", но мне нужно найти ObjectDescription() из другого окна, скажем, "USDJPY". (К сожалению, это индикатор Pivot, который не возвращает значения из iCustom()).
Кто-нибудь знает, как обратиться к другому (не текущему) окну пары, чтобы иметь возможность использовать на нем функции типа ObjectDescription()?
Или MQ4 этого не позволяет?
Спасибо
евро
Как изолировать прибыль одной валюты от других?
color color_of_pipsprofit;
color_of_pipsprofit = White;
int m,totalbuy;
totalbuy=OrdersTotal();
for(m=0;m<totalbuy;m++)
OrderSelect(m, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)
{
pips_profit=OrderProfit();
}
if(pips_profit >= 0)
{
color_of_pipsprofit = Lime;
}
else {color_of_pipsprofit = Red;
}
int n,totalsell;
totalsell=OrdersTotal();
for(n=0;n<totalsell;n++)
OrderSelect(n, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)
{
pips=OrderProfit();
}
if(pips_profit >= 0)
{
color_of_pipsprofit = Lime;
}
else {color_of_pipsprofit = Red;
}
ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);
ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);
ObjectSet("pips_profit", OBJPROP_CORNER, 3);
ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);
ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);
}Я создал эту кодировку, но не могу изолировать прибыль одной валюты от других торгуемых валют. Чего мне не хватает в моем коде?
Пожалуйста, рассмотрите. Спасибо за помощь!
Дэйв
Прибыль
Попробуйте этот код:
{
int total = OrdersTotal();
for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)
{
Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());
}
}
return(0);
}
double Profit(int type, string currency, double open)
{
if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy
if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy
return(-1);
}[/php]
[php]
color color_of_pipsprofit;
color_of_pipsprofit = White;
int m,totalbuy;
totalbuy=OrdersTotal();
for(m=0;m<totalbuy;m++)
OrderSelect(m, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)
{
pips_profit=OrderProfit();
}
if(pips_profit >= 0)
{
color_of_pipsprofit = Lime;
}
else {color_of_pipsprofit = Red;
}
int n,totalsell;
totalsell=OrdersTotal();
for(n=0;n<totalsell;n++)
OrderSelect(n, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)
{
pips=OrderProfit();
}
if(pips_profit >= 0)
{
color_of_pipsprofit = Lime;
}
else {color_of_pipsprofit = Red;
}
ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);
ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);
ObjectSet("pips_profit", OBJPROP_CORNER, 3);
ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);
ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);
}I created this coding, but I cannot isolate the profits of one currency from other currencies being traded. What am I lacking in my code??
Please review. Thanks for your help!
DaveПопробуйте этот код:
{
int total = OrdersTotal();
for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)
{
Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());
}
}
return(0);
}
double Profit(int type, string currency, double open)
{
if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy
if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy
return(-1);
}Привет, Кодер,
Это не совсем то, что мне нужно. Я прилагаю изображение графика, чтобы проиллюстрировать то, что я ищу. Можете ли вы изменить кодировку для отображения прибыли? Если да, то я смогу заставить цвета меняться в зависимости от суммы прибыли. Я просто ищу прибыль для каждой конкретной валюты.
прикрепленный индикатор
Привет Codersguru
Я хочу, чтобы прилагаемый индикатор показывал открытие в полночь gmt, а не время сервера брокера, возможно ли это?
большое спасибо, Монти
Помогите с кодом
Не могли бы вы пошагово описать код? Я получаю неправильное значение (см. ниже "Account"), а затем оно корректно заполняется, но я не уверен почему.
int Account = 123456;
if (Account != AccountNumber())
{
Comment("Вы не можете использовать эту программу с этим счетом");
return (0);
}
else
{
Комментарий("Добро пожаловать в программу");
}
Простой вопрос
Будет ли советник нормально работать без функций init() и deinit()?
Будет ли эксперт нормально работать без функций init() и deinit()?
Да,
Требуется только функция start.
Калензо,
У меня есть вопрос:
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),...
}