Şuanki Dizin: /home/wwwdreamtechnolo/www/sharemarkettraders.com/software/ |
Şuanki Dosya : /home/wwwdreamtechnolo/www/sharemarkettraders.com/software/three_thirty_strategy.php |
<?php require_once('lib/function.php'); $db = new login_function(); /*******************************THREE THIRTY STRATEGY****************************/ //echo "*********************************************************************"; // Sample candle data /* $candleData = [ ['Date', 'Open', 'High', 'Low', 'Close'], ['2023-09-10', 100, 105, 98, 103], ['2023-09-11', 104, 107, 100, 106], // Add more candle data here ];*/ //print_r($candleData); /* // Function to calculate the EMA function calculateEMA($data, $period) { $multiplier = 2 / ($period + 1); $ema = []; // Calculate the initial SMA $sma = array_slice($data, 0, $period); $sma = array_sum($sma) / $period; $ema[] = $sma; // Calculate EMA for the rest of the data for ($i = $period; $i < count($data); $i++) { $emaValue = ($data[$i] - $ema[$i - $period]) * $multiplier + $ema[$i - $period]; $ema[] = $emaValue; } return $ema; } // Function to check for EMA crossover function emaCrossover($emaShort, $emaLong) { $lastIndex = count($emaShort) - 1; // Check for bullish crossover (short EMA crosses above long EMA) if ($emaShort[$lastIndex] > $emaLong[$lastIndex] && $emaShort[$lastIndex - 1] <= $emaLong[$lastIndex - 1]) { return "Bullish crossover at index $lastIndex"; } // Check for bearish crossover (short EMA crosses below long EMA) elseif ($emaShort[$lastIndex] < $emaLong[$lastIndex] && $emaShort[$lastIndex - 1] >= $emaLong[$lastIndex - 1]) { return "Bearish crossover at index $lastIndex"; } else { return "No crossover"; } } // Extract Close prices from the candle data $closePrices = array_column(array_slice($candleData, 1), 4); // Define EMA periods (Short and Long) $shortEMAperiod = 3; $longEMAperiod = 30; // Calculate Short and Long EMAs $shortEMA = calculateEMA($closePrices, $shortEMAperiod); $longEMA = calculateEMA($closePrices, $longEMAperiod); // Check for EMA crossover $crossoverResult = emaCrossover($shortEMA, $longEMA); echo "EMA Crossover Result: $crossoverResult\n";*/ /*****************************END THREE THIRTY STRATEGY***************************/ // Sample collection of candle data (for demonstration purposes) /*$candle_data = [ ['date' => '2023-09-01', 'open' => 100, 'high' => 105, 'low' => 95, 'close' => 102], ['date' => '2023-09-02', 'open' => 103, 'high' => 108, 'low' => 100, 'close' => 105], // Add more data here ];*/ $symbol_token = "2885"; $candle_data = $db->get_all_users_candle_data_details_by_symboltoken($symbol_token); //print_r($candle_data); function calculateEMA($data, $period) { // print_r($data); $multiplier = 2 / ($period + 1); $ema = []; for ($i = 0; $i < count($data); $i++) { if ($i === 0) { $ema[$i] = $data[$i]['close']; } else { $ema[$i] = ($data[$i]['close'] - $ema[$i - 1]) * $multiplier + $ema[$i - 1]; } } return $ema; } // Calculate short-term and long-term EMAs $short_term_ema = calculateEMA($candle_data, 3); $long_term_ema = calculateEMA($candle_data, 30); function emaCrossoverSignal($short_term_ema, $long_term_ema, $index) { if ($short_term_ema[$index] > $long_term_ema[$index] && $short_term_ema[$index - 1] <= $long_term_ema[$index - 1]) { // echo 'Buy Signal'; } elseif ($short_term_ema[$index] < $long_term_ema[$index] && $short_term_ema[$index - 1] >= $long_term_ema[$index - 1]) { echo 'Sell Signal'; } else { echo 'No Signal'; } } // Determine the signal at a specific index (e.g., latest data point) $signal = emaCrossoverSignal($short_term_ema, $long_term_ema, count($candle_data) - 1); ?>
Linux 65-254-81-4.cprapid.com 5.14.0-284.11.1.el9_2.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 9 05:49:00 EDT 2023 x86_64
Apache
65.254.81.4