Gamestudio Links
Zorro Links
Newest Posts
Trading Journey
by 7th_zorro. 04/27/24 04:42
Help with plotting multiple ZigZag
by M_D. 04/26/24 20:03
Data from CSV not parsed correctly
by jcl. 04/26/24 11:18
M1 Oversampling
by jcl. 04/26/24 11:12
Why Zorro supports up to 72 cores?
by jcl. 04/26/24 11:09
Eigenwerbung
by jcl. 04/26/24 11:08
MT5 bridge not working on MT5 v. 5 build 4160
by EternallyCurious. 04/25/24 20:49
Zorro FIX plugin - Experimental
by flink. 04/21/24 07:12
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
3 registered members (Quad, Akow, 7th_zorro), 756 guests, and 4 spiders.
Key: Admin, Global Mod, Mod
Newest Members
wandaluciaia, Mega_Rod, EternallyCurious, howardR, 11honza11
19049 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 2 of 3 1 2 3
Re: Zorro Trader GPT [Re: fairtrader] #487968
12/04/23 11:34
12/04/23 11:34
Joined: Sep 2017
Posts: 81
T
TipmyPip Offline OP
Junior Member
TipmyPip  Offline OP
Junior Member
T

Joined: Sep 2017
Posts: 81
Thank you too.


ZorroTraderGPT - https://bit.ly/3Gbsm4S
Re: Zorro Trader GPT [Re: TipmyPip] #487979
12/10/23 20:09
12/10/23 20:09
Joined: Mar 2021
Posts: 35
Ocean county, Florida
NewtraderX Offline
Newbie
NewtraderX  Offline
Newbie

Joined: Mar 2021
Posts: 35
Ocean county, Florida
Hello TipmyPip,
Do I need to pay 20 dollars per month to be able to use this specific GPT?

Attached Files delete.png
Re: Zorro Trader GPT [Re: NewtraderX] #487982
12/13/23 11:01
12/13/23 11:01
Joined: Sep 2017
Posts: 81
T
TipmyPip Offline OP
Junior Member
TipmyPip  Offline OP
Junior Member
T

Joined: Sep 2017
Posts: 81
Well, 20 Dollars per month, can produce for you strategies you have not dreamed about.

Look into the Xor Memory Problem example -> https://opserver.de/ubb7/ubbthreads.php?ubb=showflat&Number=487981#Post487981

Last edited by TipmyPip; 12/13/23 11:29.

ZorroTraderGPT - https://bit.ly/3Gbsm4S
Re: Zorro Trader GPT [Re: TipmyPip] #488017
12/28/23 14:22
12/28/23 14:22
Joined: Sep 2017
Posts: 81
T
TipmyPip Offline OP
Junior Member
TipmyPip  Offline OP
Junior Member
T

Joined: Sep 2017
Posts: 81
A new phase of algorithmic targets that enable optimized structures to enable better decision-making in optimal time.

Code
Data Structure:
- Array of KeyValue objects

Operations:
- CreateDictionary(size)
- Insert(key, value)
- Lookup(key)

Function customHash(key, size):
    return key % size

Function CreateDictionary(size):
    dictionary = new KeyValue[size]
    for i = 0 to size - 1:
        dictionary[i].key = -1
    return dictionary

Function Insert(dictionary, size, key, value):
    index = customHash(key, size)
    while dictionary[index].key != -1:
        index = (index + 1) % size
    dictionary[index].key = key
    dictionary[index].value = value

Function Lookup(dictionary, size, key):
    index = customHash(key, size)
    while dictionary[index].key != key:
        if dictionary[index].key == -1:
            return -1
        index = (index + 1) % size
    return dictionary[index].value

___________________________________________

Data Structure:
- Array of ComplexElement objects

Operations:
- InitializeComplexDataStructure(size)
- ExecuteComplexOperation(key)

Function InitializeComplexDataStructure(size):
    complexDataStructure = new ComplexElement[size]
    // Initialize complexDataStructure as needed
    return complexDataStructure

Function ExecuteComplexOperation(complexDataStructure, size, key):
    // Perform a complex trading operation on complexDataStructure based on the key
    // This operation has a complexity of O(n^(n*n-1)).

Main:
    n = 10
    dictionarySize = n * n * n * n
    complexDataStructureSize = n * n * n * n  // Adjust the size based on complexity requirements

    dictionary = CreateDictionary(dictionarySize)
    complexDataStructure = InitializeComplexDataStructure(complexDataStructureSize)

    for i = 0 to n - 1:
        for j = 0 to n - 1:
            key = i * n + j
            value = key * key
            Insert(dictionary, dictionarySize, key, value)

    searchKey = 7
    result = Lookup(dictionary, dictionarySize, searchKey)
    if result != -1:
        Print "Value for key", searchKey, "in ComplexDictionary:", result
    else:
        Print "Key", searchKey, "not found in ComplexDictionary."

    // Execute a complex trading operation on ComplexTradingOperation
    complexKey = 5  // Adjust the key as needed
    ExecuteComplexOperation(complexDataStructure, complexDataStructureSize, complexKey)

Last edited by TipmyPip; 12/28/23 14:30.

ZorroTraderGPT - https://bit.ly/3Gbsm4S
Re: Zorro Trader GPT [Re: TipmyPip] #488135
02/13/24 16:24
02/13/24 16:24
Joined: Apr 2021
Posts: 22
S
scatters Offline
Newbie
scatters  Offline
Newbie
S

Joined: Apr 2021
Posts: 22
Hi @TipmyPip,

Would Zorro Trader GPT help me convert my trading view pinescript indicator into Zorro Scirpt? If so what would the difference be between using the Zorro Trader GPT and just using Chat GPT ?

Re: Zorro Trader GPT [Re: scatters] #488139
02/16/24 06:53
02/16/24 06:53
Joined: Sep 2017
Posts: 81
T
TipmyPip Offline OP
Junior Member
TipmyPip  Offline OP
Junior Member
T

Joined: Sep 2017
Posts: 81
It will, but you would need to debug, It will convert at least 80%

To achieve 100%, you will need to debug with the AI, if you are not familiar with the syntax of both languages.

Last edited by TipmyPip; 02/16/24 07:01.

ZorroTraderGPT - https://bit.ly/3Gbsm4S
ZorroTraderGPT Update (2.6) [Re: TipmyPip] #488147
03/06/24 09:27
03/06/24 09:27
Joined: Sep 2017
Posts: 81
T
TipmyPip Offline OP
Junior Member
TipmyPip  Offline OP
Junior Member
T

Joined: Sep 2017
Posts: 81
Updated ZorroTraderGPT to version 2.6

And if you consider helping out, you can always help find the bugs, and improve on our ideas, Thank you.

Code
#include <contract.c>

// Define your global parameters such as target profit, days to expiration, and strike price offset
var TargetProfit = 500; // Example target profit
int DaysToExpiration = 30; // Target days until expiration
var StrikeOffset = 50; // Offset from the current price for strike selection

void run() {
  // Setup basic parameters
  BarPeriod = 1440; // Use daily bars
  LookBack = 0; // No need for historical bars in options trading setup
  StartDate = 2020;
  EndDate = 2024; // Set your backtest period
  assetList("AssetsIB");
  asset("SPY"); // Example using SPY ETF as the underlying asset

  // Ensure we're trading in American Options for SPY
  AmericanOption = 1;

  // Update the contract chain for the underlying asset
  if(!contractUpdate(Asset, 0, CALL | PUT)) return;

  // Trading logic executed once per day
  if(is(EXITRUN)) return; // Skip logic at the end of the backtest
  
  // Define your strangle strategy here
  if(NumOpenLong + NumOpenShort == 0) { // Check if there's no open position
    // Calculate target strike prices based on current price and offset
    var CurrentPrice = priceClose(0);
    var StrikeCall = CurrentPrice + StrikeOffset;
    var StrikePut = CurrentPrice - StrikeOffset;

    // Attempt to find and enter a Strangle combo
    if(combo(
      contractFind(CALL, DaysToExpiration, StrikeCall), 1, // Buy 1 Call
      contractFind(PUT, DaysToExpiration, StrikePut), 1,  // Buy 1 Put
      0, 0)) { 
        // Enter the combo trade
        enterLong(comboLeg(1)); // Enter long for the call option leg
        enterLong(comboLeg(2)); // Enter long for the put option leg
    }
  }

  // Monitor and manage open positions
  for(open_trades) { // Loop through all open trades
    if(TradeIsOption && TradeIsOpen && (comboProfit(TradePriceClose, 1) > TargetProfit || daysToExpiration() < 5)) {
      exitTrade(ThisTrade); // Close the trade if target profit is reached or approaching expiration
    }
  }
}

// Placeholder function for days to expiration calculation - implement as needed
int daysToExpiration() {
  // Custom logic to calculate and return days to expiration for the current combo
  return 10; // Placeholder return value
}

// Placeholder function for calculating combo profit - implement based on actual requirements
var comboProfit(var CurrentClosePrice, int Leg) {
  // Custom logic to calculate and return profit for the combo based on current prices
  return 600; // Placeholder return value
}

Last edited by TipmyPip; 03/06/24 09:44.

ZorroTraderGPT - https://bit.ly/3Gbsm4S
Re: Zorro Trader GPT [Re: TipmyPip] #488155
04/01/24 11:43
04/01/24 11:43
Joined: Sep 2017
Posts: 81
T
TipmyPip Offline OP
Junior Member
TipmyPip  Offline OP
Junior Member
T

Joined: Sep 2017
Posts: 81
Asset Ownership: This strategy assumes you initially buy shares of SPY if you don't already own them.

Option Sale: It sells a call option on SPY with a strike price determined by StrikeOffset above the current price and targets DaysToExpiration for expiration.

Position Management: The script also checks for the option position to close it if the premium target is reached or the expiration is near.


Code
#include <contract.c>

// Global parameters for the covered call strategy
var PremiumTarget = 100; // Target premium income from selling the call
int DaysToExpiration = 45; // Target days until expiration for the call option
var StrikeOffset = 100; // Offset from the current price for strike selection

void run() {
  // Setup basic parameters
  BarPeriod = 1440; // Use daily bars
  LookBack = 0; // No need for historical bars in this setup
  StartDate = 2020;
  EndDate = 2024; // Set your backtest period
  assetList("AssetsIB");
  asset("SPY"); // Example using SPY ETF as the underlying asset
  
  // Ensure we're trading in American Options for SPY
  AmericanOption = 1;

  // Update the contract chain for the underlying asset
  if(!contractUpdate(Asset, 0, CALL)) return;

  // Trading logic executed once per day
  if(is(EXITRUN)) return; // Skip logic at the end of the backtest

  // Check if we already own SPY
  if(!NumOpenLong) enterLong(1); // Enter long position if we don't own SPY

  // Sell a call option if we haven't already
  if(NumOpenShort == 0) {
    var CurrentPrice = priceClose(0);
    var StrikeCall = CurrentPrice + StrikeOffset;

    // Finding the call option contract
    CONTRACT* callContract = contractFind(CALL, DaysToExpiration, StrikeCall);
    if(callContract) {
      // Enter a short position by selling the call option
      enterShort(1, callContract); 
    }
  }

  // Managing the open option position
  for(open_trades) {
    CONTRACT* c = ThisTrade->Contract;
    if(TradeIsOption && TradeIsShort && (comboProfit(c->fAsk, 1) > PremiumTarget || daysToExpiration(c) < 5)) {
      exitTrade(ThisTrade); // Close the call option if premium target is reached or approaching expiration
    }
  }
}

// A more refined function for calculating days to expiration based on contract data
int daysToExpiration(CONTRACT* c) {
  if(!c) return 0;
  return (c->Expiry - wdate()) / 86400; // Convert seconds to days
}

Last edited by TipmyPip; 04/01/24 21:17.

ZorroTraderGPT - https://bit.ly/3Gbsm4S
Re: Zorro Trader GPT [Re: TipmyPip] #488156
04/01/24 11:53
04/01/24 11:53
Joined: Sep 2017
Posts: 81
T
TipmyPip Offline OP
Junior Member
TipmyPip  Offline OP
Junior Member
T

Joined: Sep 2017
Posts: 81
Selling the Call Option: Use fuzzy logic to evaluate the market condition and the appropriateness of the option's strike price and days to expiration.

Closing the Position: Apply fuzzy logic to decide on closing the option based on current profit and time to expiration.

Code
#include <contract.c>

var FuzzyRange = 0.1; // Adjust based on market volatility or strategy needs
var PremiumTarget = 100; // Example target premium from selling a call
var StrikeOffset = 50; // Offset from the current price for strike selection
int DaysToExpiration = 30; // Target days until expiration

// Initialize fuzzy logic settings - no changes needed here
void initFuzzyLogic() {
  FuzzyRange = 0.1; 
}

// Decision-making on whether to initiate an option combo trade
bool shouldSellCallOption(var currentPrice, var strikeOffset) {
  // Selling a call option if the current price plus strikeOffset is fuzzy-above the current price
  return fuzzy(aboveF(currentPrice + strikeOffset, currentPrice));
}

// Logic for closing position based on profit and days to expiration
bool shouldClosePosition(var tradeProfit, int daysToExpiration) {
  var profitCondition = aboveF(tradeProfit, PremiumTarget);
  var expirationCondition = belowF((var)daysToExpiration, 5.0); // Close if less than 5 days to expiration
  
  return fuzzy(orF(profitCondition, expirationCondition));
}

void run() {
  BarPeriod = 1440; // Use daily bars
  LookBack = 0; // No need for historical bars in this strategy
  StartDate = 2020;
  EndDate = 2024;
  assetList("AssetsIB");
  asset("SPY");
  AmericanOption = 1; // Trading American options
  
  initFuzzyLogic();

  if (!contractUpdate(Asset, 0, CALL)) return;

  if (is(EXITRUN)) return;

  // Decision to sell a call option
  if (NumOpenShort == 0 && shouldSellCallOption(priceClose(0), StrikeOffset)) {
    CONTRACT* CallContract = contractFind(CALL, DaysToExpiration, priceClose(0) + StrikeOffset);
    if (CallContract) {
      combo(CallContract, -1, 0, 0, 0, 0); // Prepare a combo to sell 1 call option
      enterShort(comboLeg(1)); // Enter short position on the combo leg
    }
  }

  // Loop through open trades to manage the position
  for(open_trades) {
    if (TradeIsOption && TradeIsShort && shouldClosePosition(TradeProfit, daysToExpiration())) {
      exitTrade(ThisTrade); // Close the position based on fuzzy logic conditions
    }
  }
}

// You might need to implement or adjust the daysToExpiration function to suit your requirements
int daysToExpiration() {
  // Implement logic to calculate days to expiration for the current option combo
  return 10; // Placeholder return value
}

Last edited by TipmyPip; 04/01/24 21:20.

ZorroTraderGPT - https://bit.ly/3Gbsm4S
Re: Zorro Trader GPT [Re: TipmyPip] #488157
04/01/24 11:59
04/01/24 11:59
Joined: Sep 2017
Posts: 81
T
TipmyPip Offline OP
Junior Member
TipmyPip  Offline OP
Junior Member
T

Joined: Sep 2017
Posts: 81
Selling Call Options Based on Trend: Sell call options when the underlying asset shows a strong upward trend, as indicated by a high value from risingF, implying that the price rise is consistent and may continue.

Closing Positions with Trend Reversals: Consider closing the call option positions when the asset's price starts showing a downward trend, as indicated by fallingF, suggesting a reversal or correction that might impact the strategy negatively.

Code
#include <contract.c>

vars PriceClose;

void run() {
    BarPeriod = 1440; // Daily bars for trend analysis
    LookBack = 30; // Looking back 30 bars for accurate trend detection
    StartDate = 2020;
    EndDate = 2024;
    assetList("AssetsIB");
    asset("SPY");

    PriceClose = series(priceClose());

    AmericanOption = 1; // Trading American Options
    
    if (is(EXITRUN)) return; // Exit if at the end of the backtest

    // Ensure the contract chain is updated for SPY
    if (!contractUpdate(Asset, 0, CALL | PUT)) return;

    // Entry Logic: Detect a rising trend to sell a call option
    if (NumOpenLong + NumOpenShort == 0) { // Check if there's no open position
        var trendStrength = risingF(PriceClose); // Assess the rising trend strength
        if (trendStrength > 0.5) { // Threshold for a strong rising trend
            // Define the strike price a bit above the current price for selling a call
            var StrikeCall = priceClose(0) + 100; // Offset from the current price for the strike
            int CallContract = contractFind(CALL, 45, StrikeCall); // Find a call option 45 days to expiration
            if (CallContract >= 0) {
                CONTRACT* c = contract(CallContract);
                if (combo(c, -1, 0, 0, 0, 0, 0, 0) > 0) { // Prepare the combo for selling 1 call
                    enterShort(comboLeg(1)); // Enter short for the call option leg
                }
            }
        }
    }

    // Exit Logic: Close the short call option position on a falling trend
    for(open_trades) {
        if (TradeIsOption && TradeIsShort) {
            var reversalStrength = fallingF(PriceClose); // Assess the strength of the falling trend
            if (reversalStrength > 0.5) { // Threshold indicating a strong downward trend
                exitTrade(ThisTrade); // Close the call option position
            }
        }
    }
}

Last edited by TipmyPip; 04/01/24 21:22.

ZorroTraderGPT - https://bit.ly/3Gbsm4S
Page 2 of 3 1 2 3

Moderated by  Petra 

Powered by UBB.threads™ PHP Forum Software 7.7.1