PLCode Function
_BIDASKSTATS
Code: Select all
//FX_HistMean
Inputs: Run1_Roll2(Numericsimple), BAMinutes(Numericsimple), oMax(numericref), oMin(numericref);
vars:
intrabarpersist PriceBA(0), intrabarpersist TicksBA(0),
intrabarpersist TimerBA(0), intrabarpersist HistMeanBA(0),
intrabarpersist MaxBA(0), intrabarpersist MinBA(0), intrabarpersist spread(0);
if LastbaronChart then begin
Spread = (InsideAsk - InsideBid);
Once Begin
MaxBA = InsideAsk - InsideBid;;
MinBA = 100;
end;
if Spread >= (MinMove / PriceScale) then begin
TicksBA = TicksBA + 1;
PriceBA = PriceBA + Spread;
if TimerBA = 0 AND Run1_Roll2 = 2 then
TimerBA = Time;
if Run1_Roll2 = 2 AND TimeToMinutes(Time) - TimeToMinutes(TimerBA) > BAMinutes then begin
TimerBA = Time;
PriceBA = PriceBA * .25;
TicksBA = TicksBA * .25;
MaxBA = Spread;
MinBA = 100;
end;
if Run1_Roll2 = 2 AND TimeToMinutes(Time) - TimeToMinutes(TimerBA) < 0 then begin
TimerBA = 001;
PriceBA = PriceBA * .25;
TicksBA = TicksBA * .25;
MaxBA = Spread;
MinBA = 100;
end;
if TicksBA > 0 then
HistMeanBA = PriceBA / TicksBA;
if InsideAsk - InsideBid > MaxBA then
MaxBA = InsideAsk - InsideBid;
if InsideAsk - InsideBid < MinBA then
MinBA = InsideAsk - InsideBid;
oMin = MinBA;
oMax = MaxBA;
end;
_BidAskStats = HistMeanBA;
end;
FX_BidAsk Spread Stats
Code: Select all
Inputs:
TradeSize(100000), // Trade Size to Base Dollar Conversions
Run1_Roll2(1), // Choose Average Spread Calculation, 1 = Ongoing 2 = Rolling Average Spread over RollMinutes
RollMinutes(180); // Used only for Rolling Average Spread Calculations
vars: AvgBidAsk(0), AvgBidAskPips(0), MnMv(0), oMax(0), oMin(0),
AvgBidAsk$(0), MnMv$(0),Max$(0), Min$(0), MaxPips(0), MinPips(0), AvgCF(0);
AvgCF = (ProfitCF + LossCF) * .5;
AvgBidAsk = _BidAskStats(Run1_Roll2, RollMinutes, oMax, oMin);
AvgBidAsk$ = ((AvgBidAsk )* AvgCF) * TradeSize;
AvgBidAskPips = DecConvPip(AvgBidAsk);
MnMv = MinMove/PriceScale;
MnMv$ = MnMv * AvgCF * TradeSize;
MaxPips = DecConvPip(oMax);
Max$ = ((oMax )* AvgCF) * TradeSize;
MinPips = DecConvPip(oMin);
Min$ = ((oMin ) * AvgCF) * TradeSize;
Plot1(MnMv, "Frac MinMove");
Plot2(MnMv$, "Acct MnMv");
Plot3(AvgBidAsk, "Avg Sprd");
Plot4(AvgBidAskPips, "Avg Pips");
Plot5(AvgBidAsk$, "Acct AvgPips");
Plot6(oMax, "Max Sprd");
Plot7(MaxPips, "Max Pips");
Plot8(Max$, "Acct MaxPips");
Plot14(TradeSize, "Trade Size");