[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 1124 1...111711181119112011211122112311241125112611271128112911301131...1145 新评论 dzhini 2011.01.12 09:16 #11231 下午好。回到我的问题上来。反向交易不起作用。在网站上找了一圈,但没有找到任何关于这个主题的内容。你能建议我做错了什么吗(仍在学习语言)。要求在单一蜡烛上触发。 extern double TP = 70; //takrofit extern double SL = 0; //stoploss extern double Lot = 0.1; double HighLevel; double LowLevel; int resBuy=0; int resSell=0; //+------------------------------------------------------------------+ //| expert initializationfunction| //+ int init() { HighLevel=High[1]; LowLevel=Low[1); return; } //+------------------------------------------------------------------+ //|专家函数 | //+------------------------------------------------------------------+ void start() { if(Bars<100 && IsTradeAllowed()==false) return; if(resBuy==0 && resSell==0 && CheckBreak() ==-) { resSell=OrderSend(Symbol(,OP_SELL,Lot,Bid,2,0,Bid -TP,"",MAGICMA,0,Red); HighLevel=LowLevel; LowLevel=Close[1]; return; } if(resBuy==0 && resSell==0 && CheckBreak()==1) { resBuy=OrderSend(Symbol(,OP_BUY,Lot,Ask,2,0,Ask + TP,",MAGICMA,0,Blue); LowLevel=HighLevel; HighLevel=Close[1]; return; } if(resBuy!=0 && resSell==0 && Close[1]<LowLevel) //------------------------------------- 对这部分感兴趣:在一个柱子上收盘和开盘 { bool closeBuy=OrderClose(resBuy, Lot, Bid, 2, Blue); // while(!IsTradeAllowed() )Sleep(100); resSell=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,0,Bid -TP,",MAGICMA,0,Red); HighLevel=LowLevel; LowLevel=Close[1]; return; } if(resSell!=0 && resBuy==0 && Close[1]>HighLevel) //------------------------------------- 对这部分感兴趣:在一个柱子上收盘和开盘 { bool closeSell=OrderClose(resSell, Lot, Ask, 0.0002, Red); // while(!IsTradeAllowed()Sleep(100); resBuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,2,0,Ask + TP,"",MAGICMA,0,Blue); LowLevel=HighLevel; HighLevel=Close[1]; return; } } //----------------------------------------------------------------- Check Low&High break (Func) double CheckBreak() { double candle=Open[1]-Close[1]; if(candle>0 && Low[1]<LowLevel) return(-1); if(candle<0 && High[1]>HighLevel) return(1); } [WARNING CLOSED!] Any newbie [Archive!] Any rookie question, [存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. [删除] 2011.01.12 10:22 #11232 大家好, 数组有一个问题: 假设 int start (){ // 函数开始 int OrdSen_1=OrderSend(Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point); //买单 if(OrdSen_1==-1){ Alert("OrdSen_1 " , GetLastError(); }// double mas1[]={}; // Array } 问题是如何将属于OrdSen_1的值 "Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point "放入数组mas1[]={},以便进一步使用,从数组中取出,或者将这些值等同于变量,供其进一步使用。可能还有更多这样的命令,以及数组。 最主要的是要理解原理。 非常感谢您的帮助和解释,最好是详细的解释 :) [删除] 2011.01.12 12:10 #11233 Techno: 外面将被删除,因为你没有使用它,即你没有从任何地方调用它,现在清楚了吗? 明白了,谢谢 :) [删除] 2011.01.12 12:11 #11234 artmedia70: 你认为这个样本如何? :))))) 有了wifi,就可以了。 galion 2011.01.12 12:58 #11235 问候。编辑器如何跟踪代码中所有使用同一变量.函数的地方? Владимир Тезис 2011.01.12 13:04 #11236 Galion: 问候。编辑器如何跟踪代码中所有使用同一变量.函数的地方? 我使用Notepad++来做这个。你所要做的就是把一个变量高亮一次,这样它就会在你的整个代码中高亮。 Владимир Тезис 2011.01.12 13:06 #11237 但是为了让Notepad++突出显示语法,你需要把它调整为MQL4语言。在这个论坛的搜索中输入Notepad++,你会发现一个已经配置好的编辑器的链接--我已经不止一次地把它贴在这里。 galion 2011.01.12 13:47 #11238 drknn: 但是为了让Notepad++突出显示语法,你需要把它调整为MQL4语言。在这个论坛的搜索中输入Notepad++,你会发现一个已经配置好的编辑器的链接--我已经不止一次地把它贴在这里。 谢谢你。安装好了,它亮起来了,更好玩了)) Владимир Тезис 2011.01.12 13:59 #11239 Galion: 谢谢你。安装好了,它亮起来了,更好玩了)) 有一个非常有趣的功能来标记找到的变量。按Ctrl+F,输入变量名称,勾选 "书签 "和 "标记找到"。然后按 "查找所有 "按钮。要删除这个,请按 "删除所有 "按钮 galion 2011.01.12 15:14 #11240 drknn: 有一个非常有趣的功能用于标记找到的变量。按Ctrl+F,输入一个变量名称,勾选 "书签 "和 "标记已找到 "框。然后按 "查找所有 "按钮。要删除它,请点击 "全部删除"。 然后双击进入代码片段)))正是我所需要的,谢谢) 1...111711181119112011211122112311241125112611271128112911301131...1145 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
下午好。回到我的问题上来。反向交易不起作用。在网站上找了一圈,但没有找到任何关于这个主题的内容。你能建议我做错了什么吗(仍在学习语言)。要求在单一蜡烛上触发。
extern double TP = 70; //takrofit
extern double SL = 0; //stoploss
extern double Lot = 0.1;
double HighLevel;
double LowLevel;
int resBuy=0;
int resSell=0;
//+------------------------------------------------------------------+
//| expert initializationfunction|
//+
int init()
{
HighLevel=High[1];
LowLevel=Low[1);
return;
}
//+------------------------------------------------------------------+
//|专家函数 |
//+------------------------------------------------------------------+
void start()
{
if(Bars<100 && IsTradeAllowed()==false) return;
if(resBuy==0 && resSell==0 && CheckBreak() ==-)
{
resSell=OrderSend(Symbol(,OP_SELL,Lot,Bid,2,0,Bid -TP,"",MAGICMA,0,Red);
HighLevel=LowLevel;
LowLevel=Close[1];
return;
}
if(resBuy==0 && resSell==0 && CheckBreak()==1)
{
resBuy=OrderSend(Symbol(,OP_BUY,Lot,Ask,2,0,Ask + TP,",MAGICMA,0,Blue);
LowLevel=HighLevel;
HighLevel=Close[1];
return;
}
if(resBuy!=0 && resSell==0 && Close[1]<LowLevel) //------------------------------------- 对这部分感兴趣:在一个柱子上收盘和开盘
{
bool closeBuy=OrderClose(resBuy, Lot, Bid, 2, Blue);
// while(!IsTradeAllowed() )Sleep(100);
resSell=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,0,Bid -TP,",MAGICMA,0,Red);
HighLevel=LowLevel;
LowLevel=Close[1];
return;
}
if(resSell!=0 && resBuy==0 && Close[1]>HighLevel) //------------------------------------- 对这部分感兴趣:在一个柱子上收盘和开盘
{
bool closeSell=OrderClose(resSell, Lot, Ask, 0.0002, Red);
// while(!IsTradeAllowed()Sleep(100);
resBuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,2,0,Ask + TP,"",MAGICMA,0,Blue);
LowLevel=HighLevel;
HighLevel=Close[1];
return;
}
}
//----------------------------------------------------------------- Check Low&High break (Func)
double CheckBreak()
{
double candle=Open[1]-Close[1];
if(candle>0 && Low[1]<LowLevel) return(-1);
if(candle<0 && High[1]>HighLevel) return(1);
}
数组有一个问题:
假设
int start (){ // 函数开始
int OrdSen_1=OrderSend(Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point); //买单
if(OrdSen_1==-1){ Alert("OrdSen_1 " , GetLastError(); }//
double mas1[]={}; // Array
}
问题是如何将属于OrdSen_1的值 "Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point "放入数组mas1[]={},以便进一步使用,从数组中取出,或者将这些值等同于变量,供其进一步使用。可能还有更多这样的命令,以及数组。 最主要的是要理解原理。
非常感谢您的帮助和解释,最好是详细的解释 :)
外面将被删除,因为你没有使用它,即你没有从任何地方调用它,现在清楚了吗?
你认为这个样本如何? :)))))
问候。编辑器如何跟踪代码中所有使用同一变量.函数的地方?
问候。编辑器如何跟踪代码中所有使用同一变量.函数的地方?
我使用Notepad++来做这个。你所要做的就是把一个变量高亮一次,这样它就会在你的整个代码中高亮。
但是为了让Notepad++突出显示语法,你需要把它调整为MQL4语言。在这个论坛的搜索中输入Notepad++,你会发现一个已经配置好的编辑器的链接--我已经不止一次地把它贴在这里。
谢谢你。安装好了,它亮起来了,更好玩了))
谢谢你。安装好了,它亮起来了,更好玩了))
有一个非常有趣的功能来标记找到的变量。按Ctrl+F,输入变量名称,勾选 "书签 "和 "标记找到"。然后按 "查找所有 "按钮。要删除这个,请按 "删除所有 "按钮
有一个非常有趣的功能用于标记找到的变量。按Ctrl+F,输入一个变量名称,勾选 "书签 "和 "标记已找到 "框。然后按 "查找所有 "按钮。要删除它,请点击 "全部删除"。
然后双击进入代码片段)))正是我所需要的,谢谢)