"""Does the front's pace mapping hold?  Paper: the broker's pace at ratio RR and the deployed stop is the pace of a ratio-1 bracket with stop sqrt(RR)*l0 (Wald: pace depends on a*b).
Test with the walker: pace(RR, deployed rule) against pace(1, rule scaled by sqrt(RR))."""
import numpy as np, pandas as pd
from walker import trades
def pace(beta,floor,rr):
    p=[];ms=[]
    for seed in range(1,6):
        d=trades(beta=beta,floor=floor,seed=seed,rr=rr); p.append(np.diff(d.t_out.to_numpy()).mean()/86400); ms.append(d.stop.mean())
    return np.mean(p),np.mean(ms)
for rr in (1.0,1.5,2.0,3.0):
    a,ms=pace(0.75,30.0,rr)
    b,ms2=pace(0.75*np.sqrt(rr),30.0*np.sqrt(rr),1.0)
    print(f"RR {rr}: pace(RR, deployed stops, mean stop {ms:.1f}) = {a:.3f}   pace(1, stops x sqrt(RR), mean stop {ms2:.1f}) = {b:.3f}   ratio {b/a:.3f}   [paper's broker pace at RR {rr}]")
