Спрашивайте! - страница 62

 
niva:
У меня есть таблица данных, двумерная, хранящаяся в двумерном массиве. Я хочу выполнить некоторые манипуляции, например, сортировку по любому столбцу из этой таблицы данных.

Функция ArraySort(), в инструкции, может сортировать массивы по 1-му измерению. Я не понимаю, как это может работать.

Есть ли какие-нибудь предложения по сортировке таблиц данных в MetaTrader?

Все стандартные функции сортировки массивов, о которых я когда-либо слышал, сортируют только по первому измерению. Возможно, вам придется создать свою собственную. Или посмотрите в Интернете продвинутые алгоритмы сортировки на C++, если вы еще не пробовали.

 

Использование нескольких советников на нескольких счетах

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

Я новичок в Metatrader4 (и валютной торговле). Я хотел бы узнать, можно ли тестировать несколько советников на нескольких демо-счетах с одинаковым размером депозита, используя одну и ту же валютную пару на одной платформе Metatrader4?

Например, у меня есть пять различных советников, каждый из которых выделен на свой собственный демо-счет по $1000 каждый с использованием только GBPUSD на одной платформе, чтобы я мог сравнить их производительность в течение определенного периода времени.

Когда я попытался сделать это в StrategyBuilder - Metatrader - Demo, я обнаружил, что установка советника с одного счета переносится на другой счет, когда я вхожу в следующий счет, или когда я отключаю один советник на перенесенном счете, чтобы установить другой советник, советник на первом счете отключается.

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

Значит ли это, что я должен использовать бэктестинг? Если да, пожалуйста, предоставьте информацию о том, как начать.

Большое спасибо за любую помощь.

Freedom FX

 

Freedom FX,

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

 

Рянклефас,

Вот код, который вводит отложенные ордера на основе текущего ценового действия (bid/ask)

Мой вопрос:

Я хочу, чтобы отложенные ордера выставлялись не по текущей цене, а по Daily pivot.

Не могли бы вы указать мне на примеры, где я могу попытаться разобраться в этом, или есть какая-то логика разворота high low, которую я могу включить в этот код и указать на нее как на ссылку вместо bid/ask?

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

}

OrderSend(Symbol(),

OP_BUYSTOP,

lots,

Ask+open_long*Point, // Spread included

slippage,

Bid+(open_long-stop_long)*Point,

Bid+(open_long+take_profit)*Point,

NULL,

magic,

0,

FireBrick);

OrderSend(Symbol(),

OP_SELLSTOP,

lots,

Bid-open_short*Point,

slippage,

Ask-(open_short-stop_short)*Point,

Ask-(open_short+take_profit)*Point,

NULL,

magic,

0,

FireBrick);

clear_to_send = false;

}

 

noLagMACD

Может ли кто-нибудь сказать мне, что не так с этим куском кода. Я пытаюсь внедрить noLagMACD в Makegrid193. Он компилируется и запускается, только не изменяет настройки myWantLongs и myWantShorts вообще, поэтому ордера не генерируются.

if(UseMACDNoLag)

{

int limit = Bars;

myWantLongs = false;

myWantShorts = false;

for(i=0; i<limit; i++)

{

FastEMABuffer=iMA(NULL,PERIOD_M5,emaFast,0,MODE_EMA,PRICE_CLOSE,i);

SlowEMABuffer=iMA(NULL,PERIOD_M5,emaSlow,0,MODE_EMA,PRICE_CLOSE,i);

}

for(i=0; i<limit; i++)

{

EMA=iMAOnArray(FastEMABuffer,0,emaFast,0,MODE_EMA,i);

ZeroLagEMAp=FastEMABuffer+FastEMABuffer-EMA;

EMA=iMAOnArray(SlowEMABuffer,0,emaSlow,0,MODE_EMA,i);

ZeroLagEMAq=SlowEMABuffer+SlowEMABuffer-EMA;

MACDBuffer=ZeroLagEMAp - ZeroLagEMAq;

}

double tester1, tester2, tester3;

tester1 = MACDBuffer[0];

tester2 = MACDBuffer[1];

tester3 = MACDBuffer[2];

if( (tester1 > 0.0) && (tester2 <= 0.0) ) // перекреститься

{

CloseAllPendingOrders();

if(CloseOpenPositions == true)

{

ClosePendingOrdersAndPositions();

}

if(wantLongs==true)

{

myWantLongs = true;

}

myWantShorts = false;

}

if( (tester1 = 0.0) ) // крест вниз

{

CloseAllPendingOrders();

if(CloseOpenPositions == true)

{

ClosePendingOrdersAndPositions();

}

if(wantShorts==true)

{

myWantShorts = true;

}

myWantLongs = false;

}

if( (tester1 > 0.0) && (tester2 > 0.0) && (tester3 > 0.0) && (wantLongs==true) ) // намного больше нуля

{

myWantLongs = true;

}

if( (tester1 < 0.0) && (tester2 < 0.0) && (tester3 < 0.0) && (wantShorts==true) ) // значительно ниже нуля

{

myWantShorts = true;

}

}

 

Не волнуйтесь.

Я открыл для себя Time[] и iComplex, и тот беспорядок, который я разместил раньше, превратился в это.

if(UseMACDNoLag)

{

if(newbar != Time[0])

{

newbar=Time[0];

myWantLongs = false;

myWantShorts = false;

MACD_Main = iCustom(NULL, 0, "ZeroLag MACD", FastEMA, SlowEMA, SignalEMA, 0, 1);

if(MACD_Main > 0)

{

if(!MACDup)

{

if(CloseOpenPositions == true)

{

ClosePendingOrdersAndPositions();

}

else

{

CloseAllPendingOrders();

}

}

MACDup = true;

myWantShorts = false;

if(wantLongs==true)

{

myWantLongs = true;

}

}

if(MACD_Main < 0)

{

if(MACDup)

{

if(CloseOpenPositions == true)

{

ClosePendingOrdersAndPositions();

}

else

{

CloseAllPendingOrders();

}

}

MACDup = false;

myWantLongs = false;

if(wantShorts==true)

{

myWantShorts = true;

}

}

}

}

Это так весело!!! Если я получу хорошие результаты с этим советником, я опубликую их.

 
proverbs:
Ryanklefas,

Вот код, который вводит отложенные ордера на основе текущего ценового действия (bid/ask)

Мой вопрос:

Я хочу, чтобы отложенные ордера выставлялись на основе дневного разворота, а не текущей цены.

Не могли бы вы указать мне на примеры, где я могу попытаться разобраться в этом, или есть какая-то логика high low pivot, которую я могу включить в этот код и указать на нее как на ссылку вместо bid/ask?

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

}

OrderSend(Symbol(),

OP_BUYSTOP,

lots,

Ask+open_long*Point, // Spread included

slippage,

Bid+(open_long-stop_long)*Point,

Bid+(open_long+take_profit)*Point,

NULL,

magic,

0,

FireBrick);

OrderSend(Symbol(),

OP_SELLSTOP,

lots,

Bid-open_short*Point,

slippage,

Ask-(open_short-stop_short)*Point,

Ask-(open_short+take_profit)*Point,

NULL,

magic,

0,

FireBrick);

clear_to_send = false;

}

[/code]

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

[code]

}

OrderSend(Symbol(),

OP_BUYSTOP,

лоты,

pivotLevelGoesHere,

проскальзывание,

pivotLevelGoesHere-(stop_long*Point),

pivotLevelGoesHere+(take_profit*Point),

NULL,

магия,

0,

FireBrick);

OrderSend(Symbol(),

OP_SELLSTOP,

лоты,

anotherPivotLevelGoesHere,

проскальзывание,

anotherPivotLevelGoesHere+(stop_short*Point),

anotherPivotLevelGoesHere-(take_profit*Point),

NULL,

магия,

0,

FireBrick);

clear_to_send = false;

}

 

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

Спасибо за ваше время.

 

индикатор волн эллиота

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

 
proverbs:
Я так и думал, поэтому спасибо за подтверждение. Я не уверен в логике создания разворота, так что это то, куда я буду двигаться дальше. Спасибо за ваше время.

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

http://www.forexmt4.com/

Доктор Пиппер:
У кого-нибудь есть индикатор волн Эллиота, который рисует и обозначает каждую волну? Я видел осциллятор ew и еще один, но они не подходят. может быть, даже индикатор гармонических паттернов, который рисует и обозначает каждую волну?

Может быть, вышеуказанная ссылка поможет и вам?