点==点? - 页 5

 
angevoyageur:
直到我们有提供6位数的经纪人
这是一个很好的观点 . . . 希望它不会发生。
 
RaptorUK:
有4位数的MT5经纪商吗? 如果有,那么与5位数的经纪商相比,你会有一个不同的点。 点是最后一个数字,但对于4位数和5位数的经纪商,它是不一样的。

我对Pip的定义 对4位和5位数的经纪商来说是一样的,所以我认为有可能比点的定义更好。
如果经纪人真的与定义MQL5中的点有关,那么MQ最好把这个函数改为Point(string broker);-)
 

我也在纠结于点子的定义,很久了。每个人似乎都有不同的定义。最重要的是,每个货币对的报价都有不同的数字,因此1点实际上并不存在。(它在每个货币对中都有不同的价值)。我认为,如何利用每个价格变化的货币价值的唯一方法是迫使所有经纪人对所有符号进行5位数的价格统一。(包括货币对、金属、股票等)。经纪人自愿不这样做,因为他们不想承认他们正在偷窃很多东西。如果他们说 "严格的点差",他们实际上是指我们向你展示严格的数字(如黄金的30),但实际上他们收取30只是因为他们引用了2位数字。真正的价差是3000点左右。我为自己做了一个电子表格,试图克服这种混乱。在现实中,我的经纪人在一些货币对中有5位数,一些其他货币对有4位数,一些其他货币对有3位数,有些甚至有2位数。当我把它算出来并写在纸上时,我发现,如果我加上所需的零数,我就能得到统一的价格,从而得到统一的货币价值,例如,在大约200个货币对中的任何一个的1000点。

我认为,经纪人在这个混乱的市场上收取点差、掉期和佣金费用。但是,如果价格值总是5位数,你就会清楚地知道1000点能赚多少钱,而不管你要交易的是哪个符号。

伙计们。告诉我。这是绝对疯狂的想法吗?还是可行的?对于如何准确地知道 "你得到的每一个现有符号的价格变化有多少钱 "的问题,这可能是一个解决方案吗?

 
对我之前的帖子有什么意见吗?
 
Vorobyov:
对我之前的帖子有何评论?
在我看来,点数标准的定义不是一个无用的解决方案,无论如何,我不认为你的想法是一个疯狂的想法,正如你所说的,这只是另一个愿景。
对我来说,没有必要制定这样的标准,因为任何经纪商或平台都可以按照客户的要求来命名点数,如果他们愿意的话,这只是一个惯例和/或协议,如果是一些内部规则的情况。
 

大家好。

我对编程不熟悉。

有什么方法可以计算点值吗?4位数的经纪人和5位数的经纪人,我写的程序是这样的,正确吗?(我不想处理点数...LoL)

当我想放100个止盈点 时,我是这样写的,但它总是出现错误130

double calcPrice;

calcPrice= Ask+(100*Point()) ;///<<<<------ 实际上市场是以卖出价计算的( 或者当我修改订单时 >> OrderOpenPrice(); )

1.这个方法对于4位数的经纪人和5位数的经纪人是否正确????

2.是否有其他方法可以满足所有这些要求?

3.谁能帮助举个例子,OrderSend没有这个数字的情况下的错误。


任何评论都将被感激。

谢谢

 

73398956Aipl: when i want put 100 Take Profit i wrote like this, but it makes Error 130 always

calcPrice= Ask+(100*Point()) ;//<<<<------ 实际上市场上的卖价( 或者当我在修改订单时 >> OrderOpenPrice(); )

1.这个方法对4位数的经纪人和5位数的经纪人正确吗????

  1. 你想要一个100的什么?你的代码生成了100个点。如果你想要100个PIP,在5位数的经纪商上,这个值将是错误的。如果你想要10个PIPs,在4位数的经纪商上,这个值会是错误的。
  2. 如果你换了4/5个经纪人,而你不调整数值,你的代码就会中断。如果你在经纪人提供4和5的情况下切换服务器,它就会中断。如果经纪商在周末改变为5位数,它也会中断,因为已经发生了。用PIPs做所有的事情,并调整(SL、TP 滑点;对于4/5位的经纪商 日元对。)
  3. TickPIP,和Point。一般来说,它们都是不同的。一个Tick是价格的最小变化。一个点是报价的最小有效数字。在货币中,一个点被定义为0.00010(或日元为0.010)。

    在4位数的经纪商,一个点(0.0001)=点(0.0001)。[JPY 0.01 == 0.01] 在5位数的经纪商,一个点(0.00001)=1/10点(0.00010/10)。仅仅因为你多报了一个数字,并没有改变一个点的价值。(0.0001 == 0.00010) EAs必须将点数调整 为点(对于mq4.) 在货币中,一个tick就是一个点。价格可以通过最小的有效数字来改变(1.23456 -> 1.23457)

    在金属中,一个Tick仍然是最小的变化,但比一个点大。如果价格可以从123.25变化到123.50,你的TickSize 是0.25,点是0.01。点子没有任何意义。

    这就是为什么你不使用TickValue 本身。只能作为与TickSize 的比率。见 DeltaValuePerLot()

 
Vorobyov:
对我之前的帖子有什么意见吗?

从我的观点来看,不存在固定的定义!这就像在一个幼儿园里,每个经纪人都做他想做的事!我最近偶然发现了一个三天的交换--通常适用于周末--在周三提出,而不是周五我最近偶然发现了一个三天的 交换--通常适用于周末--是在星期三提出的,而不是在星期五!

所以对我来说。

  • 一个观点 是,你从经纪人那里得到的东西(=>_Point)和
  • 一个点 是一个价格差,在美元账户上的价值为~10.美元,在欧元账户上的价值为10欧元(这是我的技术定义!!)。

这意味着,如果一个止损点被放置在低于入口的10个点,我将在我的欧元账户上冒~100欧元的风险,无论我交易的是什么符号!不管一个点有多少个数字,或者手数有多大,...

与其绝望,不如把它看作是一个机会,因为没有固定的定义,你也可以用你喜欢的方式来定义事物!!。

我就是这样做的。

bool Pip10(string sym,int &dig,double &pip,int &digis,double &pt,double refValue=10.0, const string from="") {
   // use: if (!Pip10(sym, DIG, PIP, DIGIS, PNT)){ ...
   pt             = SymbolInfoDouble(sym,SYMBOL_POINT);
   digis          = (int)SymbolInfoInteger(sym,SYMBOL_DIGITS);
   
   int      xp    = digis+1, XP = 0, n=200;
   double   tV    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_VALUE ),  //MarketInfo(sym,MODE_TICKVALUE),///
            tS    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_SIZE ),  //MarketInfo(sym,MODE_TICKSIZE),
            mL    = SymbolInfoDouble(sym,SYMBOL_VOLUME_MIN ),  //MarketInfo(sym,MODE_MINLOT),
            lV    = ( tS*tV == 0.0 ) ? 0.0 : tV/tS, // LotValue
            //pV    = mL*lV,
            //TV    = mL*tV, // tgt*MinLot*lV => n* MinLot * tV
            M,P1,P2, D1,D2,
            minD = 9999999999999.9,  minD2 = 9999999999999.9;
   while (lV < 0.00000000000001 && n-->0 && MQLInfoInteger( MQL_PROGRAM_TYPE ) != PROGRAM_INDICATOR) { // ~4sec in total
      Sleep(20); // try it for 10 sec, wait to get data
      pt    = SymbolInfoDouble(sym,SYMBOL_POINT);
      digis = (int)SymbolInfoInteger(sym,SYMBOL_DIGITS);
      xp    = digis+1;
      tV    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_VALUE );  //MarketInfo(sym,MODE_TICKVALUE),///
      tS    = SymbolInfoDouble(sym,SYMBOL_TRADE_TICK_SIZE );  //MarketInfo(sym,MODE_TICKSIZE),
      mL    = SymbolInfoDouble(sym,SYMBOL_VOLUME_MIN );  //MarketInfo(sym,MODE_MINLOT),
      lV    = ( tS*tV == 0.0 ) ? 0.0 : tV/tS; // LotValue
   }
   if ( lV < 0.00000000000001 ) { Alert(sym," is NOT aivailable (yet?), called from ",from,"  err: ",err(_LastError)); pip=0.0; dig=-99; return(false); } // No connection yet
   //Print("ini Pip10(",sym,"..,ref:",DoubleToStr(refValue,2),")  Digits: ",digis," TickVal: ",DoubleToStr(tiV,2));
   while(xp>-9) {

      M  = pow(10,xp);
      P2 = M*lV*2.0;
      P1 = M*lV;
      D1 = fabs(P1-refValue);
      D2 = fabs(P2-refValue);
      
      if ( D2 > minD2 && minD > minD2 ) {
         dig = -XP;
         pip = pow(10,-dig)*2.0;
         if ( pip < tS) { Alert(sym,": PIP(",DoubleToString(pip,digis),") is SMALLER than Ticksize(",DoubleToString(tS,digis),") "); pip=0.0; dig=-99; return(false); }
         return(true);
      }

      if ( D1 > minD && minD2 > minD ) {
         dig = -XP;
         pip = pow(10,-dig);
         if ( pip < tS) { Alert(sym,": PIP(",DoubleToString(pip,digis),") is SMALLER than Ticksize(",DoubleToString(tS,digis),") "); pip=0.0; dig=-99; return(false); }
         return(true);
      }
      minD2 = D2;
      minD  = D1;
      XP = xp;
      xp--;

   }
   pip=0.0; dig=-99;
   Comment(sym," is NOT aivailable (yet?)");
   return(false); // not set :()
}
 
Carl Schreiber:

从我的观点来看,不存在固定的定义!这就像在一个幼儿园里,每个经纪人都做他想做的事!我最近偶然发现了一个三天的交换--通常适用于周末--在周三提出,而不是周五我最近偶然发现了一个为期三天的互换--通常适用于周末--在周三提出,而不是在周五!这是在周三适用三天的互换。


在周三应用三天 的交换是很平常的事情。

你可以通过以下方式查看。

SymbolInfoInteger(symbol,SYMBOL_SWAP_ROLLOVER3DAYS)
 
Alain Verleyen:

在周三申请三天 的交换是很平常的事情。

你可以通过以下方式查看。

对我来说,这是个诡计!