logo
Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
oem7110  
#1 Posted : Tuesday, June 22, 2010 5:17:03 AM(UTC)
oem7110

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 12/30/2005(UTC)
Posts: 120

I get 2 PCs installed all my customized system to allow friends to use it, but I would like to protect all my customized systems, and make sure noone can copy or backup all systems within Metastock. Does anyone have any suggestions on how to do it in Metastock? Thanks in advance for any suggestions Eric
wabbit  
#2 Posted : Tuesday, June 22, 2010 5:31:58 AM(UTC)
wabbit

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers, Unverified Users
Joined: 10/28/2004(UTC)
Posts: 3,111
Location: Perth, Western Australia

Was thanked: 16 time(s) in 16 post(s)
oem7110  
#3 Posted : Tuesday, June 22, 2010 8:29:16 AM(UTC)
oem7110

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 12/30/2005(UTC)
Posts: 120

Do you have any suggestions on how to set the expired date on each indicator with password protected? so I can manage the expired date, and no need to care anyone taking any copy of it at all. Do you have any suggestions on how to add code to set the expired date for indicator, expert advisor, and system tester? Thanks in advance for any suggestions Eric
wabbit  
#4 Posted : Tuesday, June 22, 2010 8:48:45 AM(UTC)
wabbit

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers, Unverified Users
Joined: 10/28/2004(UTC)
Posts: 3,111
Location: Perth, Western Australia

Was thanked: 16 time(s) in 16 post(s)
There is no (reliable) method in MS that delivers the required method of protection. As has been mentioned before -- if you are that worried about protecting your work, then don't distribute it at all. If you must distribute it, then bundle the core components as a dll and use DRM software to limit its use.


wabbit [:D]

oem7110  
#5 Posted : Tuesday, June 22, 2010 9:53:13 AM(UTC)
oem7110

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 12/30/2005(UTC)
Posts: 120

I would like to set the expired date on 1 Jan 2011, if the last day of any chart is larger than this expired day, then return false, else true. I am not looking for a perfect way to protect indicator, but a simply way, which should be good enough, do you have any suggestions on how to code this if-statement in Metastock? Thanks in advance for any suggestions Eric
wabbit  
#6 Posted : Tuesday, June 22, 2010 10:21:04 AM(UTC)
wabbit

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers, Unverified Users
Joined: 10/28/2004(UTC)
Posts: 3,111
Location: Perth, Western Australia

Was thanked: 16 time(s) in 16 post(s)
Use LastValue(), DayOfMonth(), Month() and Year().


wabbit [:D]

oem7110  
#7 Posted : Tuesday, June 22, 2010 10:39:50 AM(UTC)
oem7110

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 12/30/2005(UTC)
Posts: 120

LastValue(DayOfMonth())=22; LastValue(Month())=6; LastValue(Year())=2010; I can determine day, month, year separately, but I get no idea on how to combine them to compare whether it is larger than 1-Jan-2011 or not? Could you please give me any suggestions on how to code this if-statement? Thank you very much for any suggestions Eric
wabbit  
#8 Posted : Tuesday, June 22, 2010 6:40:14 PM(UTC)
wabbit

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers, Unverified Users
Joined: 10/28/2004(UTC)
Posts: 3,111
Location: Perth, Western Australia

Was thanked: 16 time(s) in 16 post(s)
Forum.dll has a date latch in it which can have some issues sometimes (I asked ages ago if anyone wanted it fixed) but the functionality is easily achieved in msfl:

Code:
dd:=1;
mm:=1;
yy:=2011;

date:=year()>yy or (year()=yy and (month()>mm or month()=mm and dayofmonth()>=dd));

if(lastvalue(date),{then system has expired}, {else OK});


This is so easy to get around, I wouldn't be basing any critical systems on this very mediocre "security".


wabbit [:D]

oem7110  
#9 Posted : Tuesday, June 22, 2010 7:27:06 PM(UTC)
oem7110

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 12/30/2005(UTC)
Posts: 120

I think it will be OK for advance user to get around for historical data, when Metastock feeds with real-time data, can user be able to change the date for using it? but I think the date for real-time date is retrieved from server side, so user is not able to use it on real-time trading. What do you think about my idea for preventing user using this expired indicator on real-time trading? Do you have any suggestions? Thank you very much for any suggestions Eric
wabbit  
#10 Posted : Tuesday, June 22, 2010 7:54:53 PM(UTC)
wabbit

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers, Unverified Users
Joined: 10/28/2004(UTC)
Posts: 3,111
Location: Perth, Western Australia

Was thanked: 16 time(s) in 16 post(s)
Even with the RT data stream, I believe there is a setting to replace the data provider date/time stamp with the local system timestamp, so easily defeating your "protection"?

The only way to be properly secure is not to distribute the code, otherwise, as already mentioned many times before, employ some sort of third-party DRM module.



wabbit [:D]

oem7110  
#11 Posted : Tuesday, June 22, 2010 8:03:14 PM(UTC)
oem7110

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 12/30/2005(UTC)
Posts: 120

My strategy is mediocre for security, which will be fine, I would like to add another mediocre strategy for protection, do you have any idea? my idea is mediocre + mediocre ... = advance strategy. My purpose is to prevent mediocre user to use it after the expired date, not the advance user. Within my local area, most users are not educated on computer setting. Do you have any suggestions? Thanks in advance for any suggestions Eric
wabbit  
#12 Posted : Tuesday, June 22, 2010 8:28:04 PM(UTC)
wabbit

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers, Unverified Users
Joined: 10/28/2004(UTC)
Posts: 3,111
Location: Perth, Western Australia

Was thanked: 16 time(s) in 16 post(s)
DRM

oem7110  
#13 Posted : Tuesday, June 22, 2010 9:52:39 PM(UTC)
oem7110

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 12/30/2005(UTC)
Posts: 120

Could you please give me any suggestions on how to apply DRM? Thanks in advance for any suggestions Eric
nishant  
#14 Posted : Monday, February 6, 2012 6:20:34 AM(UTC)
nishant

Rank: Advanced Member

Groups: Registered, Registered Users, Unverified Users
Joined: 3/9/2007(UTC)
Posts: 35

Thanks: 1 times
wabbit wrote:


Code:
dd:=1;
mm:=1;
yy:=2011;

date:=year()>yy or (year()=yy and (month()>mm or month()=mm and dayofmonth()>=dd));

if(lastvalue(date),{then system has expired}, {else OK});





This topic is certainly long closed... @Wabbit: I wish to know where to apply the code that you have suggested?.. Is it alongwith the EAs & Indicators builder section or somewhere else?.. because i just tried to put the code along with my EA but cursor is coming to "Expired}" section with error saying "Price Array or function expected"...
wabbit  
#15 Posted : Monday, February 6, 2012 2:18:26 PM(UTC)
wabbit

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers, Unverified Users
Joined: 10/28/2004(UTC)
Posts: 3,111
Location: Perth, Western Australia

Was thanked: 16 time(s) in 16 post(s)
In the If() statement i have provided comments to show where users can add their own functionality. The use of curly braces as comments is widely discussed in the MS User Manual. wabbit [:D]
nishant  
#16 Posted : Monday, February 6, 2012 10:52:06 PM(UTC)
nishant

Rank: Advanced Member

Groups: Registered, Registered Users, Unverified Users
Joined: 3/9/2007(UTC)
Posts: 35

Thanks: 1 times
Hi Scott.. After going through the MS manual as suggested, i managed to get few concepts cleared regarding the use of curly brackets and a bit of IF Function. But am still too much confused and failing to understand on how to apply expiry setting code to the EAs. Also in the manual, i encountered one more function namely, "Writeif" which plots the text and not the value. The EA bears graphic in the nature of Buy/Sell arrow. I dont want arrows to be displayed after the set date. And so I'm unable to form an opinion on exactly what needs to be done - to use [If] or [Writeif]? Please bail me out of this. Given the EA content below, how to incorporate the code that you mentioned so that the graphic doesn't appear after the expiry date being set. H<=Ref(H,-3) AND L>=Ref(L,-3) AND Ref(H,-1)<=Ref(H,-3) AND Ref(L,-1)>=Ref(L,-3) AND Ref(H,-2)<=Ref(H,-3) AND Ref(L,-2)>=Ref(L,-3)
wabbit  
#17 Posted : Monday, February 6, 2012 11:08:38 PM(UTC)
wabbit

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers, Unverified Users
Joined: 10/28/2004(UTC)
Posts: 3,111
Location: Perth, Western Australia

Was thanked: 16 time(s) in 16 post(s)
Code:
dd:=1;
mm:=1;
yy:=2011;

expired:=year()>yy or (year()=yy and (month()>mm or month()=mm and dayofmonth()>=dd));

trigger:=H=Ref(L,-3) AND
Ref(H,-1)=Ref(L,-3) AND
Ref(H,-2)=Ref(L,-3);

{plot}
if(expired,0,trigger);


Remember though; this provides very little security and is exceptionally easy to bypass. If you don't want your stuff hacked, then don't distribute it!



wabbit [:D]

Users browsing this topic
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.