如何编码? - 页 269

 

德马变量的设置不正确

我无法正确设置DEMA变量部分,其语法。DEMA1、DEMA2、DEMA3的代码是正确的。

请帮助纠正DEMA变量部分。

如果(TradeOrAlert) {

如果(DEMA1)>(DEMA2) {CLOSESHORT(Symbol()) ;}

如果(DEMA1)<(DEMA2) {CLOSELONG(Symbol()) ;}

如果((DEMA1)>(DEMA2))&&((DEMA2)>(DEMA3)) {BUY(Symbol(), B_Symbol_LS_0, B_Symbol_TP_0, B_Symbol_SL_0, B_Symbol_TS_0, "if ((DEMA1)>(DEMA2))&&((DEMA2)>(DEMA3)";}

如果((DEMA1)<(DEMA2))&&((DEMA2)<(DEMA3)) {SELL(Symbol(), S_Symbol_LS_0, S_Symbol_TP_0, S_Symbol_SL_0, S_Symbol_TS_0, "if ((DEMA1)<(DEMA2))&&((DEMA2)<(DEMA3))";}CheckTrailingStop(Symbol(), S_Symbol_TP_0, S_Symbol_SL_0, S_Symbol_TS_0)

CheckTrailingStop(Symbol(), 0, MagicNumberLong, B_Symbol_TS_0)。

CheckTrailingStop(Symbol(), 1, MagicNumberShort, S_Symbol_TS_0);

} else {

如果(DEMA1)>(DEMA2) {MyAlert("if (DEMA1)>(DEMA2)", "CLOSESHORT(Symbol(),0.1,100,15,17)", Symbol(); }

如果(DEMA1)<(DEMA2) {MyAlert("if (DEMA1)<(DEMA2)", "CLOSELONG(Symbol(),0.1,100,15,17)", Symbol(); }

如果((DEMA1)>(DEMA2))&&((DEMA2)>(DEMA3)) {MyAlert("if ((DEMA1)>(DEMA2))&&((DEMA2)>(DEMA3))", "BUY(Symbol(),0.1,100,15,17)", Symbol(); }

如果((DEMA1)<(DEMA2))&&((DEMA2)<(DEMA3)){MyAlert("如果((DEMA1)<(DEMA2))&&((DEMA2)<(DEMA3))", "SELL(Symbol(),0.1,100,15,17)", Symbol(); }

}

g_bars_276 = Bars;

返回(0)。

}

//----DEMA VARIABLES----未正确设置,需要帮助-----

int init() {

double DEMA1 = (iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,4,0,MODE_EMA,iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0))。

返回(DEMA1)。

}

int start() {

double DEMA2 = (iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,6,0,MODE_EMA,iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0))。

返回(DEMA2)。

}

int start() {

double DEMA3 = (iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,12,0,MODE_EMA,iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0))。

返回(DEMA3)。

}

//

 

德马变量设置不正确

我正面临着在以下代码的 "DEMA VARIABLES "部分正确设置语法的问题。

另外,请告诉我在 "#include "部分之后应包括哪些与Dema变量有关的内容。

我得到的错误是

'DEMA1' - 未定义变量。

DEMA2'--变量未定义。

DEMA3'--变量未定义。

请帮助。

如果(TradeOrAlert) {

如果(DEMA1)>(DEMA2) {CLOSESHORT(Symbol()) ;}.

如果(DEMA1)<(DEMA2) {CLOSELONG(Symbol()) ;}

如果((DEMA1)>(DEMA2))&&((DEMA2)>(DEMA3)) {BUY(Symbol(), B_Symbol_LS_0, B_Symbol_TP_0, B_Symbol_SL_0, B_Symbol_TS_0, "if ((DEMA1)>(DEMA2))&&((DEMA2)>(DEMA3)";}

如果((DEMA1)<(DEMA2))&&((DEMA2)<(DEMA3)) {SELL(Symbol(), S_Symbol_LS_0, S_Symbol_TP_0, S_Symbol_SL_0, S_Symbol_TS_0, "if ((DEMA1)<(DEMA2))&&((DEMA2)<(DEMA3))";}CheckTrailingStop(Symbol(), S_Symbol_TP_0, S_Symbol_SL_0, S_Symbol_TS_0)

CheckTrailingStop(Symbol(), 0, MagicNumberLong, B_Symbol_TS_0)。

CheckTrailingStop(Symbol(), 1, MagicNumberShort, S_Symbol_TS_0);

} else {

如果(DEMA1)>(DEMA2) {MyAlert("if (DEMA1)>(DEMA2)", "CLOSESHORT(Symbol(),0.1,100,15,17)", Symbol(); }

如果(DEMA1)<(DEMA2) {MyAlert("if (DEMA1)<(DEMA2)", "CLOSELONG(Symbol(),0.1,100,15,17)", Symbol(); }

如果((DEMA1)>(DEMA2))&&((DEMA2)>(DEMA3)) {MyAlert("if ((DEMA1)>(DEMA2))&&((DEMA2)>(DEMA3))", "BUY(Symbol(),0.1,100,15,17)", Symbol(); }

如果((DEMA1)<(DEMA2))&&((DEMA2)<(DEMA3)){MyAlert("如果((DEMA1)<(DEMA2))&&((DEMA2)<(DEMA3))", "SELL(Symbol(),0.1,100,15,17)", Symbol(); }

}

g_bars_276 = Bars;

返回(0)。

}

//----DEMA VARIABLES----未正确设置,需要帮助-----

int start() {

double DEMA1 = (iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,4,0,MODE_EMA,iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0))。

返回(DEMA1)。

}

int start() {

double DEMA2 = (iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,6,0,MODE_EMA,iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0))。

返回(DEMA2)。

}

int start() {

double DEMA3 = (iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,12,0,MODE_EMA,iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0))。

返回(DEMA3)。

}

//

 

MA+Stoch警报...请问

你能帮我建立一个带有警报的指标:MA+STOCH

stoch(5,3,3);MA(8);MA(15);MA(30)....

当MA(8)>MA(15)>MA(30)且%K高于%D但低于50水平时发出警报

当MA(8)<MA(15)<MA(30)且%D高于%K但超过50级时发出警报

非常感谢你

我的英语是外语

衷心感谢

 
lequoctrieu:
你能帮助我建立指标:MA+stoch与警报

stoch(5,3,3);MA(8);MA(15);MA(30)....

当MA(8)>MA(15)>MA(30)且%K高于%D但小于50级时发出警报

当MA(8)<MA(15)<MA(30)且%D高于%K但超过50级时发出警报

非常感谢你

我的英语是外语

恳请您帮助我建立一个具有警报功能的指标:MA+ch。

你好。

代码片段来自于我的一个indis,你必须根据你的需要进行调整。

extern bool AlertON=false;

extern bool EmailON=true;

extern bool SoundON=false;

extern bool VoiceON=false;

extern bool SMSON=false;

extern string ExtSoundFileName = "";//需要外部的声音文件,比起删除。

FastMA = fastMAnow;

SlowMA = slowMAnow;

如果((fastMAnow >= slowMAnow) && (fastMAprevious < slowMAprevious))

{

如果(i == 1 && flagval1== 0)

{

flagval1=1。

flagval2=0。

if (AlertON==true) Alert("BUY signal at Ask=",Ask,"/n Bid=",Bid,"/n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()), "/n Symbol=",Symbol(), " Period=" , Period() )。

if (EmailON==true) SendMail("2754 BUY-ALP EUR", "BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+" 。"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period())。

if (SMSON==true) SendMail("2754 BUY-ALP EUR", "BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+" 。"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period())。

如果(SoundON==true)PlaySound(ExtSoundFileName);//peep等。

if (VoiceON==true) PlaySound(ExtSoundFileName);//自己的语音WAV。

}

CrossUp = Low - Range*0.5;

}

否则,如果((fastMAnow slowMAprevious))。

{

如果(i == 1 && flagval2== 0)

{

flagval2=1。

flagval1=0。

if (AlertON==true) Alert("SELL signal at Ask=",Ask,"/n Bid=",Bid,"/n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()), "/n Symbol=",Symbol(), " Period=" , Period() )。

if (EmailON==true) SendMail("2754 SELL-ALP EUR", "SELL signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime() )+" 。"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period())。

如果(SMSON==true) SendMail("2754 SELL-ALP EUR", "卖出信号在 Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+" 。"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period())。

如果(SoundON==true)PlaySound(ExtSoundFileName);//peeps等。

if (VoiceON==true) PlaySound(ExtSoundFileName);//自己的语音wav

}

CrossDown = High + Range*0.5;

}

}

return(0);

}

 

MA+Stoch警报...谢谢

ixbone:
你好。

代码片段来自我的一个indis,你必须根据你的需要进行调整。

extern bool AlertON=false;

extern bool EmailON=true;

extern bool SoundON=false;

extern bool VoiceON=false;

extern bool SMSON=false;

extern string ExtSoundFileName = "";//需要外部的声音文件,比起删除。

FastMA = fastMAnow;

SlowMA = slowMAnow;

如果((fastMAnow >= slowMAnow) && (fastMAprevious < slowMAprevious))

{

如果(i == 1 && flagval1== 0)

{

flagval1=1。

flagval2=0。

if (AlertON==true) Alert("BUY signal at Ask=",Ask,"/n Bid=",Bid,"/n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()), "/n Symbol=",Symbol(), " Period=" , Period() )。

if (EmailON==true) SendMail("2754 BUY-ALP EUR", "BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+" 。"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period())。

if (SMSON==true) SendMail("2754 BUY-ALP EUR", "BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+" 。"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period())。

如果(SoundON==true)PlaySound(ExtSoundFileName);//peep等。

if (VoiceON==true) PlaySound(ExtSoundFileName);//自己的语音WAV。

}

CrossUp = Low - Range*0.5;

}

否则,如果((fastMAnow slowMAprevious))。

{

如果(i == 1 && flagval2== 0)

{

flagval2=1。

flagval1=0。

if (AlertON==true) Alert("SELL signal at Ask=",Ask,"/n Bid=",Bid,"/n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()), "/n Symbol=",Symbol(), " Period=" , Period() )。

if (EmailON==true) SendMail("2754 SELL-ALP EUR", "SELL signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime() )+" 。"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period())。

如果(SMSON==true) SendMail("2754 SELL-ALP EUR", "卖出信号在 Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+" 。"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period())。

如果(SoundON==true)PlaySound(ExtSoundFileName);//peeps等。

if (VoiceON==true) PlaySound(ExtSoundFileName);//自己的语音wav

}

CrossDown = High + Range*0.5;

}

}

return(0);

}

非常感谢...ixbone

我的代码写得很差......所以,我不能理解你的代码....,你能帮助我建立指标(.mq4),以便使用

如果可以的话,我非常感谢你

祝你工作顺利

 

我如何检查 当前条形图的高点是否比前条形图的高点大2点?

对不起,这个问题的位置不对。

请删除这个管理员。

谢谢!

 

部分关闭一个订单

你好。

我正试图编写一个EA,在两个级别上获取利润。为了做到这一点,我想拆分原始订单,使 "x "手在第一个利润目标处获利,其余手在第二个利润目标处获利。为了做到这一点,我使用了两个OrderClose()函数。

第一个OrderClose()函数工作得很好,但它似乎也关闭了现有的订单,并为剩余的手生成了新的票据。

谁能给我一些指导,如何处理这个 "新 "票据/订单,以便它能被第二个CloseOrder()函数处理?

谢谢

吉姆

 
jimdee:
你好。

我试图编写一个EA,在两个级别上获取利润。为了做到这一点,我想分割原始订单,使 "x "手在第一个利润目标处获利,其余的手在第二个利润目标处获利。为了做到这一点,我使用了两个OrderClose()函数。

第一个OrderClose()函数工作得很好,但它似乎也关闭了现有的订单,并为剩余的手生成了新的票据。

谁能给我一些指导,如何处理这个 "新 "票据/订单,以便它能被第二个CloseOrder()函数处理?

欢呼声

吉姆

只是一个想法。如果部分平仓获利较难实现,你可以尝试使用两个交易而不是一个。并按其开放时间 管理这些交易。

 
jimdee:
你好。

我试图编写一个EA,在两个级别上获取利润。为了做到这一点,我想分割原始订单,使 "x "手在第一个利润目标处获利,其余的手在第二个利润目标处获利。为了做到这一点,我使用了两个OrderClose()函数。

第一个OrderClose()函数工作得很好,但它似乎也关闭了现有的订单,并为剩余的手生成了新的票据。

谁能给我一些指导,如何处理这个 "新 "票据/订单,以便它能被第二个CloseOrder()函数处理?

欢呼声

吉姆

人们有不同的参考,我喜欢使用部分平仓,因为经纪人要处理的交易较少。

每次当部分平仓发生时,经纪人会把剩余的订单当作一个新的订单,所以分配一个新的票据。但这并不重要,只要你的下一步识别交易的方法不是基于订单票,它可以基于订单 手数,或者你可以指定一个变量来指示EA处于什么阶段。

如果存在以下情况,要完全正确地处理部分平仓是有点困难的。

1.由于MM的原因,你的订单可能是不同的手数。

2.你有多个不同手数的订单在同一时间存在。

如果您的EA有上述情况,如果您在编码方面没有经验,我认为您可以使用多单方法。

 

快速解决了简单的问题。谢谢*你 :)

我想返回以下变量:

1.最后记录的星期一(小时栏)的第一个栏的开盘价。

2.2.最后记录的星期三(小时栏)的最后一个栏的收盘价

有谁知道如何做到这一点?我已经试过通过以下方式获得这些变量。

//-------------------------------------------------------

如果(currentday == 1 && currenttime == 0)

{

MondayOpenPrice = iOpen(Symbol(),PERIOD_H1,0);

}

//--------------------------------------------------------

上面的问题是我不能总是让我的metatrader运行整个星期来保持这些变量。

因此,我需要EA在历史上寻找星期一的第一个开盘价等记录。

非常感谢您的时间。