2) 55 Pips TS after 90 but only up to 135 pips profit.
3) 15 Pips TS after 135 pips profit.
The problem I am having is the Trailing Stop moves both up and down as the price moves up and down . . It should just be moving up as the price profit increases and stop if the price starts dropping! How do I get it to stop moving down as the price drops - The Trailing Stop is acting like a Yo-Yo as the price moves up and down.
I am not sure how to stop this from happening?? Please, I need your expertise!
double pBid, pAsk, pp;
pp = MarketInfo(OrderSymbol(), MODE_POINT);
if (OrderType()==OP_BUY) {
pBid = MarketInfo(OrderSymbol(), MODE_BID);
//BreakEven routine
if (BreakEven>0) {
if ((pBid-OrderOpenPrice())>BreakEven*pp) {
if ((OrderStopLoss()-OrderOpenPrice())<0) {
ModifyStopLoss(OrderOpenPrice()+0*pp);
}
}
}
if (TrailingStop>0) {if ((pBid-OrderOpenPrice())>TrailingStop_Over135*pp){ //15 pips TS
ModifyStopLoss(pBid-TrailingStop_Over135*pp);
if (pBid-OrderOpenPrice()>TrailingStop_Over90*pp && pBid-OrderOpenPrice()<TrailingStop_Over135*pp){ //55 pips TS
ModifyStopLoss(pBid-TrailingStop_Over90*pp);
if ((OrderOpenPrice()-pAsk)>TrailingStop +TrailingStep+1*pp && (OrderOpenPrice()-pAsk) < TrailingStop_Over90*pp+TrailingStep-1*pp || OrderStopLoss()==0) {//75 pips TS
ModifyStopLoss(pAsk+TrailingStop*pp);
return;
}
}
}
}
}[/PHP]
Three levels of Trailing Stop:
1) 75 Pips TS up to first 90 Pips Profit.
2) 55 Pips TS after 90 but only up to 135 pips profit.
3) 15 Pips TS after 135 pips profit.
The problem I am having is the Trailing Stop moves both up and down as the price moves up and down . . It should just be moving up as the price profit increases and stop if the price starts dropping! How do I get it to stop moving down as the price drops - The Trailing Stop is acting like a Yo-Yo as the price moves up and down.
I am not sure how to stop this from happening?? Please, I need your expertise!
Humbly,
Dave例如:[PHP]ts = pBid - TrailingStop_Over135*pp;
如果(ts > OrderOpenPrice() && ts > OrderStopLoss()ModifyStopLoss(ts)。
请允许我请求帮助
我可以请任何人看一下我的代码,看看哪里不对吗?....,我不是什么程序员,希望得到一些帮助。
谢谢
我还意识到一件事--有一个叫本-泰勒的人在卖一个EA,它看起来几乎和编码大师编程的那个一模一样--也许这是他的一个客户--笑。
如果不是的话--我们应该让编码员大师知道这件事。
如果需要,首先检查你是否晚于上午8点。
Then, find the max and min of the current day. (if its ok for you, its easier than from 8 am): [PHP]double Max = iHigh(Symbol(), PERIOD_D1, 0);
double Min = iLow(Symbol(), PERIOD_D1, 0);
int Range = (Max - Min) / Point;
if(Range > 90) return;
...
嗨,米歇尔。
我参考了你的代码。
if(Hour() < 8) return;
我修改了代码,如下。
if(Hour()>12) hr_x=1;
.....
.....
.....
.....
if(hr_x==1) signal=50。
但是我有所有的柱状图条50!!!!
如果你看下面的图表,似乎 "小时 "命令不能识别它!!。
顺便说一下,我使用的是30分钟图,会不会有什么不同。我试图切换到1Hour图表,但问题仍然存在
我还尝试了 "if(Hour() < 8) return;",但所有的条形图都消失了!!。
我试了很多方法,但还是不能让它发挥作用。
能否再给我一些建议?谢谢
Hi codersguru 你能在下面的指标中添加带弹出和箭头的信号吗?
有没有人可以添加一个信号?
谢谢米歇尔对我的三重追踪止损编码进行了适当的修正。 这将有望为我的新EA创作提供最后的修正。 如果没有大家慷慨的知识,我是不可能对这种语言进行编程的。 我把我获得的关于这种语言的所有新信息都记录下来。 我希望当MT5问世时,编码不会发生根本性的变化--我讨厌重新开始!再次感谢!
戴夫
<<<
我可以请任何人看一下我的代码,看看哪里不对吗?....,我不是什么程序员,希望得到一些帮助。
谢谢
另外,我刚刚意识到一件事--有一个叫本-泰勒的人在卖一个EA,看起来几乎和编码大师编程的那个一模一样--也许这是他的一个客户--笑。
如果不是这样的话--我们应该让编码员大师知道这一点。如果我不得不把问题归结为一个领域,那就是上面这段代码。 买入和卖出需要有一个交叉点。
double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current +1); /1-Back
double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current +1); /1-Back
double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current +1); /1-Back
double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current +1); /1-Back
如果(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) 那就买入; // 正确的 "上升 "交叉已经发生!
if(Sell1_1Buy2_2) Then Sell; // 适当的 "下跌 "交叉点已经出现!
戴夫
这不完全是你要找的,但还是要看一下。 附加到另一个图表上,它可以监控所有的利润,以及有工作的EA的图表的损失。
戴夫--你是个福星:)
如果我不得不把问题归结为一个领域,那就是上面这段代码。 需要有一个买入和卖出的交叉点。
double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0) 。
double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current +1); /1-Back
double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current +1); /1-Back
double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current +1); /1-Back
double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current +1); /1-Back
如果(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) 那就买入; // 正确的 "上升 "交叉已经发生!
if(Sell1_1Buy2_2) Then Sell; // 适当的 "下跌 "交叉点已经出现!
Dave非常感谢--我将试一试。
需要编码帮助
希望得到任何帮助。
这将在EA中作为交易关闭程序的一个组成部分。
我需要创建一个变量,总是返回账户的最高历史余额。我想这需要一个数组?
在实际应用中,语言会说。"如果我的开仓利润比账户的历史最高余额高X个点,就关闭所有的交易。"
如果有人能在变量方面提供帮助,我想我可以对其余部分进行编码。
提前感谢。
谢谢你的回答,但你是对的,它们并不是我所要的。
我还没有精通的代码来解决这个问题。
我需要代码来返回账户余额 的 "高水位"。
再次感谢,感谢任何帮助。
这不完全是你要找的东西,但还是要看一下。 附在另一个图表上,它可以监控所有有工作的EA的图表的利润和损失。