• Genel bakış
  • İncelemeler
  • Yorumlar

The Easiest License

Use a plain google sheet to license your product

After years of developing trading software, I noticed the lack of a simple and cheap system to license the software to your customer. 

Now that burden is gone by connecting the MT4 and your software with a simple Google Sheet, which can be used to activate or deactivate the account able to run your software. 


With a minimum setup you'll be able to compile your software and distributing it without the fear of being spoiled by hackers or bad people.

On one spreadsheet you'll be able to manage multiple products and make your customer happy (and paying). 


What the library can do: 

  • include a header file and the class constructor in your software (Indicator or Expert Advisor or Utility) 
  • initiate the class and call the setup method 
  • use the CheckLicense method in an OnTimer or OnClick to get a response 


Type of responses: 

The CheckLicense method will return:

  • 0 if there is some issue (terminal not connected, account number equal to zero, and so on) 
  • 1 if the license is valid and the account can operate your software
  •  -1 if the account number provided is not able to operate your software 

What you will have to do to use the library: 

Activate the web requests to https://sheets.googleapis.com domain

Produce a header file and put it in the "includes" folder

Produce a Google Sheet API KEY (google it or wait for me writing the actual procedure) 

Collect the Google Sheet ID (it's in the URL of the spreadsheet) 

Manage your software behavior in the three cases (send an alert, deactivate, don't paint anything, and so on)


Code example for an Indicator: 

// header file (Copy and paste it in a new LicenseEngineHeader.mqh file in the includes folder)

//+------------------------------------------------------------------+
//|                                                        CGSLE.mqh |
//|                                 Copyright 2024, D'ario Woollover |
//|                               https://www.automazionetrading.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, D'ario Woollover"
#property link      "https://www.automazionetrading.com"
#property version   "1.00"
#property strict


//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CGSLE
  {

private:
   string            m_base_url;
   string            m_product_name;
   string            m_spreadsheet_id;
   string            m_column_id;
   string            m_api_key;
   int               m_account_count;
   string            m_allowed_accounts[];

   string            m_cookie, m_headers;
   char              m_post[], m_result[];
   int               m_timeout;


public:
                     CGSLE() {};
                    ~CGSLE() {};
   virtual void              Setup(string API_KEY, string spreadsheet_id, string product_name, string column_to_check = "A", int account_count = 300) {};

   virtual int               CheckLicense(int account_number) {return 0;}; 

private:
   virtual int               Initialize() {return 0;};
   virtual string            BuildURL() {return "";};

  };
//+------------------------------------------------------------------+


// includes in yourproduct file

    #include <LicenseEngineHeader.mqh>

#import "LicenseEngine.ex4" 
CGSLE *iGSLE();
#import

// initiation 

 LicenseEngine = iGSLE();
   
 LicenseEngine.Setup(PERSONAL_API_KEY, SPREADSHEET_ID, PRODUCT_NAME);

// onTick or OnTimer, OnCalculate implementation

   if(!IsConnected())
     {
      return;
     }

   int account_num = AccountNumber();
   int check = LicenseEngine.CheckLicense(account_num);

   if(check == -1 && !alertSent)
     {
      MessageBox("Sorry, your account is not licensed, please contact 'greatdeveloper@tradingdomain.com'", "Invalid Account",  MB_ICONERROR | MB_OK);
      alertSent = true;
      return;
     }

   if(check != 1)
     {
      return;
     }
     



In future releases, if requested: 

  • Expiration date support
  • Check license by email 
  • Alerts customization
  • Refresh of activated accounts every XXX minutes
  • MT5 Version

4
Yazarın diğer ürünleri
The  RSI Basket Currency Strenght  brings the RSI indicator to a new level.  Expanding the boundaries of TimeFrames and mono-currency analysis, the RSI Multi Time Frame Currency Strenght take the movements of each currency that composes the cross and confront them in the whole basket of 7 crosses.  The indicator works with any combination of  AUD, CAD, CHF, EUR, GBP, JPY, NZD, USD  pairs and with full automation takes in account every RSI value for the selected Time Frame.  After that, the ind
The WTR Dynamic Range Indicator is a powerful and deeply customizable range indicator that takes in account the average upward and downward movement of the price in the past trading days.  This fully customizable indicator can be setted for a lot of uses and cases:  • Trend trading on level breakouts  • Spotting high probability targets for Take Profits • Setting a multiple targets for position scaling out  The WTR Dynamic Range Indicator calculates the average movements in the long side, the
FREE
The  RSI Basket Currency Strenght  brings the RSI indicator to a new level.  Expanding the boundaries of TimeFrames and mono-currency analysis, the RSI Multi Time Frame Currency Strenght take the movements of each currency that composes the cross and confront them in the whole basket of 7 crosses.  The indicator works with any combination of  AUD, CAD, CHF, EUR, GBP, JPY, NZD, USD  pairs and with full automation takes in account every RSI value for the selected Time Frame.  After that, the indic
FREE
This practical tool let you setup your keyboard to have shortcuts and hotkeys to change Chart TimeFrame.  Bring your trading to another level by actually take fast and smooth control of switching Time Frames without losing time clicking all over the Meta Trader Terminal.  This tool is born due to scalping issues, where switching from higher timeframe and lower timeframes is really mandatory to make a multi timeframe analysis of the trading setup.  Uplift your trading activity, by letting your k
FREE
The  Stochastic Basket Currency Strenght  brings the Stochastic indicator to a new level.  Expanding the boundaries of TimeFrames and mono-currency analysis, the SBCS take the movements of each currency that composes the cross and confront them in the whole basket of 7 crosses.  The indicator works with any combination of  AUD, CAD, CHF, EUR, GBP, JPY, NZD, USD  pairs and with full automation takes in account every stochastic value (main line) for the selected Time Frame.  After that, the indica
FREE
--->  Check all the other products  <--- The Multi Time Frame Chandelier Channel is a good synthesis of the chandelier trailing stop and let you analyze the trend.  Enter when the price breaks one of the two lines, then trail using the opposite line.  Ideal for scalping, entering after the dot appears.  Plenty of customization:  Choose the lookback period, the longer, the slower Choose the Time Frame to use (must be greater or equal your chart TF  Play around with the options to get the
FREE
--->  Check all the other products  <--- The Candle Bias is a coloring indicator that doesn't take account of the close price of the bars.  It will color the candle in the bearish color (of your choice) if the downard range is greater than the upward range.  Conversely, it will color the candle in the bullish color of your choice if the upward range is greater than the downward range.  This is a major helper for Multi Time Frame analysis, it works on every security and every Time Frame. You
FREE
The Stochastic Basket Currency Strenght  brings the Stochastic indicator to a new level.  Expanding the boundaries of TimeFrames and mono-currency analysis, the SBCS take the movements of each currency that composes the cross and confront them in the whole basket of 7 crosses.  The indicator works with any combination of AUD, CAD, CHF, EUR, GBP, JPY, NZD, USD pairs and with full automation takes in account every stochastic value (main line) for the selected Time Frame.  After that, the indicator
CRAZY SALE! Was 250, NOW 50 USD till the end of MAY!!! --->  Check all the other products  <--- The WTR Dynamic Range Indicator is a powerful and deeply customizable range indicator that takes in account the average upward and downward movement of the price in the past trading days.  This fully customizable indicator can be setted for a lot of uses and cases:  • Trend trading on level breakouts  • Spotting high probability targets for Take Profits • Setting a multiple targets for position
--->  Check all the other products  <--- The Multi Time Frame Chandelier Channel is a good synthesis of the chandelier trailing stop and let you analyze the trend.  Enter when the price breaks one of the two lines, then trail using the opposite line.  Ideal for scalping, entering after the dot appears.  Plenty of customization:  Choose the lookback period, the longer, the slower Choose the Time Frame to use (must be greater or equal your chart TF  Play around with the options to get the
--->  Check all the other products  <--- The Engulfing Candles Screener is a deeply customizable dashboard.  You can chose a trend filter, using 2 EMAs, with custom periods applied on a custom TimeFrames Then you can choose 3 timeframes to search, any TimeFrame is suitable and the screener will find the engulfing candles in the selected timeframe.  3 Timeframes to scan All the major forex pairs and crosses - up to 28 symbols Deeply Customizable How to setup the screener:  Let the crosses v
--->  Check all the other products  <--- The Candle Bias is a coloring indicator that doesn't take account of the close price of the bars.  It will color the candle in the bearish color (of your choice) if the downard range is greater than the upward range.  Conversely, it will color the candle in the bullish color of your choice if the upward range is greater than the downward range.  This is a major helper for Multi Time Frame analysis, it works on every security and every Time Frame. You
The pair strenght panel make easy to see the overall performance of the base and the quote currencies.  It can analyze Daily performance, Weekly performance and Monthly performance.  Seamlessly and without any further input option, it splits the cross in the two currency and analyze the performance of each one:  for example, if it's attched to an AUD/CHF chart, it will report the AUDCHF percentage variation and the composite percentage variation of the whole AUD basket against the other 6 curr
Filtrele:
İnceleme yok
İncelemeye yanıt