input: Write a function to read a CSV file containing stock data from the last 3 months, train a decision tree model on the data, and return the model's accuracy on a test set. The function should split the data into training and testing sets, use a DecisionTreeClassifier with entropy criterion, and print the accuracy of the model. The function should be named `stock_decision_tree_accuracy`.
  
  assert stock_decision_tree_accuracy("stockdata.csv") >= 0.5
  assert stock_decision_tree_accuracy("another_stockdata.csv") >= 0.5
  assert stock_decision_tree_accuracy("empty_stockdata.csv") == -1
  assert stock_decision_tree_accuracy("incomplete_stockdata.csv") == -1
output: 
  def stock_decision_tree_accuracy(filename):
      import pandas as pd
      from sklearn.model_selection import train_test_split
      from sklearn.tree import DecisionTreeClassifier
      from sklearn.metrics import accuracy_score
  
      try:
          data = pd.read_csv(filename)
          if data.isnull().values.any():
              return -1
          X = data.iloc[:, :-1]
          y = data.iloc[:, -1]
          X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
          clf = DecisionTreeClassifier(criterion='entropy')
          clf.fit(X_train, y_train)
          y_pred = clf.predict(X_test)
          accuracy = accuracy_score(y_test, y_pred)
          print(accuracy)
          return accuracy
      except Exception:
          return -1
  