Profitability Mining is mining whatever crypto-coin is most profitable at any given time based on how much it is worth in Bitcoins. This is not a new concept and has been in practice since the first alt-coin appeared. I did not come up with the idea, I just made it easier to do in CGWatcher. I realize Profitability Mining may not be the best name for it, as even mining one coin is done in hopes of being profitable. But I have to refer to it as something other than "switching coins often based on current profitability at the time of the switch".
CGWatcher 1.2.0 introduces profitability mining, the second most requested feature behind CGRemote (coming soon). This post will explain how this works, and how the Scheduled Actions used to control profitability mining work.
Scheduled ActionsThe previous scheduling feature in CGWatcher provided a basic "start miner" and "stop miner" option, and meant that the scheduled mining would have to occur on the set days at the set times every week. I didn't want to just duplicate this feature a few times, and instead wanted to allow for unlimited control of scheduling the miner to perform a variety of actions. I think the Scheduled Actions (similar to Window's Scheduled Tasks but named differently to avoid confusion) provide that and allow for additional actions to be easily added in the future. They allow you to fine-tune what your miner does and when it does it, down to the exact.
The Scheduled Actions you create are displayed in the Schedule tab. They are sorted to display all enabled actions first, in chronological order of when they will next run. Disabled actions are displayed last.
Each action has an enable/disable checkbox, Edit button, and Delete button. Click Add Scheduled Action... to create a new action. The actions available at introduction are:
- Start Mining
- Stop Mining
- Restart Mining
- Restart Computer
- Change Intensity
- Switch Profile
When creating a scheduled action, think of creating a sentence instructing CGWatcher of what you want it to do. As you select one option, other available options may be changed or filtered.
After the action drop-down, the next field is the "value". For the Change Intensity action, this is the intensity you want to change to. For the Switch Profile action, a drop-down list of your profiles allows you to select which profile to switch to. There are some additional options at the bottom of this list related to profitability, which I'll go into more below.
The next option in the "sentence" you're creating is the frequency drop-down list. You can choose to have the action run daily, on a specific day, weekdays, or weekends. Using any of these options will lastly display a time option at which to start the action. The frequency drop-down also contains an Every... option, that when used changes the time option to a textbox where you can enter a number of hours at which to trigger the action. You can use a decimal if you wish to run the action at less-than-one-hour intervals.
You can create scheduled actions that run at the exact same time, but if you want to ensure one runs before another you should add at least one second to the one you want to run last because they are ran in order of the time you set. If you schedule a Start Mining action to run at 3:00:00 PM and a Change Intensity action to run at 3:00:01 PM, the Change Intensity action will run once the Start Mining action has completed (which takes more than one second), so you do not have to worry about timing actions depending on what they do.
When using
Every... N hour(s) actions, the timer for each of these actions begins when CGWatcher is started. So creating an action to run every 4 hours would run first 4 hours after CGWatcher was started. Then it will run 4 hours after that, and so on. However, if you either edit an action or enable a disabled action, the timer's start time for it is reset.
If you move your mouse over a scheduled action in the Schedule tab, a tooltip will display the next time that action is set to run. (This only applies to enabled actions.)
Profitability MiningSo when using CGWatcher, profitability mining is using scheduled actions to automatically switch to mine the most profitable coin that you've setup to mine. It works by checking the current profitability of the various crypto-coins, and then switching to the profile with the most profitable coin. This means that you'll want to create a separate profile for each coin that you mine, and assign a coin to each profile in Profile Manager. If you do not assign a coin to a profile, the profile is ignored when determining which profile is most profitable.
The Profile Manager now includes a drop-down list to select the coin to associate to that profile. The coin data is collected from
http://www.coinchoose.com, so new coins added to the website will become available in CGWatcher after the coin data is refreshed. CGWatcher also uses the data from coinchoose to determine profile profitability.
You'll need to assign a coin to at least two profiles in order for profitability mining to work. Otherwise if you did not assign a coin to any profiles, it would be unable to determine which is most profitable; and if you assign a coin to only one profile, that profile would always be the most profitable because there is nothing else to compare it to.
You can check profitability at any time by clicking an Other Tools... button and then selecting Profitability from the menu. There is also a Profitability button in the Settings tab. These open the Coin Profitability window, which displays current profitability data from coinchoose, along with some other information about each coin like hashing algorithm, difficulty, network hashrate, best price, and which exchange is currently offering the best price.
In the Coin Profitability window, you can sort columns by clicking on the column header cell once to sort ascending, then again to sort descending.
There are three columns relating to the coin profitability. The first, "Profitability", is the current profitability compared to Bitcoin. If profitability is 200%, mining that coin will earn you twice as many Bitcoins as mining Bitcoin itself. Obviously this value can change at any time, and you would need to convert the mined coins to Bitcoin immediately in order to preserve this increase. If you hold the coin and decide to convert to Bitcoins the next day when the coin's profitability is only at 50%, you've now lost the additional coins you made by profitability mining. Likewise, there is the possibility that holding the coins allows you to convert when the profitability is even higher, so it is a gamble. Yes, there are miners who are not interested in converting everything to Bitcoin. But that is an essential part of profitability mining, since all profitability is based on Bitcoin.
The second column is "Adjusted Profitability". This value has been adjusted for stales and is intended to give a more accurate estimate of profitability.
The third column is "Average Profitability", which is based on a 7-day average. This is useful if you are looking to mine something more continuously instead of jumping on whatever happens to be most profitable every couple hours.
So back in the Scheduled Action window, you'll see that if you select the Switch Profile action, there are three profitability options in the profiles drop-down list matching the three columns: {Most profitable}, {Most profitable - adjusted}, and {Most profitable - average}. Selecting one of these tells CGWatcher which profitability value you want it to use when determining which profile of yours is most profitable before switching to that profile.
By default, CGWatcher updates coin profitability data every 15 minutes. You can change this by editing the CoinRefreshInterval value in the [CGWatcher] section of the INI file. The minimum value is 5 minutes, and the maximum is 1380 (or 23 hours). When a scheduled action is triggered that switches profiles to most profitable, CGWatcher checks if the coin data has been refreshed in the past 15 minutes and if it hasn't, it attempts to refresh it to ensure it is selecting the current most profitable. If that refresh should fail and CGWatcher finds that the coin profitability data has not been updated in the past 24 hours, it cancels the action (which is why the maximum refresh interval is 23 hours.)
Some example scheduled actions:
[Switch Profile] to [{Most Profitable}] [Every...] [8] hour(s)
[Switch Profile] to [{Most Profitable - adjusted}] [Weekdays] at [8:00:00 AM]
[Switch Profile] to [{Most Profitable - average}] [Daily] at [5:00:00 PM]
[Start Mining] [] [Weekdays] at [10:00:00 PM]
[Stop Mining] [] [Daily] at [4:00:00 PM]
[Restart Mining] [] [Daily] at [12:00:00 PM]
[Restart Computer] [] [Monday] at [4:00:00 AM]
[Change Intensity] to [12] [Daily] at [8:00:00 AM]
Things to Think AboutI'm not suggesting you should or shouldn't mine based on profitability. I've provided the tools to do it because it has been one of the most requested features. There are some things you should keep in mind when deciding whether profitability mining is right for you:
- Pool types: if you use PPLNS-type pools, switching pools often because of profitability changes could have a small negative effect on your earnings because these type of pools reward for consistent mining and try to penalize pool-hoppers, which is essentially what you are doing if you are constantly switching pools based on profitability. Therefore you should try to use PPS-type pools if you plan on switching profiles often.
- If everyone is switching with you, the coin may not stay most profitable for long. I don't expect this to be a big problem because CGWatcher probably doesn't have enough users to make a big impact on sending a bunch of miners to the same coin at the same time. As of this post, CGWatcher has over 2,500 (est) users (in over 65 countries! maybe translations are in order) and averages 100+ downloads per day, so there is the chance it has an effect in the future. But this assumes that all users are mining all coins. If Bob is only mining Bitcoin and Litecoin, his most profitable coin might be Litecoin even though DigitalCoin is most profitable. Tom has a DigitalCoin profile so when DigitalCoin is most profitable, profitability mining would switch him to DigitalCoin but Bob will still be back on Litecoin. Then you have to consider that how often you switch profiles based on profitability depends on how you setup your scheduled actions, so while Tom might switch every few hours, Bob might only switch once per week. So these lessen the odds of sending a wave of miners to the same coin at the same time.
- As I mentioned earlier, CGWatcher uses profitability values based on Bitcoin. So if you don't convert your more profitable coins to Bitcoin while they are still more profitable, you risk losing any gains you made by mining the more profitable coin.
- Because of these things, there is no guarantee that profitability mining will actually be more profitable. It depends a lot on how you set up your pools and when and if you convert your mined coins to Bitcoin. CGWatcher makes it much easier to do, but there is still work before and after coins are mined that CGWatcher cannot do for you.
- This is a new feature, so if you experience any problems with actions not running when they are supposed to, please let me know. I did quite a bit of testing, but there are always bugs that won't be found until it is released to users, especially with the wide range of setups miners use.
- I will probably add this ability to CGRemote for non-Windows users by adding and switching pools via the API, but it is too early to say for sure. It may be limited to coins of the same algorithm since CGRemote will not have the same abilities as CGWatcher does if running on a remote computer. I'll have more info on this in the future as CGRemote progresses.
- Only you can determine if profitability mining is a wise strategy for you. I am not suggesting it is or isn't. I take no responsibility for any losses, we all know how volatile prices can be. Likewise, I take no credit for gains... though you are still more than welcome to donate.
If you're not already using CGWatcher, you can find more info and download here:
http://manotechnology.blogspot.com/p/cgwatcher.html