如何编码? - 页 268 1...261262263264265266267268269270271272273274275...347 新评论 [删除] 2011.07.31 09:52 #2671 另一个问题 所以我修改了那个Crossed函数,用MA_04_1H > MA_14_1H来代替cross == 1 ,等等......,典型地解决了这个问题。但我想知道我如何能过滤掉诸如买入、收盘、买入、收盘、买入、收盘、卖出、收盘等交易。它正在逐分蚕食余额,如-0.17,-0.18,-0.21,-0.15,等等....。 现在,我实际上是想实现一些东西,如果我买入一个较小的手数,并且获利,我就关闭该订单,并打开一个新的较大的订单,直到交叉发生...但上面的问题我似乎无法解决... 有人知道如何过滤掉那些无用的小交易吗? ashokram1 2011.07.31 17:00 #2672 需要为这一代码制定一个fl 你好。 我需要这段代码的fl #属性 indicator_separate_window #属性 indicator_buffers 8 #属性 indicator_color1 C'0x66,0xB3,0xFF'. #属性 indicator_color2 DodgerBlue #属性 indicator_color3 C'0x00,0x67,0xCE'. #属性指示器_color4 白色 #属性指示器_颜色5 C'0xFF,0x33,0x33'。 #属性指示器_color6 C'0xC4,0x00,0x00'。 #属性指示器_color7 C'0x8C,0x00,0x00'。 #属性 indicator_color8 C'0x82,0x24,0x00'。 外部int Periode = 30; 外部 bool invert_strength = FALSE; 外部字符串 CurrencyPair = ""。 extern string NOTE0 = "用大写字母输入货币对"。 extern string NOTE1 = "像EURUSD"; 外置字符串NOTE2 = "为当前符号留空"。 外部字符串NOTE3 = "如果你有一个迷你账户"。 外部字符串NOTE4 = "添加一个 \"m\" 例如EURUSDm "。 double g_ibuf_132[]; double g_ibuf_136[]; double g_ibuf_140[]; double g_ibuf_144[]; 双份g_ibuf_148[]。 双份g_ibuf_152[]。 双份g_ibuf_156[]。 双份g_ibuf_160[]。 双倍gda_unused_164[]。 int init() { SetIndexBuffer(0, g_ibuf_132); SetIndexBuffer(1, g_ibuf_136); SetIndexBuffer(2, g_ibuf_140); SetIndexBuffer(3, g_ibuf_144); SetIndexBuffer(4, g_ibuf_148); SetIndexBuffer(5, g_ibuf_152); SetIndexBuffer(6, g_ibuf_156); SetIndexBuffer(7, g_ibuf_160); SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 5, C'0x66,0xB3,0xFF')。 SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 5, DodgerBlue); SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 5, C'0x00,0x67,0xCE'); SetIndexStyle(3, DRAW_HISTOGRAM, EMPTY, 5, White); SetIndexStyle(4, DRAW_HISTOGRAM, EMPTY, 5, C'0xFF,0x33,0x33')。 SetIndexStyle(5, DRAW_HISTOGRAM, EMPTY, 5, C'0xC4,0x00,0x00'); SetIndexStyle(6, DRAW_HISTOGRAM, EMPTY, 5, C'0x8C,0x00,0x00'); SetIndexStyle(7, DRAW_HISTOGRAM, EMPTY, 5, C'0x82,0x24,0x00')。 for (int li_0 = 0; li_0 < 8; li_0++) SetIndexLabel(li_0, NULL)。 如果(CurrencyPair == "") CurrencyPair = Symbol(); 如果(iClose(CurrencyPair, 0, 0) == 0.0) CurrencyPair = Symbol(); IndicatorShortName(CurrencyPair + "(" + Periode + ")")。 返回(1)。 } int deinit() { 返回(0)。 } int start() { 双倍 ld_8; int li_0 = IndicatorCounted(); 如果 (li_0 < 0) 返回 (-1); 如果(li_0 > 0)li_0--。 for (int li_4 = Bars - li_0; li_4 >= 0; li_4--) { ld_8 = iRSI(CurrencyPair, 0, Periode, PRICE_CLOSE, li_4)。 如果(invert_strength == TRUE)ld_8 -= 2.0 *(ld_8 - 50.0)。 如果(ld_8 <= 45.0) { 如果(ld_8 42.0) drawblock(0, 0, 0, 0, 5, 0, 0, li_4); 否则 { 如果 (ld_8 38.0) drawblock(0, 0, 0, 0, 5, 0, 0, li_4); 否则 { if (ld_8 35.0) drawblock(0, 0, 0, 0, 0, 5, 0, li_4); 否则 drawblock(0, 0, 0, 0, 0, 0, 5, li_4); } } } else { 如果(ld_8 >= 55.0) { 如果(ld_8 > 55.0 && ld_8 < 57.0) drawblock(5, 0, 0, 0, 0, 0, 0, li_4); 否则 { 如果(ld_8 >= 58.0 && ld_8 < 60.0) drawblock(0, 5, 0, 0, 0, 0, 0, li_4); 否则 drawblock(0, 0, 5, 0, 0, 0, 0, li_4); } } else drawblock(0, 0, 0, 5, 0, 0, 0, li_4); } } 返回(0)。 } void drawblock(int ai_0, int ai_4, int ai_8, int ai_12, int ai_16, int ai_20, int ai_24, int ai_28, int ai_32) { g_ibuf_132[ai_32] = ai_0; g_ibuf_136[ai_32] = ai_4。 g_ibuf_140[ai_32] = ai_8。 g_ibuf_144[ai_32] = ai_12。 g_ibuf_148[ai_32] = ai_16。 g_ibuf_152[ai_32] = ai_20。 g_ibuf_156[ai_32] = ai_24。 g_ibuf_160[ai_32] = ai_28; } 或者请给我解释一下这背后的逻辑 谢谢 kr How to code? 顾比多重移动平均线 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. [删除] 2011.08.01 06:59 #2673 如何不买入、关闭、买入、关闭或卖出、关闭、卖出、关闭......。 请...我真的需要知道如何避免那些无利可图的交易... [删除] 2011.08.01 09:42 #2674 急需帮助。将指标转换为EA(自动交易)。 我是一个程序员,但是是mql4编程 的新手。 我正试图创建一个关于指标的EA(自动交易)。 我附上了该指标。这个指标给出了良好的趋势信号。 现在想做一个关于趋势信号的自动交易器。 算法。 ================================================== 如果出现下跌信号,则打开卖出订单并关闭之前的买入订单。 如果上升信号,则开立买入订单并关闭之前的卖出订单。 继续 .... ================================================== 我想把这个指标的手动交易改为自动交易。 有人能帮助我吗?我试过,但没有得到结果。 我认为这将是一个很好的自动交易商。请帮助我。 附加的文件: trendsignal_1.mq4 4 kb TomthebombNL 2011.08.04 13:51 #2675 简单的问题,找不到答案...... 谁能告诉我为什么这样做。 price = MarketInfo("GBPJPY",MODE_ASK)。 而这个却不行(当符号是一个字符串数组,第9条是 "GBPJPY "时)。 price = MarketInfo(symbol[9],MODE_ASK)。 ?? Min Li 2011.08.08 00:47 #2676 TomthebombNL: 谁能告诉我为什么这能工作。price = MarketInfo("GBPJPY",MODE_ASK)。 而这个没有(当符号是一个字符串的数组,第9个条目是 "GBPJPY "时)。 price = MarketInfo(symbol[9],MODE_ASK)。 ?? 从你提供的信息来看,我100%肯定这应该是有效的,事实上,我刚刚做了一个快速测试来证明这一点。你的代码一定有其他问题。 [删除] 2011.08.08 01:13 #2677 codersguru: jdun,最简单的方法是改变反向代码(卖出到买入&买入到卖出)。 if(signal0 < signal1 ) GlobalVariableSet("TM0",1); if(signal0 > signal1) GlobalVariableSet("TM0",0);[/CODE] To: [CODE]if(signal0 > signal1 ) GlobalVariableSet("TM0",1); if(signal0 < signal1) GlobalVariableSet("TM0",0); 很好!谢谢你提供的信息。 Min Li 2011.08.08 02:05 #2678 我认为很可能你没有把你的数组定义为字符串。 Mladen Rakic 2011.08.08 04:44 #2679 如果 "GBPJPY "是一个数组中的第9个元素,它在mql符号中的索引是8而不是9(在mql符号中数组的第一个元素的索引是0),所以在这种情况下你应该使用这种形式。 price = MarketInfo(symbol[8],MODE_ASK); 也许这就是问题所在? TomthebombNL: 谁能告诉我为什么这样做。price = MarketInfo("GBPJPY",MODE_ASK); 而这不会(当符号是一个字符串数组,第9个条目是 "GBPJPY "时)。 price = MarketInfo(symbol[9],MODE_ASK)。 ?? TomthebombNL 2011.08.12 07:05 #2680 我得到了正确的数字,但我可能在解释上犯了难,它是第10条,为了得到它,我使用了符号[9]。奇怪的是,这样做了。 high = iHigh(symbol[9], ...) 这样我就得到了高点。我的声明是。 字符串 symbol[] 或者应该是字符串[] symbol[] ? 如果我试图用Alert(symbol[9])来打印它,它也会给出一个空位,这是个很奇怪的问题......但无论如何感谢你的建议。 这是我的代码,我使用阿尔帕里5位数的经纪人(由于某些原因,警报给我的是零)。 double high,low,price,distance,plaats; int i,j,ticket, waarde; 字符串符号[]。 字符串 zoekplaatssymbol; //+------------------------------------------------------------------+ //|专家初始化函数 | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家的去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家启动功能| //+------------------------------------------------------------------+ int start() { //---- double usd=0.0; double chf=0.0; double eur=0.0; double gbp=0.0; double aud=0.0; double cad=0.0; double jpy=0.0; double nzd=0.0; symbol[21] = {"USDCHF" , "EURUSD" , "GBPUSD" , "USDJPY" , "AUDUSD" , "USDCAD" , "EURGBP" , "EURCHF" , "EURJPY" , "GBPJPY" , "GBPCHF" , "EURAUD" , "NZDUSD" , "CHFJPY" 。 "eurcad", "audcad", "audjpy", "cadjpy", "eurnzd", "audnzd", "nzdjpy" }; int total=OrdersTotal(); //zoekplaatssymbol = symbol[9]; // waarde = zoekplaats(zoekplaatssymbol); 价格 = MarketInfo(symbol[9],MODE_ASK)。 Alert(price)。 } How to code? 世界货币指数(泡沫破灭时清晰可见) 初学者的问题 MQL5 MT5 MetaTrader 1...261262263264265266267268269270271272273274275...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
另一个问题
所以我修改了那个Crossed函数,用MA_04_1H > MA_14_1H来代替cross == 1 ,等等......,典型地解决了这个问题。但我想知道我如何能过滤掉诸如买入、收盘、买入、收盘、买入、收盘、卖出、收盘等交易。它正在逐分蚕食余额,如-0.17,-0.18,-0.21,-0.15,等等....。
现在,我实际上是想实现一些东西,如果我买入一个较小的手数,并且获利,我就关闭该订单,并打开一个新的较大的订单,直到交叉发生...但上面的问题我似乎无法解决...
有人知道如何过滤掉那些无用的小交易吗?
需要为这一代码制定一个fl
你好。
我需要这段代码的fl
#属性 indicator_separate_window
#属性 indicator_buffers 8
#属性 indicator_color1 C'0x66,0xB3,0xFF'.
#属性 indicator_color2 DodgerBlue
#属性 indicator_color3 C'0x00,0x67,0xCE'.
#属性指示器_color4 白色
#属性指示器_颜色5 C'0xFF,0x33,0x33'。
#属性指示器_color6 C'0xC4,0x00,0x00'。
#属性指示器_color7 C'0x8C,0x00,0x00'。
#属性 indicator_color8 C'0x82,0x24,0x00'。
外部int Periode = 30;
外部 bool invert_strength = FALSE;
外部字符串 CurrencyPair = ""。
extern string NOTE0 = "用大写字母输入货币对"。
extern string NOTE1 = "像EURUSD";
外置字符串NOTE2 = "为当前符号留空"。
外部字符串NOTE3 = "如果你有一个迷你账户"。
外部字符串NOTE4 = "添加一个 \"m\" 例如EURUSDm "。
double g_ibuf_132[];
double g_ibuf_136[];
double g_ibuf_140[];
double g_ibuf_144[];
双份g_ibuf_148[]。
双份g_ibuf_152[]。
双份g_ibuf_156[]。
双份g_ibuf_160[]。
双倍gda_unused_164[]。
int init() {
SetIndexBuffer(0, g_ibuf_132);
SetIndexBuffer(1, g_ibuf_136);
SetIndexBuffer(2, g_ibuf_140);
SetIndexBuffer(3, g_ibuf_144);
SetIndexBuffer(4, g_ibuf_148);
SetIndexBuffer(5, g_ibuf_152);
SetIndexBuffer(6, g_ibuf_156);
SetIndexBuffer(7, g_ibuf_160);
SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 5, C'0x66,0xB3,0xFF')。
SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 5, DodgerBlue);
SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 5, C'0x00,0x67,0xCE');
SetIndexStyle(3, DRAW_HISTOGRAM, EMPTY, 5, White);
SetIndexStyle(4, DRAW_HISTOGRAM, EMPTY, 5, C'0xFF,0x33,0x33')。
SetIndexStyle(5, DRAW_HISTOGRAM, EMPTY, 5, C'0xC4,0x00,0x00');
SetIndexStyle(6, DRAW_HISTOGRAM, EMPTY, 5, C'0x8C,0x00,0x00');
SetIndexStyle(7, DRAW_HISTOGRAM, EMPTY, 5, C'0x82,0x24,0x00')。
for (int li_0 = 0; li_0 < 8; li_0++) SetIndexLabel(li_0, NULL)。
如果(CurrencyPair == "") CurrencyPair = Symbol();
如果(iClose(CurrencyPair, 0, 0) == 0.0) CurrencyPair = Symbol();
IndicatorShortName(CurrencyPair + "(" + Periode + ")")。
返回(1)。
}
int deinit() {
返回(0)。
}
int start() {
双倍 ld_8;
int li_0 = IndicatorCounted();
如果 (li_0 < 0) 返回 (-1);
如果(li_0 > 0)li_0--。
for (int li_4 = Bars - li_0; li_4 >= 0; li_4--) {
ld_8 = iRSI(CurrencyPair, 0, Periode, PRICE_CLOSE, li_4)。
如果(invert_strength == TRUE)ld_8 -= 2.0 *(ld_8 - 50.0)。
如果(ld_8 <= 45.0) {
如果(ld_8 42.0) drawblock(0, 0, 0, 0, 5, 0, 0, li_4);
否则 {
如果 (ld_8 38.0) drawblock(0, 0, 0, 0, 5, 0, 0, li_4);
否则 {
if (ld_8 35.0) drawblock(0, 0, 0, 0, 0, 5, 0, li_4);
否则 drawblock(0, 0, 0, 0, 0, 0, 5, li_4);
}
}
} else {
如果(ld_8 >= 55.0) {
如果(ld_8 > 55.0 && ld_8 < 57.0) drawblock(5, 0, 0, 0, 0, 0, 0, li_4);
否则 {
如果(ld_8 >= 58.0 && ld_8 < 60.0) drawblock(0, 5, 0, 0, 0, 0, 0, li_4);
否则 drawblock(0, 0, 5, 0, 0, 0, 0, li_4);
}
} else drawblock(0, 0, 0, 5, 0, 0, 0, li_4);
}
}
返回(0)。
}
void drawblock(int ai_0, int ai_4, int ai_8, int ai_12, int ai_16, int ai_20, int ai_24, int ai_28, int ai_32) {
g_ibuf_132[ai_32] = ai_0;
g_ibuf_136[ai_32] = ai_4。
g_ibuf_140[ai_32] = ai_8。
g_ibuf_144[ai_32] = ai_12。
g_ibuf_148[ai_32] = ai_16。
g_ibuf_152[ai_32] = ai_20。
g_ibuf_156[ai_32] = ai_24。
g_ibuf_160[ai_32] = ai_28;
}
或者请给我解释一下这背后的逻辑
谢谢
kr
如何不买入、关闭、买入、关闭或卖出、关闭、卖出、关闭......。
请...我真的需要知道如何避免那些无利可图的交易...
急需帮助。将指标转换为EA(自动交易)。
我是一个程序员,但是是mql4编程 的新手。
我正试图创建一个关于指标的EA(自动交易)。
我附上了该指标。这个指标给出了良好的趋势信号。
现在想做一个关于趋势信号的自动交易器。
算法。
==================================================
如果出现下跌信号,则打开卖出订单并关闭之前的买入订单。
如果上升信号,则开立买入订单并关闭之前的卖出订单。
继续 ....
==================================================
我想把这个指标的手动交易改为自动交易。
有人能帮助我吗?我试过,但没有得到结果。![](https://c.mql5.com/forextsd/smiles/frown.png)
我认为这将是一个很好的自动交易商。请帮助我。
简单的问题,找不到答案......
谁能告诉我为什么这样做。
price = MarketInfo("GBPJPY",MODE_ASK)。
而这个却不行(当符号是一个字符串数组,第9条是 "GBPJPY "时)。
price = MarketInfo(symbol[9],MODE_ASK)。
??
谁能告诉我为什么这能工作。
price = MarketInfo("GBPJPY",MODE_ASK)。
而这个没有(当符号是一个字符串的数组,第9个条目是 "GBPJPY "时)。
price = MarketInfo(symbol[9],MODE_ASK)。
??从你提供的信息来看,我100%肯定这应该是有效的,事实上,我刚刚做了一个快速测试来证明这一点。你的代码一定有其他问题。
jdun,
最简单的方法是改变反向代码(卖出到买入&买入到卖出)。
if(signal0 > signal1) GlobalVariableSet("TM0",0);[/CODE]
To:
[CODE]if(signal0 > signal1 ) GlobalVariableSet("TM0",1);
if(signal0 < signal1) GlobalVariableSet("TM0",0);很好!谢谢你提供的信息。
我认为很可能你没有把你的数组定义为字符串。
如果 "GBPJPY "是一个数组中的第9个元素,它在mql符号中的索引是8而不是9(在mql符号中数组的第一个元素的索引是0),所以在这种情况下你应该使用这种形式。
也许这就是问题所在?
谁能告诉我为什么这样做。
price = MarketInfo("GBPJPY",MODE_ASK);
而这不会(当符号是一个字符串数组,第9个条目是 "GBPJPY "时)。
price = MarketInfo(symbol[9],MODE_ASK)。
??我得到了正确的数字,但我可能在解释上犯了难,它是第10条,为了得到它,我使用了符号[9]。奇怪的是,这样做了。
high = iHigh(symbol[9], ...)
这样我就得到了高点。我的声明是。
字符串 symbol[] 或者应该是字符串[] symbol[] ?
如果我试图用Alert(symbol[9])来打印它,它也会给出一个空位,这是个很奇怪的问题......但无论如何感谢你的建议。
这是我的代码,我使用阿尔帕里5位数的经纪人(由于某些原因,警报给我的是零)。
double high,low,price,distance,plaats;
int i,j,ticket, waarde;
字符串符号[]。
字符串 zoekplaatssymbol;
//+------------------------------------------------------------------+
//|专家初始化函数 |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家的去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
//----
double usd=0.0;
double chf=0.0;
double eur=0.0;
double gbp=0.0;
double aud=0.0;
double cad=0.0;
double jpy=0.0;
double nzd=0.0;
symbol[21] = {"USDCHF" , "EURUSD" , "GBPUSD" , "USDJPY" , "AUDUSD" , "USDCAD" , "EURGBP" , "EURCHF" , "EURJPY" , "GBPJPY" , "GBPCHF" , "EURAUD" , "NZDUSD" , "CHFJPY" 。
"eurcad", "audcad", "audjpy", "cadjpy", "eurnzd", "audnzd", "nzdjpy" };
int total=OrdersTotal();
//zoekplaatssymbol = symbol[9];
// waarde = zoekplaats(zoekplaatssymbol);
价格 = MarketInfo(symbol[9],MODE_ASK)。
Alert(price)。
}