//-------------------------------------------------------------------- switch (Period()) // 设置要检查的条数 { case 1: History = 30; break; // Period 1 minute case 5: History = 24; break; // 5分钟期限 case 15: History = 24; break; // 15分钟期限 case 30: History = 24; break; // Period 30 minutes case 60: History = 24; break; // 一个小时的周期 case 240: History = 30; break; // Period 4-hour case 1440: History = 22; break; // Daily period 默认情况下:Alert("选择M1至D1期间。"); break; //每小时期间 } Set_SL[History*Depth]=1.0*Level*Point。 Alert("Init:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);//特别显示一下:它显示(比方说)0,0001 //--------------------------------------------------------------------//---- return(0); } //+------------------------------------------------------------------+ //|自定义指标去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|自定义指标迭代函数| //+------------------------------------------------------------------+ int start() { Alert("Start:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);//而这已经显示了2147483647 return(0); }
这里是指标中定义的所有内容。
#property indicator_buffers 8 // 缓冲区的数量
SetIndexBuffer(1,Set_SL); // 阵列的分配。
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); //线条样式
你不需要为指标缓冲区定义SIZE!
晚上好。请教--在我的专家顾问中,在成功平仓一笔盈利的交易后,会在与前一笔交易相同的方向上重新开仓(当然,在未来会变得无利可图)。我怎样才能禁止重开这种错误的交易?
移除你的交易以这种方式打开的条件,并插入你希望它们被打开的条件。
而阵列的大小将是一个好的起点。
这里是所有,在指标中定义的内容。
#property indicator_buffers 8 // 缓冲区的数量
SetIndexBuffer(1,Set_SL); // 阵列的分配
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); //线条样式
你不需要为指标缓冲区定义SIZE!
你不需要为指标缓冲区定义SIZE!
没有必要。它指的是缓冲区的双倍Set_SL[]。
没有必要。它指的是缓冲区的双倍Set_SL[]。
所以我仍然有在22.03.2009 16:05(前一页)这里发布的问题。是的,这里有一个补充:这都是在周末,即没有TICKS。
所以我仍然有一个问题。
>>把整个代码放在那里,让我们看看我们是否能弄清楚它。
晚上好。请您告诉我--在我的专家顾问中,在成功平仓一笔盈利的交易后,会在与前一笔交易相同的方向重新开仓(当然,后来变得无利可图)。我怎样才能禁止重开这种错误的交易?
检查最后完成的交易就可以了。但你必须为还没有历史的时候提供资金。
这就是指标中所定义的全部内容。
#property indicator_buffers 8 // 缓冲区的数量
SetIndexBuffer(1,Set_SL); //分配一个数组
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); //线条样式
你不需要为指标缓冲区定义SIZE!
这在原代码中是不存在的。如果有的话,原因是别的。我们应该翻阅整个代码。
把整个代码贴出来,让我们试着去弄清楚
我只在代码中留下了(为简单起见)构成问题的内容。可以说,让我们把指标和看到的问题。
//+------------------------------------------------------------------+
//| iK_exp_stat_v30.mq4 !
//| 伊万-卡茨科
//| |
//+------------------------------------------------------------------+
#财产版权 "Ivan Katsko"
#属性链接""
#property indicator_separate_window // 在一个单独的窗口中显示
#property indicator_buffers 8 // 缓冲区的数量
#property indicator_color1 DeepPink // 第一行的颜色。
#property indicator_color2 Purple // 第二行的颜色。
#property indicator_color3 Red // 第三行的颜色。
#property indicator_color4 LawnGreen // 第四行的颜色
#property indicator_color5 Gold // 第五行的颜色。
#property indicator_color6 Blue // 第六行的颜色。
#property indicator_color7 SteelBlue // 第七条线的颜色
#property indicator_color8 Lime //第八行的颜色。
外在的内在的
Depth=1; // 历史的深度:1 - 在历史值上。
extern double Level=10; // Minimum level SL/TP
int History; // 计算历史中的条数。
双
Value_TP[]; // 阵列--获利值
Av_Sum_TP[], // 阵列 - 平均获利金额
Sum_na_TP[], // 数组--获利的增量
Algoritm[], // Algorithm:1--"今天和昨天一样",-1--"今天和昨天不一样"
方向[], // 订单的方向:1 - 买入,-1 - 卖出
Sum_TP[], // 数组 -- 递增的适应性获利金额
Set_TP[], // 设定获利。
Set_SL[]; // 设置止损
//+------------------------------------------------------------------+
//|自定义指标初始化函数
//+------------------------------------------------------------------+
int init()
{
//--------------------------------------------------------------------
SetIndexBuffer(0,Set_TP); // 阵列的分配 Swap Up
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,1); //线条样式
SetIndexBuffer(1,Set_SL); // 赋值数组摆动向下
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); //线条样式
SetIndexBuffer(2,Sum_TP); // 将数组分配给缓冲区。
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2); //线条样式
SetIndexBuffer(3,Direction); // 将一个数组分配给缓冲区。
SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,4); //线条风格
SetIndexBuffer(4,Algoritm); // 将一个数组分配给缓冲区。
SetIndexStyle(4,DRAW_LINE,STYLE_SOLID,1); //线条风格
SetIndexBuffer(5,Value_TP); // 将一个数组分配给缓冲区。
SetIndexStyle(5,DRAW_HISTOGRAM,STYLE_SOLID,2); //线条样式
SetIndexBuffer(6,Sum_na_TP); // 将一个数组分配给缓冲器。
SetIndexStyle(6,DRAW_LINE,STYLE_SOLID,2); //线条样式
SetIndexBuffer(7,Av_Sum_TP); // 将一个数组分配给缓冲区。
SetIndexStyle(7,DRAW_HISTOGRAM,STYLE_SOLID,2); //线条样式
//--------------------------------------------------------------------
switch (Period()) // 设置要检查的条数
{
case 1: History = 30; break; // Period 1 minute
case 5: History = 24; break; // 5分钟期限
case 15: History = 24; break; // 15分钟期限
case 30: History = 24; break; // Period 30 minutes
case 60: History = 24; break; // 一个小时的周期
case 240: History = 30; break; // Period 4-hour
case 1440: History = 22; break; // Daily period
默认情况下:Alert("选择M1至D1期间。"); break; //每小时期间
}
Set_SL[History*Depth]=1.0*Level*Point。
Alert("Init:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);//特别显示一下:它显示(比方说)0,0001
//--------------------------------------------------------------------//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
Alert("Start:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);//而这已经显示了2147483647
return(0);
}