![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня есть таблица данных, двумерная, хранящаяся в двумерном массиве. Я хочу выполнить некоторые манипуляции, например, сортировку по любому столбцу из этой таблицы данных.
Функция 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;
}
}
}
}
Это так весело!!! Если я получу хорошие результаты с этим советником, я опубликую их.
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 и еще один, но они не подходят. может быть, даже индикатор гармонических паттернов, который рисует и маркирует каждый паттерн??????
Я так и думал, поэтому спасибо за подтверждение. Я не уверен в логике создания разворота, так что это то, куда я буду двигаться дальше. Спасибо за ваше время.
Существует множество индикаторов, рисующих развороты, которые вы можете использовать, по следующей ссылке. Или вы можете даже самостоятельно рассчитать развороты в своем советнике, но я думаю, что это было бы глупо.![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
http://www.forexmt4.com/
У кого-нибудь есть индикатор волн Эллиота, который рисует и обозначает каждую волну? Я видел осциллятор ew и еще один, но они не подходят. может быть, даже индикатор гармонических паттернов, который рисует и обозначает каждую волну?
Может быть, вышеуказанная ссылка поможет и вам?