Попробовал тут на досуге набросать на EL купленную нами за плюсики системку… )
smart-lab.ru/blog/102934.php
smart-lab.ru/blog/103636.php
К сожалению, проверить сейчас на омеге или МЧ не могу, поэтому если у кого в данный момент есть возможность, прогоните, интересно что получилось… И особенно, если вдруг кто ошибки в коде найдёт, пишите.
Итак, выложено было, по сути, 2 системы...
Первый вариант кода был выложен по ошибке, как заявил сам автор (разница между ними минимальна).
1.
pastebin.com/JvTKu5w5
2.
pastebin.com/hcrjuXgE
Попробую на рис. показать что я понял из кода (не исключаю что я в чём-то ошибаюсь). Сорри за качество, не художник.
1. (выложенная по ошибке)
2.
______________________________________________________
Коды.
1.
Inputs: Longs(True), Shorts(True), StopLoss(1000), TakeProfit(5000), LenL(40), LenS(40), StrongInx(10);
Variables: mp(0), HHCounter(0), LLCounter(0);
mp = MarketPosition;
if Close[1] > Highest(High, LenL)[2] then
begin
HHCounter = HHCounter + 1;
LLCounter = 0;
end;
if Close[1] < Lowest(Low, LenS)[2] then
begin
LLCounter = LLCounter + 1;
HHCounter = 0;
end;
if mp = 0 then
begin
if HHCounter >= StrongInx then
begin
if Shorts And Close < Lowest(Low, LenS)[1] then
begin
Sell («S») Next Bar at Market;
end;
end
else if LLCounter >= StrongInx then
begin
if Longs And Close > Highest(High, LenL)[1] then
begin
Buy («B») Next Bar at Market;
end;
end;
end;
if mp = 1 then
begin
ExitLong («LStop») EntryPrice — StopLoss Stop;
ExitLong («Ltp») EntryPrice + TakeProfit Limit;
end;
if mp = -1 then
begin
ExitShort («SStop») EntryPrice + StopLoss Stop;
ExitShort («Stp») EntryPrice — TakeProfit Limit;
end;
{ SetExitOnClose;}
==================================================
2.
Inputs: Longs(True), Shorts(True), StopLoss(1000), TakeProfit(5000), LenL(40), LenS(40), StrongInx(10);
Variables: mp(0), HHCounter(0), LLCounter(0);
mp = MarketPosition;
if Close[1] > Highest(High, LenL)[2] then
begin
HHCounter = HHCounter + 1;
LLCounter = 0;
end;
if Close[1] < Lowest(Low, LenS)[2] then
begin
LLCounter = LLCounter + 1;
HHCounter = 0;
end;
if mp = 0 then
begin
if HHCounter >= StrongInx then
begin
if Longs And Close > Highest(High, LenL)[1] then
begin
Buy («B») Next Bar at Market;
end;
end
else if LLCounter >= StrongInx then
begin
if Shorts And Close < Lowest(Low, LenS)[1] then
begin
Sell («S») Next Bar at Market;
end;
end;
end;
if mp = 1 then
begin
ExitLong («LStop») EntryPrice — StopLoss Stop;
ExitLong («Ltp») EntryPrice + TakeProfit Limit;
end;
if mp = -1 then
begin
ExitShort («SStop») EntryPrice + StopLoss Stop;
ExitShort («Stp») EntryPrice — TakeProfit Limit;
end;
{ SetExitOnClose;}
==============================================
Всё, пробуйте.
p.s. Кавычки, возможно, придётся поменять после копипаста.