| TradeStation Custom Programming Discuss projects, ideas, obstacles in programming with TradeStation. |
![]() | | Tweet | |
| | #1 | ||
![]() | EL - Can It Return All Permutations for a Set of Values? Wondering if anyone can help me . . . I'm playing around with a genetic optimisation concept, and I'm wondering what would be the best way to get EL to return each individual permutation for a set of values. Obviously I can easily calculate the n! factorial, but my requirement is for the code to return (and then process) each individual possible permutation as a string (I use that last word loosely!). Oh, and just to make it a bit more complicated, I want to include repetitions of values, up to and including strings composed entirely of a single value. Hopefully I can make this clearer with an example. Considering the last three periods, and whether they were 'up closes' ('U') or 'down closes' ('D'), the following permutations would be possible: UUU UUD UDU UDD DUU DUD DDU DDD So, having defined the values 'U' and 'D', how could I instruct EL to return each of these 3-value strings sequentially? Thanks Bluehorseshoe | ||
| |
|
| | #2 | ||
![]() | Re: EL - Can It Return All Permutations for a Set of Values?
If you need uuu to be a string instead of boolean you could try something like this instead of the boxed code. var: uuu(" "); if up and up[1] and up[2] then uuu="uuu" else uuu=" "; Code: var: up(false), dn(false), uuu(false), uud(false), str(" ");
up=c>c[1];
dn=c<c[1];
uuu=up and up[1] and up[2];
uud=up and up[1] and dn[2];
if uuu then str="uuu" else if uud then str="uud" else str=" "; | ||
| |
|
| The Following User Says Thank You to onesmith For This Useful Post: | ||
BlueHorseshoe (04-10-2012) | ||
| | #3 | ||
![]() | Re: EL - Can It Return All Permutations for a Set of Values?
Hi Onesmith, Thanks for your reply. Unless I'm missing something, then with either approach I would still need to manually set up each possible permutation. This is easy enough in the example I gave where there are only eight permutations, but supposing that I had five possible values ('upstrong','upweak','fla t','downstrong','downweak ') and considered strings of up to ten values (ie periods) in length, then the number of permutations would be far too large to type. This would pressumably be possible by using the optimisation feature with a strategy report, in which every possible permutation of inputs would be tested. Is there a way to do this on an ongoing basis internally to the code? Cheers, Bluehorseshoe | ||
| |
|
| | #4 | ||
![]() | Re: EL - Can It Return All Permutations for a Set of Values? Not sure I understand what you’re asking but if you are trying to list all the combo’s look at the essence of something like Visual Basic Code - List Lotto Combinations with the Lotto CLass or Permutations/Combinations Problem in VBA - CodeGuru Forums to get you going. Why do you need to process it as strings? Wouldn’t it be better to leave all the permutations in binary data type, process them, and maybe only convert the final outputs to string data type ? btw. Ultimately you will need to put routines like this to a dll and also restrict when it is run (ie definitely not on every tick )hth | ||
| |
|
| | #5 | ||
![]() | Re: EL - Can It Return All Permutations for a Set of Values?
As zdo suggests ...binary numbers can be represented as integers and looped from zero to infinity_minus_one while simultaneously flipping a bit in it's corresponding binary format. | ||
| |
|
| | #6 | ||
![]() | Re: EL - Can It Return All Permutations for a Set of Values? Quote:
Code: Variables: First(0), Second(0), Third(0), mystring("");
Variables: First_text(""), Second_text(""), third_text("");
For First = 0 To 1
Begin
If First = 0 then first_text = "U";
If First = 1 then first_text = "D";
For Second = 0 to 1
Begin
If Second = 0 then second_text = "U";
If Second = 1 then second_text = "D";
For Third = 0 to 1
Begin
If Third = 0 then third_text = "U";
If Third = 1 then third_text = "D";
Mystring = First_text + second_text + third_text;
print(Mystring);
End;
End;
End; Charlton | ||
| |
|
| | #7 | ||
![]() | Re: EL - Can It Return All Permutations for a Set of Values? Quote:
Thanks for your reply. Sorry my question isn't as clear as it might be - I think to convey exactly what I mean would require an explanation of the full context, which could take pages. But I'll have another go: Suppose that I wanted to know whether, following three down closes, an up close or a down close was the more prominent within a historical data set. I could define the series/string/sequence(whatever it should be called) 'DDD' and also create two variables 'DDDD(0)' and 'DDDU(0)' each of which has a "predictive" value for the fourth day. For each instance within the historical data where the sequence 'DDD' occurs, the variable 'DDDD' would predict a fourth down day, and 'DDDU' would predict a fourth up day. By examining the actual outcome on the fourth day, I could then "reward" whichever of the two variables correctly predicted the actual outcome by increasing its value, and "punish" whichever of the variables predicted it incorrectly by decreasing its value. So, in the case of a sequence of closes DDD then the following would happen: Code: If c<c[1] and c[1]<c[2] and c[2]<c[3] then begin If DDDU>DDDD then P=DDDU Else P=DDDD; End; End; If P[1]=DDDD and c<c[1] then begin DDDD=DDDD[1]+1; DDDU=DDDU[1]-1; End; If P[1]=DDDU and c>c[1] then begin DDDU=DDDU[1]+1; DDDD=DDDD[1]-1; End; In the example above, I have chosen to examine historical probabilities surrounding a particular sequence (three down closes) which I have manually specified. What I am looking for is a mechanical way of processing all possible sequences of a given length in the same fashion. Hopefully my aim is now a little clearer. Thanks. Bluehorseshoe | ||
| |
|
| | #8 | ||
![]() | Re: EL - Can It Return All Permutations for a Set of Values? Quote:
Also, I have clearly confused matters by my use of the word 'String'. I am just using the term as a synonym of 'Sequence', and not in whatever special sense the term functions within EL. Although I am only just begining to explore this whole concept, I doubt that I will want to follow the market on anything like a tick-by-tick basis. The purpose of the code would be to draw out sequences that have demonstrated high predictive properties within a historical data set. Thanks, Bluehorseshoe | ||
| |
|
![]() |
| Thread Tools | |
| Display Modes | Help Others By Rating This Thread |
| |
| ∧ Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Printing Indicator Values to File | RambleDog | TradeStation Custom Programming | 2 | 04-04-2011 08:21 AM |
| Same Strategy Indicator Different Values | andypap | Coding Forum | 5 | 01-04-2010 01:38 PM |
| Breakeven Problems (no Run-up or DD Values) | Firefly | Automated Trading | 14 | 05-01-2009 05:04 PM |
| Assigning Values of Specific Times of Day in EasyLanguage? | Tams | Coding Forum | 3 | 04-12-2009 11:15 AM |
| Finding Hex Color Values for TS? | daedalus | Coding Forum | 4 | 04-01-2009 02:29 PM |