Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня были покупки и продажи.
Это бэктестинг, он дал покупки и продажи или только одну из них? У меня были только покупки (или только продажи, когда я изменил код). Я действительно не видел ничего, что показывало бы ошибку.
этот RSIFilter_v1... я не знаю об этом...
код, который вы показываете здесь, должен сделать это...
Вот что я сделал... см. вложения.
Так это нормально?
double Sg=iCustom(NULL,0, "RSIFilter_v1",5,5,0,1);
if ( Sg>0) Order = SIGNAL_BUY;
if (Sg<0) Order = SIGNAL_SELL;Качество моделирования должно быть 90%, не знаю, почему оно не отображается.
Я думаю, что это связано с несовпадением ошибок. Backtester с нескольких релизов имеет эту проблему. Слышал, что это из-за плохих данных.
FerruFx
ошибка сопоставления булевых переменных
Привет всем, у меня такая ошибка и я не понимаю, как разобраться, я думаю, что это проблема соответствия различных типов переменных.
вот фрагмент кода
double
BuyCondition,
SellCondition,
StopLong,
StopSell;
индикаторы
двойной индикатор1,
индикатор2
индикатор 3; (но это int)
поэтому мне нужны эти условия
StopLong = ((SellValueCurrent !=0 && SellValueCurrent2 !=0) || (TrendEnvDown != EMPTY_VALUE));
StopSell = ((BuyValueCurrent !=0 && BuyValueCurrent2 !=0) || (TrendEnvUp != EMPTY_VALUE));Так почему иногда у меня нет 0, когда мне нужна 1, а иногда у меня есть оба 1, когда или один из них должен быть 1? Это теперь для меня вообще не имеет смысла, почему это неправильно? Пожалуйста, помогите мне!!!
p.s. sellvalue и buyvalue - двойные.
нужно больше кода, чтобы исправить это...
если хотите, опубликуйте свой mq4
Привет всем, у меня такая ошибка и я не понимаю, как разобраться, я думаю, что это проблема соответствия различных типов переменных.
вот фрагмент кода
double
BuyCondition,
SellCondition,
StopLong,
StopSell;
индикаторы
двойной индикатор1,
индикатор2
индикатор 3; (но это int)
поэтому мне нужны эти условия
StopLong = ((SellValueCurrent !=0 && SellValueCurrent2 !=0) || (TrendEnvDown != EMPTY_VALUE));
StopSell = ((BuyValueCurrent !=0 && BuyValueCurrent2 !=0) || (TrendEnvUp != EMPTY_VALUE));Так почему иногда у меня нет 0, когда мне нужно 1, а иногда у меня есть оба 1, когда или один из них должен быть 1? Это теперь для меня не имеет смысла вообще, почему это неправильно? Пожалуйста, помогите мне!!!
p.s. sellvalue и buyvalue удваиваютсяЧто-то пошло не так. Демо-счет был полностью стерт.
Вот небольшая часть из журнала эксперта, с сотнями этих "invalid price for OrderClose function" :
GBPJPY на 209.23 sl: 212.23 tp: 208.23 ok
10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: invalid price 2.02750000
для функции OrderClose
10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: недопустимая цена 1.55750000
для функции OrderClose
10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: close #11685361 sell
0.10 GBPCHF по цене 2.0270 sl: 2.0570 tp: 2.0170 по цене 2.0275
10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: недействительная цена 1.03350000
для функции OrderClose
10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: недопустимая цена 1.55740000
для функции OrderClose
это часть в ea для OrderClose,
Я не понимаю, что в ней не так, может кто-то может помочь?
//---------------------
int l_ord_total_72 = OrdersTotal();
for (int l_pos_76 = 0; l_pos_76 < l_ord_total_72; l_pos_76++) {
if (OrderSelect(l_pos_76, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
l_cmd_80 = OrderType();
if (l_cmd_80 == OP_BUY) {
l_count_56++;
if (l_isar_48 > Close[0]) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet);
}
if (l_cmd_80 == OP_SELL) {
l_count_60++;
if (l_isar_48 < Close[0]) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet);
}
}
}
}
//--------------------Возможно, вы получили новые цены от брокера, попробуйте использовать функцию RefreshRates перед OrderClose, если вы получите ошибку.
Ошибка OrderClose
Что-то пошло не так. Демо-счет был полностью уничтожен.
Вот небольшая часть из журнала эксперта, с сотнями этих "invalid price for OrderClose function" :
GBPJPY на 209.23 sl: 212.23 tp: 208.23 ok
10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: invalid price 2.02750000
для функции OrderClose
10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: недопустимая цена 1.55750000
для функции OrderClose
10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: close #11685361 sell
0.10 GBPCHF по цене 2.0270 sl: 2.0570 tp: 2.0170 по цене 2.0275
10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: недействительная цена 1.03350000
для функции OrderClose
10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: недопустимая цена 1.55740000
для функции OrderClose
это часть в ea для OrderClose,
Я не понимаю, что в ней не так, может кто-то может помочь?
//---------------------
int l_ord_total_72 = OrdersTotal();
for (int l_pos_76 = 0; l_pos_76 < l_ord_total_72; l_pos_76++) {
if (OrderSelect(l_pos_76, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
l_cmd_80 = OrderType();
if (l_cmd_80 == OP_BUY) {
l_count_56++;
if (l_isar_48 > Close[0]) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet);
}
if (l_cmd_80 == OP_SELL) {
l_count_60++;
if (l_isar_48 < Close[0]) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet);
}
}
}
}
//--------------------
Компиляция не дает ошибки.
нужно больше кода, чтобы исправить это... если хотите, опубликуйте свой mq4
нет, я не хочу публиковать все, но я думаю, что это проблема с соответствием типов переменных, я попытаюсь объяснить больше
индикатор1 и 2 являются двойными правильно
поэтому у меня есть buyvaluecurrent = icustom(indicator1 etc etc);
buyvaluecurrent2 = icustom(indicator2 etc etc);
sellvaluecurrent = icustom(indicator1 etc etc); //удваивается правильно?
trenendvup = icustom(indicator3 etc etc) ; //int
и так далее
buycondition= ((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup != Empty_Value);
это утверждение работает только иногда и также может быть проблемой, поэтому мой вопрос - почему? Я хочу, чтобы buycondition возвращало 1 или 0, независимо от типа bool или double.
Возможно вы получили новые цены от брокера, попробуйте использовать функцию RefreshRates перед OrderClose, если вы получите ошибку.
Да, спасибо!
в зависимости от того, что посылают индикаторы iCustom...
double buyvaluecurrent = iCustom(indicator1);
double buyvaluecurrent2 = iCustom(indicator2);
double sellvaluecurrent = iCustom(indicator1);
int trenendvup = iCustom(indicator3);
итак...
if((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup !=0)) {buycondition=0;}
if((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup !=1)) {buycondition=1;}
вы не можете получить bool в вашем buycondition, только используя "&&" и некоторые условия, используйте функцию if()...
надеюсь это поможет, в противном случае это маленький шаг вперед.
нет, я не хочу публиковать все, но я думаю, что это проблема с соответствием типов переменных, я постараюсь объяснить больше.
индикаторы 1 и 2 двойные
Итак, у меня buyvaluecurrent = icustom(indicator1 etc etc);
buyvaluecurrent2 = icustom(indicator2 etc etc);
sellvaluecurrent = icustom(indicator1 etc etc); //двойные правильно?
trenendvup = icustom(indicator3 etc etc) ; //int
и так далее
buycondition= ((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup != Empty_Value);
Это утверждение работает только иногда и также может быть проблемой, поэтому мой вопрос - почему? Я хочу, чтобы buycondition возвращало 1 или 0, независимо от типа bool или double.