Помощь в кодировании - страница 338

 
Maine:
Здравствуйте,

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

У меня есть этот код (MT4):

for(int i=(OrdersHistoryTotal()-1);i>=0;i--);

{

OrderSelect(i, SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==BUY)

{

//for buy order

if(OrderType()==OP_BUY && OrderProfit()>0) last=1;

if(OrderType()==OP_BUY && OrderProfit()<0) last=0;

}

}

for(int j=(OrdersHistoryTotal()-1);j>=0;j--);

{

OrderSelect(j, SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==SELL)

{

//for sell order

if(OrderType()==OP_SELL && OrderProfit()>0) last2=1;

if(OrderType()==OP_SELL && OrderProfit()<0) last2=0;

}

}

Но он не работает для меня.

Как мне его изменить?

Спасибо за помощь.

Что пытаются сделать эти две строки (что такое BUY и SELL в вашем коде - или вы вообще пытались это скомпилировать - поскольку BUY и SELL не являются предопределенными константами). Кроме того, OrderMagicNumber() - это магическое число, а не тип ордера:

OrderMagicNumber()==BUY

OrderMagicNumber()==SELL

 

Привет всем,

Я создал эксперта по степме и использую его:

int trendCurr = iCustom(s_symbol,StepMaTimeFrame,"Stepma",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest );

int trendPrev = iCustom(s_symbol,StepMaTimeFrame,"Stepma",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest+1);

if (trendCurr > 0 && trendPrev < 0) SendLong = true;

if (trendCurr 0) SendShort = true;

Теперь мне нужна помощь, какой код я могу использовать, если я хочу торговать откатами цены на степме?

Если цена коснется степмы, она войдет по цвету степмы.

Спасибо!

 
albert666:
Привет всем,

Я создал эксперта по степме и использую его:

int trendCurr = iCustom(s_symbol,StepMaTimeFrame,"Stepma",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest );

int trendPrev = iCustom(s_symbol,StepMaTimeFrame,"Stepma",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest+1);

if (trendCurr > 0 && trendPrev < 0) SendLong = true;

if (trendCurr 0) SendShort = true;

Теперь мне нужна помощь, какой код я могу использовать, если я хочу торговать откаты цены на степме?

Если цена коснется степмы, она войдет по цвету степмы.

Спасибо!

albert666

Для этого вы должны сравнивать цены со значением степмы (не только с трендом степмы. Но так как цена почти никогда не совпадает со значением индикаторов, у вас будут проблемы с этим + вы можете закончить с запаздывающим сигналом (так как вы должны сравнить 3 бара и самый новый бар должен быть подтвержден или иначе вы можете получить много ложных сигналов.

 

Здравствуйте, Альберт,

Я тоже думаю о той же идее.

Спасибо Младен за ответ, может быть, мы можем использовать закрытие бара, это может быть проще?

 
Big Joe:
Здравствуйте, Альберт,

Я тоже думаю о том же.

Спасибо Младен за ответ, возможно мы можем использовать закрытие бара, это может быть проще?

Джо

Откаты выглядят хорошо в ретроспективе, но, просто чтобы напомнить вам: каждое изменение тренда было потенциальным откатом. Попробуйте предсказать, будет ли это откат или смена тренда, и вы поймете, что я имею в виду.

 
mladen:
albert666 Для этого вам нужно сравнить цены со значением степма (не просто степма тренда. Но так как цена почти никогда не совпадает со значением индикаторов, у вас будут проблемы с этим + вы можете закончить с запаздывающим сигналом (так как вы должны сравнить 3 бара и самый новый бар должен быть подтвержден или иначе вы можете получить много ложных сигналов.

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

Я совсем запутался, должен ли я использовать Bid() и Ask()?

Спасибо.

 
mladen:
альфа24

Для этого не нужен новый индикатор

Используйте любой ma, который уже находится в отдельном окне, а затем просто перетащите полосы боллинджера в это подокно и выберите предыдущие данные индикатора в качестве ценового поля.

Младен Сэр

Похоже, вы слишком заняты или не заинтересованы в этом. Мое требование было очень маленьким и простым. В маленьких и простых вещах гораздо больше потенциала, это то, чему я научился в техническом анализе. В любом случае, спасибо.

 
alpha24:
Mladen Sir Похоже, вы слишком заняты или не заинтересованы в этом. Мое требование было очень маленьким и простым. В маленьких и простых вещах гораздо больше потенциала, это то, чему я научился в техническом анализе. в любом случае, спасибо.

альфа24

Я не понимаю ваш пост

Я объяснил вам, как вы можете просто получить то, что вам нужно. В чем тогда проблема? Вам не нравится решение (которое, между прочим, именно такое, как вы описали, и настолько простое, насколько это возможно)? Я просто не могу понять, в чем может быть проблема, если на ваш пост было дано правильное решение.

с уважением

 
albert666:
Спасибо, сэр Младен, я понимаю, что вы имеете в виду, это действительно может показаться безумным, но не могли бы вы дать мне какие-нибудь подсказки по кодированию этого.

Я совсем запутался, нужно ли использовать Bid() и Ask()?

Спасибо.

albert666

Я бы хотел порекомендовать вам попробовать оценить отскоки в runtime (не на исторических данных, а максимум на первом закрытом баре) в течение некоторого времени, и это должно прояснить, в чем именно заключаются проблемы, когда дело доходит до угадывания отскоков. Эта точная игра в угадывание должна быть сделана и советником.

 
alpha24:
Mladen Sir Похоже, вы слишком заняты или не заинтересованы в этом. Мое требование было очень маленьким и простым. В маленьких и простых вещах гораздо больше потенциала, это то, чему я научился в техническом анализе. В любом случае, спасибо.

Вот одна старая скользящая средняя в отдельном окне: moving_averages_sw.mq4

Работает и в новом метатрейдере, хотя он очень старый.

Файлы:
Причина обращения: