Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо, но не могли бы вы объяснить мне, почему
BuyCondition = BuyValueCurrent1 != EMPTY_VALUE
почему пустое_значение?
в любом случае это не работает, и я не могу понять и выяснить почему...
вот мои переменные
and here is the statement
[PHP] BuyCondition = (BuyValueCurrent != EMPTY_VALUE && BuyValueCurrent2 != EMPTY_VALUE);он дает совершенно нечеткие результаты, даже когда индикатор (Braintrend2stop и BrainTrend1Stop) - SELL
У меня есть советник, который открывает и управляет позицией, но иногда индикатор дает один и тот же сигнал несколько раз, и советник открывает каждый раз, когда этот сигнал выходит новая позиция - но я не хочу вторую, третью и так далее позицию, я хочу только первую - возможно ли, что советник проверяет открытую позицию на основе магического числа и пары, чтобы избежать таких множественных входов?
Вот идея:
{
int count=0;
int trade;
int trades=OrdersTotal();
for(trade=0;trade<trades;trade++) {
OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber() != MagicNumber) continue;
if(OrderType()==OP_BUY) count++;
} //---- для
return(count);
}
int CountShorts()
{
int count=0;
int trades;
int trades=OrdersTotal();
for(trade=0;trade<trades;trade++) {
OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber() != MagicNumber) continue;
if(OrderType()==OP_SELL) count++;
} //---- для
return(count);
}И в функции start() :
if(CountLongs() == 0 && CountShorts() == 0) {
Ваше условие входа здесь
}Надеюсь, это поможет.
FerruFx
в любом случае это не работает, и я не могу понять и выяснить почему...
вот мои переменные
and here is the statement
[PHP] BuyCondition = (BuyValueCurrent != EMPTY_VALUE && BuyValueCurrent2 != EMPTY_VALUE);Я не знаю ваших индикаторов Braintrend1 и 2, я просто предположил, что когда выполняется условие покупки, они рисуют стрелку на графике. В MT4 значение буфера по умолчанию - это константа с именем "EMPTY-VALUE", поэтому если стрелки нет, то значение, возвращаемое функцией iCustom() - это эта константа, а если стрелка есть, то возвращаемое значение - это цена, на которую поставлена стрелка.
Как я понял, вы хотите покупать, когда оба индикатора показывают стрелку, не так ли?
Да, это именно то, что я хочу сделать
Да, это именно то, что я хочу сделать
Поэтому, пожалуйста, проверьте синтаксис вашего iCustom().
что я должен проверить? может я что-то упустил?
ну для чего я предполагаю, что если есть сигнал на покупку, то он сохраняется в буфере 0, иначе он пуст и в буфере 1 есть сигнал на продажу
что я должен проверить? может я что-то упустил
Опубликуйте ваш индикатор здесь, я посмотрю.
Хорошо, спасибо!
и, пожалуйста, объясните
Хорошо! И, пожалуйста, объясните
Откройте файл BrainTrend1Stop.mq4.
В начале файла вы можете найти :
extern int EnableAlerts=0;
extern int SignalID=0;[/PHP]This means that you have to fill those three parameters as arguments in the iCustom() call, like this:
[/PHP]About the buffer's number, you can see this:
#property indicator_color2 Aqua[/PHP]So the buffer 0 is Magenta and the buffer 1 is Aqua.
Thus if the Buy arrow's color is Aqua, the buffer's number is 1 and the iCustom call is:[PHP]BuyValueCurrent = iCustom(NULL,0,"BrainTrend1Stop",NumBars,EnableAlerts,SignalID,1,1); // braintrend1This means that the default empty value for the buffer 1 is set to 0.0; so when there is no arrow, the value returned by the iCustom() call will be 0.0.
So you should know the presence of the arrow checking its value against 0, like this (if the second indic follows the same behavior):[PHP]BuyCondition = (BuyValueCurrent > 0 && BuyValueCurrent2 > 0);Что касается второго индикатора, я думаю, что вы должны быть в состоянии сделать тот же анализ самостоятельно.