Oanda FXTradePad

      Nein, als 1-man-show kann man sowas vergessen, es hat schon seinen Grund, warum man für professionelle Frontends teils deftige Lizenzgebühren lohnen darf, da steckt extrem viel Arbeit drin. Wenn ich das Teil ein bischen aufmotzen und verkaufen würde, wäre das im Prinzip Abzocke (obwohls vielleicht funktionieren würde, aber irgendwie hab ich da null Interesse).
      Original von Purri
      Ich bin nur ein interessierter Amateur, und habe als solcher immer noch keine eigene IT-Abteilung, um so etwas anzubieten :>


      :D Du würdest damit mehr Geld, als mit Trading verdienen! Ich weiß, die Freiheit, die das Trading verspricht, ist nicht bezahlbar... ;)
      Wie Samen, die unter der Schneedecke träumen, träumen eure Herzen vom Frühling. Vertraut diesen Träumen, denn in ihnen verbirgt sich das Tor zur Unendlichkeit. Khalil Gibran
      Ich hab jetzt schon einige mails/PNs bekommen, also hab ichs nochmal ins Netz gestellt:

      filefactory.com/file/535979/

      Ich kann das Tool mangels Zeit und Interesse leider nicht umschreiben, erweiteren oder sonst wie supporten. Ich bin nur ein interessierter Amateur, und habe als solcher immer noch keine eigene IT-Abteilung, um so etwas anzubieten :>
      Das Programm wird nur "as is" zur Verfügung gestellt, ohne Garantie auf (korrektes) Funktionieren, Updates oder sonstigem Support.
      Wenn du das für Metalle umschreiben willst, muss man schon einiges mehr anpassen. Die Pixelcheck-Summen für "XAU" und "XAG" hinzufügen, einige Koordinaten anpassen, 8-stellige Quotes, und das Pos.sizing muss auch umgeschrieben werden, sonst kann das u. U. ins Auge gehen (1400 Units XAU/USD haben ca. einen Wert von 1 Mio. USD z.Zt.). Ich fürchte, wenn du das wirklich anpassen willst, musst du AutoIT lernen (ist nicht so schwer), und dich durch meinen super uneleganten sourcecode quälen. Ist eventuell sogar beser, du schreibst das dann gleich neu.

      Das ganze ist eigentlich mehr eine Demo was man alles machen könnte, einer vom Oanda-Board hat sich z.B. eine eigene "api" mit einem ähnlichen Ansatz geschrieben, mit der er ein System mit zig Orders verteilt über weissgott wieviele Pairs verwaltet, das manuell nur sehr aufwendig möglich wäre.
      =) Es kommen Zahlen! Vielleicht muß man doch mal zwischendurch nen Neustart machen...?

      Original von kimba
      Was muß man machen um zB. die Metalle ins FXpad Setup zu bekommen?
      Im File FXpad(Deine Version).au3 ist wohl dieser Codeteil veranwortlich?

      Brainfuck-Quellcode

      1. #cs--------------------------------------------------------------------
      2. #
      3. # Checks what chart is active, OCRs the respective bid/ask quotes and
      4. # draws the quotes into GUI
      5. #
      6. #ce--------------------------------------------------------------------
      7. Func _UpdateQuoteBoard()
      8. ;$time = TimerInit()
      9. _CheckActiveChart() ; check if user switched to another chart and update OCR coordinates accordingly
      10. $bid2 = $bid1
      11. $bid1 = _OCRnum($xBid1, $by, $xBid2, $ay)
      12. If $bid1 <> $bid2 Then ; only update when rates changed to prevent flickering
      13. If StringTrimRight($bid1, 6) = 0 Then ; check for USD/CHF
      14. $bids= StringTrimRight($bid1, 2)
      15. $bidb= StringMid($bid1, 5, 2)
      16. $bidp= ""
      17. Else
      18. $bids= StringTrimRight($bid1, 3)
      19. $bidb= StringMid($bid1, 5, 2)
      20. $bidp= StringTrimLeft($bid1, 6)
      21. EndIf
      22. GUICtrlSetData($labelbids, $bids)
      23. GUICtrlSetData($buttonsell, $bidb)
      24. GUICtrlSetData($labelbidp, $bidp)
      25. ;GUICtrlSetData($inputasell, $bid1) ; for testing
      26. EndIf
      27. $ask2 = $ask1
      28. $ask1 = _OCRnum($xAsk1, $by, $xAsk2, $ay)
      29. If $ask1 <> $ask2 Then ; only update when rates changed to prevent flickering
      30. If StringTrimRight($ask1, 6) = 0 Then
      31. $asks= StringTrimRight($ask1, 2)
      32. $askb= StringMid($ask1, 5, 2)
      33. $askp= ""
      34. Else
      35. $asks= StringTrimRight($ask1, 3)
      36. $askb= StringMid($ask1, 5, 2)
      37. $askp= StringTrimLeft($ask1, 6)
      38. EndIf
      39. GUICtrlSetData($labelasks, $asks)
      40. GUICtrlSetData($buttonbuy, $askb)
      41. GUICtrlSetData($labelaskp, $askp)
      42. ;GUICtrlSetData($inputabuy, $ask1) ; for testing
      43. EndIf
      44. ;MsgBox(0, "QuoteBoard", TimerDiff($time))
      45. EndFunc
      46. #cs-------------------------------------------------------------------------------
      47. #
      48. # Checks what chart is active and sets the coordinates for OCR accordingly
      49. #
      50. #ce-------------------------------------------------------------------------------
      51. Func _CheckActiveChart()
      52. ;$time = TimerInit()
      53. $pair = PixelChecksum($xChart1, $yChart1, $xChart2, $yChart2) ; coordinates of the dropdown menu to select charts
      54. If $pair <> $pair1 Then
      55. Select
      56. Case $pair = "4004047934" ; "GBPUSD" found
      57. $by = $yGBP1 ; y-coord above quote 419
      58. $ay = $yGBP2
      59. $aPair = "GBP/USD"
      60. Case $pair = "736488510" ; "EURUSD" found
      61. $by = $yEUR1 ; y-coord above quote
      62. $ay = $yEUR2 ; y-coord under quote
      63. $aPair = "EUR/USD"
      64. Case $pair = "3173132305" ; "USDJPY" found
      65. $by = $yYEN1 ; y-coord above quote
      66. $ay = $yYEN2 ; y-coord under quote
      67. $aPair = "USD/JPY"
      68. Case $pair = "3126857004" ; "USDCHF" found
      69. $by = $yCHF1 ; y-coord above quote
      70. $ay = $yCHF2 ; y-coord under quote
      71. $aPair = "USD/CHF"
      72. EndSelect
      73. If GUICtrlRead($cbPS) = 1 Then
      74. _CalcSize()
      75. EndIf
      76. EndIf
      77. $pair1 = $pair
      78. ;MsgBox(0, "Time PixelChecksum", TimerDiff($time))
      79. EndFunc
      Wie Samen, die unter der Schneedecke träumen, träumen eure Herzen vom Frühling. Vertraut diesen Träumen, denn in ihnen verbirgt sich das Tor zur Unendlichkeit. Khalil Gibran

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kimba“ ()

      Original von Purri
      Hasst den Knopf im Setup-Tab gedrückt? Sagt das Log was? Sonst weiss ich auch nicht, hat doch vorher schon funktioniert bei dir..


      Yup gedrückt, siehe screenshot ein paar Postigs weiter unten, oder hier:


      Ne bei mir nich nicht, dass war jemand anderes.
      Bilder
      • FxTradePad13b.png

        12,14 kB, 314×296, 552 mal angesehen
      Wie Samen, die unter der Schneedecke träumen, träumen eure Herzen vom Frühling. Vertraut diesen Träumen, denn in ihnen verbirgt sich das Tor zur Unendlichkeit. Khalil Gibran
      Mal davon abgeshen, dass bei mir noch nichts kommt an Quotes - vielleicht hat noch jemand einen Tip? - eine nächste Frage:

      Was muß man machen um zB. die Metalle ins FXpad Setup zu bekommen?
      Im File FXpad(Deine Version).au3 ist wohl dieser Codeteil veranwortlich?

      Brainfuck-Quellcode

      1. #cs--------------------------------------------------------------------
      2. #
      3. # Checks what chart is active, OCRs the respective bid/ask quotes and
      4. # draws the quotes into GUI
      5. #
      6. #ce--------------------------------------------------------------------
      7. Func _UpdateQuoteBoard()
      8. ;$time = TimerInit()
      9. _CheckActiveChart() ; check if user switched to another chart and update OCR coordinates accordingly
      10. $bid2 = $bid1
      11. $bid1 = _OCRnum($xBid1, $by, $xBid2, $ay)
      12. If $bid1 <> $bid2 Then ; only update when rates changed to prevent flickering
      13. If StringTrimRight($bid1, 6) = 0 Then ; check for USD/CHF
      14. $bids= StringTrimRight($bid1, 2)
      15. $bidb= StringMid($bid1, 5, 2)
      16. $bidp= ""
      17. Else
      18. $bids= StringTrimRight($bid1, 3)
      19. $bidb= StringMid($bid1, 5, 2)
      20. $bidp= StringTrimLeft($bid1, 6)
      21. EndIf
      22. GUICtrlSetData($labelbids, $bids)
      23. GUICtrlSetData($buttonsell, $bidb)
      24. GUICtrlSetData($labelbidp, $bidp)
      25. ;GUICtrlSetData($inputasell, $bid1) ; for testing
      26. EndIf
      27. $ask2 = $ask1
      28. $ask1 = _OCRnum($xAsk1, $by, $xAsk2, $ay)
      29. If $ask1 <> $ask2 Then ; only update when rates changed to prevent flickering
      30. If StringTrimRight($ask1, 6) = 0 Then
      31. $asks= StringTrimRight($ask1, 2)
      32. $askb= StringMid($ask1, 5, 2)
      33. $askp= ""
      34. Else
      35. $asks= StringTrimRight($ask1, 3)
      36. $askb= StringMid($ask1, 5, 2)
      37. $askp= StringTrimLeft($ask1, 6)
      38. EndIf
      39. GUICtrlSetData($labelasks, $asks)
      40. GUICtrlSetData($buttonbuy, $askb)
      41. GUICtrlSetData($labelaskp, $askp)
      42. ;GUICtrlSetData($inputabuy, $ask1) ; for testing
      43. EndIf
      44. ;MsgBox(0, "QuoteBoard", TimerDiff($time))
      45. EndFunc
      46. #cs-------------------------------------------------------------------------------
      47. #
      48. # Checks what chart is active and sets the coordinates for OCR accordingly
      49. #
      50. #ce-------------------------------------------------------------------------------
      51. Func _CheckActiveChart()
      52. ;$time = TimerInit()
      53. $pair = PixelChecksum($xChart1, $yChart1, $xChart2, $yChart2) ; coordinates of the dropdown menu to select charts
      54. If $pair <> $pair1 Then
      55. Select
      56. Case $pair = "4004047934" ; "GBPUSD" found
      57. $by = $yGBP1 ; y-coord above quote 419
      58. $ay = $yGBP2
      59. $aPair = "GBP/USD"
      60. Case $pair = "736488510" ; "EURUSD" found
      61. $by = $yEUR1 ; y-coord above quote
      62. $ay = $yEUR2 ; y-coord under quote
      63. $aPair = "EUR/USD"
      64. Case $pair = "3173132305" ; "USDJPY" found
      65. $by = $yYEN1 ; y-coord above quote
      66. $ay = $yYEN2 ; y-coord under quote
      67. $aPair = "USD/JPY"
      68. Case $pair = "3126857004" ; "USDCHF" found
      69. $by = $yCHF1 ; y-coord above quote
      70. $ay = $yCHF2 ; y-coord under quote
      71. $aPair = "USD/CHF"
      72. EndSelect
      73. If GUICtrlRead($cbPS) = 1 Then
      74. _CalcSize()
      75. EndIf
      76. EndIf
      77. $pair1 = $pair
      78. ;MsgBox(0, "Time PixelChecksum", TimerDiff($time))
      79. EndFunc
      Wie Samen, die unter der Schneedecke träumen, träumen eure Herzen vom Frühling. Vertraut diesen Träumen, denn in ihnen verbirgt sich das Tor zur Unendlichkeit. Khalil Gibran
      @RS8 :]
      Aber im FXPad kommt bei mir noch nichts!? Hab doch alles schön brav befolgt!? ?(

      Was ist denn mit dem Show Confirmation Windows?
      How to use:

      1. Required Oanda client settings:

      * standard color scheme, fontsize 11
      * Show Dual Bid/Ask-collumns enabled
      * Show Action-buttons disabled
      * Enable SL/TP by default enabled

      Quotelist:
      * Spread collumn must be visible
      * GBP/USD, Eur/USD, USD/JPY, USD/CHF must be at the top of the quotelist

      Oanda-client layout:
      * Quotelist must be visible and not be detached from the client
      * Account summary must not be detached from the client
      * Oanda-client must be maximized on 1st monitor
      (basically, oanda standard-layout

      2. * use above settings
      * start FxTradePad
      * in the "Setup"-tab, use the "Setup OCR.." button
      * enter your username (or accountnumber, any unique part of the oanda-client
      window title will do) in the window name input
      * save settings
      Bilder
      • FxTradePad13c.png

        11,65 kB, 314×312, 561 mal angesehen
      Wie Samen, die unter der Schneedecke träumen, träumen eure Herzen vom Frühling. Vertraut diesen Träumen, denn in ihnen verbirgt sich das Tor zur Unendlichkeit. Khalil Gibran

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „kimba“ ()

      Original von kimba

      X( Wo find ich die denn, Spread Spalte, in den User Preferences? (


      Neben dem "F-Knopf" auf den Pfeil drücken, dann erscheint eine fünfte Spalte ;)
      If you don't bet, you can't win.
      If you lose all your chips, you can't bet.


      - Larry Hite -

      --------------------

      The Trend is your only Friend :D

      - einer, der Bescheid weiß -
      Original von Moppi
      Ich habe vergessen, die Spread Spalte zu visualisieren. :rolleyes:
      Jetzt funktioniert es.


      X( Wo find ich die denn, Spread Spalte, in den User Preferences? oder ist das die leere Spalte da, zwischen den Paarnamen und dem BID? Nee kann nicht sein da erscheinen ja die Up- & DownPfeile! ?(
      Bilder
      • FxTradePad13b.png

        12,14 kB, 314×296, 552 mal angesehen
      Wie Samen, die unter der Schneedecke träumen, träumen eure Herzen vom Frühling. Vertraut diesen Träumen, denn in ihnen verbirgt sich das Tor zur Unendlichkeit. Khalil Gibran

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kimba“ ()

      Wenn du mir deine email adresse PNst, kann ich dir das schicken. Ich hab das allerdings nicht weiterentwickelt.

      Es gibt einige Möglichkeiten, wie Programme untereinander kommunizieren können (tcp/ip, com, activeX, shared memory ..), aber ich weiss ehrlichgesagt nicht, ob AutoIT das unterstützt, an und für sich ist es nur gedacht für GUI-Automatisierung. Da wäre es wohl besser, man schreibt sich was eigenens in einer "richtigen" Programmiersprache.
      Hallo,
      ich finde FXTradePad auf meinem Rechner nicht mehr und der LInk ist abgelaufen:
      filefactory.com/file/aa6351/
      Kannst du es nochmal hochladen bitte?

      Wäre es denkbar das FXTradePad so zu erweitern, dass es zB. eine Position schließt, wenn es ein externes Signal/Parameter erhalten würde?

      Danke
      Wie Samen, die unter der Schneedecke träumen, träumen eure Herzen vom Frühling. Vertraut diesen Träumen, denn in ihnen verbirgt sich das Tor zur Unendlichkeit. Khalil Gibran
      Original von Purri
      xforce:

      filefactory.com/file/aa6351/

      Der Submit button ist etwas tiefer gerutscht, sollte jetzt wieder gehen. Schau dir mal den sourcecode an, AutoIt ist relativ easy zu erlernen, da kannst du so kleine Änderungen auch leicht selber machen.

      kimba: gehen tut das schon, wenn man ein bischen programmieren kann, ist der Aufwand nicht so gross. Wenn nicht, ist es wohl viel Aufwand. Sehr kurzfristige Boxoptions sind allerdings nicht sehr vorteilhaft (Quelle: Richard Olson).


      danke,
      ich hatte die Zeilen gefunden, die man ändern muss,
      aber wenn ich es mit meiner AutoIT Version kompiliert hab, lief die Quote Anzeige nicht (OAOcr4.au3)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „xforce“ ()

      Eher nicht, ich bin eigentlich relativ beschäftigt, und Software für mich selber zu schreiben, bei der ich die Unzulänglichkeiten, Bugs und Einschränkungen kenne und damit leben kann, und Software für Dritte zu schreiben+Q&A, zu dokumentieren und zu supporten ist ganz was anderes, das will ich mir eigentlich nicht antun.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Purri“ ()

      Original von Purrikimba: gehen tut das schon, wenn man ein bischen programmieren kann,...

      Kann ich vergessen... Könnten wir irgendwie da einen Deal machen, wenn du mir so ein BoxenPad bastelst? Was meinst du?
      Wie Samen, die unter der Schneedecke träumen, träumen eure Herzen vom Frühling. Vertraut diesen Träumen, denn in ihnen verbirgt sich das Tor zur Unendlichkeit. Khalil Gibran
      xforce:

      filefactory.com/file/aa6351/

      Der Submit button ist etwas tiefer gerutscht, sollte jetzt wieder gehen. Schau dir mal den sourcecode an, AutoIt ist relativ easy zu erlernen, da kannst du so kleine Änderungen auch leicht selber machen.

      kimba: gehen tut das schon, wenn man ein bischen programmieren kann, ist der Aufwand nicht so gross. Wenn nicht, ist es wohl viel Aufwand. Sehr kurzfristige Boxoptions sind allerdings nicht sehr vorteilhaft (Quelle: Richard Olson).
      Purri,

      du hast das FXTradePad selber geproggt, so hab ich das verstanden!? Könnte man das auch für die BoxOptions machen?
      ZB. um Straddles etc... schneller zu öffnen? :)
      - Geht das technisch?
      - wie hoch wäre der Aufwand ca.?
      Wie Samen, die unter der Schneedecke träumen, träumen eure Herzen vom Frühling. Vertraut diesen Träumen, denn in ihnen verbirgt sich das Tor zur Unendlichkeit. Khalil Gibran