Script that references variables

Optuma Forums Optuma Scripting Script that references variables

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
  • #61765
    • Topics: 7
    • Replies: 3
    • Posts: 10

    I am getting all zero values when I try to reference the variables “FollowThrough”  and “BSDailyon” and “BS”.    It seem like the script does not like moving back and forth between these variables.  I have tried numerous different methodologies and different orders but no luck.  Can you help?   thank you

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //
    Determine where close was in the days range
    V1 = VOL(Day(PERIODAMOUNT=1));
    TodayClose = CLOSE();
    PriorClose = close(OFFSET=1);
    Low1 = If(LOW()<PriorClose,Low(),PriorClose);
    High1 = If(high()>PriorClose,High(),Priorclose);
    RealRange = High1 – Low1; CloseRange= 1-abs(((TodayClose-High1)/RealRange));


    //Determine if up 1% on higher volume

    // Percentage change vs. prior day- Value
    PC= (CLOSE()-Close(OFFSET=1))/Close(OFFSET=1);

    // Higher volume than prior day- True or False
    HVol = VOL() > VOL(OFFSET=1); // Percent Change over 1% for Follow Through FT. True or False PCOver1% = PC > .01;

    // Higher close by 1% than prior day on higher volume DailyPCFT = PCOver1% and HVol; // True false DailyPCFTCriteria = If(Offset(BS,, OFFSET=1) ==1, DailyPCFT, 0); PCFT = ACC(DailyPCFTCriteria,, RANGE=Look Back Period, BARS=365);

    // Distribution days
    DailyDistD = PC < .002 and HVol;
    DailyCountCriteria = If(OFFSET(BS, OFFSET=1) =1, DailyDistD,0); // if BS on count DailyDistD
    DistCount = ACC(DailyCountCriteria, RANGE=Look Back Period, BARS=25); // add all DailyDistD over last 25 days When BuySwith On

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //
    Determine if Buy Switch is on/off

    // Is it a RallyDay
    RallyDay = (Offset(BS, offset = 1) == 0) and (Close() IsUp); // Prior Day buy signal off and close up for day

    // Buy Switch BS On or Off
    BSDailyOff = (DistCount> 5); // Turn off if distr count goes above 5
    BSDailyOn = (FollowThrough ==1); // Higher close by 1% than prior day on higher volume and prior day buy switch off and rally day 4 to 16 days ago
    BS = switch(BSDailyOn, BSDailyOff); // Is overall Buy Switch on or off

    // Follow Through is prior day Buy Switch off AND Price Change more than 1% AND a rally day 4 to 16 days ago
    FollowThrough = ((Offset(BS, offset = 1)) == 0) and (DailyPCFT == 1) and ((Offset(RallyDay, OFFSET=4) ==1) or (Offset(RallyDay, OFFSET=5) ==1) or (Offset(RallyDay, OFFSET=6) ==1) or (Offset(RallyDay, OFFSET=7) ==1) or (Offset(RallyDay, OFFSET=8) ==1) or (Offset(RallyDay, OFFSET=9) ==1) or (Offset(RallyDay, OFFSET=10) ==1) or (Offset(RallyDay, OFFSET=11) ==1) or (Offset(RallyDay, OFFSET=12) ==1) or (Offset(RallyDay, OFFSET=13) ==1) or (Offset(RallyDay, OFFSET=14) ==1) or (Offset(RallyDay, OFFSET=15) ==1) or (Offset(RallyDay, OFFSET=16) ==1));


    • Topics: 36
    • Replies: 1,806
    • Posts: 1,842

    Hi Michael,

    This is all a little too complex for us to look at without a consult. (

    What I would suggest first is that you break it up into separate sections and make sure that each part is working as you expect.

    One other thing to make it easier to read is that you can swap (Offset(BS, offset = 1) with BS[1]

    Also look at the TimeSinceSignal function ( using the offset allows you to see how many days between signals (which I think you are trying to do).

    The other issue I see is that you are using the FollowThrough value before it has been set.

    Hopefully, that will help you get going, if you need more help with this you’ll have to organise a consult with one of the guys.

    All the best


    1 user thanked author for this post.
Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.

Pin It on Pinterest