if(OrderSymbol()==Symbol() && OrderMagicNumber()==ID){//Pulls in order that meets the criteria for processing
int num=0;int pos=0;
for(int b=0;b<21;b++){// this (loopB) compares the ticket# of the selected order against the number stored in the ticket array
if(tsTicket==OrderTicket() ){
num++; pos=b;// if ticket numbers match, pos is the position in the array where the trailing data is stored
Print("(",pos,") Ticket ",tsTicket[pos]," found. SL is ",tsPrice[pos]);
break;
}
}
if(num==0){ // if the loopB did not find a matching ticket number it is time to initialize the data
for(int j=0;j<21;j++){
if(tsTicket[j]==0){// this is looking for the earliest instance within the array to store the data
pos=j;
break;
}
}
tsTicket[pos]=OrderTicket();// setting the ticket number
tsok[pos]=false;// this is to determine when trailing kicks in
Print("(",pos,") New ticket initialized = ",tsTicket[pos]);
}
if (OrderType()==OP_SELL) {
if (!tsok[pos] && (OrderOpenPrice()-Ask>=TSactivation*Point || TSactivation==0 ) ) {// if the trailing factor is false, but it has hit the activation point continue
tsPrice[pos]=Ask+TrailPips*Point;// this is the new trailinf stop price
tsok[pos]=true;// it's ok to proceed with trailing stop
if(TrailPips>8){// if this distance from the current price to the new stop, then modify the order.
ModifyStopLoss(Ask+TrailPips*Point);//modifies order
}
}
if (tsok[pos] && Ask+TrailPips*Point < tsPrice[pos] ){//if the position is gaining in profit
tsPrice[pos]=Ask+TrailPips*Point;
if(TrailPips>8){
ModifyStopLoss(Ask+TrailPips*Point);
}
}
if (tsok[pos] && Ask >= tsPrice[pos] ){// if the postion hits the stop price
我不喜欢没有SL或TP的订单,当使用superclose()时,没有TP,直到跟踪被激活。所以我问为什么不设置一个初始止盈(在超级收盘前设置一个),以确保在电脑崩溃的情况下。这就是为什么我建议将takeprofit变量的值增加2倍。
同时启动测试计划,参数为。
止损。10到30?
获利:20至100?
时间框架。M1 M15 H4 Daily Weekly...
货币。从Holyguy7选择的12种货币? 只有那些有少量点差的货币(<=5)?
这些只是建议。好的,我现在明白你的意思了。 这是很容易做到的。 我使用的是100%正常运行的专用服务器,所以我忽略了对这样的事情的考虑。
这里是关于superclose()的一些说明。 我希望能够有能力通过票号跟踪TS价格,所以你可以将MaxTrades设置为1以上,并且能够跟踪少于10点的价格。
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==ID){//Pulls in order that meets the criteria for processing
int num=0;int pos=0;
for(int b=0;b<21;b++){// this (loopB) compares the ticket# of the selected order against the number stored in the ticket array
if(tsTicket==OrderTicket() ){
num++; pos=b;// if ticket numbers match, pos is the position in the array where the trailing data is stored
Print("(",pos,") Ticket ",tsTicket[pos]," found. SL is ",tsPrice[pos]);
break;
}
}
if(num==0){ // if the loopB did not find a matching ticket number it is time to initialize the data
for(int j=0;j<21;j++){
if(tsTicket[j]==0){// this is looking for the earliest instance within the array to store the data
pos=j;
break;
}
}
tsTicket[pos]=OrderTicket();// setting the ticket number
tsok[pos]=false;// this is to determine when trailing kicks in
Print("(",pos,") New ticket initialized = ",tsTicket[pos]);
}
if (OrderType()==OP_SELL) {
if (!tsok[pos] && (OrderOpenPrice()-Ask>=TSactivation*Point || TSactivation==0 ) ) {// if the trailing factor is false, but it has hit the activation point continue
tsPrice[pos]=Ask+TrailPips*Point;// this is the new trailinf stop price
tsok[pos]=true;// it's ok to proceed with trailing stop
if(TrailPips>8){// if this distance from the current price to the new stop, then modify the order.
ModifyStopLoss(Ask+TrailPips*Point);//modifies order
}
}
if (tsok[pos] && Ask+TrailPips*Point < tsPrice[pos] ){//if the position is gaining in profit
tsPrice[pos]=Ask+TrailPips*Point;
if(TrailPips>8){
ModifyStopLoss(Ask+TrailPips*Point);
}
}
if (tsok[pos] && Ask >= tsPrice[pos] ){// if the postion hits the stop price
CloseOrder(2);
Print("Order ",tsTicket[pos]," Closed from TS");
}
}
if (OrderType()==OP_BUY) {// reverse of SELL
if(!tsok[pos] && (Bid-OrderOpenPrice() >= TSactivation*Point || TSactivation==0 ) ) {
tsPrice[pos]=Bid-TrailPips*Point;
tsok[pos]=true;
if(TrailPips>8){
ModifyStopLoss(Bid-TrailPips*Point);
}
}
if (tsok[pos] && Bid-TrailPips*Point > tsPrice[pos] ){
tsPrice[pos]=Bid-TrailPips*Point;
if(TrailPips > 8){
ModifyStopLoss(Bid-TrailPips*Point);
}
}
if (tsok[pos] && Bid <= tsPrice[pos] ){
CloseOrder(1);
Print("Order ",tsTicket[pos]," Closed from TS");
} } } } }
for(i=0;i<21;i++){// this searches the array for ticket numbers that are now obsolete due to an order that has closed
if(tsTicket>0){
bool found=false;
for(b=0;b<OrdersTotal();b++){
OrderSelect(b,SELECT_BY_POS);
if(tsTicket==OrderTicket()){
found=true;
break;
}
}
if(!found){// if there are matching ticket numbers in the trade pool and the array then nothing happens
tsTicket=0;tsPrice=0;tsok=false;// if there is an obolete ticket the the data is reset. And the next new ticket data can occupy this space
Print("Array pos ",i," Cleaned");
} } } }这里是在UseClose为真后改变TP的EA。 为了安全起见,它将把TP翻倍。 谢谢Jo!
我希望能测试一下Profit Generator 2.4。 它没有从630GMT.....Has it been placing anyother trades for anyone.请让我知道,因为我认为这是个好的EA。
你会得到较少的交易,因为第一个标准是目前的条形必须大于LongBar的长度值。 我建议在较低的TF上使用较小的蜡烛。
ok,但作为一个新手,我会等待更有经验的人对不同的参数给出高低限。
我目前正在用Holyguy7的预设值测试2.4,从凌晨1点开始,我只做了3笔交易(1:10卖出usdcad的日线BAD;7:29和14:29的gbpusd的H1第一个28点,第二个实际上是输家)。这似乎是正常的,有人有同样的结果吗?
另外,为了允许多个时间段的测试,我在2.6版本中修改了三行。
1 -
外来的int ID。
成为
extern int ID_BASE=100000; 以给PG_2.6一个数字(这里是1)。
2 - 我在 "int Bar; "下面添加了下一行
int ID。
3 - 我添加了init()函数
int init(){
ID=ID_BASE+Period(); return(0);
}
所以在日线图上,magicnumber将是101440,并将出现在交易的评论中。这将更容易分析每个时间框架和各种参数的结果。我还没有测试它,但它应该是有效的。
对于一个特定的图表,你将有一个固定的ID,而不是一个随机数字。
另外,也许我们可以使用超级收盘函数添加一个初始止盈。以防电脑崩溃。
PS:我还做了其他的改动,在发布前必须删除。如果有兴趣,请告诉我。好主意! 唯一需要注意的是,如果你要在同一个交易对和TF上运行不同的测试来改变基础ID。 我增加了这些变化,但做了一个小改动。...因为Period可以从变量 "period "中改变(与图表不同),我这样做而不是:ID=ID_BASE+P(); return(0)。
P()返回程序正在使用的实际周期。 好主意......你还玩了哪些变化?
这里是2.6.2。
自上次发帖以来没有更多的消息(GBPUSD仍然是失败者),但我在H1和日线上运行,我保持longbar=15。
让我们在今晚等待吧(对日元而言,总体而言)。
有没有人给我建议测试参数(SL和TP)?
我将在主要货币和M1、M5、M15、H1和H4上使用无小时限制。
自上次发帖以来,没有任何进展(GBPUSD仍然是失败者),但我在H1和日线上运行,我保持longbar=15。
我注意到,英镑兑美元在日线图上似乎效果更好。
止损点:40
SL: 30
没有时间过滤器
长线:10
只是看起来更可靠。在H1图表上,欧元兑美元和美元兑瑞郎似乎做得更好,长限值为15,时间过滤器打开。
我现在很纠结,因为主要货币对 都让我无法使用这个EA。有没有人在主要货币对上取得成功?如果有,请发表您的发现。
你好
HolyGUY。
今天这个新EA的进展如何?
你好
HolyGUY。
今天这个新EA的进展如何?由于一些主要货币对 的原因,从昨天开始出现了一些回调。本周仍然上涨了20%以上,目前该系统没有开放交易。
我将在几个小时后公布我的结果。我把英镑兑美元放在H1时间框架上,但相信它在D1时间框架上更可靠,因为其他的也是如此。我将随时向您汇报。