Bitcoin Forum
September 28, 2025, 03:47:41 AM *
News: Latest Bitcoin Core release: 29.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 »
1  Bitcoin / Project Development / Re: [ANN] Easybot, an opensource c# trading tool on: January 08, 2014, 09:06:13 PM
Ok, I've prepared a Mono version and I've tested on Maverick. I'll release it in a week or two.
Unfortunately I had to strip the chart component which MS doesn't allow to use it on a different OS Sad
Can someone provide a good open source component for charting on Mono?
2  Economy / Service Discussion / Re: BTC-e removed from bitcoin charts USD on: December 15, 2013, 09:01:33 AM
Read the news page here: http://bitcoincharts.com/news/

Quote
btc-e API broken, please contact by email

Dec. 10, 2013, 10:23 p.m.

I need to talk to an btc-e admin ASAP. Please contact me by email. I tried support@btc-e.com but I only got a link to http://hdbtce.kayako.com and that form requires a customer ID which I do not have.
3  Bitcoin / Project Development / Re: [ANN] Easybot, an opensource c# trading tool on: December 07, 2013, 11:34:12 PM
investigating Encog and Neural Networks... I really hope to be able to integrate it...
4  Bitcoin / Project Development / Re: [ANN] Easybot, an opensource c# trading tool on: December 02, 2013, 04:55:57 PM
Actually is on the makin' but I have to admit I'm quite slow programming in XCode. I'll check if the actual one can run on Mono and I'll update this thread.
5  Bitcoin / Project Development / [ANN] Easybot, an opensource c# trading tool on: December 02, 2013, 04:27:23 PM
Easybot (open source)

Easybot is a trading tool able to load, save and draw candles from various sources. At today it supports fetching trades from Bitcoincharts.com and Btce.com as well as loading previous calculated candles from CSV files. Additionally I've added the possibility to backtest an EMA crossing strategy and the possibility to search for best EMAs combination.

The github repo is here: https://github.com/codingdna2/easybot

This software was mainly inspired by this two projects:

Gekko Trading Bot available at https://github.com/askmike/gekko
tAPIbot available at https://github.com/nomorecoin/tAPIbot

While I was trying to understand some issues with this softwares, I found myself in need of some visual aid. While it's functional to understand some aspects of trading bots, the source code is quite messy as it was written in a few days.



Source Code

Easybot was developed using C# and Visual Studio 2012. Project uses some external references including:

migrap/BitcoinCharts available here https://github.com/migrap/BitcoinCharts

DmT021/BtceApi available here https://github.com/DmT021/BtceApi

TA-Lib available here http://ta-lib.org/

Installation

Find the latest release from https://github.com/codingdna2/easybot/blob/master/release/EasyBot_v1.0.zip?raw=true.
Unzip the latest version wherever you prefer and run easybot.exe.

Setup

Please find configuration file named easybot.exe.conf in executable folder

Known issues
Not all pairs are supported. Due to the usage of BitcoinCharts, pairs availables on BTC-e but not on this one won't be working. I've successfully tested BTC/EUR, BTC/USD and BTC/RUR.

Donations

Donations are always welcome and really motivate developing Smiley

1GC8kcZp5ZVBm2bo96bUKEMkztU1rx5oy7
6  Economy / Trading Discussion / [ANN] Easybot, an opensource c# trading tool on: November 30, 2013, 04:30:14 PM
Easybot (open source)

Easybot is a trading tool able to load, save and draw candles from various sources. At today it supports fetching trades from Bitcoincharts.com and Btce.com as well as loading previous calculated candles from CSV files. Additionally I've added the possibility to backtest an EMA crossing strategy and the possibility to search for best EMAs combination.

The github repo is here: https://github.com/codingdna2/easybot

This software was mainly inspired by this two projects:

Gekko Trading Bot available at https://github.com/askmike/gekko
tAPIbot available at https://github.com/nomorecoin/tAPIbot

While I was trying to understand some issues with this softwares, I found myself in need of some visual aid. While it's functional to understand some aspects of trading bots, the source code is quite messy as it was written in a few days.



Source Code

Easybot was developed using C# and Visual Studio 2012. Project uses some external references including:

migrap/BitcoinCharts available here https://github.com/migrap/BitcoinCharts

DmT021/BtceApi available here https://github.com/DmT021/BtceApi

TA-Lib available here http://ta-lib.org/

Installation

Find the latest release from https://github.com/codingdna2/easybot/blob/master/release/EasyBot_v1.0.zip?raw=true.
Unzip the latest version wherever you prefer and run easybot.exe.

Setup

Please find configuration file named easybot.exe.conf in executable folder

Known issues
Not all pairs are supported. Due to the usage of BitcoinCharts, pairs availables on BTC-e but not on this one won't be working. I've successfully tested BTC/EUR, BTC/USD and BTC/RUR.

Donations

Donations are always welcome and really motivate developing Smiley

1GC8kcZp5ZVBm2bo96bUKEMkztU1rx5oy7
7  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] [XJO] Joulecoin | SHA256 | Quick transactions | Transaction comments on: November 29, 2013, 07:22:14 PM
Thanks, deleting the blockchain worked!  Smiley
8  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] [XJO] Joulecoin | SHA256 | Quick transactions | Transaction comments on: November 29, 2013, 02:02:13 PM
Yes, it's 89906

joulecoind getinfo
{
    "version" : 89906,
    "protocolversion" : 70001,
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "blocks" : 93697,
    "timeoffset" : -3,
    "connections" : 0,
    "proxy" : "",
    "difficulty" : 5.82701265,
    "testnet" : false,
    "keypoololdest" : 1382966634,
    "keypoolsize" : 102,
    "paytxfee" : 0.00000000,
    "errors" : ""
}
9  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] [XJO] Joulecoin | SHA256 | Quick transactions | Transaction comments on: November 29, 2013, 12:24:51 PM
Hi, thanks for your replies, but NO, I'm still out of luck.

I'm using Joulecoind in Linux (built from Github), but I'm noticing now it reports a different version:
Joulecoin version v0.8.2-228-g1818049-beta (2013-11-13 22:22:35 +0200)

Git pull reports: Already up-to-date.
Can this be the reason?

Here the error I'm getting:
Code:
received block 00000000001483aa23854688a4741d88b7ee9a26027a75f16e783321443285bb
ERROR: ProcessBlock() : block with too little proof-of-work
Misbehaving: 192.241.171.45:26789 (0 -> 100) DISCONNECTING

Following is my joulencoin.conf

Code:
# JSON-RPC options (for controlling a running Bitcoin/bitcoind process)
# server=1 tells Bitcoin to accept JSON-RPC commands.
server=1

# How many seconds bitcoin will wait for a complete RPC HTTP request.
# after the HTTP connection is established.
rpctimeout=30

# By default, only RPC connections from localhost are allowed. Specify
# as many rpcallowip= settings as you like to allow connections from
# other hosts (and you may use * as a wildcard character):
rpcallowip=192.168.1.*

# Listen for RPC connections on this TCP port:
rpcport=8349

listen=1
maxconnections=80

addnode=46.5.83.230:26789
addnode=192.241.136.114:26789
addnode=64.251.188.62:26789
addnode=144.76.166.163:26789
addnode=188.252.16.109:26789
addnode=37.228.213.52:26789
addnode=146.185.148.114:26789


I've updated to the latest version from github but I cannot sync anymore... I've tried to add IPs from page 7-8-9 with no luck. I've also tried to delete peers.dat but I'm stuck at about block 94000
Can anyone advise?
Thanks in advance

Are you still stuck? I just tested by resyncing a wallet from block 0 up to block 119340 using the latest source from github.

There might still be some wallets out there that's not on the latest version that's stuck on block 94000. Usually your wallet will ignore those peers after a while.

Try launching your wallet with -connect=192.241.171.45. Once you're synced you can launch normally again.

10  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] [XJO] Joulecoin | SHA256 | Quick transactions | Transaction comments on: November 28, 2013, 05:55:51 PM
I've updated to the latest version from github but I cannot sync anymore... I've tried to add IPs from page 7-8-9 with no luck. I've also tried to delete peers.dat but I'm stuck at about block 94000
Can anyone advise?
Thanks in advance
11  Economy / Trading Discussion / Re: tAPI-bot - Automated crossover trade platform for BTC-e on: October 11, 2013, 09:34:49 PM
If anyone is testing this with PPC_BTC, add the following in trader.py:

def getPip(self):
        '''provides correct minimum pip for orders, BTC-e specific'''
        pair = self.config.pair
        if 'ltc' in pair or 'nmc' in pair or 'ppc' in pair:
            return 0.00001
        else:
            return 0.001
12  Bitcoin / Development & Technical Discussion / [ANN] CGMiner Wordpress Widget on: September 27, 2013, 10:01:56 PM
Hi everybody, this is my small contribution to the community. Please be easy on me  Wink

Since I've installed my RPi driving four USB Erupters, I thought I needed a web interface for it. Looking at available projects, I didn't found anything I liked. So I decided to configure my own portal with Wordpress. This is the only first step in integrating CGMiner stats with it but I think is already usable (even if it's really simple).

This is the result (look at the bottom left):



This is the configuration panel visible from Wordpress Dashboard where you can configure IP and Port of your miner:


And this is the widget source code:

Code:
<?php
/**
 * Plugin Name: Miner Widget
 * Description: A widget that displays CGMiner stats
 * Version: 0.1
 * Author: dna2
 */

ini_set('display_errors''On');
add_action'widgets_init''register_miner_widget' );

function 
register_miner_widget() {
register_widget'MinerWidget' );
}

class 
MinerWidget extends WP_Widget {

function MinerWidget() {
$widget_ops = array( 'classname' => 'example''description' => __('A widget that displays statistics from CGMiner ''example') );
$control_ops = array( 'id_base' => 'miner-widget' );
$this->WP_Widget'miner-widget'__('Miner Widget''example'), $widget_ops$control_ops );
}

function widget$args$instance ) {
extract$args );

$title apply_filters('widget_title'$instance['title'] );
$ip $instance['ip'];
        
$port $instance['port'];
$show_info = isset( $instance['show_info'] ) ? $instance['show_info'] : false;

echo $before_widget;

if ( $title )
echo $before_title $title $after_title;

        
$data $this->requestMiner($ip$port'summary');
        
if ( $data )
        {
            
//printf( 'Version: ' . $data['STATUS']['Description'] . '<BR/>');
            
printf'Uptime: ' $this->formatTime($data['SUMMARY']['Elapsed']) . '<BR/>');
            
printf'MHS av: ' $this->formatNumber($data['SUMMARY']['MHS av']) . '<BR/>');
            
printf'Found Blocks: ' $data['SUMMARY']['Found Blocks'] . '<BR/>');
            
//printf( 'Getworks: ' . $this->formatNumber($data['SUMMARY']['Getworks']) . '<BR/>');
    printf'Accepted: ' $this->formatNumber($data['SUMMARY']['Accepted']) . '<BR/>' );
            
printf'Rejected: ' $this->formatNumber($data['SUMMARY']['Rejected']) . '<BR/>' );
            
printf'Hardware Errors: ' $this->formatNumber($data['SUMMARY']['Hardware Errors']) . '<BR/>' );
            
//printf( 'Utility: ' . $data['SUMMARY']['Utility'] . '<BR/>' );
            //printf( 'Discarded: ' . $this->formatNumber($data['SUMMARY']['Discarded']) . '<BR/>' );
            //printf( 'Stale: ' . $this->formatNumber($data['SUMMARY']['Stale']) . '<BR/>' );
            //printf( 'Get Failures: ' . $this->formatNumber($data['SUMMARY']['Get Failures']) . '<BR/>' );
            //printf( 'Local Work: ' . $this->formatNumber($data['SUMMARY']['Local Work']) . '<BR/>' );
            //printf( 'Remote Failures: ' . $this->formatNumber($data['SUMMARY']['Remote Failures']) . '<BR/>' );
            //printf( 'Network Blocks: ' . $this->formatNumber($data['SUMMARY']['Network Blocks']) . '<BR/>' );
            //printf( 'Total MH: ' . $this->formatNumber($data['SUMMARY']['Total MH']) . '<BR/>' );
            //printf( 'Work Utility: ' . $data['SUMMARY']['Work Utility'] . '<BR/>' );
            //printf( 'Diff. Accepted: ' . $data['SUMMARY']['Difficulty Accepted'] . '<BR/>' );
            //printf( 'Diff. Rejected: ' . $data['SUMMARY']['Difficulty Rejected'] . '<BR/>' );
            //printf( 'Diff. Stale: ' . $data['SUMMARY']['Difficulty Stale'] . '<BR/>' );
            
printf'Best Share: ' $this->formatNumber($data['SUMMARY']['Best Share']) . '<BR/>' );
        }

//if ( $show_info )
// printf( $ip );

echo $after_widget;
}
    
    private function 
requestMiner($ip$port$cmd)
    {
        try
        {
            
$socket $this->getsock($ip$port);
            if (
$socket != null)
            {
                
socket_write($socket$cmdstrlen($cmd));
                
$line $this->readsockline($socket);
                
socket_close($socket);
                
                if (
strlen($line) == 0)
                {
                    
//echo "WARN: '$cmd' returned nothing\n";
                    
return $line;
                }
                
                
//print "$cmd returned '$line'\n";
                
                
if (substr($line,0,1) == '{')
                    return 
json_decode($linetrue);
                
                
$data = array();
                
                
$objs explode('|'$line);
                foreach (
$objs as $obj)
                {
                    if (
strlen($obj) > 0)
                    {
                        
$items explode(','$obj);
                        
$item $items[0];
                        
$id explode('='$items[0], 2);
                        if (
count($id) == or !ctype_digit($id[1]))
                            
$name $id[0];
                        else
                            
$name $id[0].$id[1];
                        
                        if (
strlen($name) == 0)
                            
$name 'null';
                        
                        if (isset(
$data[$name]))
                        {
                            
$num 1;
                            while (isset(
$data[$name.$num]))
                                
$num++;
                            
$name .= $num;
                        }
                        
                        
$counter 0;
                        foreach (
$items as $item)
                        {
                            
$id explode('='$item2);
                            if (
count($id) == 2)
                                
$data[$name][$id[0]] = $id[1];
                            else
                            {
                                
$data[$name][$counter] = $id[0];
                            }
                            
                            
$counter++;
                        }
                    }
                }
                
                return 
$data;
            }
            
            return 
null;

        }
        catch (
Exception $e)
        {
            return 
$e->getMessage();
        }
    }
    
    private function 
getsock($addr$port)
    {
        
$socket null;
        
$socket socket_create(AF_INETSOCK_STREAMSOL_TCP);
        if (
$socket === false || $socket === null)
        {
            
$error socket_strerror(socket_last_error());
            
$msg "socket create(TCP) failed";
            echo 
"ERR: $msg '$error'\n";
            return 
null;
        }
        
        
$res socket_connect($socket$addr$port);
        if (
$res === false)
        {
            
$error socket_strerror(socket_last_error());
            
$msg "socket connect($addr,$port) failed";
            echo 
"ERR: $msg '$error'\n";
            
socket_close($socket);
            return 
null;
        }
        return 
$socket;
    }
    
    private function 
readsockline($socket)
    {
        
$line '';
        while (
true)
        {
            
$byte socket_read($socket1);
            if (
$byte === false || $byte === '')
                break;
            if (
$byte == "\0")
                break;
            
$line .= $byte;
        }
        return 
$line;
    }
    
    private function 
formatTime($value)
    {
        
$s $value 60;
        
$value -= $s;
        
$value /= 60;
        if (
$value == 0)
            
$ret $s.'s';
        else
        {
            
$m $value 60;
            
$value -= $m;
            
$value /= 60;
            if (
$value == 0)
                
$ret sprintf("%dm $b%02ds"$m$s);
            else
            {
                
$h $value 24;
                
$value -= $h;
                
$value /= 24;
                if (
$value == 0)
                    
$ret sprintf("%dh $b%02dm $b%02ds"$h$m$s);
                else
                {
                    if (
$value == 1)
                        
$days '';
                    else
                        
$days 's';
                    
                    
$ret sprintf("%dday$days$b%02dh $b%02dm $b%02ds"$value$h$m$s);
                }
            }
        }
        
        return 
$ret;
    }
    
    private function 
formatNumber($value)
    {
        
$parts explode('.'$value2);
        if (
count($parts) == 1)
            
$dec '';
        else
            
$dec '.'.$this->endzero($parts[1]);
        
$ret number_format((float)$parts[0]).$dec;
        return 
$ret;
    }
    
    private function 
endzero($num)
    {
        
$rep preg_replace('/0*$/'''$num);
        if (
$rep === '')
            
$rep '0';
        return 
$rep;
    }
    
function update$new_instance$old_instance ) {
$instance $old_instance;

$instance['title'] = strip_tags$new_instance['title'] );
$instance['ip'] = strip_tags$new_instance['ip'] );
        
$instance['port'] = strip_tags$new_instance['port'] );
$instance['show_info'] = $new_instance['show_info'];

return $instance;
}

function form$instance ) {

$defaults = array( 'title' => __('My Miner''example'), 'ip' => __('127.0.0.1''example'), 'port' => 4028'show_info' => true );
$instance wp_parse_args( (array) $instance$defaults );
    
?>


<p>
<label for="<?php echo $this->get_field_id'title' ); ?>"><?php _e('Title:''example'); ?></label>
<input id="<?php echo $this->get_field_id'title' ); ?>" name="<?php echo $this->get_field_name'title' ); ?>" value="<?php echo $instance['title']; ?>" style="width:100%;" />
</p>

<p>
<label for="<?php echo $this->get_field_id'ip' ); ?>"><?php _e('IP Address:''example'); ?></label>
<input id="<?php echo $this->get_field_id'ip' ); ?>" name="<?php echo $this->get_field_name'ip' ); ?>" value="<?php echo $instance['ip']; ?>" style="width:100%;" />
</p>

        <p>
            <label for="<?php echo $this->get_field_id'port' ); ?>"><?php _e('Port:''example'); ?></label>
            <input id="<?php echo $this->get_field_id'port' ); ?>" name="<?php echo $this->get_field_name'port' ); ?>" value="<?php echo $instance['port']; ?>" style="width:100%;" />
        </p>

<p>
<input class="checkbox" type="checkbox" <?php checked$instance['show_info'], true ); ?> id="<?php echo $this->get_field_id'show_info' ); ?>" name="<?php echo $this->get_field_name'show_info' ); ?>" />
<label for="<?php echo $this->get_field_id'show_info' ); ?>">
            <?php _e('Display info publicly?''example'); ?></label>
</p>

<?php
}
}

?>

Installation:
  • Copy & Paste source code into a new file MinerWidget.php
  • Place the file inside your WordPress installation folder under WORDPRESS_ROOT/wp-content/plugins/MinerWidget/
  • Enable the widget from wordpress Plugins page, available in Dashboard
  • Place and configure the widget from the widget page wherever you want

Enjoy it  Smiley
13  Bitcoin / Development & Technical Discussion / Collect CGMiner data on: September 26, 2013, 10:05:48 AM
Hi everybody,

I'm a developer and I would like to collect data coming out from CGMiner to a database (mysql or sqlite). I've been reading I can (maybe) do that running a php script from a cron job. Do you think is a viable solution? Do you know better ways?

Thanks in advance,
Any help is greatly appreciated
14  Other / Beginners & Help / Alt coins pool which pays in BTC on: September 25, 2013, 03:40:55 PM
Hi, a few days ago I've been reading of a mining pool which allow to mine on alt-coins (SHA256) and pays in BTC. I'm not able to find this info anymone...
Can anyone help me?
Thanks
D.
15  Other / Beginners & Help / Buying with CC on: September 23, 2013, 09:32:50 PM
Hi everybody,
are you aware of any services other than Virwox or QuickBTC to buy BTCs with CCs?
Thanks in advance
16  Economy / Currency exchange / Re: *** btcQuick - Buy Bitcoins w/ Credit or Debit Card (Bank Acc Coming Soon)*** on: September 23, 2013, 09:06:32 PM
6 days waiting verification without any feedback... You should not advertise it as 15-20minutes.
17  Other / Beginners & Help / Re: Which is your revenue per GH/s??? (Difficulty raises a lot in past 20 days) on: September 04, 2013, 09:37:58 PM
Final considerations on comparison of three Pools (Slush, BTCGuild, 50BTC). Beside the fact I would love to have merged mining, I cannot ignore that earnings on Slush are better and mostly important, payments are done with full 8 digits (you have to play a little with the threshold, but it's easy to transfer everything to your wallet).
So for now I'll stick with him/them.

This are my results anyway:
Earnings per Day= Slush Pool, 50BTC, BTCGuild
Variance per Day=50BTC, BTCGuild, Slush
Payout methods = 50BTC, Slush, BTCGuild
Statistics = 50BTC, Slush, BTCGuild
Merged Mining = BTCGuild only
18  Bitcoin / Pools / Re: [12000 GH/s] Slush's Pool (mining.bitcoin.cz); TX FEES + UserDiff; ASIC tested on: September 01, 2013, 11:40:03 PM
It would be even more nice to have NMC again  Wink
19  Other / Beginners & Help / Re: Which is your revenue per GH/s??? (Difficulty raises a lot in past 20 days) on: August 30, 2013, 08:37:41 AM
It's been four/five days at 50btc. Here my results:

50btc 1.0 GH/s => 0.007 BTC per day

PRO:
- Very very nice looking website
- Nice statistics
- Nice security features
- Small variance due to PPS
- You can have a manual payout with 8 digits

CONS:
- Automatic payout are not made with full 8 digits
- It's been quite unstable the latest 4 days. While they have small downtimes (seconds or minutes), it make me worry every time (green light green light on my erupters Smiley
- No merged mining (NMC)
20  Other / Beginners & Help / Re: Which is your revenue per GH/s??? (Difficulty raises a lot in past 20 days) on: August 28, 2013, 07:48:21 PM
I've completed a 3 days testing @BTCGuild. while the website is really cool indeed, the only thing I liked was the NMC merged mining. About BTC, payout is less than Slush but with less variance.

So to compare (my opinion based on my small miners)

Slush Pool: 1,0Gh/s => 0.009 - 0.010

PRO:
- Statistics are nice, I prefer to see earning than speed (which for a 24/7 miner should stay fixed)
- A bit more profitable than BTCGuild
- Payout are made with full 8 digits

CONS:
- Lack of merged mining
- Lot of variance

BTCGuild 1Gh/s => 0.007

PRO:
- Website is super nice
- NMC Merged mining
- Less variance

CONS:
- Profits are smaller
- Payout are not made with full 8 digits

While NMC are a nice plus, for me the winner is Slush Pool.

I'm now heading to 50btc to continue with testing Wink
Pages: [1] 2 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!