BrainSystem: Разработка торговых систем и торговля - страница 15
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я заметил 1 минуту 0 секунд до конца бара.
Что вы используете для отображения этой информации?
Спасибоничего, это просто индикатор, который показывает оставшееся время до закрытия бара. вот индикатор, вы можете использовать его. некоторые стратегии, такие как CCI Вуди, используют оставшееся время до закрытия бара для открытия ордера.
Хорошо?
Камяр, спасибо миллион!!!
Также кто-нибудь знает, как добавить включение оповещения в BrainTrendSig2? Я пытался изменить скрипт и metaeditor compile test 0 ошибок и 0 предупреждений. Но он все еще не работает, и я не могу понять почему. Я знаю, что нужно изменить значение enable alerts на 1, но проблема в самом индикаторе. Он не загружается правильно.
Спасибо
//| BrainTrend2.mq4 |
//| www.forex-tsd.com |
//| Nick Bilak |
//+------------------------------------------------------------------+
#property copyright "BrainTrading Inc."
#property link "www.forex-tsd.com"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int NumBars=500;
extern int EnableAlerts=0;
extern int SignalID=0;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double spread;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_ARROW);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexArrow(0,233);
SetIndexStyle(1,DRAW_ARROW);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexArrow(1,234);
spread=MarketInfo(Symbol(),MODE_SPREAD)*Point;
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start() {
int counted_bars=IndicatorCounted();
//----
int artp=7;
double dartp=7.0;
double cecf=0.7;
int satb=0;
int Shift=0;
bool river=True;
double Emaxtra=0;
double widcha=0;
double TR=0;
double Values[100];
int glava=0;
double ATR=0;
int J=0;
double Weight=0;
double r=0;
double r1=0;
int p=0;
int Curr=0;
double Range1=0;
double s=2;
double f=10;
double val1=0;
double val2=0;
double h11=0;
double h12=0;
double h13=0;
double const=0;
double orig=0;
double st=0;
double h2=0;
double h1=0;
double h10=0;
double sxs=0;
double sms=0;
double temp=0;
double h5=0;
double r1s=0;
double r2s=0;
double r3s=0;
double r4s=0;
double pt=0;
double pts=0;
double r2=0;
double r3=0;
double r4=0;
double tt=0;
double tsig=0;
if( Bars < NumBars) satb = Bars; else satb = NumBars;
if( Close[satb - 2] > Close[satb - 1]) river = True; else river = False;
Emaxtra = Close[satb - 2];
Shift=satb-3;
while(Shift>=0) {
TR = spread+ High[Shift] - Low[Shift];
if( MathAbs(spread+ High[Shift] - Close[Shift + 1]) > TR ) TR = MathAbs(spread+ High[Shift] - Close[Shift + 1]);
if( MathAbs(Low[Shift] - Close[Shift + 1]) > TR) TR = MathAbs(Low[Shift] - Close[Shift + 1]);
if (Shift == satb - 3 ) {
for(J=0;Shift<=artp-1;J++) {
Values[J] = TR;
}
}
Values[glava] = TR;
ATR = 0;
Weight = artp;
Curr = glava;
for (J = 0;J<=artp - 1;J++) {
ATR += Values[Curr] * Weight;
Weight -= 1.0;
Curr--;
if (Curr == -1) Curr = artp - 1;
}
ATR = 2.0 * ATR / (dartp * (dartp + 1.0));
glava++;
if (glava == artp) glava = 0;
widcha = cecf * ATR;
if (river && Low[Shift] < Emaxtra - widcha) {
river = False;
Emaxtra = spread+ High[Shift];
}
if (!river && spread+ High[Shift] > Emaxtra + widcha) {
river = True;
Emaxtra = Low[Shift];
}
if (river && Low[Shift] > Emaxtra) {
Emaxtra = Low[Shift];
}
if (!river && spread+ High[Shift] < Emaxtra ) {
Emaxtra = spread+ High[Shift];
}
Range1 = iATR(NULL,0,10,Shift);
val1 = 0;
val2 = 0;
if (river) {
if (p != 1) r1 = Low[Shift] - Range1 * s / 3.0;
if (p == 1) r1 = -1.0;
if (r1 > 0) {
val1 = r1;
val2 = 0;
} else {
val1 = 0;
val2 = 0;
}
ExtMapBuffer1[Shift]=val1;
p = 1;
} else {
if (p != 2) r1 = spread+ High[Shift] + Range1 * s / 3.0;
if (p == 2) r1 = -1.0;
if (r1 > 0) {
val1 = 0;
val2 = r1;
} else {
val1 = 0;
val2 = 0;
}
ExtMapBuffer2[Shift]=val2;
p = 2;
Shift--;
}
}
if (EnableAlerts == 1)
{
if (val1 > 0 && tsig != 1)
{
tsig = 1;
// a1 = FileOpen("alert1" + SignalID,";");
Alert("BrainTrend2Sig", "Sell " ,Symbol() ," at ", Close[0] , " S/L " , val1 , " BT1 M" ,Period());
//a1=FileOpen("alert1"+ SignalID,FILE_CSV|FILE_WRITE,';');
// FileWrite(a1,"Sell " ,Symbol() ," at ", Close[0] , " S/L " , val1 , " BT1 M" ,Period());
// FileClose(a1);
}
if (val2 > 0 && tsig != 2)
{
tsig = 2;
Alert("BrainTrend2Sig", "Buy " , Symbol() , " at " ,Close[0] ," S/L " ,val2 ," BT1 M" , Period());
//a1 = FileOpen("alert1" + SignalID,";");
// a1=FileOpen("alert1"+ SignalID,FILE_CSV|FILE_WRITE,';');
// FileWrite(a1,"Buy " , Symbol() , " at " ,Close[0] ," S/L " ,val2 ," BT1 M" , Period());
//FileClose(a1);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+Я все еще надеюсь, что у нас будет советник для этой системы для сигнализации, подтверждения и для всего остального (не для торговли). В этом случае торговать по этой системе будет очень легко. Я думаю, что мы скоро получим его.
Но сейчас я думаю, как использовать эту систему без подтверждения M15 и на таймфрейме меньше H1.
Сейчас я смотрю на графики M30 и надеюсь, что это сработает.
В любом случае я буду делать форвард тест с завтрашнего дня. Но я чувствую, что нужно будет изменить некоторые правила для этой торговой стратегии.
Пожалуйста, найдите индикаторы и шаблон, которые я хочу оценить.
Я все еще надеюсь найти некоторые правила для этой системы, торгующей на таймфрейме M15 или M30.
Ну.
Просто хочу посмотреть, как это работает.
Правила #1.
Входить на BT1sig и BT2 sig. Особенно это не должно быть на одном и том же баре. И это должно быть подтверждено SAR и индикатором I-XO. Мы можем подождать еще один бар после сигнала для подтверждения от I-XO. BT1sig и BT2sig должны быть подтверждены SAR на тех же барах, что и сигналы. Например, если у нас есть сигнал на покупку от BT1sig (к примеру), мы ищем SAR. Если на том же баре с сигналом SAR восходящий тренд, то ждем BT2sig (например). Второй сигнал также должен быть подтвержден SAR. Если все в порядке, ждем подтверждения I-XO (не более чем через 1 бар после последнего сигнала). Это самый сложный случай. Конечно, если у нас есть все (два сигнала и два подтверждения на одном и том же баре), то это идеально.
Мы принимаем во внимание только полные бары.
Самый сложный случай я уже описал, и вы можете увидеть его на рисунке 1.
Выход на SAR очень прост (изображение 2).
Это очень простые и гибкие правила.
Почему правила №1?
Потому что я не уверен, что эти правила будут у нас окончательно. Все могут предложить другие правила, или я могу изменить это.
С утра в пятницу мы должны иметь следующее:
EURUSD.
покупка 1.2127 в 19:30 (20/01) и выход 1.2233 в 06:30 (23/01): +106 p.
покупка 1.2259 в 10:30 (23/01) и выход 1.2285 (ордер может быть еще открыт): +26 p.
USDCHF.
sell 1.2820 at 14:30 (20/01) and exit 1.2666 at 07:30 (23/01): +154 p.
sell 1.2628 at 10:30 (23/01) and exit 1.2233 (ордер может быть еще открыт): +54 p.
GBPUSD.
buy 1.7583 at 10:30 (20/01) and exit 1.7794 at 05:00 (23/01): +214 p.
sell 1.7763 at 08:30 (23/01) and exit 1.7798 at 10:30 (23/01): -35 p.
buy 1.7798 at 10:30 (23/01) and exit 1.7866 (ордер может быть еще открыт): +68 p.
USDJPY.
buy 155.32 at 16:30 (20/01) and exit 155.14 at 00:00 (23/01): -18 p.
sell 114.79 at 02:00 (23/01) and exit 114.78 at 10:00 (23/01): +1 p.
sell 114.30 в 10:30 (23/01) и exit 114.62 в 16:00 (23/01): -32 р.
Итого538 р.
Мне кажется, что это правило №1 слишком гибкое.
Может быть.
Я буду очень рад, если кто-нибудь предложит другие правила (с другим возможным индикатором, если таковой имеется). Но я думаю, что правила должны быть реалистичными. Например, я считал прибыль на исторических данных (это, конечно, не очень хорошо, потому что это должно быть форвард-тестирование), но я считал ее как робот (как советник, например), полностью следуя правилам. Я использовал исторические данные только для того, чтобы убедиться, что он работает.
привет newdigital
Спасибо за ваши усилия. У меня есть несколько вопросов
1.что является обязанностью стохастического индикатора в вашей системе?
2.мы должны получить сначала сигнал bt1, а затем сигнал bt2 или это может быть в любом виде?
3.что такое заполненные зоны. Я думаю, вы имеете в виду, что мы не должны торговать в зонах. хорошо?
спасибо
Вы упомянули, что сигналы bt не должны быть в одном баре. насколько я понял, мы не должны торговать в этом случае. вы бы описали это. я прав?
Я буду очень рад, если кто-нибудь оценит другие правила (с другим возможным индикатором, если таковой имеется). Но я думаю, что правила должны быть реалистичными. Например, я считал прибыль на исторических данных (это, конечно, не очень хорошо, потому что это должно быть перспективное тестирование), но я считал ее как робот (как советник, например), полностью следуя правилам. Я использовал исторические данные только для того, чтобы убедиться, что он работает.
В настоящее время я тестирую новую стратегию на Eur/Usd 1HR, используя Braintrend2, Стохастик и 2 индикатора LSMA-color. Пока что, просматривая графики истории, результаты кажутся довольно достойными. Правила довольно просты в использовании. Если бы только у меня был BraintrendSig2 с алертами, я мог бы проводить более частое тестирование. Я продолжу тестирование стратегии и скоро выложу результаты.