如何编码? - 页 54 1...474849505152535455565758596061...347 新评论 nakata79087 2007.12.07 07:13 #531 其他问题 现在我的EA是这样的 如果(FastMA2 SlowMA1) { ClosePositions(); OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-SLpips*Point,Ask+(45*Point),"" MAGIC,0,Blue); return(0); 我希望像这样改变 1. 15分钟的时间火焰发生买入信号 2.如果当时5分钟时间的MA交叉买入信号已经出现,那么也要改变。 ClosePosition.并获得新的位置 如果这时5分钟时间的MA变化已经出现了卖出信号 等待5分钟的时间火焰改变买入信号。 然后ClosePosition.并获得新的头寸 请告诉我如何写这个程序。 [删除] 2007.12.07 16:58 #532 附加的文件: ease_of_movement.mq4 3 kb Beno 2007.12.07 17:55 #533 你好 我在寻找一些帮助,我有一个EA,我在使用演示,也在学习编码。我想知道如何在系统中添加一个注释,以显示4个进入标准中的哪一个被用于开仓。 任何帮助都将是巨大的 欢呼声 贝诺 wolfe 2007.12.07 22:39 #534 Beno: 你好我在寻找一些帮助,我有一个EA,我在使用演示,也在学习编码。我想知道如何在系统中添加一个注释,以显示4个进入标准中的哪一个被用来开仓。 例如,如果使用long2,则显示long2信号 任何帮助都将是巨大的 欢呼声 贝诺 在你的条件得到满足并使用Ordersend() 命令后,只要插入一个Comment()、Alert()或Print()语句。 无论你想用哪种方法。 就像这样。 if ( long2 == true) { Ordersend()。 { Print(" long2信号被占用")。 } } 希望这对你有帮助。 Beno 2007.12.08 16:37 #535 谢谢你,Wolfe我不得不笑了,我输入了你建议的内容,它有点工作,但现在我只有评论,没有打开头寸。bool Long = MAofRSI11>MAofRSI21 && MAofRSI12VolHL && RSIndex1HL2 && TrStop0.0 && SDLL && ma<Close[shift]; bool Short = MAofRSI11=MAofRSI22 && VolCH>VolHL && RSIndex1HLM && TrStop>Close[shift] && MOMClose[shift];bool Long2 = MAofRSI11>HLM && MAofRSI12HLM && MAofRSI22VolHL && TrStop0.0 && SDLL && ma<Close[shift]; bool Short2 = MAofRSI11=HLM && MAofRSI21=HLM && VolCH>VolHL && TrStop>Close[shift] && MOMClose[shift]。bool Long3 = RSIndex1-RSIndex2>20<HL2 && TrStop0.0 && SDLL && ma<Close[shift]; bool Short3 = RSIndex2-RSIndex1>20>HL1 && TrStop>Close[shift] && MOMClose[shift];bool Long4 = zscore>0.0 && ma<Close[shift];bool Short4 = zscoreClose[shift];buysig = Long || Long2 || Long3 || Long4。sellsig = Short || Short2 || Short3 || Short4。closebuy=sellsig;closesell=buysig。如果(curprof>=AccountBalance()*ProfitExit/100.0) {exit=true。}如果(last>0 && (Time[0]-last)/(Period()*60)>=CancelOrderBars) {remorder=true。}}空白CheckForOpen(){int res,tr;//---- 卖出条件co=CalculateCurrentOrders(Symbol())。如果(sellsig && lastsig!=-1) {co=CalculateCurrentOrders(Symbol())。如果(co==0) {如果 ( Short == true)如果 ( Short2 == true)如果 ( Short3 == true)res = OpenStop(OP_SELLSTOP,LotsRisk(StopLoss), Low[shift]-OrderPipsDiff*Point, StopLoss, TakeProfit1) 。Print(" Short signal taken ");Print(" Short2 signal taken ");Print(" Short3 signal taken ");Print(" Short4 signal taken ");}lastsig=-1;last=Time[0];返回。}//---- 买入条件if(buyysig && lastsig!=1) {co=CalculateCurrentOrders(Symbol())。如果(co==0) {如果 ( Long == true)如果 ( Long2 == true)如果 ( Long3 == true)如果 ( Long4 == true)res = OpenStop(OP_BUYSTOP,LotsRisk(StopLoss), High[shift]+OrderPipsDiff*Point, StopLoss, TakeProfit1) 。Print(" Long signal taken ");Print(" Long2 signal taken ");Print(" Long3 signal taken ");Print(" Long4 signal taken ");}last=Time[0];lastsig=1。返回。}}修正了它 谢谢 How to code? I need help with 问吧! Beno 2007.12.08 16:40 #536 调试代码 你将如何以及在哪里使用这样的代码。我有一个零除 法的错误,我找不到如何解决的方法。 extern bool DEBUGGING = true ... if(DEBUGGING && variableName == 0) Print("CodePoint 1 -- This variable is now " , variableName); ... 更多代码 if(DEBUGGING && variableName == 0) Print("CodePoint 2 -- This variable is now ", variableName); ... 更多代码 if(DEBUGGING && variableName == 0) Print("CodePoint 3 -- This variable is now ", variableName)。 ... 翁鼎 2007.12.09 07:21 #537 你能帮助我吗?为什么在代码中存在许多错误? 这是为了计算SMMA: for(j=0;j<Bars;j++) { for(i=0,sum=0;i<ma_period;i++) { sum=sum+Close[j+i]。 // buffer[j]=(sum-sum/ma_period+Close[j+i])/ma_period。 } buffer[j]=(sum-sum/ma_period+Close[j])/ma_period。 } 这是为了计算LWMA for(j=0;j<Bars;j++) { for(i=0,sum=0,sum1=0;i<ma_period;i++) { sum=sum+Close[j+i]; sum1=sum1+Close[j+i]*(j+i); // buffer[j]=sum/ma_period。 } buffer[j]=sum1/sum。 } 以及如何计算EMA? 95032792 2007.12.10 02:31 #538 关于指标的问题 大家好。 我被一个编程问题所困。有谁知道如何使用1个指标结果来改变另一个设置?例如,如果日线stockasti高于20,我希望移动平均线 为(x)。我试着让下面的代码工作,但不知道有什么用。我似乎不能让开关或if else命令起作用,也不能。 double fourhrUP; double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1) 。 double daystoch20 = 20; 如果(daystoch1 > daystoch20) four_hrUP = 5 。 double iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift) How to code? Requests & Ideas, the 能不能用mt4编写出这样的曲线EMA(MA(C,N),M)? Erman Ardianto 2007.12.10 04:25 #539 ajk: 大家好。 我在一个编程问题上卡住了。有谁知道如何使用1个指标结果来改变另一个设置?例如,如果日线stockasti高于20,我希望移动平均线为(x)。我试着让下面的代码工作,但不知道有什么用。我似乎不能让开关或if else命令起作用,也不能。 double fourhrUP; double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1) 。 double daystoch20 = 20; 如果(daystoch1 > daystoch20) four_hrUP = 5 ; double iMA ( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift) 你的MA的变量在哪里? 也许这可以帮助你 doublema4hr= iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift)。 如果stoch计算在同一个循环中,比如说 "for(int shift=limit-1; shift>=0; shift--)",stoch代码应该是 double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,shift+1) 。 CMIIW How to code? 能不能用mt4编写出这样的曲线EMA(MA(C,N),M)? [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. FXTradepro 2007.12.10 13:47 #540 关于一个指标的小帮助 - 请看编码器 我正在测试一个MT4经纪商的平台,该平台在报价中使用小数点(pipettes)。 例如,欧元兑日元的报价为164.381,而不是164.38 - 这意味着点差有一个小数,如4.1点(而不是4)。 谁能告诉我如何修改下面的代码,使点差读数正确? 现在一个4.1点的点差在指标中读作41.0。 希望得到任何帮助。 旦 //---- 点差 Spread=NormalizeDouble((Ask-Bid)/Point,1); ObjectSetText("Spread Monitor1", "Spread:", 10, "Arial", labelColor)。 ObjectSetText("Spread Monitor2",DoubleToStr(Spread,1),10, "Arial", clockColor)。 1...474849505152535455565758596061...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
其他问题
现在我的EA是这样的
如果(FastMA2 SlowMA1)
{
ClosePositions();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-SLpips*Point,Ask+(45*Point),"" MAGIC,0,Blue);
return(0);
我希望像这样改变
1. 15分钟的时间火焰发生买入信号
2.如果当时5分钟时间的MA交叉买入信号已经出现,那么也要改变。
ClosePosition.并获得新的位置
如果这时5分钟时间的MA变化已经出现了卖出信号
等待5分钟的时间火焰改变买入信号。
然后ClosePosition.并获得新的头寸
请告诉我如何写这个程序。
你好
我在寻找一些帮助,我有一个EA,我在使用演示,也在学习编码。我想知道如何在系统中添加一个注释,以显示4个进入标准中的哪一个被用于开仓。
任何帮助都将是巨大的
欢呼声
贝诺
你好
我在寻找一些帮助,我有一个EA,我在使用演示,也在学习编码。我想知道如何在系统中添加一个注释,以显示4个进入标准中的哪一个被用来开仓。 例如,如果使用long2,则显示long2信号
任何帮助都将是巨大的
欢呼声
贝诺在你的条件得到满足并使用Ordersend() 命令后,只要插入一个Comment()、Alert()或Print()语句。 无论你想用哪种方法。
就像这样。
if ( long2 == true)
{
Ordersend()。
{
Print(" long2信号被占用")。
}
}
希望这对你有帮助。
谢谢你,Wolfe
我不得不笑了,我输入了你建议的内容,它有点工作,但现在我只有评论,没有打开头寸。
bool Long = MAofRSI11>MAofRSI21 && MAofRSI12VolHL && RSIndex1HL2 && TrStop0.0 && SDLL && ma<Close[shift];
bool Short = MAofRSI11=MAofRSI22 && VolCH>VolHL && RSIndex1HLM && TrStop>Close[shift] && MOMClose[shift];bool Long2 = MAofRSI11>HLM && MAofRSI12HLM && MAofRSI22VolHL && TrStop0.0 && SDLL && ma<Close[shift];
bool Short2 = MAofRSI11=HLM && MAofRSI21=HLM && VolCH>VolHL && TrStop>Close[shift] && MOMClose[shift]。bool Long3 = RSIndex1-RSIndex2>20<HL2 && TrStop0.0 && SDLL && ma<Close[shift];
bool Short3 = RSIndex2-RSIndex1>20>HL1 && TrStop>Close[shift] && MOMClose[shift];bool Long4 = zscore>0.0 && ma<Close[shift];
bool Short4 = zscoreClose[shift];
buysig = Long || Long2 || Long3 || Long4。
sellsig = Short || Short2 || Short3 || Short4。
closebuy=sellsig;
closesell=buysig。
如果(curprof>=AccountBalance()*ProfitExit/100.0) {
exit=true。
}
如果(last>0 && (Time[0]-last)/(Period()*60)>=CancelOrderBars) {
remorder=true。
}
}
空白CheckForOpen(){
int res,tr;
//---- 卖出条件
co=CalculateCurrentOrders(Symbol())。
如果(sellsig && lastsig!=-1) {
co=CalculateCurrentOrders(Symbol())。
如果(co==0) {
如果 ( Short == true)
如果 ( Short2 == true)
如果 ( Short3 == true)
res = OpenStop(OP_SELLSTOP,LotsRisk(StopLoss), Low[shift]-OrderPipsDiff*Point, StopLoss, TakeProfit1) 。
Print(" Short signal taken ");
Print(" Short2 signal taken ");
Print(" Short3 signal taken ");
Print(" Short4 signal taken ");
}
lastsig=-1;
last=Time[0];
返回。
}
//---- 买入条件
if(buyysig && lastsig!=1) {
co=CalculateCurrentOrders(Symbol())。
如果(co==0) {
如果 ( Long == true)
如果 ( Long2 == true)
如果 ( Long3 == true)
如果 ( Long4 == true)
res = OpenStop(OP_BUYSTOP,LotsRisk(StopLoss), High[shift]+OrderPipsDiff*Point, StopLoss, TakeProfit1) 。
Print(" Long signal taken ");
Print(" Long2 signal taken ");
Print(" Long3 signal taken ");
Print(" Long4 signal taken ");
}
last=Time[0];
lastsig=1。
返回。
}
}
修正了它 谢谢
调试代码
你将如何以及在哪里使用这样的代码。我有一个零除 法的错误,我找不到如何解决的方法。
extern bool DEBUGGING = true
...
if(DEBUGGING && variableName == 0) Print("CodePoint 1 -- This variable is now " , variableName);
... 更多代码
if(DEBUGGING && variableName == 0) Print("CodePoint 2 -- This variable is now ", variableName);
... 更多代码
if(DEBUGGING && variableName == 0) Print("CodePoint 3 -- This variable is now ", variableName)。
...
你能帮助我吗?为什么在代码中存在许多错误?
这是为了计算SMMA:
for(j=0;j<Bars;j++)
{
for(i=0,sum=0;i<ma_period;i++)
{
sum=sum+Close[j+i]。
// buffer[j]=(sum-sum/ma_period+Close[j+i])/ma_period。
}
buffer[j]=(sum-sum/ma_period+Close[j])/ma_period。
}
这是为了计算LWMA
for(j=0;j<Bars;j++)
{
for(i=0,sum=0,sum1=0;i<ma_period;i++)
{
sum=sum+Close[j+i];
sum1=sum1+Close[j+i]*(j+i);
// buffer[j]=sum/ma_period。
}
buffer[j]=sum1/sum。
}
以及如何计算EMA?

关于指标的问题
大家好。
我被一个编程问题所困。有谁知道如何使用1个指标结果来改变另一个设置?例如,如果日线stockasti高于20,我希望移动平均线 为(x)。我试着让下面的代码工作,但不知道有什么用。我似乎不能让开关或if else命令起作用,也不能。
double fourhrUP;
double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1) 。
double daystoch20 = 20;
如果(daystoch1 > daystoch20) four_hrUP = 5 。
double iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift)
大家好。
我在一个编程问题上卡住了。有谁知道如何使用1个指标结果来改变另一个设置?例如,如果日线stockasti高于20,我希望移动平均线为(x)。我试着让下面的代码工作,但不知道有什么用。我似乎不能让开关或if else命令起作用,也不能。
double fourhrUP;
double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1) 。
double daystoch20 = 20;
如果(daystoch1 > daystoch20) four_hrUP = 5 ;
double iMA ( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift)你的MA的变量在哪里?
也许这可以帮助你
doublema4hr= iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift)。
如果stoch计算在同一个循环中,比如说 "for(int shift=limit-1; shift>=0; shift--)",stoch代码应该是
double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,shift+1) 。
CMIIW
关于一个指标的小帮助 - 请看编码器
我正在测试一个MT4经纪商的平台,该平台在报价中使用小数点(pipettes)。 例如,欧元兑日元的报价为164.381,而不是164.38 - 这意味着点差有一个小数,如4.1点(而不是4)。
谁能告诉我如何修改下面的代码,使点差读数正确? 现在一个4.1点的点差在指标中读作41.0。 希望得到任何帮助。
旦
//---- 点差
Spread=NormalizeDouble((Ask-Bid)/Point,1);
ObjectSetText("Spread Monitor1", "Spread:", 10, "Arial", labelColor)。
ObjectSetText("Spread Monitor2",DoubleToStr(Spread,1),10, "Arial", clockColor)。