如何编码? - 页 188

 

int start()

{

int total,ord,i;

字符串。

total = OrdersTotal();

for(i=0;i<total;i++)

{

OrderSelect(i,SELECT_BY_POS)。

if(OrderSymbol() = Symbol())ord++;

}

if(ord>0) return (0); //Abort!这个货币对的头寸已经打开了

//我的其余程序代码

}

我发现在现实中,由于经纪商没有立即开仓,我不得不在代码中使用几秒钟的暂停。

 

想在一个方向上开1个仓位,但即使仓位达到TP,也不能再开。

检查 开仓显然是行不通的。

例如

如果我有一个买入的仓位,并且击中了TP,我不希望再执行一个 "买入"。我想让它等到MA线向下交叉,然后用TP开一个卖出,再重复整个过程。

也许有一种简单的方法可以做到这一点,我的大脑被烧坏了,或者其他什么东西。

谢谢你

 

谢谢你的信息...

SPACECHIMP:
int start()

{

int total,ord,i;

字符串。

total = OrdersTotal();

for(i=0;i<total;i++)

{

OrderSelect(i,SELECT_BY_POS)。

if(OrderSymbol() = Symbol())ord++;

}

if(ord>0) return (0); //Abort!这个货币对的头寸已经打开了

//我的其余程序代码

}

我发现在现实中,由于经纪人没有立即开仓,我不得不在代码中使用几秒钟的停顿。

谢谢你花时间给我看这段代码!我认为我的屏幕截图不足以解释我所要实现的逻辑。这里的解释是明智的......只是作为一个例子,我使用的是 "买入 "情况。最终我希望它能同时进行 "买 "和 "卖"。

情景1:如果你的买入交易与你同行......--交易1,T/P为70点

--交易2,在交易1的基础上增加30点,T/P为70点

--交易3,离交易2有30点距离,T/P为70点

** 总共210点

情况2:如果你的买入交易对你不利......在三个交易中每隔60点进行一次交易,并等待市场向你的方向回调--交易1不好......在交易1的价格上以-60点进入新的应急买入交易。

--交易2不好...在交易2的价格的-60点处进入新的应急买入交易。

--交易3不好...不再进行交易

--等待反转迹象......抛物线 点=底部......如果看起来是在向我们的方向发展,那么进入第四笔买入交易

--再等30个正数点,然后进入第5次买入交易......继续进入买入交易(6、7、8次交易),直到达到第3次应急交易的水平....,然后等待最初的第1次,并遵循方案1的步骤。

有可能得到这个逻辑的代码吗?我将非常感激!!

 
SPACECHIMP:
想在一个方向上建立1个仓位,但即使仓位达到TP,也不能再多了。

检查开放的位置显然不起作用。

例如

如果我有一个买入的仓位,并且击中了TP,我不希望再执行一个 "买入"。我想让它等到MA交叉点向下,然后用TP开一个卖出,再重复整个过程。

也许有一种简单的方法可以做到这一点,但我的大脑被烧坏了。

谢谢你

你需要检查 你的订单历史,看看是否有订单在当前条形图上关闭以获取利润。

希望这有帮助。

拉克斯

 

RSI过滤器pete

大家好...

我试图为这个Indy(RSI过滤器Pete)创建一个简单的EA,但在编译后,当我启动回测时,什么都没有发生

我只想

1-在绿色或浅绿色时买入

2、在红色或浅红色时卖出

所以我请求一些好心人帮助我解决这个问题。

谢谢

附加的文件:
 

请为EA提供MM

我想在我的EA中添加这个条件

如果前一天的损失可以采取任何操作

有谁能帮忙吗?

这是我的EA

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

/*

EA Dengan sinyal dari signal ma

*/

extern double Lots = 0.01;

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

//| |

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

int start()

{

double a1, //ma 10 tf 4h

a2, //ma 10 tf 1h

a3, //ma 10 tf 15m

a4, //ma 10 tf 5m

j, //yesterday low price

k, //yesterday high price

b1, //ma 30 tf 4h

b2, //ma 30 tf 1h

b3, //ma 30 tf 15m

b4; //ma 30 tf 5m

int cnt, ticket, total;

if(Bars<100)

{

Print("bars less than 100");

return(0);

}

// to simplify the coding and speed up access

// data are put into internal variables

a1 = iMA(NULL,240,10,0,MODE_EMA,PRICE_CLOSE,0);

a2 = iMA(NULL,60,10,0,MODE_EMA,PRICE_CLOSE,0);

a3 = iMA(NULL,15,10,0,MODE_EMA,PRICE_CLOSE,0);

a4 = iMA(NULL,5,10,0,MODE_EMA,PRICE_CLOSE,0);

b1 = iMA(NULL,240,30,0,MODE_EMA,PRICE_CLOSE,0);

b2 = iMA(NULL,60,30,0,MODE_EMA,PRICE_CLOSE,0);

b3 = iMA(NULL,15,30,0,MODE_EMA,PRICE_CLOSE,0);

b4 = iMA(NULL,5,30,0,MODE_EMA,PRICE_CLOSE,0);

j = iLow(NULL,60,2);

k = iHigh(NULL,60,2);

total=OrdersTotal();

if(total<1)

{

// no opened orders identified

if(AccountFreeMargin()<(1000*Lots))

{

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

// check for long position (BUY) possibility

if(a1>b1&&

a2>b2&&

a3>b3&&

a4>b4+10*Point)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"macd sample",16384,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());

}

else Print("Error opening BUY order : ",GetLastError());

return(0);

}

// check for short position (SELL) possibility

if(a1<b1&&

a2<b2&&

a3<b3&&

a4<b4-10*Point)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"macd sample",16384,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());

}

else Print("Error opening SELL order : ",GetLastError());

return(0);

}

return(0);

}

// it is important to enter the market correctly,

// but it is more important to exit it correctly...

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()<=OP_SELL && // check for opened position

OrderSymbol()==Symbol()) // check for symbol

{

if(OrderType()==OP_BUY) // long position is opened

{

// should it be closed?

if(Bid>OrderOpenPrice()+100*Point)//if profit > 100

{

OrderModify(OrderTicket(),OrderOpenPrice(),j,0,0,Green);

return(0);

}

if(Bid<OrderOpenPrice()-150*Point)//stop loss

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position

return(0); // exit

}

}

else // go to short position

{

// should it be closed?

if(Ask 100

{

OrderModify(OrderTicket(),OrderOpenPrice(),k,0,0,Green);

return(0);

}

if(Ask>OrderOpenPrice()+150*Point)//stop loss

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position

return(0); // exit

}

}

}

}

return(0);

}

// the end.

 

你好。

几周前我在另一个论坛上提出了类似的要求。一种CLOSEALL,如果余额=+x金额或-x金额。我不是程序员,但这似乎是不可能的(?),因为我真的只得到了几个不清楚的答案。

看起来并不复杂,但话说回来,我不是一个程序员。

祝你好运。

 

是否可以通过EA打开一个交易弹出窗口?

你好。

我想通过EA打开一个交易弹出窗口。

这可能吗?

如果可以通过EA打开,是否可以打开一个交易弹出窗口,上面的交易量(手数)被设置为一个由EA命令的数字?

 
Dax:
你好。

我想通过EA打开一个交易弹出窗口。

这可能吗?

如果可以通过EA打开,是否可以打开一个交易弹出窗口,将交易量的数字(手数)设置为EA命令的数字?

你必须用dll来做这件事。

 
Ms_Mel:
你好。

几周前我在另一个论坛上提出了类似的要求。一种CLOSEALL,如果余额=+x金额或-x金额。我不是程序员,但这似乎不可能(?),因为我真的只得到几个不清楚的答案。

似乎没有那么复杂,但话说回来,我不是一个程序员。

祝您好运。

在论坛上搜索一下closeall EAs。这里有几个

原因: