ish_manager 0.1.8.450 → 0.1.8.451
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/ish_manager/iro.js +54 -39
- data/app/assets/javascripts/ish_manager/iro0.js +68 -0
- data/app/assets/stylesheets/ish_manager/application.scss +1 -0
- data/app/assets/stylesheets/ish_manager/iro.scss +39 -9
- data/app/assets/stylesheets/ish_manager/iro1.scss +117 -0
- data/app/controllers/ish_manager/iro_option_gets_controller.rb +127 -0
- data/app/controllers/ish_manager/iro_positions_controller.rb +0 -9
- data/app/controllers/ish_manager/iro_purses_controller.rb +46 -4
- data/app/controllers/ish_manager/iro_watches_controller.rb +1 -0
- data/app/views/ish_manager/application/_main_header_admin.haml +2 -2
- data/app/views/ish_manager/email_templates/_acknowledgement_of_document_receipt.html.erb +23 -0
- data/app/views/ish_manager/email_templates/_marketing_ror_3.html.erb +25 -0
- data/app/views/ish_manager/email_templates/_marketing_ror_4.html.erb +25 -0
- data/app/views/ish_manager/email_templates/_marketing_ror_5.html.erb +17 -0
- data/app/views/ish_manager/email_templates/_rec_resume_shared_with_you.html.erb +39 -0
- data/app/views/ish_manager/email_templates/_support_ticket_created.html.erb +26 -0
- data/app/views/ish_manager/iro_option_gets/_form.haml +10 -0
- data/app/views/ish_manager/iro_positions/_form.haml +73 -37
- data/app/views/ish_manager/iro_purses/_form.haml +3 -0
- data/app/views/ish_manager/iro_purses/_header.haml +37 -0
- data/app/views/ish_manager/iro_purses/_show.haml +99 -0
- data/app/views/ish_manager/iro_purses/_show_gameui_0.haml +62 -0
- data/app/views/ish_manager/iro_purses/_show_gameui_1.haml +78 -0
- data/app/views/ish_manager/iro_purses/show.haml +3 -114
- data/app/views/ish_manager/iro_purses/show_gameui.haml +4 -163
- data/app/views/ish_manager/iro_watches/index.haml +10 -1
- data/app/views/ish_manager/iro_watches/max_pain.haml +21 -0
- data/config/routes.rb +8 -3
- metadata +17 -2
@@ -0,0 +1,25 @@
|
|
1
|
+
Subject: Unleash the Power of Ruby on Rails for Your Web Development [Email 1 of 3]
|
2
|
+
|
3
|
+
Dear [Recipient's Name],
|
4
|
+
|
5
|
+
Are you ready to revolutionize your web development? Look no further than our Ruby on Rails expertise! With its unmatched speed, scalability, and security, Ruby on Rails is the ultimate framework for building high-performance web applications.
|
6
|
+
|
7
|
+
Why choose Ruby on Rails?
|
8
|
+
|
9
|
+
Speedy Development: Time is money, and Ruby on Rails helps you save both! Its streamlined development process allows us to deliver projects at lightning speed without compromising quality. Get your application up and running in record time.
|
10
|
+
|
11
|
+
Scalability on Demand: Whether you're a startup with big ambitions or an established enterprise aiming to expand, Ruby on Rails has your back. Its scalable architecture ensures your application grows seamlessly as your business flourishes.
|
12
|
+
|
13
|
+
Robust Security: Protecting your data and users is paramount. Ruby on Rails comes with built-in security features, and our expert team implements best practices to safeguard your application against potential threats. Rest easy knowing your application is safe.
|
14
|
+
|
15
|
+
Take a peek at some of our successful Ruby on Rails projects:
|
16
|
+
|
17
|
+
[Include a visually appealing picture showcasing a previous Ruby on Rails project]
|
18
|
+
|
19
|
+
Ready to experience the power of Ruby on Rails? Stay tuned for our next email, where we'll delve deeper into its user-friendly interface and unrivaled performance.
|
20
|
+
|
21
|
+
Best regards,
|
22
|
+
|
23
|
+
[Your Name]
|
24
|
+
[Your Company Name]
|
25
|
+
[Your Contact Information]
|
@@ -0,0 +1,25 @@
|
|
1
|
+
Subject: Ruby on Rails: A User-Friendly Interface [Email 2 of 3]
|
2
|
+
|
3
|
+
Dear [Recipient's Name],
|
4
|
+
|
5
|
+
Welcome back to our Ruby on Rails campaign! Today, we're excited to share how Ruby on Rails can provide your users with a seamless and delightful web experience.
|
6
|
+
|
7
|
+
With Ruby on Rails, we create stunning and intuitive user interfaces that captivate your audience from the moment they land on your site. We understand that a visually appealing and user-friendly interface is essential for engagement and retention. That's why we ensure every aspect of your application is optimized for an exceptional user experience.
|
8
|
+
|
9
|
+
Why choose Ruby on Rails for a user-friendly interface?
|
10
|
+
|
11
|
+
Engaging Design: Our team of skilled designers combines aesthetics and functionality to craft captivating interfaces. From eye-catching visuals to smooth navigation, we create an interface that captivates your users and keeps them coming back for more.
|
12
|
+
|
13
|
+
Intuitive Interaction: We believe in simplicity. With Ruby on Rails, we develop applications that are intuitive and easy to use. Users will love the seamless interaction and effortless navigation, resulting in increased engagement and customer satisfaction.
|
14
|
+
|
15
|
+
Experience the power of Ruby on Rails for yourself:
|
16
|
+
|
17
|
+
[Include a visually appealing picture showcasing another previous Ruby on Rails project]
|
18
|
+
|
19
|
+
Stay tuned for our final email, where we'll reveal how Ruby on Rails ensures scalability and security for your web application.
|
20
|
+
|
21
|
+
Best regards,
|
22
|
+
|
23
|
+
[Your Name]
|
24
|
+
[Your Company Name]
|
25
|
+
[Your Contact Information]
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Subject: Ruby on Rails: Scalability and Security [Email 3 of 3]
|
2
|
+
|
3
|
+
Dear [Recipient's Name],
|
4
|
+
|
5
|
+
Congratulations on reaching the final email of our Ruby on Rails campaign! In this email, we'll showcase how Ruby on Rails ensures scalability and security for your web application.
|
6
|
+
|
7
|
+
Scalability:
|
8
|
+
|
9
|
+
As your business grows, your web application needs to keep up. Ruby on Rails excels in scalability, allowing your application to evolve effortlessly. We build a solid foundation that accommodates your future growth plans, ensuring your application scales with ease.
|
10
|
+
|
11
|
+
Security:
|
12
|
+
|
13
|
+
Protecting your data and maintaining a secure web application is of utmost importance. Ruby on Rails comes equipped with built-in security features and a robust ecosystem that follows best practices. Our team implements stringent security measures to safeguard your application from potential threats, giving you peace of mind.
|
14
|
+
|
15
|
+
Here's a glimpse of the scalability and security Ruby on Rails offers:
|
16
|
+
|
17
|
+
[Include a visually appealing picture showcasing a
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
<table width="100%" style="width: 100%;" border="0" cellspacing="0" cellpadding="0"
|
3
|
+
>
|
4
|
+
<tr>
|
5
|
+
<td align="center" >
|
6
|
+
|
7
|
+
<center><table border="0" cellspacing="0" cellpadding="0"
|
8
|
+
width="560" style="width: 560px; max-width: 560px; border: 0;"><tr><td>
|
9
|
+
|
10
|
+
<p>Hi <%= @lead&.name %>,</p>
|
11
|
+
|
12
|
+
<p>The resume of a software development professional is shared with you. This outstanding software engineer possesses a combination of technical expertise, problem-solving abilities, and a strong commitment to quality. Here is a description of their profile:</p>
|
13
|
+
|
14
|
+
<p>They possess a combination of technical expertise, problem-solving abilities, and a strong commitment to quality. </p>
|
15
|
+
|
16
|
+
<ul>
|
17
|
+
<li>Technical Skills: they have a deep understanding of various programming languages, frameworks, and tools. They are proficient in multiple languages such as Java, C++, Python, or JavaScript, and have expertise in software development methodologies, database management, data structures, algorithms, and system architecture.</li>
|
18
|
+
|
19
|
+
<li>Problem Solving: Outstanding software engineers excel in problem-solving. They can analyze complex issues, break them down into smaller manageable parts, and devise effective solutions. They possess a logical and analytical mindset, allowing them to identify patterns, anticipate potential problems, and come up with innovative approaches to tackle challenges efficiently.</li>
|
20
|
+
|
21
|
+
<li>Continuous Learning: The field of software engineering is constantly evolving, and exceptional engineers are committed to continuous learning. They stay updated with the latest industry trends, emerging technologies, and best practices. They actively seek out opportunities to enhance their skills and expand their knowledge base to remain at the forefront of their field.</li>
|
22
|
+
|
23
|
+
<li>Collaboration and Communication: this software engineer is an effective team player. They collaborate well with cross-functional teams, including product managers, designers, and fellow developers. They actively participate in discussions, share their ideas, and listen to others' perspectives. They can communicate complex technical concepts in a clear and concise manner, both verbally and in written form.</li>
|
24
|
+
|
25
|
+
</ul>
|
26
|
+
|
27
|
+
<p>To access the candidate's resume, <a href="https://wasya.co/pudeyev-resume?#{@utm_tracking_str}" target="_blank" >follow this link!</a></p>
|
28
|
+
|
29
|
+
<p>You may also respond to this email if you have any questions.</p>
|
30
|
+
|
31
|
+
<p>Sincerely,<br />
|
32
|
+
--<br />
|
33
|
+
WasyaCo RRT<br />
|
34
|
+
<br /><br /><br />
|
35
|
+
</p>
|
36
|
+
|
37
|
+
</td></tr></table></center>
|
38
|
+
|
39
|
+
</td></tr></table>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Subject: Acknowledgement of Support Ticket Receipt
|
2
|
+
|
3
|
+
Dear [Customer's Name],
|
4
|
+
|
5
|
+
Thank you for reaching out to our software consultancy regarding your support request. This email serves as an acknowledgment that we have received your support ticket, and we appreciate the opportunity to assist you.
|
6
|
+
|
7
|
+
At [Company Name], we understand the importance of timely and efficient support, and we are committed to resolving your issue as quickly as possible. Our team of experts is currently reviewing your request and will begin investigating the matter shortly.
|
8
|
+
|
9
|
+
Please rest assured that your support ticket has been assigned a unique reference number [#TicketNumber], which will help us track and monitor the progress of your case. You can use this reference number for any future communication regarding this issue.
|
10
|
+
|
11
|
+
Our goal is to provide you with the best possible solution, and we will keep you informed throughout the entire process. We aim to respond to your request within [Service Level Agreement (SLA) timeframe], depending on the priority level assigned to your ticket.
|
12
|
+
|
13
|
+
In the meantime, if you have any additional information, screenshots, or details that may assist us in understanding and resolving your issue more effectively, please feel free to provide them. You can reply directly to this email, and our support team will be notified immediately.
|
14
|
+
|
15
|
+
We understand that technical issues can be disruptive, and we appreciate your patience as we work towards a resolution. Rest assured that we are committed to delivering high-quality support and ensuring your satisfaction.
|
16
|
+
|
17
|
+
If you have any urgent concerns or need immediate assistance, please do not hesitate to contact our support hotline at [Phone Number]. Our support agents are available [Working Hours] and will be happy to assist you.
|
18
|
+
|
19
|
+
Thank you once again for choosing [Company Name]. We value your business and will do our best to address your support request promptly. We will reach out to you soon with an update or resolution.
|
20
|
+
|
21
|
+
Best regards,
|
22
|
+
|
23
|
+
[Your Name]
|
24
|
+
[Your Position]
|
25
|
+
[Company Name]
|
26
|
+
[Contact Information]
|
@@ -0,0 +1,10 @@
|
|
1
|
+
|
2
|
+
- url = item.new_record? ? iro_option_gets_path : iro_option_get_path( item )
|
3
|
+
.iro-option-gets--form
|
4
|
+
= form_for item, url: url, as: :iro_option_get do |f|
|
5
|
+
.flex-row
|
6
|
+
.form-group
|
7
|
+
= f.text_field :ticker
|
8
|
+
|
9
|
+
.form-group
|
10
|
+
= f.submit ">", :class => %w(btn blue)
|
@@ -5,40 +5,76 @@
|
|
5
5
|
= form_for position, as: :iro_position, url: url do |f|
|
6
6
|
- if params[:iro_purse_id]
|
7
7
|
= hidden_field_tag 'iro_position[iro_purse_id]', params[:iro_purse_id]
|
8
|
-
|
9
|
-
|
10
|
-
.
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
.
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
.
|
37
|
-
|
38
|
-
|
39
|
-
.
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
.
|
44
|
-
|
8
|
+
|
9
|
+
.actions
|
10
|
+
= f.submit 'Submit'
|
11
|
+
|
12
|
+
.field Position ##{position.id}
|
13
|
+
%hr
|
14
|
+
|
15
|
+
.field
|
16
|
+
= f.label :strategy
|
17
|
+
= f.select :iro_strategy_id, options_for_select( Iro::CoveredCallStrategy.list, selected: position.iro_strategy_id ), {}, class: 'select2'
|
18
|
+
.field
|
19
|
+
= f.label :ticker
|
20
|
+
= f.text_field :ticker
|
21
|
+
|
22
|
+
.field
|
23
|
+
= f.label :strike
|
24
|
+
= f.number_field :strike, step: 0.01
|
25
|
+
|
26
|
+
.field
|
27
|
+
= f.label :expires_on
|
28
|
+
= f.text_field :expires_on
|
29
|
+
|
30
|
+
.field
|
31
|
+
= f.label :quantity
|
32
|
+
= f.number_field :quantity
|
33
|
+
|
34
|
+
.field
|
35
|
+
= f.label :status
|
36
|
+
= f.select :status, options_for_select( Iro::Position.statuses_list, selected: position.status ), {}, class: 'select2'
|
37
|
+
|
38
|
+
.field
|
39
|
+
= f.label :opened_price
|
40
|
+
= f.text_field :opened_price
|
41
|
+
.field
|
42
|
+
= f.label :opened_on
|
43
|
+
= f.text_field :opened_on
|
44
|
+
.field
|
45
|
+
= f.label :opened_delta
|
46
|
+
= f.number_field :opened_delta, step: 0.01
|
47
|
+
|
48
|
+
%hr
|
49
|
+
.field
|
50
|
+
= f.label :reckless_defense_quantity
|
51
|
+
= f.number_field :reckless_defense_quantity
|
52
|
+
.field
|
53
|
+
= f.label :reckless_defense_long_strike
|
54
|
+
= f.number_field :reckless_defense_long_strike, step: 0.5
|
55
|
+
.field
|
56
|
+
= f.label :reckless_defense_long_opened_price
|
57
|
+
= f.number_field :reckless_defense_long_opened_price, step: 0.001
|
58
|
+
.field
|
59
|
+
= f.label :reckless_defense_long_current_price
|
60
|
+
= f.number_field :reckless_defense_long_current_price, step: 0.001
|
61
|
+
.field
|
62
|
+
= f.label :reckless_defense_long_opened_delta
|
63
|
+
= f.number_field :reckless_defense_long_opened_delta, step: 0.001
|
64
|
+
|
65
|
+
.field
|
66
|
+
= f.label :reckless_defense_short_strike
|
67
|
+
= f.number_field :reckless_defense_short_strike, step: 0.5
|
68
|
+
.field
|
69
|
+
= f.label :reckless_defense_short_opened_price
|
70
|
+
= f.number_field :reckless_defense_short_opened_price, step: 0.001
|
71
|
+
.field
|
72
|
+
= f.label :reckless_defense_short_current_price
|
73
|
+
= f.number_field :reckless_defense_short_current_price, step: 0.001
|
74
|
+
.field
|
75
|
+
= f.label :reckless_defense_short_opened_delta
|
76
|
+
= f.number_field :reckless_defense_short_opened_delta, step: 0.001
|
77
|
+
|
78
|
+
|
79
|
+
.actions
|
80
|
+
= f.submit 'Submit'
|
@@ -0,0 +1,37 @@
|
|
1
|
+
|
2
|
+
.iro-purses--title
|
3
|
+
.max-width
|
4
|
+
.header
|
5
|
+
%h4.title
|
6
|
+
Purse ##{@purse.id}.
|
7
|
+
#{link_to '[~]', edit_iro_purse_path(@purse)}
|
8
|
+
#{link_to '[show]', iro_purse_path(@purse)}
|
9
|
+
#{link_to '[show_gameui]', iro_purse_path({ id: @purse.id, kind: 'show_gameui' }) }
|
10
|
+
Value: $#{@purse.current_value}
|
11
|
+
|
12
|
+
|
13
|
+
%h5.collapse-expand#iroPurseConfig
|
14
|
+
Config
|
15
|
+
.config
|
16
|
+
= render 'form', iro_purse: @purse
|
17
|
+
.c
|
18
|
+
|
19
|
+
.padded
|
20
|
+
%h5.collapse-expand#iroStrategies
|
21
|
+
Strategies (#{@strategies.length})
|
22
|
+
= link_to '[+]', new_iro_strategy_path({ iro_purse_id: @purse.id })
|
23
|
+
.iro-strategies.items
|
24
|
+
- @strategies.each do |strat|
|
25
|
+
.iro-strategy.item= render 'ish_manager/iro_strategies/form', strategy: strat
|
26
|
+
.c
|
27
|
+
|
28
|
+
.iro-position-statuses-selector
|
29
|
+
= form_tag( {}, { method: :get } ) do
|
30
|
+
- if !params[:statuses]
|
31
|
+
- params[:statuses] = ::Iro::Position::STATUSES
|
32
|
+
- ::Iro::Position::STATUSES.each do |status|
|
33
|
+
.field
|
34
|
+
%label= status
|
35
|
+
= check_box_tag "statuses[]", status, params[:statuses].include?( status )
|
36
|
+
= submit_tag 'Submit'
|
37
|
+
|
@@ -0,0 +1,99 @@
|
|
1
|
+
|
2
|
+
.iro-purses--show
|
3
|
+
|
4
|
+
%h5.collapse-expand#positions
|
5
|
+
Positions (#{@positions.length})
|
6
|
+
= link_to '[+]', new_iro_position_path({ iro_purse_id: @purse.id })
|
7
|
+
.positions
|
8
|
+
%table.bordered
|
9
|
+
%thead
|
10
|
+
%tr
|
11
|
+
%td
|
12
|
+
.id id
|
13
|
+
%td
|
14
|
+
.strategy Strategy
|
15
|
+
%td
|
16
|
+
.ticker Ticker
|
17
|
+
%td
|
18
|
+
.type Kind/Type
|
19
|
+
%td
|
20
|
+
.strike Strike
|
21
|
+
%td
|
22
|
+
.expires_on ExpiresOn
|
23
|
+
%td
|
24
|
+
.days-left Days Left
|
25
|
+
%td
|
26
|
+
.q Q
|
27
|
+
%td
|
28
|
+
.begin-on Begin On
|
29
|
+
%td
|
30
|
+
.price Price
|
31
|
+
%td
|
32
|
+
.to-open To Open
|
33
|
+
%td
|
34
|
+
.begin-delta #{"\u0394"}
|
35
|
+
%td
|
36
|
+
.to-close Current $ <br />(To Close)
|
37
|
+
%td
|
38
|
+
.net Net
|
39
|
+
%td
|
40
|
+
.netp % Net
|
41
|
+
%td
|
42
|
+
.delta #{"\u0394"}
|
43
|
+
%td
|
44
|
+
.days-at-open Days@Open
|
45
|
+
%td
|
46
|
+
.must-roll Must roll?
|
47
|
+
%td
|
48
|
+
.should-roll Should roll?
|
49
|
+
%td
|
50
|
+
.next-symbol Next Symbol
|
51
|
+
%td
|
52
|
+
.next-delta Next Delta
|
53
|
+
%td
|
54
|
+
.next-outcome Next Outcome
|
55
|
+
%td
|
56
|
+
.status Status
|
57
|
+
%tbody
|
58
|
+
- @positions.each_with_index do |p, idx|
|
59
|
+
- if idx > 0 && @positions[idx-1][:expires_on] != p[:expires_on]
|
60
|
+
%tr
|
61
|
+
%td
|
62
|
+
%hr
|
63
|
+
%tr
|
64
|
+
%td.id
|
65
|
+
= p.id
|
66
|
+
= link_to '[~]', edit_iro_position_path(p)
|
67
|
+
%td.strategy= link_to "##{p.strategy.id} #{p.strategy.slug}", edit_iro_strategy_path(p.strategy)
|
68
|
+
%td= p.ticker
|
69
|
+
%td= p.type == "Iro::CoveredCall" ? "CALL" : "other"
|
70
|
+
%td= p.strike
|
71
|
+
%td= p.expires_on.strftime('%b %d')
|
72
|
+
%td.days-left= (p.expires_on.to_date - Time.now.to_date).to_i
|
73
|
+
%td.q= p.quantity
|
74
|
+
%td.begin-on= pp_date p.opened_on
|
75
|
+
%td.price= p.opened_price
|
76
|
+
%td.to-open
|
77
|
+
- this_to_open = p.opened_price * 100 * p.quantity - 0.66 * p.quantity
|
78
|
+
= pp_amount( this_to_open )
|
79
|
+
%td.begin-delta= sprintf('%.2f', p.opened_delta ) rescue nil
|
80
|
+
%td.to-close
|
81
|
+
= p.current_price
|
82
|
+
%td.net
|
83
|
+
- this_net = ( p.opened_price - p.current_price ) * 100 * p.quantity - 0.65 * 2 * p.quantity
|
84
|
+
= pp_money( this_net )
|
85
|
+
%td.netp
|
86
|
+
= pp_percent( this_net / this_to_open )
|
87
|
+
%td= sprintf('%.2f', p.current_delta ) rescue nil
|
88
|
+
%td= (p.expires_on.to_date - p.opened_on).to_i
|
89
|
+
%td.must-roll= pp_bool p.must_roll?
|
90
|
+
%td.should-roll
|
91
|
+
.aC
|
92
|
+
.a= p.should_rollp ? p.should_rollp : '-'
|
93
|
+
.a= pp_bool p.should_roll?
|
94
|
+
%td.next-symbol= p.next_symbol
|
95
|
+
%td.next-delta= p.next_position[:delta]
|
96
|
+
%td.next-outcome= pp_money p.next_outcome
|
97
|
+
%td.status= p.status
|
98
|
+
|
99
|
+
|
@@ -0,0 +1,62 @@
|
|
1
|
+
|
2
|
+
.iro-purses-show-gameui.padded
|
3
|
+
= render 'header'
|
4
|
+
|
5
|
+
|
6
|
+
%h5.collapse-expand#gameuiPositions
|
7
|
+
Gameui Positions (#{@positions.length})
|
8
|
+
= link_to '[+]', new_iro_position_path({ iro_purse_id: @purse.id })
|
9
|
+
.gameui-positions
|
10
|
+
- @positions.each_with_index do |p, idx|
|
11
|
+
- if idx > 0 && p[:expires_on] != @positions[idx-1][:expires_on]
|
12
|
+
%hr
|
13
|
+
|
14
|
+
-# something like, $23 Apr-14
|
15
|
+
.gameuiW.show-amounts{ data: { cc: { strike: p.strike, startPrice: p.opened_price, currentPrice: p.current_price, cus: p.strategy.current_underlying_strike } } }
|
16
|
+
.gameui
|
17
|
+
.gameuiC
|
18
|
+
= link_to '[roll]', roll_iro_position_path(p)
|
19
|
+
|
20
|
+
.elephantW
|
21
|
+
.elephant
|
22
|
+
.elephantC
|
23
|
+
|
24
|
+
.amount
|
25
|
+
|
26
|
+
.q= p.quantity
|
27
|
+
|
28
|
+
.riderW
|
29
|
+
.rider
|
30
|
+
.riderC
|
31
|
+
|
32
|
+
.riderStart
|
33
|
+
.amount
|
34
|
+
.riderCurrent
|
35
|
+
.amount
|
36
|
+
|
37
|
+
.riderStart2
|
38
|
+
.amount
|
39
|
+
.riderCurrent2
|
40
|
+
.amount
|
41
|
+
|
42
|
+
|
43
|
+
.sunflowerW
|
44
|
+
.sunflower
|
45
|
+
.sunflowerC
|
46
|
+
|
47
|
+
.days-left= (p.expires_on.to_date - Time.now.to_date).to_i
|
48
|
+
|
49
|
+
.windW
|
50
|
+
.wind
|
51
|
+
.c-u-s= pp_currency p.strategy.current_underlying_strike
|
52
|
+
.windC
|
53
|
+
|
54
|
+
|
55
|
+
.spearW
|
56
|
+
.spear
|
57
|
+
.spearC
|
58
|
+
.spearStart
|
59
|
+
.spearCurrent
|
60
|
+
.c
|
61
|
+
|
62
|
+
= render 'show'
|
@@ -0,0 +1,78 @@
|
|
1
|
+
|
2
|
+
.show-gameui-1
|
3
|
+
%h5.collapse-expand#gameuiPositions
|
4
|
+
Gameui Positions (#{@positions.length})
|
5
|
+
= link_to '[+]', new_iro_position_path({ iro_purse_id: @purse.id })
|
6
|
+
|
7
|
+
.gameui-positions{ data: { cc: { |
|
8
|
+
dollarWidth: 100, |
|
9
|
+
origin: @positions[0].strike, |
|
10
|
+
cus: @current_underlying_strike, |
|
11
|
+
} } }
|
12
|
+
.gameuiCUSW
|
13
|
+
.gameuiCUS= pp_currency @positions[0].strategy.current_underlying_strike
|
14
|
+
|
15
|
+
- @positions.each_with_index do |p, idx|
|
16
|
+
- if idx > 0 && p[:expires_on] != @positions[idx-1][:expires_on]
|
17
|
+
.step
|
18
|
+
|
19
|
+
-# aka "lane"
|
20
|
+
.gameuiW.show-amounts
|
21
|
+
.gameui
|
22
|
+
.gameuiC
|
23
|
+
|
24
|
+
.windW
|
25
|
+
.wind
|
26
|
+
.windC
|
27
|
+
|
28
|
+
|
29
|
+
.elephantW{ data: { cc: { |
|
30
|
+
strike: p.strike, |
|
31
|
+
startPrice: p.opened_price, |
|
32
|
+
currentPrice: p.current_price, |
|
33
|
+
} } }
|
34
|
+
= link_to '[roll]', iro_roll_prep_path(p)
|
35
|
+
.amount
|
36
|
+
.strike= p.strike
|
37
|
+
.elephant
|
38
|
+
.elephantC
|
39
|
+
.q= p.quantity
|
40
|
+
|
41
|
+
- if p.reckless_defense_quantity.present?
|
42
|
+
.recklessDefenseW{ data: { cc: { |
|
43
|
+
longStrike: p.reckless_defense_long_strike, |
|
44
|
+
shortStrike: p.reckless_defense_short_strike, |
|
45
|
+
longOpenedPrice: p.reckless_defense_long_opened_price, |
|
46
|
+
longCurrentPrice: p.reckless_defense_long_current_price, |
|
47
|
+
shortOpenedPrice: p.reckless_defense_short_opened_price, |
|
48
|
+
shortCurrentPrice: p.reckless_defense_short_current_price, |
|
49
|
+
} } }
|
50
|
+
.recklessDefense
|
51
|
+
.recklessDefenseC
|
52
|
+
|
53
|
+
- if @next_positions.present?
|
54
|
+
.step
|
55
|
+
- @next_positions.each do |p|
|
56
|
+
-# aka "lane"
|
57
|
+
.gameuiW.show-amounts
|
58
|
+
.gameui
|
59
|
+
.gameuiC
|
60
|
+
|
61
|
+
.windW
|
62
|
+
.wind
|
63
|
+
.windC
|
64
|
+
|
65
|
+
.elephantW{ data: { cc: { |
|
66
|
+
strike: p.strike, |
|
67
|
+
startPrice: p.opened_price, |
|
68
|
+
currentPrice: p.current_price |
|
69
|
+
} } }
|
70
|
+
.amount= p.opened_price
|
71
|
+
.current_price= p.current_price
|
72
|
+
.strike= p.strike
|
73
|
+
.elephant
|
74
|
+
.elephantC
|
75
|
+
|
76
|
+
|
77
|
+
.c
|
78
|
+
|
@@ -1,116 +1,5 @@
|
|
1
1
|
|
2
|
-
.iro-purses-show
|
3
|
-
|
4
|
-
.header
|
5
|
-
%h4.title
|
6
|
-
Purse ##{@purse.id}.
|
7
|
-
#{link_to '[~]', edit_iro_purse_path(@purse)}
|
8
|
-
Value: $#{@purse.current_value}
|
9
|
-
|
10
|
-
%h5.collapse-expand#iroPurseConfig
|
11
|
-
Config
|
12
|
-
-# #{link_to '[~]', edit_iro_purse_path(@purse)}
|
13
|
-
.config
|
14
|
-
-# %pre= @purse.config
|
15
|
-
= render 'form', iro_purse: @purse
|
16
|
-
|
17
|
-
%h5.collapse-expand#strategies
|
18
|
-
Strategies (#{@strategies.length})
|
19
|
-
= link_to '[+]', new_iro_strategy_path({ iro_purse_id: @purse.id })
|
20
|
-
.strategies.items
|
21
|
-
- @strategies.each do |strat|
|
22
|
-
.strategy.item= render 'ish_manager/iro_strategies/form', strategy: strat
|
23
|
-
|
24
|
-
|
25
|
-
%h5.collapse-expand#positions
|
26
|
-
Positions (#{@positions.length})
|
27
|
-
= link_to '[+]', new_iro_position_path({ iro_purse_id: @purse.id })
|
28
|
-
.positions
|
29
|
-
%table.bordered
|
30
|
-
%thead
|
31
|
-
%tr
|
32
|
-
%td
|
33
|
-
.id id
|
34
|
-
%td
|
35
|
-
.strategy Strategy
|
36
|
-
%td
|
37
|
-
.ticker Ticker
|
38
|
-
%td
|
39
|
-
.type Kind/Type
|
40
|
-
%td
|
41
|
-
.strike Strike
|
42
|
-
%td
|
43
|
-
.expires_on ExpiresOn
|
44
|
-
%td
|
45
|
-
.days-left Days Left
|
46
|
-
%td
|
47
|
-
.q Q
|
48
|
-
%td
|
49
|
-
.begin-on Begin On
|
50
|
-
%td
|
51
|
-
.price Price
|
52
|
-
%td
|
53
|
-
.to-open To Open
|
54
|
-
%td
|
55
|
-
.begin-delta #{"\u0394"}
|
56
|
-
%td
|
57
|
-
.to-close Current $ <br />(To Close)
|
58
|
-
%td
|
59
|
-
.net Net
|
60
|
-
%td
|
61
|
-
.netp % Net
|
62
|
-
%td
|
63
|
-
.delta #{"\u0394"}
|
64
|
-
%td
|
65
|
-
.days-at-open Days@Open
|
66
|
-
%td
|
67
|
-
.must-roll Must roll?
|
68
|
-
%td
|
69
|
-
.should-roll Should roll?
|
70
|
-
%td
|
71
|
-
.next-symbol Next Symbol
|
72
|
-
%td
|
73
|
-
.next-delta Next Delta
|
74
|
-
%td
|
75
|
-
.next-outcome Next Outcome
|
76
|
-
%td
|
77
|
-
.state State
|
78
|
-
%tbody
|
79
|
-
- @positions.each do |p|
|
80
|
-
%tr
|
81
|
-
%td.id
|
82
|
-
= p.id
|
83
|
-
= link_to '[~]', edit_iro_position_path(p)
|
84
|
-
%td.strategy= link_to p.strategy, edit_iro_strategy_path(p.strategy)
|
85
|
-
%td= p.ticker
|
86
|
-
%td= p.type == "Iro::CoveredCall" ? "CALL" : "other"
|
87
|
-
%td= p.strike
|
88
|
-
%td= p.expires_on.strftime('%b %d')
|
89
|
-
%td.days-left= (p.expires_on.to_date - Time.now.to_date).to_i
|
90
|
-
%td.q= p.quantity
|
91
|
-
%td.begin-on= pp_date p.opened_on
|
92
|
-
%td.price= p.opened_price
|
93
|
-
%td.to-open
|
94
|
-
- this_to_open = p.opened_price * 100 * p.quantity - 0.66 * p.quantity
|
95
|
-
= pp_amount( this_to_open )
|
96
|
-
%td.begin-delta= sprintf('%.2f', p.opened_delta ) rescue nil
|
97
|
-
%td.to-close
|
98
|
-
= p.current_price
|
99
|
-
%td.net
|
100
|
-
- this_net = ( p.opened_price - p.current_price ) * 100 * p.quantity - 0.65 * 2 * p.quantity
|
101
|
-
= pp_money( this_net )
|
102
|
-
%td.netp
|
103
|
-
= pp_percent( this_net / this_to_open )
|
104
|
-
%td= sprintf('%.2f', p.current_delta ) rescue nil
|
105
|
-
%td= (p.expires_on.to_date - p.opened_on).to_i
|
106
|
-
%td.must-roll= pp_bool p.must_roll?
|
107
|
-
%td.should-roll
|
108
|
-
.aC
|
109
|
-
.a= p.should_rollp ? p.should_rollp : '-'
|
110
|
-
.a= pp_bool p.should_roll?
|
111
|
-
%td.next-symbol= p.next_symbol
|
112
|
-
%td.next-delta= p.next_position[:delta]
|
113
|
-
%td.next-outcome= pp_money p.next_outcome
|
114
|
-
%td.state= p.status
|
115
|
-
|
2
|
+
.iro-purses-show
|
3
|
+
= render 'header'
|
116
4
|
|
5
|
+
= render 'show'
|