 |
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
LanguageSupport разработчик языка
Зарегистрирован: 18.08.2005 Сообщения: 111
|
Добавлено: Чт Окт 09, 2008 10:33 am Заголовок сообщения: Просьба о помощи |
цитата |
|
Мы постоянно стараемся улучшать встроенный в ДД компилятор языка EasyLanguage. Но чтобы работа пошла быстрее и оказала реальную помощь пользователям в разработке собственных скриптов, нам нужна ваша помощь.
ПРОСЬБА: постить в этой ветке скрипты или отрывки скриптов, которые не проходят компиляцию в ДД, а диагностика выдаваемая компилятором кажется вам неудовлетворительной и не позволяет быстро локализовать ошибку. Мы внесем соответствующие изменения в компилятор.
Наша цель в том, чтобы компилятор помогал начинающим пользователям в освоении языка и мы очень надеемся на ваше содействие! |
|
Вернуться к началу |
|
ArchangelGT Студент
Зарегистрирован: 11.01.2009 Сообщения: 24 Откуда: Кемеровская обл.(регион 42), г. Новокузнецк
|
Добавлено: Ср Апр 01, 2009 1:03 pm Заголовок сообщения: |
цитата |
|
У меня вопрос...
Почему моя стратегия открывает сделку против условия в скрипте?
Input: FastMA(27),SlowMA(198),MACDFastMA(12),MACDSlowMA(26),MacdMA(9),ProfitBuy(80),StopLossBuy(110),StopLossSell(210),ProfitSell(80);
Var:MACD1(0),MACD2(0),PriceOpen(0),LogicOpen(False),MA1(0),MA2(0),MA3(0),MA4(0),LogicOpenBuy(False),LogicOpenSell(False);
MACD1 = MACD(Close, FastMA, SlowMA);
MACD2 = XAverage(MACD1, MacdMA);
MA1 = AverageFC(close,FastMA);
MA2 = AverageFC(close,SlowMA);
MA3 = AverageFC(close,987);
MA4 = AverageFC(close,1597);
{Покупка}
If MA1 Cross Above MA2 And MACD2 > 0 And LogicOpenBuy = False And LogicOpen = False And MACD1 > MACD2 And MA2 > MA3 And MA3 > MA4 then Begin
Buy ("MA_Bay") This Bar on Close;
PriceOpen = Close;
LogicOpen = true;
LogicOpenBuy = true;
PlaySound("");
End;
If Open < PriceOpen - StopLossBuy Points And LogicOpenSell = False then Begin
ExitLong ("StopBuy") This Bar On Close;
LogicOpen = False;
LogicOpenBuy = False;
PriceOpen = 0;
PlaySound("");
End;
If Open > PriceOpen + ProfitBuy Points And LogicOpenSell = False then Begin
ExitLong This Bar On Close;
LogicOpen = False;
LogicOpenBuy = False;
PriceOpen = 0;
PlaySound("");
End;
{Продажа}
If MA1 Cross Below MA2 And MACD1 < MACD2 And MACD2 < 0 And MA3 > MA2 And MA4 > MA3 And LogicOpen = False And LogicOpenSell = False then Begin
Sell ("MA_Sell") This Bar on Close;
PriceOpen = Close;
LogicOpen = true;
LogicOpenSell = true;
PlaySound("");
End;
If Open > PriceOpen + StopLossSell Points And LogicOpenBuy = False then Begin
ExitShort ("StopSell") This Bar On Close;
LogicOpen = False;
LogicOpenSell = False;
PriceOpen = 0;
PlaySound("");
End;
If Open < PriceOpen - ProfitSell Points And LogicOpenBuy = False then Begin
ExitShort This Bar On Close;
LogicOpen = False;
LogicOpenSell = False;
PriceOpen = 0;
PlaySound("");
End;
Вот например: |
|
Вернуться к началу |
|
ArchangelGT Студент
Зарегистрирован: 11.01.2009 Сообщения: 24 Откуда: Кемеровская обл.(регион 42), г. Новокузнецк
|
Добавлено: Ср Апр 01, 2009 1:08 pm Заголовок сообщения: |
цитата |
|
Например:
23.05.2008г. Сделка в минутках по GBP/USD открылась против условия... На MACD plot1 ниже plot2 соответственно MACD1 и MACD2, а сделка отврывается на покупку...
Жаль почему то скришот не прикрепился... |
|
Вернуться к началу |
|
ArchangelGT Студент
Зарегистрирован: 11.01.2009 Сообщения: 24 Откуда: Кемеровская обл.(регион 42), г. Новокузнецк
|
Добавлено: Ср Апр 01, 2009 1:55 pm Заголовок сообщения: |
цитата |
|
Приношу свои извенения... Не доглядел...
Забыл перииминовать переменные в индикаторе... Они зависисли от параметров средних поэтому и при оптимизации параметры MACD не давали результатов... |
|
Вернуться к началу |
|
ArchangelGT Студент
Зарегистрирован: 11.01.2009 Сообщения: 24 Откуда: Кемеровская обл.(регион 42), г. Новокузнецк
|
Добавлено: Вт Апр 07, 2009 3:00 pm Заголовок сообщения: |
цитата |
|
Есть проблемы с датой...
Допустим мне нада чтобы стратегия применяла разные алгоритмы для летнего и зимнено времени. Тут можно было бы поступить так зимнее время если данное время бара больше 30го октября и меньше 20 марта и наоборот для летнего. Но проблема в том что нельзя указать просто день и месяц, надо ещё указывать год... А если ввести год то день и месяц опускаются...
И ещё с временем проблема...
Допустим моей стратегии надо производить определенные действия каждае 15 минут, так как дата записывается в виде числа 0000 то + 15мин. будет 0015 а если попадается такой случай как 0050 то получается 0065 а должно получится 0105... И по этому при наступлении 0100 срабатывает условие так как 0065 меньше 0100...
Может всётаки я недостаточно внимательно смотрел и есть варианты на такие случаи... Если нет то надо что то делать... Хотя бы даты ввести без года... |
|
Вернуться к началу |
|
ArchangelGT Студент
Зарегистрирован: 11.01.2009 Сообщения: 24 Откуда: Кемеровская обл.(регион 42), г. Новокузнецк
|
Добавлено: Сб Апр 11, 2009 11:12 am Заголовок сообщения: |
цитата |
|
Всё разобрался с датами и временем... В пользовательских функциях есть все необходимые команды  |
|
Вернуться к началу |
|
ArchangelGT Студент
Зарегистрирован: 11.01.2009 Сообщения: 24 Откуда: Кемеровская обл.(регион 42), г. Новокузнецк
|
Добавлено: Вс Июн 21, 2009 12:34 am Заголовок сообщения: |
цитата |
|
Почему не работает этот скрипт?
Input:Price((H+L)/2),Length(288),LengthMon(252),Lotts(1),Profit(150),SteepLoss(45),TrailStop(40);
Var:DayHigh(0),DayLow(0),BuyTrail(False),SellTrail(False),ActPrice(0),NewActPrice(0);
If MarketPosition = 0 Then begin BuyTrail = False; SellTrail = False; end;
If time=Sess1StartTime and MarketPosition = 0 then begin
DayHigh = Highest(Price,Length);
DayLow = Lowest(Price,Length);
If DayOfWeek = 2 then Begin
DayHigh = Highest(Price,LengthMon);
DayLow = Lowest(Price,LengthMon);
end;
end;
If Price > DayHigh+5 points and MarketPosition = 0 then begin
Buy ("Buy") Lotts Contracts This Bar on Close;
ExitLong ("BuyStop") Lotts Contracts Next Bar at DayLow Stop;
Exitlong ("BuyLimit") Lotts Contracts Next Bar at DayHigh+Profit points Limit;
End;
If Price < DayLow-5 points and MarketPosition = 0 then begin
Sell ("Sell") Lotts Contracts This Bar on Close;
ExitShort ("SellStop") Lotts Contracts Next Bar at DayHigh Stop;
ExitShort ("SellLimit") Lotts Contracts Next Bar at DayLow-Profit points Limit;
End;
If MarketPosition = 1 and Price > DayHigh+SteepLoss points and BuyTrail = False then begin
ExitLong ("BuyTrailStop") Lotts Contracts Next Bar at DayHigh+5 points Stop;
Exitlong ("BuyLimit") Lotts Contracts Next Bar at DayHigh+Profit points Limit;
BuyTrail = True; ActPrice=high-TrailStop points;
End;
If MarketPosition = -1 and Price < DayLow-SteepLoss points and SellTrail = False then begin
ExitShort ("SellTrailStop") Lotts Contracts Next Bar at DayLow-5 Stop;
ExitShort ("SellLimit") Lotts Contracts Next Bar at DayLow-Profit points Limit;
SellTrail = True; ActPrice=low+TrailStop points;
End;
If BuyTrail=True then begin
NewActPrice=high-TrailStop points;
If NewActPrice > ActPrice Then ActPrice = NewActPrice;
ExitLong("BuyTrailStop") Next Bar at ActPrice Stop;
end;
If SellTrail=True then begin
NewActPrice=low+TrailStop points;
If NewActPrice < ActPrice Then ActPrice = NewActPrice;
ExitShort("SellTrailStop") Next Bar at ActPrice Stop;
end;
Компиляцию проходит нормально... А когда применяю то выкидывает окно - произошла ошибка при вычислении индикатора. Индикатор будет выключен...
Окно называется - Sentinel Spore |
|
Вернуться к началу |
|
ArchangelGT Студент
Зарегистрирован: 11.01.2009 Сообщения: 24 Откуда: Кемеровская обл.(регион 42), г. Новокузнецк
|
Добавлено: Вс Июн 21, 2009 4:26 am Заголовок сообщения: |
цитата |
|
Нашел ошибку... Как всегда невнимательность...
Но вот странно почему проходит компиляцию при некоректно заполненом операторе...
If DayOfWeek = 2 then Begin
Не указал дату
If DayOfWeek(Date) = 2 then Begin |
|
Вернуться к началу |
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщению Вы можете загружать файлы
|
|