int start()
{
if(GetProfitOpenPosInCurrency(Symbol(),-1,MagicNumber)>=ProfitToStartTral) //если прибыль в валюте депозита больше заданной в настройках
{
CloseLoss(Symbol(),-1,MagicNumber);//закрываем все убыточные позы советника по текущему символу
start3();//запускаем трал
}
//бла-бла-бла, тут еще куча рабочего кода :)
}
用户定义的功能。
void start3()
{
if (ShowComment) {
Comment(IIFs(AllSymbols, "AllSymbols ", "")
,"Magic="+IIFs(Magic<0, "Любой", DoubleToStr(Magic, 0))+" "
,IIFs(TSProfitOnly, "TSProfitOnly ", "")
,"TStop.Buy="+DoubleToStr(TStop.Buy, 0)+"п "
,"TStop.Sell="+DoubleToStr(TStop.Sell, 0)+"п "
,"TrailingStep="+DoubleToStr(TrailingStep, 0)+"п "
);
} elseComment("");
string sy=IIFs(AllSymbols, "", NULL);
SimpleTrailing(sy, -1, Magic);
}
//*********************************************************************//
void SimpleTrailing(string sy="", int op=-1, int mn=-1) {
double po, pp;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
po=MarketInfo(OrderSymbol(), MODE_POINT);
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) {
pp=MarketInfo(OrderSymbol(), MODE_BID);
if (!TSProfitOnly || pp-OrderOpenPrice()>TStop.Buy*po) {
if (OrderStopLoss()<pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0) {
ModifyOrder(-1, pp-TStop.Buy*po, -1);
}
}
}
if (OrderType()==OP_SELL) {
pp=MarketInfo(OrderSymbol(), MODE_ASK);
if (!TSProfitOnly || OrderOpenPrice()-pp>TStop.Sell*po) {
if (OrderStopLoss()>pp+(TStop.Sell+TrailingStep-1)*po || OrderStopLoss()==0) {
ModifyOrder(-1, pp+TStop.Sell*po, -1);
}
}
}
}
}
}
}
}
//****************************************************
string IIFs(bool condition, string ifTrue, string ifFalse) {
if (condition) return(ifTrue); else return(ifFalse);
}
在外汇市场上,几乎所有的服务器都是免费的。
更重要的是,几乎每家经纪公司都有模拟账户,你可以用虚拟资金而不是真实资金进行交易。
什么是Margin CALL?追
缴保证金是一种导致强制平仓的情况。 。
当你的账户余额(Equity)达到所有未结头寸金额所需保证金(Margin)的零时,就会出现这种情况。
该操作是自动的。在一些公司,追加保证金被设定为股权的30%。
谢谢你,你能给我一个具体的链接吗?我不能用谷歌搜索它。再次感谢。
你所需要做的就是下载并安装任何经纪商的MetaTrader 4。
你需要开一个模拟账户,你就可以使用它了。一切都是免费的。你可以通过谷歌找到一个经纪人,有很多。
大家好。我在编写EA时遇到了一个问题,我觉得错误就在表面的某个地方,但我找不到它。如果有人能告诉我该怎么做,我会很高兴。
问题的实质:我被要求在Igor Kim的 一个EA中同时为几个头寸添加一个跟踪止损。我都加上了,但结果很糟糕 :( 追踪止损总是在TStop.Sell和TStop.Buy点上移动,远离买入和卖出,即价格上升,追踪止损也上升,价格下降 - 追踪止损下降...我不需要给心灵感应小组打电话,我自己会添加代码 :)
用户定义的功能。
我想知道是否可以将指标代码中指定的参数(不是指标本身的参数)传递给另一个指标进行处理?
第二个问题,如何将参数从指标传递给EA,以及这个EA在测试模式 下将如何表现?
提前感谢您!
你的解释非常曲折。
通过GlobalVariable 转移到MT的最简单方法大约是像剪贴板一样。一个人放,另一个人拿。
但是,还有很多其他选择,它们是根据情况而定的。既然没有情况,就很难谈及选择。它将在同一个字符上进行测试。
。
你的解释非常曲折。
通过GlobalVariable 转移到MT的最简单方法大约是像剪贴板一样。一个人放,另一个人拿。
但是,还有很多其他选择,它们是根据情况而定的。既然没有情况,就很难谈及选择。它将在同一个字符上进行测试。
。
在MT帮助中没有找到GlobalVariable,....
关于变体。例如,计算如下,有一个之字形指标,我给之字形代码添加了一个定义模式的代码,如If(条件)如果满足条件,a=1变量如果不满足,a=0.我需要将这个变量值传递给另一个指标,在这种情况下,如果这种指标中的变量等于(a=1)做如下操作,如果a=0。 这是关于在指标之间传递参数。
和,分别以相同的形式将参数从指标传递给专家顾问。当我在策略测试器中测试时,专家顾问是否会加载指标进行计算,并将变量值传递给EA? 还是会因为变量位于指标环境中而无法访问而出错!?
同样的问题。如何将数据从一个非标准的指标转移到另一个指标?
你的解释非常曲折。
通过GlobalVariable 转移到MT的最简单方法大约是像剪贴板一样。一个人放,另一个人拿。
但是,还有很多其他的选择,它们都是视情况而定。既然没有情况,就很难谈及选择。它将在同一个字符上进行测试。
。
比如说,你不能像标准的iMA那样用短名称来调用它吗?
你可以调用它,没有错误,但如何传递参数? 我做了一个调用,把参数放在括号里(我调用的),但在响应中发誓这种参数不存在于指标中。