如何编码? - 页 204

 

MT-4,请帮助我。

MT-4请帮助我,我想制作一个DMI+和DMI-的交叉文件。我想在DMI+和DMI-移动的瞬间获得信号,而不需要ADX。我很关心这个问题。我写在下面,但请创建这个文件,将其移动到MF4。

//+------------------------------------------------------------------+

//| ADXcross EXPERT |

//| Perky_z | |

//| |

//+------------------------------------------------------------------+

#属性版权 "Perky_z@yahoo.com "

#property link "http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"

//+--------------------------------------------------------------------------------------------------+

//| 与ADXcrosses Indicator一起使用时发出警报,它们不需要一起运行。

//+--------------------------------------------------------------------------------------------------+

//对+和-DI线的交叉发出警报

// 我在15分钟图表上使用它

//虽然在任何时间框架上看起来都不错

//使用其他指标来确认这个触发器。

//---- 输入参数

双b4plusdi,b4minusdi,nowplusdi,nowminusdi。

//----

//---- 指标

在这部分代码中,按你的要求改变周期(每行14个改为4个),这应该在你放置图表的这个标架上工作。

b4plusdi=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,1)。

nowplusdi=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,0)。

b4minusdi=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,1);

nowminusdi=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,0)。

 

这是在关闭部分手数,但是......没有完全做到我所期望的那样。

我不知道它在做什么,但当价格不在我想要的位置时,似乎关闭了1手。

也许你能看到这里的问题。

当出现买入且价格上涨0.00071(只是一个随机数字,我在1分钟图表上测试)时,应该关闭1手。

或者当出现卖出,价格下降0.00071时,关闭1手。

顺便说一下,使用一个5位数的经纪人。只有一个交易是开放的,而且只有这个EA,所以没有滚动的订单。

谢谢你的帮助!

如果(IsConnected() &&IsTradeAllowed()) while (IsTradeContextBusy())Sleep(75);

如果(OrdersTotal()>0){OrderSelect(0, SELECT_BY_POS,MODE_TRADES);

RefreshRates()。

如果(Bid >= (OrderOpenPrice()+ (.00071)) && OrderLots() == 2 && (OrderType() == OP_BUY){

OrderClose(OrderTicket(),1,Ask,10,R ed); }

如果(Ask <= (OrderOpenPrice()- (.00071)) && OrderLots() == 2 && (OrderType() == OP_SELL)){

OrderClose(OrderTicket(),1,Bid,10,B lue); }}

 

当一笔交易有(一次)正的利润,但仍低于经纪商的止损水平(尚未触及追踪)时,是否有可能制作一个代码,在收支平衡(利润=0)时关闭交易?

对于一个10点止损位的经纪商,只有当利润达到至少10点时,追踪系统才能发挥作用。

很多时候,我看到一个交易只到了5或8个点,然后又回到了它的止损点上。

所以我在考虑这个问题,但不知道怎么做。

如何为EA制作一个收支平衡的代码,类似于追踪止损,但在最低经纪商的止损水平以下工作?

 

致SPACECHIMP

当我们打开订单时,我们使用买入价,卖出价。当关闭时,则相反。

 

我认为它非常有用

FulltimeTrader:2009年6月

 

我需要帮助在这个顶级趋势指标中添加电子邮件警报

我需要帮助,在这个顶级趋势指标中添加电子邮件警报。

以下是行文和所附文件。

如果(趋势>0)

{

如果(信号>0 && UpTrendBuffer[shift+1]==-1.0)

{

UpTrendSignal[shift]=bsmin[shift]。

UpTrendBuffer[shift]=bsmin[shift]。

if(Line>0) UpTrendLine[shift]=bsmin[shift];

如果(SoundON==true && shift==0 && !TurnedUp)

{

Alert("BBands going Up on " ,Symbol(),"-",Period())。

TurnedUp = true;

TurnedDown = false;

}

}

否则

{

UpTrendBuffer[shift]=bsmin[shift];

if(Line>0) UpTrendLine[shift]=bsmin[shift];

UpTrendSignal[shift]=-1。

}

如果(信号=2)UpTrendBuffer[shift]=0。

DownTrendSignal[shift]=-1。

DownTrendBuffer[shift]=-1.0。

DownTrendLine[shift]=EMPTY_VALUE。

}

如果(trend<0)

{

如果(信号>0 && DownTrendBuffer[shift+1]==-1.0)。

{

DownTrendSignal[shift]=bsmax[shift]。

DownTrendBuffer[shift]=bsmax[shift]。

if(Line>0) DownTrendLine[shift]=bsmax[shift];

如果(SoundON==true && shift==0 && !TurnedDown)

{

Alert("BBands going Down on " ,Symbol(),"-",Period())。

TurnedDown = true;

TurnedUp = false;

}

}

否则

{

DownTrendBuffer[shift]=bsmax[shift];

if(Line>0)DownTrendLine[shift]=bsmax[shift];

DownTrendSignal[shift]=-1;

}

如果(信号=2)DownTrendBuffer[shift]=0。

UpTrendSignal[shift]=-1。

UpTrendBuffer[shift]=-1.0。

UpTrendLine[shift]=EMPTY_VALUE。

}

}

return(0);

}

附加的文件:
toptrend.mq4  6 kb
 

看不到这里的问题!?AAAAHHHH

我不知道我做错了什么...。

这似乎不能在某个TP时关闭一半

如果(OrdersTotal()>0){

OrderSelect(0, SELECT_BY_POS,MODE_TRADES);

Tick = OrderTicket(); //所选订单 的数量

Tip =OrderType(); // 所选订单的类型

Price =OrderOpenPrice(); // 所选订单的价格

Lot =OrderLots();

如果(Bid >= (Price + (TakeProfit * Point)) && Lot == 2 && (Tip == OP_BUY)) {

OrderClose(Tick,1,Bid,10,Red); }

如果(Ask <= (Price - (TakeProfit * Point)) && Lot == 2 && (Tip == OP_SELL)) {

OrderClose(Tick,1,Ask,10,Blue); }}

我的BID和ASK正确吗? 可能不正确

 

我的EA需要一些帮助

我需要一个代码来限制我的EA只做一次交易。它是一个黄牛,我只想做一次交易,在它做完后,我把它关掉,第二天再附加它。

 

在这个主题的什么地方....

在这个主题的某个地方,这个问题一定被问过......

谁能帮我写一下代码:1) 有一个隐藏的SL,2) 只关闭 部分(50%)的开仓订单,3) 在穿越移动平均线后关闭剩余的订单。

附上一个EA,但它不是英文的,所以我不能完全理解它在做什么或在哪里添加我的其他代码。

谢谢你的帮助。

附加的文件:
 

如何防止在每一个新的跳动中重新加载指标

请告诉我,我在调用iCustom时做错了什么,导致指标在每一个新的tic时都要重新加载。(回测时,整个观察窗口都充满了该指标的数百次迭代。)

在我的 "启动程序 "中,我想用EntryDir()方法确认一个交易机会(如下所示)。

static datetime lastsd;

如果 ( CurTime()-lastsd>2*60*Period() )

{

if(ZZ>=High[1] && EntryDir()==OP_SELL)

{

如果(pos == 1) {DoExit(OP_BUY);}

PrepNewOrder(OP_SELL)。

lastsd=CurTime();

}

如果(ZZ! =0 && ZZ<=Low[1] && EntryDir()==OP_BUY)

{

if(pos == -1) {DoExit(OP_Sell);}

PrepNewOrder(OP_BUY)。

lastsd=CurTime();

}

}

int EntryDir()

{

bool buyOK=false, sellOK=false;

double flow = iCustom(NULL, 0, "Dtron", 0,0) + iCustom(NULL, 0, "Dtron" 1,0);

double trigger = iCustom(NULL, 0, "Dtron", 1,0) + iCustom(NULL, 0, "Dtron", 3,0);

double reversal = iCustom(NULL, 0, "Dtron", 4,0);

if((reversal==0 && flow + trigger>0) || reversal>0) entryDir=OP_BUY。

如果((反转==0 && flow + trigger<0) ||反转<0) entryDir=OP_SELL;

return(entryDir);

}

请告诉我如何防止导致数百个Dtron指标窗口在此打开。

原因: