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

 

Здравствуйте Младен,

Я хочу отслеживать несколько вещей в моем коде, и одна из них - количество открытых сделок с разными магическими числами и разными комментариями от одной и той же пары, поэтому я использую этот код, где-то внутри кода я делаю ошибку, так как CPU составляет 100%, поэтому я пытаюсь улучшить свои функции. Ниже приведена одна из них, не могли бы вы предложить лучшую альтернативу для моего метода

x=OrdersTotal(); xx=x; //-- Count How magic number && comment are open for the same pair for( i=0;i<x;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym /*&& OrderCloseTime()==0 */){

TemMagic= OrderMagicNumber(); TemOrdComment= OrderComment(); OrdOpenPrice= OrderOpenPrice(); OrdType= OrderType(); iSameSymTotal++; // count all oopen trades from the same Symbol for( i=0;i<xx;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym ){ if ( TemMagic!= OrderMagicNumber())CounTMagic++; if (TemOrdComment!= OrderComment())CounTComment++; }} }}
 
MiniMe:
Здравствуйте, Младен,

Я хочу отслеживать несколько вещей в моем коде, и одна из них - количество открытых сделок с разными магическими числами и разными комментариями от одной и той же пары, поэтому я использую этот код, где-то внутри кода я делаю ошибку, так как CPU составляет 100%, поэтому я пытаюсь улучшить мои функции.

x=OrdersTotal(); xx=x; //-- Count How magic number && comment are open for the same pair for( i=0;i<x;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym /*&& OrderCloseTime()==0 */){

TemMagic= OrderMagicNumber(); TemOrdComment= OrderComment(); OrdOpenPrice= OrderOpenPrice(); OrdType= OrderType(); iSameSymTotal++; // count all oopen trades from the same Symbol for( i=0;i<xx;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym ){ if ( TemMagic!= OrderMagicNumber())CounTMagic++; if (TemOrdComment!= OrderComment())CounTComment++; }} }}[/PHP]

Код выглядит следующим образом (добавил несколько комментариев, чтобы уточнить, что где хранится) :

[PHP] string uniques[][4]; ArrayResize(uniques,0);

//

//

// uniques[][0] -> Symbol

// uniques[][1] -> Магическое число

// uniques[][2] -> Комментарий

// uniques[][3] -> Количество случаев

// необходимо преобразовать в int с помощью StrToInt()

//

//

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

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES);

bool found=false;

for (int k=ArrayRange(uniques,0)-1; k>=0 && !found; k--)

if (OrderSymbol() == uniques[k][0] && OrderMagicNumber() == StrToInteger(uniques[k][1]) && OrderComment() == uniques[k][2]) { uniques[k][3] = StrToInteger(uniques[k][3])+1; found=true; }

if (!found)

{

k = ArrayRange(uniques,0);

ArrayResize(uniques,k+1);

uniques[k][0] = OrderSymbol();

uniques[k][1] = OrderMagicNumber();

uniques[k][2] = OrderComment();

uniques[k][3] = 1;

}

}

PS: размер самого массива (ArrayRange(uniques,0)) - это количество уникальных комбинаций символ + магический номер + комментарий, а uniques[nn][3] показывает, сколько случаев для данной комбинации есть в очереди заказов.

 

Спасибо большое Младен,

Если я хочу сказать, есть ли у меня более одной сделки, то это будет if (uniques[1][3] == 1), правильно?

Но это не компилируется, потому что uniques[1][3] - это строковый массив?

Должно быть так

if (StrToInteger(uniques[1][3])==1) ?

 
MiniMe:
Спасибо большое, Младен,

Если я хочу сказать, есть ли у меня более одной сделки, то это будет if (uniques[1][3] == 1), правильно?

но это не компилируется, потому что uniques[1][3] - это строковый массив?

Должно быть так

if (StrToInteger(uniques[1][3])==1) ?

Да, сначала нужно преобразовать его в целочисленный. Но тогда условие будет : if (StrToInteger(uniques[1][3])>1) и это будет для второго найденного символа + магическое число + комментарий уникальной комбинации.

 

Привет, Младен,

У меня есть последовательный Демарк... но он ошибается в фазе обратного отсчета.

Это точное объяснение из книги Джейсона Перла:

tD Setup vs. tD Sequential countdown

Как только TD Setup завершен, TD Countdown может начаться, начиная с закрытия

девятого бара TD Setup (включительно) и далее. Различие между

двумя стратегиями заключается в следующем:

- TD Setup сравнивает текущее закрытие с соответствующим закрытием

четырьмя барами ранее,

В то время как

- TD Countdown сравнивает текущее закрытие с минимумом двумя барами ранее

для потенциальной покупки, и сравнивает текущее закрытие с минимумом на два бара раньше для потенциальной продажи.

Это соотношение цен является важным отличием от TD Setdown.

важным отличием от TD Setup, потому что рынок должен

для того, чтобы TD Countdown объективно определил вероятную точку истощения для разворота тренда.

для объективного определения вероятной точки истощения при развороте тренда.

Можно начать искать первый бар обратного отсчета TD Buy.

когда сформирована установка TD Buy Setup.

Чтобы начать обратный отсчет TD Buy

После того как

TD Buy Setup установлен, ищите начало TD Buy Countdown.

Если .

девятый бар TD Buy Setup также имеет закрытие меньше или равное минимуму двумя барами ранее

ранее .

Тогда,

девятый бар TD Buy Setup становится первым баром TD Buy Countdown.

Если

Это условие не выполняется,

тогда

первый бар обратного отсчета TD Buy откладывается до тех пор, пока это не произойдет, и обратный отсчет TD Buy

продолжается до тех пор, пока не будет тринадцать закрытий, каждое из которых меньше или равно,

минимуму двумя барами ранее.

Обратный отсчет TD Sell

Как только будет создана установка TD Sell, мы можем начать искать первый

бар обратного отсчета TD Sell; бар девять установки TD Sell Setup также может быть баром

первым баром обратного отсчета TD Sell, если он удовлетворяет следующим условиям.

Требование для TD Sell Countdown

При наличии девятого бара установки TD Sell Setup должно быть закрытие, большее или равное

или равно максимуму двумя барами ранее.

На моем изображении вы можете видеть (для обратного отсчета на продажу), что бар №6 не имеет закрытия больше, чем high двумя барами ранее.... поэтому это неправильно!

Пожалуйста, можете ли вы исправить эту ошибку для обратного отсчета на покупку и продажу?

заранее спасибо

Файлы:
 

Я нашел ошибку (чертова 500 версия mt4 не создает файлы ex4), теперь все работает. Я пытался стереть сообщение, но не смог.

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

Надеюсь, вы сможете помочь мне с этим. Я хочу, чтобы точки (стрелки; aqua&yellow) инди во втором окне отображались как точки (стрелки) на закрытии (или high для сигнала покупки/low для сигнала продажи) в первом окне (главное окно графика). Я пытался часами, но я никогда не буду кодером ;-)

 
marley60:
Я нашел ошибку (чертова 500 версия mt4 не создает файлы ex4), теперь все работает. Я пытался стереть сообщение, но не смог.

Не беспокойтесь о предыдущем сообщении

По крайней мере, мы знаем еще об одной ошибке в билде 500.

 

Привет всем!

Я собрал 3-минутное видео, объясняющее мою проблему, в попытке быть более кратким и пробивным с просьбой о помощи!

Видео:2013-06-13_1517 - библиотека D.Gilberto - должно объяснить это ясно!

Я буду очень признателен за любые предложения или помощь. Я в основном хочу узнать, какой бар находится в момент пересечения всех скользящих средних, и когда следующий бар, следующий за этим, возвращается, чтобы коснуться 21 EMA - В этот момент я хочу, чтобы мой ордер был размещен на максимуме/минимуме этих диапазонов баров. Ордер должен быть выдернут на первом баре, который закроется за 60 EMA...

Я надеюсь, что это не слишком большая просьба, и я буду очень признателен, если какая-нибудь яркая искра протянет мне руку помощи!

Спасибо!

 

Кодеры

Мне нравится эта простая стратегия на основе RSI на картинке (возможно, это из TS).

Хорошая и простая и в то же время эффективная Не нужно больше объяснять, картинка стоит тысячи слов!

Возможно ли закодировать такие индикаторы (свечи RSI и осциллятор) для MT4? Или у нас уже есть такие индикаторы!

Спасибо

Файлы:
 
marley60:
Я нашел ошибку (чертова 500 версия mt4 не создает файлы ex4), теперь все работает. Я пытался стереть сообщение, но не смог.

Марли,

См. мое сообщение в разделе "Известные ошибки Metatrader". У меня и еще нескольких человек была такая же проблема.

Tzuman