如何编码? - 页 47 1...404142434445464748495051525354...347 新评论 Beno 2007.11.03 15:13 #461 谢谢 MrPip 我基本上明白你的意思了,我会在之前给它,如果我被卡住了再问。 欢呼 antone 2007.11.04 10:40 #462 MrPip: 以下是红色的更正。 罗伯特 谢谢你,罗伯特,这很有帮助。 [删除] 2007.11.05 05:23 #463 使用MTF指标的条形图倒计时 MTF=多时间框架指标 double BarCountDownInSec() { 双重g。 g=Time[0]+Period()*60-TimeCurrent()。 return(g); } 上述函数 给出了当前图表中各条的第二次倒数。因此,如果放在一个5分钟的图表上,它将显示每个5分钟的条形图的第二次倒计时。 问:当我在5分钟图表中时,我如何获得15分钟条形图(即3个5分钟条形图)的秒数倒计时,因此从6.00到6.15的15分钟倒计时,然后是6.15到6.30,而我在5分钟图表中? yyc196 Yauw 2007.11.05 12:14 #464 我的编程问题(BUG) 你好。 谁能帮我清除这个错误。我已经快成功了,只是除非我重新编译代码,否则绘制直方图不会出现。 请帮助我!!请帮助我,请帮助我 谢谢 附加的文件: stoch_project.mq4 5 kb Beno 2007.11.05 19:41 #465 icustom问题 我应该为EA的iCustom部分使用的这个indi的字符串名称是什么? 我已经尝试过 MT4-LevelStop-Reverse-vBO-4 MT4-LevelStop-Reverse-vBO-4 MT4-LevelStop-Reverse vBO-4 vB0.4 vtsbh2483- MT4-LevelStop-Reverse-"+ indicator_version + "( 所以我不知道接下来该怎么做。 还是需要输入ATRMode、Manual Mode等字符串? 任何帮助都将是巨大的 附加的文件: mt4-levelstop-reverse-vb0-4.mq4 12 kb Beno 2007.11.05 19:43 #466 谁能看到这个错误?我看不出这段代码中的错误在哪里。我一直得到。任何帮助指出这一点都是很好的。谢谢 LongSig变量未定义 //+------------------------------------------------------------------+ //|计算未结头寸 //+------------------------------------------------------------------+ int CalculateCurrentOrders() { 买入=0;卖出=0。 string symbol=Symbol(); //---- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) 继续。 如果(OrderSymbol()==Symbol() && OrderMagicNumber()==expertId) { 如果(OrderType()==OP_BUY || OrderType()==OP_BUYSTOP) buys++; 如果(OrderType()==OP_SELL || OrderType()==OP_SELLSTOP) sells++; } } //---- 返回订单量 if(buys>0) return(buys); 否则返回(-sells)。 } //+------------------------------------------------------------------+ //| 检查未平仓订单情况 | //+------------------------------------------------------------------+ 空白 CheckForSignals() { buysig=false; sellsig=false; closebuy=false; closesell=false。 double MOM = iCustom (NULL,0, "Momentum-ZL",MOMPeriod,0,shift); double SRL = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod,ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,233) double SRS = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod,ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,234); double QQE_RsiMa = iCustom(NULL,0, "QQE",0,shift); double QQE_TrLevelSlow = iCustom(NULL,0, "QQE", 1, shift); double QQE_RsiMaPrev = iCustom(NULL,0, "QQE",0,shift + 1); double QQE_TrLevelSlowPrev = iCustom(NULL,0, "QQE", 1, shift + 1); double Pivot = iCustom (NULL,0, "Pivot Points Multitimeframe",midpivots,Fhr,daily,weekly,monthly,1,shift) bool LongSig = QQE_RsiMaPrev QQE_TrLevelSlow >50.0; bool ShortSig = QQE_RsiMaPrev > QQE_TrLevelSlowPrev && QQE_RsiMa < QQE_TrLevelSlow<50.0; bool LongSig2 = MOM>0.0; bool ShortSig2 = MOM<0.0; bool LongSig3 = SRL>Pivot; bool ShortSig3 = SRS<Pivot; buysig = LongSig && LongSig2 && LongSig3; sellsig = ShortSig && ShortSig2 && ShortSig3; closebuy=sellsig; closesell=buysig。 } 空白 CheckForOpen() { if (last==Time[0]) return; int res,ord; 双重入口,停止,利润。 ord=CalculateCurrentOrders(); 如果(ord!=0) CheckForClose(); ord=CalculateCurrentOrders()。 //---- 买入条件 如果(buyys<ConsecutiveTrades && buysig) { res=OpenAtMarket(OP_BUY,Lots)。 如果(res<0) Print("错误打开BUY订单:",ErrorDescription(GetLastError())。 否则 last=Time[0]; } //---- 卖出条件 如果(-sells<ConsecutiveTrades && sellsig) { res=OpenAtMarket(OP_SELL,Lots)。 如果(res<=0) Print("错误打开SELL订单:",ErrorDescription(GetLastError())。 否则 last=Time[0]; } } int OpenAtMarket(int mode,double lot) { int res,tr,col; double openprice,sl,tp; tries=0。 while (res<=0 && tries<OrderTriesNumber) { tr=0; while (tr<5 && !IsTradeAllowed() ) { tr++; Sleep(2000); } RefreshRates()。 如果(模式==OP_SELL) { openprice=Bid; col=Red; } else { //openprice=nd(Ask); openprice=Ask; col=Blue; } res=OrderSend(Symbol(),mode,lot,openprice,slipage,tp,EAName+expertId,expertId,0,col)。 tries++; } return(res); } 固定IT How to code? 问吧! 有助于精简EA MrPip 2007.11.05 19:58 #467 试试你名单上的第一个数字0,而不是字母O的vB0-4。 罗伯特 Beno: 这个indi的字符串名称是什么,我应该用在EA的iCustom部分。我已经尝试了 MT4-LevelStop-Reverse-vBO-4 MT4-LevelStop-Reverse-vBO-4 MT4-LevelStop-Reverse vBO-4 vB0.4 vtsbh2483- MT4-LevelStop-Reverse-"+ indicator_version + "( 所以我不知道接下来该怎么做。 还是需要输入ATRMode,Manual Mode等字符串名称? 任何帮助都将是巨大的 Beno 2007.11.05 20:01 #468 谢谢你,Pips先生 已整理好 antone 2007.11.06 06:29 #469 MrPip: 下面是红色的更正。 Robert 我试着这样做,但似乎不起作用......我只想每天做一次交易。 for(int a=0;a<OrdersTotal();a++){ 如果(OrderSelect(a,SELECT_BY_POS,MODE_TRADES) == true) { 如果(OrderSymbol()== Symbol() && OrderMagicNumber()== Magic_Number) { 如果(TimeDay(OrderOpenTime())>=TimeDay(TimeCurrent()))Trade = false。 如果(TimeDay(OrderOpenTime()) < TimeDay(TimeCurrent()))Trade = true。 } } } MrPip 2007.11.06 09:16 #470 antone: 我试过这样做,但似乎不起作用......我只想每天做一次交易。 我在其他EA中使用过这个方法,而且工作正常。 我检查 的是今天关闭的交易,而不是今天打开的交易。 开始时的用法是 if (LastTradeClosedToday()) return(0); //这里的代码用于打开新的交易 //+------------------------------------------------------------------+ //| LastTradeClosedToday | //| 检查历史记录,看最后一笔交易是否在今天结束。 //+------------------------------------------------------------------+ bool LastTradeClosedToday() { int cnt, total; bool Closed; total = HistoryTotal()。 for (cnt = total - 1; cnt >= 0; cnt--) { OrderSelect (cnt, SELECT_BY_POS, MODE_HISTORY)。 如果(OrderSymbol()!=Symbol()) 继续。 如果(OrderMagicNumber()!=MagicNumber)继续。 关闭 = false。 如果(OrderType() == OP_BUY) { 如果(TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent()) ) { Closed = true。 } cnt = 0。 } 如果(OrderType() == OP_SELL) { 如果(TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent()) ) { 关闭 = 真。 } cnt = 0。 } } 返回(Closed)。 } How to code? 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 1...404142434445464748495051525354...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢 MrPip
我基本上明白你的意思了,我会在之前给它,如果我被卡住了再问。
欢呼
以下是红色的更正。 罗伯特
谢谢你,罗伯特,这很有帮助。![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)
使用MTF指标的条形图倒计时
MTF=多时间框架指标
double BarCountDownInSec()
{
双重g。
g=Time[0]+Period()*60-TimeCurrent()。
return(g);
}
上述函数 给出了当前图表中各条的第二次倒数。因此,如果放在一个5分钟的图表上,它将显示每个5分钟的条形图的第二次倒计时。
问:当我在5分钟图表中时,我如何获得15分钟条形图(即3个5分钟条形图)的秒数倒计时,因此从6.00到6.15的15分钟倒计时,然后是6.15到6.30,而我在5分钟图表中?
我的编程问题(BUG)
你好。
谁能帮我清除这个错误。我已经快成功了,只是除非我重新编译代码,否则绘制直方图不会出现。
请帮助我!!请帮助我,请帮助我
谢谢![](https://c.mql5.com/forextsd/smiles/cry_smile.png)
icustom问题
我应该为EA的iCustom部分使用的这个indi的字符串名称是什么?
我已经尝试过
MT4-LevelStop-Reverse-vBO-4
MT4-LevelStop-Reverse-vBO-4
MT4-LevelStop-Reverse
vBO-4
vB0.4
vtsbh2483-
MT4-LevelStop-Reverse-"+ indicator_version + "(
所以我不知道接下来该怎么做。
还是需要输入ATRMode、Manual Mode等字符串?
任何帮助都将是巨大的
谁能看到这个错误?我看不出这段代码中的错误在哪里。我一直得到。任何帮助指出这一点都是很好的。谢谢
LongSig变量未定义
//+------------------------------------------------------------------+
//|计算未结头寸
//+------------------------------------------------------------------+
int CalculateCurrentOrders() {
买入=0;卖出=0。
string symbol=Symbol();
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) 继续。
如果(OrderSymbol()==Symbol() && OrderMagicNumber()==expertId)
{
如果(OrderType()==OP_BUY || OrderType()==OP_BUYSTOP) buys++;
如果(OrderType()==OP_SELL || OrderType()==OP_SELLSTOP) sells++;
}
}
//---- 返回订单量
if(buys>0) return(buys);
否则返回(-sells)。
}
//+------------------------------------------------------------------+
//| 检查未平仓订单情况 |
//+------------------------------------------------------------------+
空白 CheckForSignals() {
buysig=false;
sellsig=false;
closebuy=false;
closesell=false。
double MOM = iCustom (NULL,0, "Momentum-ZL",MOMPeriod,0,shift);
double SRL = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod,ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,233)
double SRS = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod,ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,234);
double QQE_RsiMa = iCustom(NULL,0, "QQE",0,shift);
double QQE_TrLevelSlow = iCustom(NULL,0, "QQE", 1, shift);
double QQE_RsiMaPrev = iCustom(NULL,0, "QQE",0,shift + 1);
double QQE_TrLevelSlowPrev = iCustom(NULL,0, "QQE", 1, shift + 1);
double Pivot = iCustom (NULL,0, "Pivot Points Multitimeframe",midpivots,Fhr,daily,weekly,monthly,1,shift)
bool LongSig = QQE_RsiMaPrev QQE_TrLevelSlow >50.0;
bool ShortSig = QQE_RsiMaPrev > QQE_TrLevelSlowPrev && QQE_RsiMa < QQE_TrLevelSlow<50.0;
bool LongSig2 = MOM>0.0;
bool ShortSig2 = MOM<0.0;
bool LongSig3 = SRL>Pivot;
bool ShortSig3 = SRS<Pivot;
buysig = LongSig && LongSig2 && LongSig3;
sellsig = ShortSig && ShortSig2 && ShortSig3;
closebuy=sellsig;
closesell=buysig。
}
空白 CheckForOpen() {
if (last==Time[0]) return;
int res,ord;
双重入口,停止,利润。
ord=CalculateCurrentOrders();
如果(ord!=0) CheckForClose();
ord=CalculateCurrentOrders()。
//---- 买入条件
如果(buyys<ConsecutiveTrades && buysig) {
res=OpenAtMarket(OP_BUY,Lots)。
如果(res<0) Print("错误打开BUY订单:",ErrorDescription(GetLastError())。
否则 last=Time[0];
}
//---- 卖出条件
如果(-sells<ConsecutiveTrades && sellsig) {
res=OpenAtMarket(OP_SELL,Lots)。
如果(res<=0) Print("错误打开SELL订单:",ErrorDescription(GetLastError())。
否则 last=Time[0];
}
}
int OpenAtMarket(int mode,double lot) {
int res,tr,col;
double openprice,sl,tp;
tries=0。
while (res<=0 && tries<OrderTriesNumber) {
tr=0; while (tr<5 && !IsTradeAllowed() ) { tr++; Sleep(2000); }
RefreshRates()。
如果(模式==OP_SELL) {
openprice=Bid;
col=Red;
} else {
//openprice=nd(Ask);
openprice=Ask;
col=Blue;
}
res=OrderSend(Symbol(),mode,lot,openprice,slipage,tp,EAName+expertId,expertId,0,col)。
tries++;
}
return(res);
}
固定IT
试试你名单上的第一个数字0,而不是字母O的vB0-4。
罗伯特
这个indi的字符串名称是什么,我应该用在EA的iCustom部分。
我已经尝试了
MT4-LevelStop-Reverse-vBO-4
MT4-LevelStop-Reverse-vBO-4
MT4-LevelStop-Reverse
vBO-4
vB0.4
vtsbh2483-
MT4-LevelStop-Reverse-"+ indicator_version + "(
所以我不知道接下来该怎么做。
还是需要输入ATRMode,Manual Mode等字符串名称?
任何帮助都将是巨大的谢谢你,Pips先生
已整理好
下面是红色的更正。 Robert
我试着这样做,但似乎不起作用......我只想每天做一次交易。
{
如果(OrderSelect(a,SELECT_BY_POS,MODE_TRADES) == true)
{
如果(OrderSymbol()== Symbol() && OrderMagicNumber()== Magic_Number)
{
如果(TimeDay(OrderOpenTime())>=TimeDay(TimeCurrent()))Trade = false。
如果(TimeDay(OrderOpenTime()) < TimeDay(TimeCurrent()))Trade = true。
}
}
}我试过这样做,但似乎不起作用......我只想每天做一次交易。
我在其他EA中使用过这个方法,而且工作正常。
我检查 的是今天关闭的交易,而不是今天打开的交易。
开始时的用法是
if (LastTradeClosedToday()) return(0);
//这里的代码用于打开新的交易
//+------------------------------------------------------------------+
//| LastTradeClosedToday |
//| 检查历史记录,看最后一笔交易是否在今天结束。
//+------------------------------------------------------------------+
bool LastTradeClosedToday()
{
int cnt, total;
bool Closed;
total = HistoryTotal()。
for (cnt = total - 1; cnt >= 0; cnt--)
{
OrderSelect (cnt, SELECT_BY_POS, MODE_HISTORY)。
如果(OrderSymbol()!=Symbol()) 继续。
如果(OrderMagicNumber()!=MagicNumber)继续。
关闭 = false。
如果(OrderType() == OP_BUY)
{
如果(TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent()) )
{
Closed = true。
}
cnt = 0。
}
如果(OrderType() == OP_SELL)
{
如果(TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent()) )
{
关闭 = 真。
}
cnt = 0。
}
}
返回(Closed)。
}