脑系统。交易系统开发和交易 - 页 15 1...8910111213141516171819202122...68 新评论 Arta2015 2006.01.22 22:41 #141 jpsdyb: 我注意到离小节结束还有1分钟0秒。你是用什么来显示这个信息的呢? 谢谢你 没什么,这只是一个指标,它显示的是到收盘时的剩余时间。这里有一个指标,你可以使用它。一些策略,如Woodi's CCI使用到收盘时的剩余时间来开仓。 好吗? 附加的文件: b-clock_modified.mq4 2 kb jpsdyb 2006.01.23 09:50 #142 卡米亚尔,非常感谢 也有人知道如何在BrainTrendSig2中添加启用警报? 我试着修改了脚本和元编辑器的编译测试,0个错误和0个警告。但它仍然不能工作,我很困惑为什么。我知道要把启用警报改为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); } //+------------------------------------------------------------------+ BrainSystem: Trading System Development BrainTrend Alert After Candle 如何编码? Sergey Golubev 2006.01.23 12:53 #143 我仍然有一个希望,那就是我们将为这个系统提供EA,用于报警、确认和一切(不是用于交易)。在这种情况下,使用这个系统进行交易将非常容易。我想我们很快就会有。 但现在我在考虑如何在没有M15确认的情况下,在低于H1的时间框架上使用这个系统。 现在我正在看M30图表,希望它能发挥作用。 无论如何,我将从明天开始做前瞻性测试。但我觉得有必要改变这个交易策略 的一些规则。 附加的文件: 1_23.gif 30 kb 2_16.gif 31 kb 3_6.gif 32 kb 4_4.gif 30 kb Sergey Golubev 2006.01.23 13:21 #144 请找到我想评估的指标和模板。 我仍然希望为这个系统在M15或M30时间框架上的交易找到一些规则。 附加的文件: indicators.zip 16 kb bt7_m30.zip 4 kb Sergey Golubev 2006.01.23 20:17 #145 好吧。 只是想看看它是如何运作的。 规则#1。 在BT1sig和BT2 sig上输入。特别是不应该在同一个柱子上。它应该得到SAR和I-XO指标的确认。我们可以在信号发出后再等一个柱子,等待I-XO的确认。BT1sig和BT2sig应该在信号的同一条柱子上被SAR确认。例如,如果我们有来自BT1sig的买入信号(例如),我们正在寻找SAR。如果在与信号相同的条形图上的SAR是上升趋势,我们要等待BT2sig(例如)。第二个信号也应该被SAR所确认。如果一切正常,我们将等待I-XO的确认(不超过最后一个信号后的1个柱子)。这是最困难的情况。当然,如果我们拥有一切(两个信号和两个确认在同一个柱子上),这是完美的。 我们只考虑到了完整的条形。 最困难的情况我已经描述过了,你可以从图片1中看到它。 退出是在SAR非常简单(图片2)。 这是很简单和灵活的规则。 为什么是1号规则? 因为我不确定我们最终会有这样的规则。每个人都可以建议其他的规则,或者我可以改变这个规则。 附加的文件: 2_17.gif 28 kb 1_24.gif 28 kb Sergey Golubev 2006.01.23 20:38 #146 从周五早上开始,我们应该有以下情况。 欧元兑美元。 在19:30(20/01)买入1.2127,在06:30(23/01)退出1.2233。+106 p. 在10:30 (23/01)买入1.2259,并退出1.2285(订单可能仍在进行)。+26 p. USDCHF. 在14:30(20/01)卖出1.2820,在07:30(23/01)退出1.2666。+154 p. 在10:30 (23/01)卖出1.2628,退出1.2233 (订单可能仍在开启中)。+54 p. 英镑兑美元。 在10:30(20/01)买入1.7583,在05:00(23/01)退出1.7794。+214 p. 在08:30 (23/01)卖出1.7763,在10:30 (23/01)退出1.7798:-35 点。 在10:30 (23/01)买入1.7798并退出1.7866(订单可能仍未完成)。+68 p. USDJPY. 在16:30(20/01)买入155.32,在00:00(23/01)退出155.14:-18 点。 在02:00 (23/01)卖出114.79,在10:00 (23/01)退出114.78。+1 p. 在10:30(23/01)卖出114.30,在16:00(23/01)退出114.62:-32 点。 总共538 个P。 我认为这个规则#1太灵活了。 可能是。 BrainSystem: Trading System Development FiboPivot和RSI Avalanche Sergey Golubev 2006.01.23 20:50 #147 如果有人估计出其他的规则(如果有其他可能的指标),我会很高兴。但我认为这些规则应该是现实的。例如,我根据历史数据计算利润(这当然不好,因为它应该是预先测试),但我把它作为一个机器人(例如EA)完全按照规则计算。我使用历史数据只是为了确定它是否有效。 Arta2015 2006.01.23 21:56 #148 嗨,newdigital 谢谢你的努力,我有一些问题 1.你的系统中的随机指标 的职责是什么? 2.我们应该先得到bt1的信号,然后再得到bt2的信号,还是可以以任何形式出现? 3.填充区到底是什么,我想你的意思是我们不应该在填充区进行交易,好吗? 谢谢 Arta2015 2006.01.23 22:04 #149 你提到bt信号不应该出现在同一个柱子里。就我所知,我们不应该在这种情况下进行交易,你会描述吗? jpsdyb 2006.01.24 01:49 #150 newdigital: 如果有人估计出其他的规则(如果有其他可能的指标),我将非常高兴。但我认为这些规则应该是现实的。例如,我根据历史数据计算利润(这当然不好,因为它应该是前瞻性测试),但我把它作为一个机器人(例如EA)完全按照规则计算。我使用历史数据只是为了确定它是否有效。 我目前正在使用Braintrend2、Stochastics 和2个LSMA-color指标在Eur/Usd 1HR上测试一个新策略。到目前为止,通过历史图表,结果似乎是相当值得的。规则使用起来相当简单。如果有BraintrendSig2的提醒,我可以做更频繁的测试。我将继续测试策略并很快公布结果。 1...8910111213141516171819202122...68 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我注意到离小节结束还有1分钟0秒。
你是用什么来显示这个信息的呢?
谢谢你没什么,这只是一个指标,它显示的是到收盘时的剩余时间。这里有一个指标,你可以使用它。一些策略,如Woodi's CCI使用到收盘时的剩余时间来开仓。
好吗?
卡米亚尔,非常感谢
也有人知道如何在BrainTrendSig2中添加启用警报? 我试着修改了脚本和元编辑器的编译测试,0个错误和0个警告。但它仍然不能工作,我很困惑为什么。我知道要把启用警报改为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);
}
//+------------------------------------------------------------------+我仍然有一个希望,那就是我们将为这个系统提供EA,用于报警、确认和一切(不是用于交易)。在这种情况下,使用这个系统进行交易将非常容易。我想我们很快就会有。
但现在我在考虑如何在没有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号规则?
因为我不确定我们最终会有这样的规则。每个人都可以建议其他的规则,或者我可以改变这个规则。
从周五早上开始,我们应该有以下情况。
欧元兑美元。
在19:30(20/01)买入1.2127,在06:30(23/01)退出1.2233。+106 p.
在10:30 (23/01)买入1.2259,并退出1.2285(订单可能仍在进行)。+26 p.
USDCHF.
在14:30(20/01)卖出1.2820,在07:30(23/01)退出1.2666。+154 p.
在10:30 (23/01)卖出1.2628,退出1.2233 (订单可能仍在开启中)。+54 p.
英镑兑美元。
在10:30(20/01)买入1.7583,在05:00(23/01)退出1.7794。+214 p.
在08:30 (23/01)卖出1.7763,在10:30 (23/01)退出1.7798:-35 点。
在10:30 (23/01)买入1.7798并退出1.7866(订单可能仍未完成)。+68 p.
USDJPY.
在16:30(20/01)买入155.32,在00:00(23/01)退出155.14:-18 点。
在02:00 (23/01)卖出114.79,在10:00 (23/01)退出114.78。+1 p.
在10:30(23/01)卖出114.30,在16:00(23/01)退出114.62:-32 点。
总共538 个P。
我认为这个规则#1太灵活了。
可能是。
如果有人估计出其他的规则(如果有其他可能的指标),我会很高兴。但我认为这些规则应该是现实的。例如,我根据历史数据计算利润(这当然不好,因为它应该是预先测试),但我把它作为一个机器人(例如EA)完全按照规则计算。我使用历史数据只是为了确定它是否有效。
嗨,newdigital
谢谢你的努力,我有一些问题
1.你的系统中的随机指标 的职责是什么?
2.我们应该先得到bt1的信号,然后再得到bt2的信号,还是可以以任何形式出现?
3.填充区到底是什么,我想你的意思是我们不应该在填充区进行交易,好吗?
谢谢
你提到bt信号不应该出现在同一个柱子里。就我所知,我们不应该在这种情况下进行交易,你会描述吗?
如果有人估计出其他的规则(如果有其他可能的指标),我将非常高兴。但我认为这些规则应该是现实的。例如,我根据历史数据计算利润(这当然不好,因为它应该是前瞻性测试),但我把它作为一个机器人(例如EA)完全按照规则计算。我使用历史数据只是为了确定它是否有效。
我目前正在使用Braintrend2、Stochastics 和2个LSMA-color指标在Eur/Usd 1HR上测试一个新策略。到目前为止,通过历史图表,结果似乎是相当值得的。规则使用起来相当简单。如果有BraintrendSig2的提醒,我可以做更频繁的测试。我将继续测试策略并很快公布结果。