Advertisement
Guest User

appScript

a guest
Dec 23rd, 2024
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. function buySwitch() {
  2. var marketSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Market Direction');
  3. var indexSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('INDEX Composite');
  4.  
  5. // Ανάγνωση δεδομένων από τις στήλες B, D, E, I, O, και H
  6. var buySignals = marketSheet.getRange('D2:D').getValues(); // Στήλη D (Buy Signals)
  7. var sellSignals = marketSheet.getRange('E2:E').getValues(); // Στήλη E (Sell Signals)
  8. var marketCount = marketSheet.getRange('I2:I').getValues(); // Στήλη I (Market Count)
  9. var distributionDaysCount = indexSheet.getRange('O2:O').getValues(); // Στήλη O (DD Count)
  10. var dataCheck = marketSheet.getRange('B2:B').getValues(); // Στήλη B (ελέγχουμε αν έχει δεδομένα)
  11. var powerTrend = marketSheet.getRange('H2:H').getValues(); // Στήλη H (Power Trend)
  12.  
  13. var buySwitch = "OFF"; // Αρχικοποίηση του Buy Switch
  14.  
  15. // Διατρέχουμε κάθε γραμμή για να υπολογίσουμε το Buy Switch
  16. for (var i = 0; i < buySignals.length; i++) {
  17. // Ελέγχουμε αν υπάρχει δεδομένα στη στήλη Β. Αν όχι, σταματάμε.
  18. if (!dataCheck[i][0]) {
  19. break; // Σταματάμε αν δεν υπάρχουν δεδομένα στη στήλη Β
  20. }
  21.  
  22. // Ελέγχει αν υπάρχει "Follow-Through Day" (B1 -> Buy Switch ON)
  23. if (buySignals[i][0].split(',').map(item => item.trim()).includes('B1')) {
  24. buySwitch = "ON";
  25. }
  26.  
  27. // Ελέγχει αν το Power Trend είναι "ON / F +2"
  28. if (powerTrend[i][0] === 'ON / F +2') {
  29. buySwitch = "ON";
  30. }
  31.  
  32. // Ελέγχει για συνθήκες που απενεργοποιούν το Buy Switch
  33. if (distributionDaysCount[i][0] >= 6 && marketCount[i][0] === 0 && powerTrend[i][0] === 'OFF') {
  34. buySwitch = "OFF";
  35. }
  36.  
  37. if (sellSignals[i][0].indexOf('S2-MAJOR') > -1 || sellSignals[i][0].indexOf('CB') > -1) {
  38. buySwitch = "OFF";
  39. }
  40.  
  41. // Εισάγει το τρέχον αποτέλεσμα στη στήλη F
  42. marketSheet.getRange(i + 2, 6).setValue(buySwitch); // Στήλη F
  43.  
  44. // Διατηρεί την τρέχουσα κατάσταση του Buy Switch για τις επόμενες σειρές
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement