[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 693

 
Hedin:


在外汇市场上,几乎所有的服务器都是免费的。

更重要的是,几乎每家经纪公司都有模拟账户,你可以用虚拟资金而不是真实资金进行交易。

谢谢,你能给我一个具体的链接吗?我不能用谷歌搜索它。再次感谢。
 
artmedia70:
什么是Margin CALL?追
缴保证金是一种导致强制平仓的情况。 。

当你的账户余额(Equity)达到所有未结头寸金额所需保证金(Margin)的零时,就会出现这种情况。

该操作是自动的。在一些公司,追加保证金被设定为股权的30%。

I.e. [AccountFreeMargin() = AccountEquity() - Margin] ?

其中Margin -> 所有未结头寸 的总额。




 
Guest77:
谢谢你,你能给我一个具体的链接吗?我不能用谷歌搜索它。再次感谢。

你所需要做的就是下载并安装任何经纪商的MetaTrader 4。

你需要开一个模拟账户,你就可以使用它了。一切都是免费的。你可以通过谷歌找到一个经纪人,有很多。

 

大家好。我在编写EA时遇到了一个问题,我觉得错误就在表面的某个地方,但我找不到它。如果有人能告诉我该怎么做,我会很高兴。

问题的实质:我被要求在Igor Kim的 一个EA中同时为几个头寸添加一个跟踪止损。我都加上了,但结果很糟糕 :( 追踪止损总是在TStop.Sell和TStop.Buy点上移动,远离买入和卖出,即价格上升,追踪止损也上升,价格下降 - 追踪止损下降...我不需要给心灵感应小组打电话,我自己会添加代码 :)

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)+"п  "
           );
  } else Comment("");

  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);
}
 

我想知道是否可以将指标代码中指定的参数(不是指标本身的参数)传递给另一个指标进行处理?

第二个问题,如何将参数从指标传递给EA,以及这个EA在测试模式 下将如何表现?

提前感谢您!

 

你的解释非常曲折。

通过GlobalVariable 转移到MT的最简单方法大约是像剪贴板一样一个人放,另一个人拿。

但是,还有很多其他选择,它们是根据情况而定的。既然没有情况,就很难谈及选择。它将在同一个字符上进行测试。

 
zhuki:

你的解释非常曲折。

通过GlobalVariable 转移到MT的最简单方法大约是像剪贴板一样一个人放,另一个人拿。

但是,还有很多其他选择,它们是根据情况而定的。既然没有情况,就很难谈及选择。它将在同一个字符上进行测试。


在MT帮助中没有找到GlobalVariable,....

关于变体。例如,计算如下,有一个之字形指标,我给之字形代码添加了一个定义模式的代码,如If(条件)如果满足条件,a=1变量如果不满足,a=0.我需要将这个变量值传递给另一个指标,在这种情况下,如果这种指标中的变量等于(a=1)做如下操作,如果a=0。 这是关于在指标之间传递参数

和,分别以相同的形式将参数从指标传递给专家顾问。当我在策略测试器中测试时,专家顾问是否会加载指标进行计算,并将变量值传递给EA? 还是会因为变量位于指标环境中而无法访问而出错!?

 

同样的问题。如何将数据从一个非标准的指标转移到另一个指标?

 
zhuki:

你的解释非常曲折。

通过GlobalVariable 转移到MT的最简单方法大约是像剪贴板一样一个人放,另一个人拿。

但是,还有很多其他的选择,它们都是视情况而定。既然没有情况,就很难谈及选择。它将在同一个字符上进行测试。

例如,你不能像标准的iMA那样用短名称来称呼它吗?
 
Abzasc:
比如说,你不能像标准的iMA那样用短名称来调用它吗?

你可以调用它,没有错误,但如何传递参数? 我做了一个调用,把参数放在括号里(我调用的),但在响应中发誓这种参数不存在于指标中。
原因: