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())。
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())。
德马变量的设置不正确
我无法正确设置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级时发出警报
非常感谢你
我的英语是外语
衷心感谢
你能帮助我建立指标: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警报...谢谢
你好。
代码片段来自我的一个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()函数处理?
谢谢
吉姆
你好。
我试图编写一个EA,在两个级别上获取利润。为了做到这一点,我想分割原始订单,使 "x "手在第一个利润目标处获利,其余的手在第二个利润目标处获利。为了做到这一点,我使用了两个OrderClose()函数。
第一个OrderClose()函数工作得很好,但它似乎也关闭了现有的订单,并为剩余的手生成了新的票据。
谁能给我一些指导,如何处理这个 "新 "票据/订单,以便它能被第二个CloseOrder()函数处理?
欢呼声
吉姆只是一个想法。如果部分平仓获利较难实现,你可以尝试使用两个交易而不是一个。并按其开放时间 管理这些交易。
你好。
我试图编写一个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在历史上寻找星期一的第一个开盘价等记录。
非常感谢您的时间。