[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 1127 1...112011211122112311241125112611271128112911301131113211331134...1145 新评论 [删除] 2011.01.13 01:17 #11261 drknn: 非常感谢您的帮助=) Владимир Тезис 2011.01.13 03:44 #11262 Alexandr24: 非常感谢您的帮助=) 不要忘了,在测试器中,指标不会扔掉警报窗口,而是将警报信息写到日志中。用脚本来调试这样的代码片断更好--它更快。 另外,奇怪的是,指标信息在测试器中没有写到测试器日志中,而是写到了实时日志中。 T-G 2011.01.13 06:08 #11263 在测试器中测试EA 时如何考虑佣金? Виктор 2011.01.13 06:45 #11264 似乎被考虑到了,因为测试者使用了某个特定经纪商的所有设置。搜索会更准确地告诉你。 http://www.google.ru/search?as_sitesearch=mql4.com&as_q=%EA%EE%EC%E8%F1%F1%E8%FF+%E2+%F2%E5%F1%F2%E5%F0%E5 Dimka-novitsek 2011.01.13 09:45 #11265 Abzasc: 没有 "直接 "的方法来做这件事。 你可以这样做。 或者这里有另一种方法 谢谢你! Dimka-novitsek 2011.01.13 11:54 #11266 我不太明白这些条件是如何运作的。 我决定找出分形指标的工作原理,什么是MODE_UPPER和MODE_LOWER的区别,并写了以下代码 int start() {int y; y= WindowFirstVisibleBar();Alert ("y",y); for (;y>=0;y--) { double up=iFractals(Symbol(),PERIOD_M15,MODE_UPPER,y) 。 double down=iFractals(Symbol(),PERIOD_M15,MODE_LOWER,y); if (up>=1|down>=1){ Alert("Previous upper fractal is:", up, " Previous lower fractal is:", down);Alert ("y",y);}}。 WindowFirstVisibleBar()给出了图表上的条数,如果你从EA中划掉(up>=1||down>=1),这个东西就会起作用,它给出了一系列漂亮的计数条数,只是有这么多。 这就像一个||符号或,如果至少有一个条件为真,或者两个条件同时为真,操作者似乎会做括号{},对吗? 对我来说没有任何变化,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 我想我做对了,帮帮我吧!!!!!!! [WARNING CLOSED!] Any newbie [存档!]纯数学、物理学、化学等:与贸易没有任何关系的大脑训练问题 [Archive!] Pure mathematics, physics, Роман 2011.01.13 11:57 #11267 Dimka-novitsek: 我不太明白这些条件是如何运作的。 我决定了解分形指标的工作原理,MODE_UPPER和MODE_LOWER之间有什么区别。 int start() {int y; y= WindowFirstVisibleBar();Alert("y",y)。 for (;y>=0;y--) { double up=iFractals(Symbol(),PERIOD_M15,MODE_UPPER,y); double down=iFractals(Symbol(),PERIOD_M15,MODE_LOWER,y)。 如果(上>=1||下>=1){ Alert("Previous upper fractal is:", up, " Previous lower fractal is:", down);Alert("y",y);}}。 WindowFirstVisibleBar()给出了图表上的条数,如果你划掉(up>=1|down>=1),这个东西就能发挥作用,它给出了一系列漂亮的计算条数,但有很多条数。 这就像一个||符号或,如果至少有一个条件为真,或者两个条件同时为真,操作者似乎会做括号{},对吗? 对我来说没有任何变化,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 我认为一切都很正确。帮助我!!!!!!! 正常的代码地方通过反击 - M - 更快的反应......没有感叹词。 Dimka-novitsek 2011.01.13 12:03 #11268 通过counter-alt - M - 还有更多细节? [删除] 2011.01.13 12:18 #11269 Dimka-novitsek: 这就像||| https://docs.mql4.com/ru/basis/operations/bool 一个逻辑性的OR操作。 Zy counter-alt - M就像SRC按钮,通过它进行编码。 dzhini 2011.01.13 12:30 #11270 drknn: 我已经尝试了你建议的代码。结果总是一样的--它在白天不断开仓交易。同样,我希望保留开/关选项。 以下是尝试过的变体。 外部 bool WaitForNewDay = true。 空白的init() { SMB=Symbol()。 返回。 } 空白启动()。 { bool Trade=true。 如果(WaitForNewDay){如果(HistoryBuy(MAGICMA)+HistorySell(MAGICMA)!=0) Trade=false;}。 如果(CalculateCurrentOrders(Symbol())==0 && Trade) {CheckForOpen(); return;} } //----------------------------------------------------------------- int HistoryBuy(int MAGICMA) {int BuyOrders=0; for (int i=OrdersHistoryTotal()-1;i>=0;i--){ if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { Print(" ",GetLastError()," ",i)。 } 否则 { 如果(OrderSymbol()!= SMB || OrderMagicNumber()!= MAGICMA){ 继续;}。 如果(OrderType()==OP_BUY){ 如果(OrderOpenTime()>=iTime(SMB,PERIOD_D1,0)){ BuyOrders++; } } } } return(BuyOrders)。 } //----------------------------------------------------------------- int HistorySell(int MAGICMA){ int SellOrders=0。 for (int i=OrdersHistoryTotal()-1;i>=0;i--) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { Print(" ",GetLastError()," ",i)。 } 否则 { 如果(OrderSymbol()!=SMB || OrderMagicNumber()!=MAGICMA){ 继续;}。 如果(OrderType()==OP_SELL){ 如果(OrderOpenTime()>=iTime(SMB,PERIOD_D1,0)){ SellOrders++; } } } } return(SellOrders)。 } ////////////// 其他选项///////////////////// 外部 bool WaitForNewDay = true。 交易=真。 空白的init() { SMB=Symbol()。 如果(WaitForNewDay) {Trade=false;} 返回。 } 空白启动()。 { 如果(WaitForNewDay) {if(HistoryBuy(MAGICMA)+HistorySell(MAGICMA)==0) Trade=true;}。 如果(CalculateCurrentOrders(Symbol())==0 && Trade) {CheckForOpen(); Trade=false; return;} } [WARNING CLOSED!] Any newbie [存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. "完美 "的交易系统 1...112011211122112311241125112611271128112911301131113211331134...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
非常感谢您的帮助=)
不要忘了,在测试器中,指标不会扔掉警报窗口,而是将警报信息写到日志中。用脚本来调试这样的代码片断更好--它更快。
另外,奇怪的是,指标信息在测试器中没有写到测试器日志中,而是写到了实时日志中。
http://www.google.ru/search?as_sitesearch=mql4.com&as_q=%EA%EE%EC%E8%F1%F1%E8%FF+%E2+%F2%E5%F1%F2%E5%F0%E5
没有 "直接 "的方法来做这件事。
你可以这样做。
或者这里有另一种方法
谢谢你!
我不太明白这些条件是如何运作的。
我决定找出分形指标的工作原理,什么是MODE_UPPER和MODE_LOWER的区别,并写了以下代码
int start()
{int y;
y= WindowFirstVisibleBar();Alert ("y",y);
for (;y>=0;y--)
{ double up=iFractals(Symbol(),PERIOD_M15,MODE_UPPER,y) 。
double down=iFractals(Symbol(),PERIOD_M15,MODE_LOWER,y);
if (up>=1|down>=1){
Alert("Previous upper fractal is:", up, " Previous lower fractal is:", down);Alert ("y",y);}}。
WindowFirstVisibleBar()给出了图表上的条数,如果你从EA中划掉(up>=1||down>=1),这个东西就会起作用,它给出了一系列漂亮的计数条数,只是有这么多。
这就像一个||符号或,如果至少有一个条件为真,或者两个条件同时为真,操作者似乎会做括号{},对吗?
对我来说没有任何变化,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我想我做对了,帮帮我吧!!!!!!!
我不太明白这些条件是如何运作的。
我决定了解分形指标的工作原理,MODE_UPPER和MODE_LOWER之间有什么区别。
int start()
{int y;
y= WindowFirstVisibleBar();Alert("y",y)。
for (;y>=0;y--)
{ double up=iFractals(Symbol(),PERIOD_M15,MODE_UPPER,y);
double down=iFractals(Symbol(),PERIOD_M15,MODE_LOWER,y)。
如果(上>=1||下>=1){
Alert("Previous upper fractal is:", up, " Previous lower fractal is:", down);Alert("y",y);}}。
WindowFirstVisibleBar()给出了图表上的条数,如果你划掉(up>=1|down>=1),这个东西就能发挥作用,它给出了一系列漂亮的计算条数,但有很多条数。
这就像一个||符号或,如果至少有一个条件为真,或者两个条件同时为真,操作者似乎会做括号{},对吗?
对我来说没有任何变化,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我认为一切都很正确。帮助我!!!!!!!
正常的代码地方通过反击 - M - 更快的反应......没有感叹词。
这就像|||
https://docs.mql4.com/ru/basis/operations/bool
一个逻辑性的OR操作。
Zy counter-alt - M就像SRC按钮,通过它进行编码。
我已经尝试了你建议的代码。结果总是一样的--它在白天不断开仓交易。同样,我希望保留开/关选项。
以下是尝试过的变体。
外部 bool WaitForNewDay = true。
空白的init()
{
SMB=Symbol()。
返回。
}
空白启动()。
{
bool Trade=true。
如果(WaitForNewDay){如果(HistoryBuy(MAGICMA)+HistorySell(MAGICMA)!=0) Trade=false;}。
如果(CalculateCurrentOrders(Symbol())==0 && Trade)
{CheckForOpen(); return;}
}
//-----------------------------------------------------------------
int HistoryBuy(int MAGICMA)
{int BuyOrders=0;
for (int i=OrdersHistoryTotal()-1;i>=0;i--){
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
Print(" ",GetLastError()," ",i)。
}
否则 {
如果(OrderSymbol()!= SMB || OrderMagicNumber()!= MAGICMA){ 继续;}。
如果(OrderType()==OP_BUY){
如果(OrderOpenTime()>=iTime(SMB,PERIOD_D1,0)){
BuyOrders++;
}
}
}
}
return(BuyOrders)。
}
//-----------------------------------------------------------------
int HistorySell(int MAGICMA){
int SellOrders=0。
for (int i=OrdersHistoryTotal()-1;i>=0;i--) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
Print(" ",GetLastError()," ",i)。
}
否则 {
如果(OrderSymbol()!=SMB || OrderMagicNumber()!=MAGICMA){ 继续;}。
如果(OrderType()==OP_SELL){
如果(OrderOpenTime()>=iTime(SMB,PERIOD_D1,0)){
SellOrders++;
}
}
}
}
return(SellOrders)。
}
////////////// 其他选项/////////////////////
外部 bool WaitForNewDay = true。
交易=真。
空白的init()
{
SMB=Symbol()。
如果(WaitForNewDay) {Trade=false;}
返回。
}
空白启动()。
{
如果(WaitForNewDay) {if(HistoryBuy(MAGICMA)+HistorySell(MAGICMA)==0) Trade=true;}。
如果(CalculateCurrentOrders(Symbol())==0 && Trade)
{CheckForOpen(); Trade=false; return;}
}