
**********************************************************
Omega Tradestation 8 EasyLanguage pr0tection template.
Public Release. Free, GNU License.

Copyright (C) 2004 VizibleSoft Ltd.
http://viziblesoft.com
All rights reserved.
**********************************************************


1. Introduction.
================

This library utilize EasyLanguage SDK and demonstrates how to access
EasyLanguage functions and properties from within external program.

By moving and accessing some data and functions from your custom-made
library, you can hide away parts of EasyLanguage logic as well as transfer 
license checks from insecure ELD format to a more flexible powerfull language.

Pr0t.cpp exports following functions:

		myOpen		\
		myClose         |
		myHigh          |
		myLow           |
		myCurrentBar    | set of standard procedures.
		myDateTime      |
		myTrueHigh      |
		myTrueLow       |
		myTrueRange     |
		myTime          |
		myDayOfWeek    /

		Cond		Check for predefined conditions
		chkLicense      Check for license..etc.


Refer to the source code to see how you can calculate and verify predefined
EasyLanguage conditions inside your .dll and obtain results back.

Pr0t.cpp also shows how to implement some additional functionality,
which is not part of the EasyLanguage SDK but could be easily re-programed 
in C++:

	TrueRangeAverage
	RangeAverage


2. How to compile.
==================

This code is written in Microsoft Visual C++ v6.0. It shouldn't
be hard to port it to any other language, as you'll get an idea 
how it works.

Copy tskit.dll from your TradeStation distribution to the pr0t project
folder.

Open pr0t.dsw as a Workspace from Visual C++ developer evironment,
change active configuration from "debug" to "release" and compile.

For the SDK, refer to "EasyLanguage_Extension_SDK.pdf" which
you can obtain from TradeStation Securities.


3. Other hints.
===============

Read comments inside pr0t source and in the EasyLanguage code.

Do not forget that this solution is very basic and should be used only
as a basis to implement proper protection layer using high-level 
language. Remember that .dll`s can be also cracked, sometimes even
more easily than reversing ELD. However, you have much more
possibilities to implement proper protection using high-level language,
instead of limited trading 'easy' language.

If you are unable to code quality protection tricks, consider
using third-party tools (packers, protectors) available on the
market.



