핍당 가격 - 페이지 10

 

가장 쉬운 방법은 MT4에서 스프레드 베팅 중개인을 사용하여 계산을 수행하는 것입니다. 거래 티켓의 거래량 가격은 로트 단위가 아니라 파운드와 펜스입니다(예: 핍당 £4.20(또는 원하는 통화)) 이것은 정확한 거래 규모를 만듭니다 매우 간단합니다.

나는 http://www.gkfx.co.uk/spreadbetting-on-MetaTrader4 를 사용합니다.

 
LEHayes :

내가 올바른 길을 가고 있는지 확실하지 않지만 여기 내가 지금까지 정리한 것이 있습니다.

다른 웹 사이트에서 계산은 다음과 같았습니다.

(.0001/{현재 쌍 가격})*{계약 크기, 즉 100,000; 10,000 등} = {일부 가치} * {USD 가격} = 핍당 가격

이 추출에서 설명:

외환 핍 가치를 계산하는 공식은 1핍을 가져 와서 통화 쌍 값의 가격으로 나눈 다음 10000이라는 한 단위를 곱하는 것입니다. 그런 다음 USD로 변경하여 현재 값을 곱해야 합니다. 가격. 예를 들어 USDCAD 사용

(.0001/1.2148) X 10000 = .8232 X 1.2148 = $1.00

당신은 항상 모든 통화 쌍에서 pip 값은 항상 10000 통화 단위당 $1.00입니다. 이 값이 매우 낮다고 생각할 수 있습니다. 그러나 당신은 걸릴 필요가 통화가 핍당 $10.00인 $100,000.00의 제비로 거래된다는 점을 고려합니다. 하나의 로트를 $10.00에 구매하고 통화가 3핍 증가하면 $30.00를 얻게 됩니다.


고마워 얘들아, 나는 약간의 코드를 빌렸고 여기에 내 공헌이있다.

 double GetPPP( string symbol = "" , double lots = 0.00 ){
   string sym = Symbol ();
   if ( symbol != "" ) sym = symbol ;
   double size = 1.00 ;
   if ( lots > 0 ) size = lots ;
   string first = StringSubstr ( symbol, 0 , 3 );
   string second = StringSubstr ( symbol, 3 , 3 );
   string currency = AccountCurrency();
   if ( symbol == "AUDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "AUDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "AUDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) )  * 100 );
   } else if ( symbol == "AUDUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) ); 
   } else if ( symbol == "AUDNZD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "CADCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "CADJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) )  * 100 );
   } else if ( symbol == "CHFJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) )  * 100 );
   } else if ( symbol == "EURAUD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURCAD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURGBP" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   }   else if ( symbol == "EURJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) )  * 100 );
   } else if ( symbol == "EURNZD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURusd" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPAUD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPCAD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPCHF" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPJPY" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) * 100 );
   } else if ( symbol == "GBPNZD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) * 100   );
   } else if ( symbol == "NZDUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   }   else if ( symbol == "USDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * 1 / AvgPrice( StringConcatenate ( first, second  ) ) );
   }   else if ( symbol == "USDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * 1 / AvgPrice( StringConcatenate ( first, second  ) ) );
   }   else if ( symbol == "USDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * 1 / AvgPrice( StringConcatenate ( first, second  ) ) * 100 ) ;
   } else {
       Print ( "Symbol " ,symbol, " is not supported." );
   }
}
 

죄송합니다. 여기에 업데이트가 있고 PipPoints 및 고정 기호가 제거 되었으며 다른 사용 연령 중 하나에 의존한다는 것을 깨닫지 못했습니다.

이중 PPP = GetPPP( S ymbol () );

이중 PPP = GetPPP( S ymbol () , 0.5 );

이중 PPP = GetPPP( " NZDJPY "   );

도움이 되기를 바라며 초보자에게 감사합니다.

 double AvgPrice( symbol ){
   double bid, ask;
   ask = NormalizeDouble ( MarketInfo( sym, MODE_ASK ), digits );
   bid = NormalizeDouble ( MarketInfo( sym, MODE_BID ), digits ); 
   return ( ( ask + bid ) / 2 );
}
double GetPPP( string symbol, double lots = 0.00 ){
   double size = 1.00 ;
   if ( lots > 0 ) size = lots ;
   string first = StringSubstr ( symbol, 0 , 3 );
   string second = StringSubstr ( symbol, 3 , 3 );
   string currency = AccountCurrency();
   if ( symbol == "AUDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "AUDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "AUDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "AUDUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) ); 
   } else if ( symbol == "AUDNZD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "CADCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "CADJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "CHFJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURAUD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURCAD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURGBP" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   }   else if ( symbol == "EURJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURNZD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURusd" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPAUD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPCAD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPCHF" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPJPY" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPNZD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   }   else if ( symbol == "USDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * 1 / AvgPrice( StringConcatenate ( first, second  ) ) );
   }   else if ( symbol == "USDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * 1 / AvgPrice( StringConcatenate ( first, second  ) ) );
   }   else if ( symbol == "USDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 * 1 / AvgPrice( StringConcatenate ( first, second  ) ) ) ;
   } else {
       Print ( "Symbol " ,symbol, " is not supported." );
   }
}
 

2013년 스레드를 만나서 죄송합니다.

그러나 누군가 핍당 지불할 값을 입력할 수 있고 스프레드 베팅 계정과 같은 통화 쌍당 로트 크기 입력을 알려줄 인디를 만들거나 찾았습니까?

 
계정의 작은 비율 이상, 확실히 거래당 2%, 총 6% 미만의 위험을 감수하지 마십시오.
  1. 코드 내(MT 4 ): 위험은 초기 손절매, 로트 크기 및 쌍의 가치에 따라 다릅니다. 마진과 레버리지에 의존하지 않습니다.
    1. 거래의 이유가 더 이상 유효하지 않은 곳에 중지를 둡니다. 예를 들어 지지 바운스를 거래하면 정지가 지지 아래로 떨어집니다.
    2. AccountBalance * 퍼센트/100 = RISK = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (참고 OOP-OSL에는 스프레드 가 포함되며 DeltaPerLot 는 일반적으로 약 $10/pip이지만 쌍 대 환율을 고려합니다. . 귀하의 계정 통화.)
    3. TickValue 자체 - DeltaPerLot 를 사용하지 말고 문서에서 약속한 대로 MODE_TICKVALUE 가 예금 통화로 값을 반환하는지 또는 기기의 기본 통화로 값을 반환하는지 확인하십시오.
      MODE_TICKVALUE는 브로커가 많은 비 fx 도구에서 신뢰할 수 없음 - MQL4 프로그래밍 포럼 2017.10.10
      Tick 값에 대한 보편적인 솔루션이 있습니까? - 통화 쌍 - 일반 - MQL5 프로그래밍 포럼 2018.02.11
      로트 값을 100으로 계산 - MQL5 프로그래밍 포럼 2019.07.19
    4. 로트를 적절하게 정규화 하고 minmax 에 대해 확인해야 합니다.
    5. 중단 을 피하기 위해 FreeMargin도 확인해야 합니다.

    대부분의 쌍은 PIP 당 약 $10의 가치가 있습니다. (매우 작은) 5 PIP SL의 $5 위험은 $5/$10/5 또는 최대 0.1랏입니다.

  2. 내 것과 같은 GUI/Trade Assistant EA 사용(MT 4 용): 'takycard'의 'Money Manager Graphic Tool' 표시기 - 위험 관리 - 기사, 라이브러리 댓글 - MQL5 프로그래밍 포럼 - 페이지 6 #55
 
//+------------------------------------------------------------------+
//|                                                      getInfo.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Open Source"
#property link      
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {


   double LotSize= 1;
   double point= Point;
   if((Digits==3) || (Digits==5))
     {
      point*=10;
     }
   string DepositCurrency=AccountInfoString(ACCOUNT_CURRENCY);  
   double PipValue=(((MarketInfo(Symbol(),MODE_TICKVALUE)*point)/MarketInfo(Symbol(),MODE_TICKSIZE))*LotSize);
    
   
   
   MessageBox("DEPOSIT CURRENCY"+ DepositCurrency ,"ToolBox");
   MessageBox("VALUE OF ONE PIP (1 LOT)="+ PipValue ,"ToolBox");
   
   
  }
//+------------------------------------------------------------------+