<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CryptoCurrency &#8211; OMG The Cloud!</title>
	<atom:link href="https://www.omgthecloud.com/category/crypto/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.omgthecloud.com</link>
	<description>Video Tutorials for IT Professionals. Entertainment for the rest of us</description>
	<lastBuildDate>Tue, 28 Dec 2021 02:23:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.1</generator>

<image>
	<url>https://www.omgthecloud.com/wp-content/uploads/2021/04/cropped-OMG-logo-1-32x32.jpg</url>
	<title>CryptoCurrency &#8211; OMG The Cloud!</title>
	<link>https://www.omgthecloud.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>RockARM &#8211; Hardware Build</title>
		<link>https://www.omgthecloud.com/rockarm-hardware-build/</link>
					<comments>https://www.omgthecloud.com/rockarm-hardware-build/#comments</comments>
		
		<dc:creator><![CDATA[OMG!]]></dc:creator>
		<pubDate>Fri, 17 Dec 2021 21:14:29 +0000</pubDate>
				<category><![CDATA[CryptoCurrency]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[Containers]]></category>
		<category><![CDATA[RockARM]]></category>
		<guid isPermaLink="false">https://www.omgthecloud.com/?p=307</guid>

					<description><![CDATA[Welcome back! If you&#8217;ve been following along in my RockARM series, and already 3D printed your RockARM case, then it&#8217;s time to fill it with some delicious hardware! In the video below, I take you through the hardware components and assembly, tools and tricks for getting everything built up nicely. After&#46;&#46;&#46;]]></description>
										<content:encoded><![CDATA[
<p>Welcome back! If you&#8217;ve been following along in my <a rel="noreferrer noopener" href="https://youtube.com/playlist?list=PL-qdqFfJP2m9YENbOX3tOqMIPTuXgaSYl" data-type="URL" data-id="https://youtube.com/playlist?list=PL-qdqFfJP2m9YENbOX3tOqMIPTuXgaSYl" target="_blank">RockARM series</a>, and already <a href="https://www2.omgthecloud.com/rockarm-3d-printable-package/" data-type="post" data-id="296">3D printed your RockARM case</a>, then it&#8217;s time to fill it with some delicious hardware! In the video below, I take you through the hardware components and assembly, tools and tricks for getting everything built up nicely. After you watch the video, come on back and take a look through the parts list with links!</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div class="epyt-video-wrapper"><div  id="_ytid_94906"  width="740" height="416"  data-origwidth="740" data-origheight="416" data-facadesrc="https://www.youtube.com/embed/-c5pBBS3u24?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;modestbranding=1&#038;rel=0&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;" class="__youtube_prefs__ epyt-facade epyt-is-override  no-lazyload" data-epautoplay="1" ><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy"  alt="YouTube player"  src="https://i.ytimg.com/vi/-c5pBBS3u24/maxresdefault.jpg"  /><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
</div></figure>



<p>.. SO! That&#8217;s the hardware. Next, you&#8217;ll probably want to know where to get it all, right? Here&#8217;s links to everything you need. Some of these are affiliate links, which I may earn a small commission in exchange for using them. It doesn&#8217;t cost you anything extra, but helps support these projects. What could be easier?!</p>



<figure class="wp-block-table is-style-stripes"><table><tbody><tr><td><strong>Item</strong></td><td><strong>Quantity</strong></td><td><strong>Link</strong></td><td><strong>Description</strong></td></tr><tr><td>RockPi4A</td><td>5</td><td><a href="https://amzn.to/3q5zvLN" data-type="URL" data-id="https://amzn.to/3q5zvLN" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Choose 64GB eMMC version</td></tr><tr><td>RockPi Heatsinks</td><td>5</td><td><a href="https://shop.allnetchina.cn/products/heatsink-for-rock-pi-4?_pos=7&amp;_sid=5ae002910&amp;_ss=r" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Need heatsink for each unit</td></tr><tr><td>Penta SATA Hat</td><td>1</td><td><a rel="noreferrer noopener" href="https://shop.allnetchina.cn/products/penta-sata-hat-for-rock-pi-4?_pos=2&amp;_sid=49602879c&amp;_ss=r" data-type="URL" data-id="https://shop.allnetchina.cn/products/penta-sata-hat-for-rock-pi-4?_pos=2&amp;_sid=49602879c&amp;_ss=r" target="_blank">Open Link</a></td><td>SATA adapter for the storage / NAS node</td></tr><tr><td>Noctua 80mm fan</td><td>1</td><td><a href="https://amzn.to/3F6T1O1" data-type="URL" data-id="https://amzn.to/3F6T1O1" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Silent 80mm fan</td></tr><tr><td>12TB 3.5&#8243; HDD</td><td>2</td><td><a href="https://amzn.to/33J0C7X" data-type="URL" data-id="https://amzn.to/33J0C7X" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Can choose larger or smaller, <br>but must have 2 drives for mirroring!</td></tr><tr><td>150W PicoPSU</td><td>1</td><td><a href="https://amzn.to/3melZUM" data-type="URL" data-id="https://amzn.to/3melZUM" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Compact DC-to-DC power supply</td></tr><tr><td>12v Power Brick</td><td>1</td><td><a href="https://amzn.to/30Cq9yl" data-type="URL" data-id="https://amzn.to/30Cq9yl" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>12v Power Brick, to drive the DC-to-DC PSU</td></tr><tr><td>CAT6 connector</td><td>1</td><td><a href="https://amzn.to/3sc02K1" data-type="URL" data-id="https://amzn.to/3sc02K1" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Keystone CAT6 RJ45 coupler jack</td></tr><tr><td>8 port Gb switch</td><td>1</td><td><a href="https://amzn.to/3e2yOx5" data-type="URL" data-id="https://amzn.to/3e2yOx5" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Extremely compact Gigabit switch</td></tr><tr><td>6 in CAT6 cables</td><td>1</td><td><a href="https://amzn.to/3p61RGd" data-type="URL" data-id="https://amzn.to/3p61RGd" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Short, thin, fast CAT6! 5-pack</td></tr><tr><td>12 in CAT6 cables</td><td>1</td><td><a href="https://amzn.to/3meveEK" data-type="URL" data-id="https://amzn.to/3meveEK" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Just a little longer, to reach the other side! 5-pack</td></tr><tr><td>12v DC Barrel Jacks</td><td>1</td><td><a href="https://amzn.to/3IZqGvG" data-type="URL" data-id="https://amzn.to/3IZqGvG" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Pack of DC barrel jacks</td></tr><tr><td>Female JST pigtails</td><td>1</td><td><a href="https://amzn.to/3E8Q7qR" data-type="URL" data-id="https://amzn.to/3E8Q7qR" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Only need the Female ends. Good to have extra!</td></tr><tr><td>Voltage regulator</td><td>1</td><td><a href="https://amzn.to/30CsEAJ" data-type="URL" data-id="https://amzn.to/30CsEAJ" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Need these to provide 9v to Gb Switch!</td></tr><tr><td>Brass wood screws</td><td>1</td><td><a href="https://amzn.to/3IUZkH3" data-type="URL" data-id="https://amzn.to/3IUZkH3" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Assorted course wood screws for assembly</td></tr><tr><td>M2.5 screws</td><td>1</td><td><a href="https://amzn.to/32gj3zN" data-type="URL" data-id="https://amzn.to/32gj3zN" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>Assorted M2.5 stainless screws</td></tr><tr><td>iFixIt screwdriver kit</td><td>1</td><td><a href="https://amzn.to/3p6K95w" data-type="URL" data-id="https://amzn.to/3p6K95w" target="_blank" rel="noreferrer noopener">Open Link</a></td><td>The last screwdriver kit you&#8217;ll ever need!</td></tr></tbody></table><figcaption>The shopping list!</figcaption></figure>



<p>There it is! This should get you everything you need to get your RockARM built out and on to the next step! A couple notes: the RockPi4A units are sometimes harder to get on Amazon due to supply, but can usually be cheaper when factoring in the alternative of ordering them from China or Europe with International shipping costs.</p>



<p>Also, it&#8217;s worth mentioning that you can use the RockPi4B or C models if you wanted to. The reason I selected the model A for this project is the main difference is, the model A does not have WiFi or Bluetooth, which we do not need for this project; may as well save some money! But, if you are only able to find the model B or C variations, they will work exactly the same!</p>



<p>Finally, check out the final assembly with wiring instructions.. video right here!</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div class="epyt-video-wrapper"><div  id="_ytid_40920"  width="740" height="416"  data-origwidth="740" data-origheight="416" data-facadesrc="https://www.youtube.com/embed/rD1xsLNt0xQ?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;modestbranding=1&#038;rel=0&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;" class="__youtube_prefs__ epyt-facade epyt-is-override  no-lazyload" data-epautoplay="1" ><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy"  alt="YouTube player"  src="https://i.ytimg.com/vi/rD1xsLNt0xQ/maxresdefault.jpg"  /><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.omgthecloud.com/rockarm-hardware-build/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">307</post-id>	</item>
		<item>
		<title>RockARM &#8211; 3D Printable package</title>
		<link>https://www.omgthecloud.com/rockarm-3d-printable-package/</link>
					<comments>https://www.omgthecloud.com/rockarm-3d-printable-package/#comments</comments>
		
		<dc:creator><![CDATA[OMG!]]></dc:creator>
		<pubDate>Wed, 01 Dec 2021 21:24:24 +0000</pubDate>
				<category><![CDATA[CryptoCurrency]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Projects]]></category>
		<guid isPermaLink="false">https://www.omgthecloud.com/?p=296</guid>

					<description><![CDATA[Today we&#8217;re going to step through the process of 3D printing the RockARM Home Edition parts! Click the link below to download the complete package, zipped and compressed. Please take a moment to read through the contained README file, for special instructions to successfully print the parts, especially the main housing&#46;&#46;&#46;]]></description>
										<content:encoded><![CDATA[
<p>Today we&#8217;re going to step through the process of 3D printing the RockARM Home Edition parts! </p>



<p>Click the link below to download the complete package, zipped and compressed. Please take a moment to read through the contained README file, for special instructions to successfully print the parts, especially the main housing and its&#8217; fine-mesh top. Don&#8217;t just grab it an hit Print, it won&#8217;t work!</p>



<div class="wp-block-file"><a href="https://www2.omgthecloud.com/wp-content/uploads/2021/11/RockARM.zip">RockARM</a><a href="https://www2.omgthecloud.com/wp-content/uploads/2021/11/RockARM.zip" class="wp-block-file__button" download>Download</a></div>



<p>Also, here is the video introduction, where I take you through the parts and how to assemble them properly</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div class="epyt-video-wrapper"><div  id="_ytid_27476"  width="740" height="416"  data-origwidth="740" data-origheight="416" data-facadesrc="https://www.youtube.com/embed/0QADBfDr4Wc?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;modestbranding=1&#038;rel=0&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;" class="__youtube_prefs__ epyt-facade epyt-is-override  no-lazyload" data-epautoplay="1" ><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy"  alt="YouTube player"  src="https://i.ytimg.com/vi/0QADBfDr4Wc/maxresdefault.jpg"  /><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.omgthecloud.com/rockarm-3d-printable-package/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">296</post-id>	</item>
		<item>
		<title>FreqTrade: Quickly deploy your BOT ARMY!</title>
		<link>https://www.omgthecloud.com/freqtrade-quickly-deploy-your-bot-army/</link>
					<comments>https://www.omgthecloud.com/freqtrade-quickly-deploy-your-bot-army/#comments</comments>
		
		<dc:creator><![CDATA[OMG!]]></dc:creator>
		<pubDate>Sat, 23 Oct 2021 18:42:55 +0000</pubDate>
				<category><![CDATA[CryptoCurrency]]></category>
		<category><![CDATA[Docker]]></category>
		<guid isPermaLink="false">https://www.omgthecloud.com/?p=274</guid>

					<description><![CDATA[In this episode, I build upon the last topic around FreqTrade&#8217;s integrated Dashboard, and show you how to quickly scale out your army or FreqTrade bots, by storing the container variables as Docker environment variables, so you only have one place you need to make changes, as you copy and deploy&#46;&#46;&#46;]]></description>
										<content:encoded><![CDATA[
<p>In this episode, I build upon the last topic around FreqTrade&#8217;s integrated Dashboard, and show you how to quickly scale out your army or FreqTrade bots, by storing the container variables as Docker environment variables, so you only have one place you need to make changes, as you copy and deploy your bots rapidly. Check out the video, and when you&#8217;re ready, below is the sample code you came here for!</p>



<p>Also, if you&#8217;re looking for a great machine to run your fleet of FreqTrade bots on, I highly recommend <a href="https://amzn.to/2Zo0Dw3">this small form-factor Intel NUC</a> &#8211; this is an amazing price on a rock-solid piece of hardware, in a compact, silent, power-efficient format! Please note this is an affiliate link and I may receive a commission from your purchase. Clicking this link and completing your regular Amazon purchases is an easy no-cost way to support the channel!</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div class="epyt-video-wrapper"><div  id="_ytid_46446"  width="740" height="416"  data-origwidth="740" data-origheight="416" data-facadesrc="https://www.youtube.com/embed/NEfYdSHsPnM?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;modestbranding=1&#038;rel=0&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;" class="__youtube_prefs__ epyt-facade epyt-is-override  no-lazyload" data-epautoplay="1" ><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy"  alt="YouTube player"  src="https://i.ytimg.com/vi/NEfYdSHsPnM/maxresdefault.jpg"  /><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
</div></figure>



<p>Here&#8217;s your sample code for your <strong>docker-compose.yml</strong> file:</p>



<pre class="wp-block-code"><code>version: '3.3'

networks:
  proxy:
    external: true

services:
  freqtrade:
    image: freqtradeorg/freqtrade:develop
    volumes:
      - ./user_data:/freqtrade/user_data
      - /etc/timezone:/etc/timezone:ro
    command: &gt;
      trade
      --logfile /freqtrade/user_data/logs/freqtrade.log
      --config /freqtrade/user_data/config.json
      --strategy ${STRATEGY}
      --db-url sqlite:///user_data/${DATABASE_FILE}
    networks:
      - proxy
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      restart_policy:
        condition: on-failure
        delay: 5s
      labels:
        - 'traefik.http.routers.${BOTNAME}.tls=true'
        - 'traefik.http.routers.${BOTNAME}.rule=Host(`${BOTNAME}.bots.yourdomain.com`)'
        - 'traefik.http.services.${BOTNAME}.loadbalancer.server.port=8080'
</code></pre>



<p>In the above sample code, it&#8217;s important that you are using a wildcard subdomain in the <strong>bots.yourdomain.com</strong> placeholder. If you are not familiar, this means you want everything (*) under that namespace to resolve to the IP of your docker host. If you need a refresher on this, <a href="https://youtu.be/LSG11jAU7-A">check out my Traefik proxy video</a>, I cover this in-depth!</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div class="epyt-video-wrapper"><div  id="_ytid_11959"  width="740" height="416"  data-origwidth="740" data-origheight="416" data-facadesrc="https://www.youtube.com/embed/LSG11jAU7-A?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;modestbranding=1&#038;rel=0&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;" class="__youtube_prefs__ epyt-facade epyt-is-override  no-lazyload" data-epautoplay="1" ><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy"  alt="YouTube player"  src="https://i.ytimg.com/vi/LSG11jAU7-A/maxresdefault.jpg"  /><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
</div></figure>



<p>Next, you need the <strong>.env</strong> file that contains the variables referenced in the sample <strong>docker-compose.yml</strong>, so, here you go!</p>



<pre class="wp-block-code"><code>BOTNAME=bot001
STRATEGY=BinHV45
DATABASE_FILE=trades.sqlite</code></pre>



<p>The above file should be saved as a hidden &#8220;dot file&#8221; in the same path with your <strong>docker-compose.yml</strong> file, as <strong>.env</strong></p>



<p>The <strong>BOTNAME</strong> variable dictates what the fully-qualified name of the deployed bot will be, ie: <strong>https://bot001.bots.yourdomain.com</strong></p>



<p>The <strong>STRATEGY</strong> variable needs to be the exact (case-sensitive) name of your strategy file, which is stored in <strong>user_data/strategies</strong> folder</p>



<p>Also remember when you&#8217;re copying your base FreqTrade folder (this was <strong>bot001</strong> in the video, for example), that you want to go in and remove the existing <strong>trades.sqlite</strong> database, and clear the logs by removing the <strong>logs/freqtrade.log</strong> file if it exists, after copying, and before deploying</p>



<p>Lastly, you&#8217;re probably looking for that command that lets you use <strong>.env</strong> variables with a <strong>docker stack deploy</strong> deployed container! Here you go:</p>



<pre class="wp-block-code"><code>docker stack deploy -c &lt;(docker-compose config) stackName</code></pre>



<p>This looks similar to the standard deploy command, however we can see that in place of where we normally reference the <strong>docker-compose.yml</strong> file, we&#8217;re telling it to evaluate that configuration <strong>with docker-compose</strong> instead! When this runs, it builds the config, evaluating the variables, and then passes that all back to <strong>docker stack deploy</strong> to complete the deployment.</p>



<p>I hope this is helpful to you! Please give me a thumbs up on the video if you found it useful, subscribe if you&#8217;re not already, and leave me a comment if you have questions or thoughts! Thank you!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.omgthecloud.com/freqtrade-quickly-deploy-your-bot-army/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">274</post-id>	</item>
		<item>
		<title>FreqTrade: Manage a fleet of Crypto-Bots!</title>
		<link>https://www.omgthecloud.com/freqtrade-manage-a-fleet-of-crypto-bots/</link>
					<comments>https://www.omgthecloud.com/freqtrade-manage-a-fleet-of-crypto-bots/#comments</comments>
		
		<dc:creator><![CDATA[OMG!]]></dc:creator>
		<pubDate>Fri, 15 Oct 2021 02:40:34 +0000</pubDate>
				<category><![CDATA[CryptoCurrency]]></category>
		<category><![CDATA[Docker]]></category>
		<guid isPermaLink="false">https://www.omgthecloud.com/?p=267</guid>

					<description><![CDATA[Hey there! In this tutorial, I&#8217;ll teach you how to consolidate all your FreqTrade instances (you do have more than a couple, right?!) in to a single dashboard, so you can easily see how your strategies are performing in a single, cohesive dashboard! By the way, this is all NATIVE to&#46;&#46;&#46;]]></description>
										<content:encoded><![CDATA[
<p>Hey there! In this tutorial, I&#8217;ll teach you how to consolidate all your FreqTrade instances (you <strong>do</strong> have more than a couple, right?!) in to a single dashboard, so you can easily see how your strategies are performing in a single, cohesive dashboard! By the way, this is all NATIVE to FreqTrade! </p>



<p>Also, if you&#8217;re looking for a great machine to run your fleet of FreqTrade bots on, I highly recommend <a href="https://amzn.to/2Zo0Dw3">this small form-factor Intel NUC</a> &#8211; this is an amazing price on a rock-solid piece of hardware, in a compact, silent, power-efficient format! Please note this is an affiliate link and I may receive a commission from your purchase. Clicking this link and completing your regular Amazon purchases is an easy no-cost way to support the channel!</p>



<p>If you haven&#8217;t already seen the video, do check it out:</p>



<p><a href="https://youtu.be/09NeF22yrkQ?t=1">https://youtu.be/09NeF22yrkQ?t=1</a></p>



<p>I&#8217;m guessing you came here for the example code. Here&#8217;s what you need in your <strong>user_data/config.json</strong> file</p>



<pre class="wp-block-code"><code>"api_server": {
        "enabled": true,
        "enable_openapi": true,
        "listen_ip_address": "0.0.0.0",
        "listen_port": 8080,
        "verbosity": "info",
        "jwt_secret_key": "somethingrandom",
        "CORS_origins": &#91;"https://freqtrade.dmz.bunnitrade.com"],
        "username": "api",
        "password": "api"
    },
</code></pre>



<p>The key there is the CORS entry: This should be the fully-qualified URL of your primary &#8220;dashboard&#8221; FreqTrade instance. You&#8217;ll use this same entry on all your bots. </p>



<p>Do let me know if you have questions! Comment on the YouTube video, or hit me up on Twitter @OMGTheCloud </p>



<p>Thanks!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.omgthecloud.com/freqtrade-manage-a-fleet-of-crypto-bots/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">267</post-id>	</item>
		<item>
		<title>FreqTrade: Plain OS to Running in Minutes!</title>
		<link>https://www.omgthecloud.com/freqtrade-plain-os-to-running-in-minutes/</link>
					<comments>https://www.omgthecloud.com/freqtrade-plain-os-to-running-in-minutes/#comments</comments>
		
		<dc:creator><![CDATA[OMG!]]></dc:creator>
		<pubDate>Wed, 14 Jul 2021 13:00:00 +0000</pubDate>
				<category><![CDATA[CryptoCurrency]]></category>
		<category><![CDATA[Docker]]></category>
		<guid isPermaLink="false">https://www.omgthecloud.com/?p=202</guid>

					<description><![CDATA[In this episode, I take you through getting FreqTrade installed and configured, running as a Docker container, starting with a completely plain Ubuntu Server OS. What could be easier! Check out the video to follow along, and below is the example code referenced in the video. This takes all the guesswork&#46;&#46;&#46;]]></description>
										<content:encoded><![CDATA[
<p>In this episode, I take you through getting FreqTrade installed and configured, running as a Docker container, starting with a completely plain Ubuntu Server OS. What could be easier! Check out the video to follow along, and below is the example code referenced in the video. This takes all the guesswork out of getting FreqTrade up and running, so you can start configuring and testing your trading strategies right away!</p>



<p>Also, if you&#8217;re looking for a great machine to run your fleet of FreqTrade bots on, I highly recommend <a href="https://amzn.to/2Zo0Dw3">this small form-factor Intel NUC</a> &#8211; this is an amazing price on a rock-solid piece of hardware, in a compact, silent, power-efficient format! Please note this is an affiliate link and I may receive a commission from your purchase. Clicking this link and completing your regular Amazon purchases is an easy no-cost way to support the channel!<a href=""></a></p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div class="epyt-video-wrapper"><div  id="_ytid_39994"  width="740" height="416"  data-origwidth="740" data-origheight="416" data-facadesrc="https://www.youtube.com/embed/DjtldeE8jNQ?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;modestbranding=1&#038;rel=0&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;" class="__youtube_prefs__ epyt-facade epyt-is-override  no-lazyload" data-epautoplay="1" ><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy"  alt="YouTube player"  src="https://i.ytimg.com/vi/DjtldeE8jNQ/maxresdefault.jpg"  /><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
</div></figure>



<h2 class="wp-block-heading">Install Docker</h2>



<p>https://get.docker.com is the source for your one-line (okay technically two; you download it, then you execute it) Docker installation script<br></p>



<pre class="wp-block-code"><code>curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh</code></pre>



<h3 class="wp-block-heading">Install Docker Compose</h3>



<p>Next, we need Docker Compose. This is also very simple:</p>



<pre class="wp-block-code"><code>sudo apt update &amp;&amp; sudo apt install docker-compose -y</code></pre>



<h3 class="wp-block-heading">Add your user to the &#8220;docker&#8221; group</h3>



<p>To save you from constantly having to prefix your docker commands with <code><strong>sudo</strong></code>, and more importantly to ensure your containers have the correct permissions to local configuration files you configure, let&#8217;s add your running user (whatever user you&#8217;re logged in to your new Ubuntu server right now) to the <code><strong>docker</strong></code> security group. In order for this to take effect, you have to log out and back in to the server afterward.</p>



<pre class="wp-block-code"><code>sudo usermod -a -G docker &#91;username]</code></pre>



<p><em>Don&#8217;t forget to log out and back in at this point, so that change takes effect.</em></p>



<h2 class="wp-block-heading">Install FreqTrade</h2>



<p>Now that we&#8217;ve got Docker installed and running, it&#8217;s time to get FreqTrade installed, as a Docker container of course! You&#8217;re going to make a directory called <code><strong>freqtrade</strong></code>, change directory (<code><strong>cd</strong></code>) in to it, then pull the latest <strong><code>docker-compose.yml </code></strong>from the FreqTrade Git repository. Last, you will issue the <strong><code>docker-compose pull</code></strong> command, which tells Docker to pull down the container images specified in the <strong><code>docker-compose.yml</code></strong> file. Let&#8217;s go!</p>



<pre class="wp-block-code"><code>mkdir freqtrade
cd freqtrade
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
docker-compose pull</code></pre>



<h2 class="wp-block-heading">Configure FreqTrade</h2>



<p>Now that we have all the needed pieces of FreqTrade downloaded, we need to do some initial configuration. The developers of FreqTrade built in a way to set up the file and folder structure, and build out a baseline config.json, by issuing commands to the FreqTrade Docker image, and invoke it to ask you some basic questions. Neat! The first one here creates the file and folder structure:</p>



<pre class="wp-block-code"><code>docker-compose run --rm freqtrade create-userdir --userdir user_data</code></pre>



<p>Next, we&#8217;ll run a similar command, which will start up an interactive series of questions, to get your FreqTrade config off to a good start:</p>



<pre class="wp-block-code"><code>docker-compose run --rm freqtrade new-config --config user_data/config.json</code></pre>



<p>This will ask you some questions, and generally the defaults are all fine, except a couple things for the API, so you can use the WebUI in a browser to control and monitor FreqTrade! <br><code><strong>Enable API: YES<br>API Listen: 0.0.0.0</strong></code></p>



<p>Next, we need to pull out some invalid trade pairs from the basic <code><strong>config.json</strong></code> (if you are using <strong>Binance US </strong>specifically, and maybe others too), otherwise FreqTrade will not start up properly.</p>



<pre class="wp-block-code"><code>nano user_data/config.json

Find the Whitelist section, and remove:
ALGO/BTC, 
ATOM/BTC, 
BAT/BTC, 
BRD/BTC, 
EOS/BTC, 
IOTA/BTC, 
NEO/BTC, 
NXS/BTC, 
XMR/BTC

Save and exit (ctrl+o and ctrl+x)</code></pre>



<p>Lastly, we need to edit the docker-compose.yml and enable our commented-out network ports, so we can see the WebUI when we start the container</p>



<pre class="wp-block-code"><code>nano docker-compose.yml</code></pre>



<p>find the <code><strong>ports:</strong></code> section and delete the leading # comment symbol<br>delete the # comment symbol from the next line, where 8080 ports are<br>ensure line spacing is correct! &#8220;ports:&#8221; should be the same level of indentation as the other directives above it, such as &#8220;volumes:&#8221;<br>Remove the <code>"127.0.0.1:"</code> from the port mapping. Your final <code><strong>ports:</strong></code> section should look like this:</p>



<pre class="wp-block-code"><code>ports:
  - "8080:8080"</code></pre>



<h2 class="wp-block-heading">Start FreqTrade</h2>



<p>Time to start it up! The below command will launch the FreqTrade instance. You can also monitor its&#8217; realtime logs with the command <strong><code>docker logs -f freqtrade</code></strong> (with &#8220;<strong>freqtrade</strong>&#8221; being the name of the container, and <strong><code>-f</code></strong> means &#8220;follow&#8221;; similar to &#8220;tail&#8221; if you&#8217;re familiar with other CLI logging)</p>



<pre class="wp-block-code"><code>docker-compose up -d</code></pre>



<p>That should do it! Now you can point your web browser at http://IPofYourServer:8080 and you should be presented with the FreqTrade WebUI. Click the login button in the top right, and enter the username and password you provided during the config questions earlier. Then you can click the Trade or Dashboard buttons in the upper left, to see what&#8217;s going on with your shiny new trading bot!</p>



<h2 class="wp-block-heading">Bonus: Change to a dynamically generated Pairlist</h2>



<p>As a bonus configuration point, I talked about this in the closing part of the video, let&#8217;s change your list of trading pairs to something dynamic, rather than just a static-defined set of whitelisted pairs. Go edit your <strong><code>config.json</code></strong> once more, and find the <strong><code>"pairlists": [</code></strong> section. You can change from the default <strong>&#8220;StaticPairList&#8221;</strong> to <strong>&#8220;VolumePairList&#8221;</strong> as described here, with a couple methods for how it will evaluate and decide which pairs are good to use. You&#8217;ll see I have commented out the<strong><code> StaticPairlists </code></strong>with the leading <code><strong>//</strong></code> so you know where it should go, and can switch back if you want.</p>



<pre class="wp-block-code"><code>    "pairlists": &#91;
       {
//            "method": "StaticPairList"
            "method": "VolumePairList",
            "number_assets": 70,
            "sort_key": "quoteVolume",
            "refresh_period": 1800
       },
       {
            "method": "AgeFilter",
            "min_days_listed": 10
       },
       {
            "method": "RangeStabilityFilter",
            "lookback_days": 5,
            "min_rate_of_change": 0.02,
            "refresh_period": 1440
       }
   ],
</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.omgthecloud.com/freqtrade-plain-os-to-running-in-minutes/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">202</post-id>	</item>
		<item>
		<title>FreqTrade fast strategy refinement!</title>
		<link>https://www.omgthecloud.com/freqtrade-fast-strategy-refinement/</link>
					<comments>https://www.omgthecloud.com/freqtrade-fast-strategy-refinement/#comments</comments>
		
		<dc:creator><![CDATA[OMG!]]></dc:creator>
		<pubDate>Wed, 23 Jun 2021 13:00:00 +0000</pubDate>
				<category><![CDATA[CryptoCurrency]]></category>
		<category><![CDATA[Docker]]></category>
		<guid isPermaLink="false">https://www.omgthecloud.com/?p=193</guid>

					<description><![CDATA[In this episode, I&#8217;ll show you how to refine your trading strategy file FAST by overlaying your market indicators in the GUI on real-time trading data, so you can SEE exactly what each indicator is doing at a given point-in-time in the market. This is how you carefully and QUICKLY tweak&#46;&#46;&#46;]]></description>
										<content:encoded><![CDATA[
<p>In this episode, I&#8217;ll show you how to refine your trading strategy file FAST by overlaying your market indicators in the GUI on real-time trading data, so you can SEE exactly what each indicator is doing at a given point-in-time in the market. This is how you carefully and QUICKLY tweak and tune your strategy for maximum performance. Check it out! </p>



<p>Also, if you&#8217;re looking for a great machine to run your fleet of FreqTrade bots on, I highly recommend <a href="https://amzn.to/2Zo0Dw3">this small form-factor Intel NUC</a> &#8211; this is an amazing price on a rock-solid piece of hardware, in a compact, silent, power-efficient format! Please note this is an affiliate link and I may receive a commission from your purchase. Clicking this link and completing your regular Amazon purchases is an easy no-cost way to support the channel!</p>



<p>If you find this info valuable, consider <a href="https://www.patreon.com/omgthecloud">supporting me on Patreon!</a> You can also sign up for direct access to my Discord server, where I can help you with any questions you may have. Thanks!</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div class="epyt-video-wrapper"><div  id="_ytid_64661"  width="740" height="416"  data-origwidth="740" data-origheight="416" data-facadesrc="https://www.youtube.com/embed/t0m1I_vVsIA?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;modestbranding=1&#038;rel=0&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;" class="__youtube_prefs__ epyt-facade epyt-is-override  no-lazyload" data-epautoplay="1" ><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy"  alt="YouTube player"  src="https://i.ytimg.com/vi/t0m1I_vVsIA/maxresdefault.jpg"  /><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.omgthecloud.com/freqtrade-fast-strategy-refinement/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">193</post-id>	</item>
		<item>
		<title>FreqTrade deploy, understanding the Order Book</title>
		<link>https://www.omgthecloud.com/freqtrade-deploy-understanding-the-order-book/</link>
					<comments>https://www.omgthecloud.com/freqtrade-deploy-understanding-the-order-book/#comments</comments>
		
		<dc:creator><![CDATA[OMG!]]></dc:creator>
		<pubDate>Wed, 02 Jun 2021 13:00:00 +0000</pubDate>
				<category><![CDATA[CryptoCurrency]]></category>
		<category><![CDATA[Docker]]></category>
		<guid isPermaLink="false">https://www.omgthecloud.com/?p=150</guid>

					<description><![CDATA[In this episode, we&#8217;re deploying FreqTrade, an open-source CryptoCurrency trading bot, wrapping it up in a nice multi-tabbed webUI called Muximux, and managing it all with Traefik web proxy with real Let&#8217;s Encrypt auto-renewing SSL certificates! I&#8217;ll also take you through the config basics, what a simple strategy file looks like,&#46;&#46;&#46;]]></description>
										<content:encoded><![CDATA[
<p>In this episode, we&#8217;re deploying FreqTrade, an open-source CryptoCurrency trading bot, wrapping it up in a nice multi-tabbed webUI called Muximux, and managing it all with Traefik web proxy with real Let&#8217;s Encrypt auto-renewing SSL certificates! I&#8217;ll also take you through the config basics, what a simple strategy file looks like, and how crypto exchange order books work. Check it out! After the video, I&#8217;ve got your example code below!</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div class="epyt-video-wrapper"><div  id="_ytid_59256"  width="740" height="555"  data-origwidth="740" data-origheight="555" data-facadesrc="https://www.youtube.com/embed/pAs_dMQyaHg?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;modestbranding=1&#038;rel=0&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;" class="__youtube_prefs__ epyt-facade epyt-is-override  no-lazyload" data-epautoplay="1" ><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy"  alt="YouTube player"  src="https://i.ytimg.com/vi/pAs_dMQyaHg/maxresdefault.jpg"  /><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
</div></figure>



<p>Let&#8217;s start with a basic docker-compose.yml for your FreqTrade instance:</p>



<pre class="wp-block-code"><code>version: '3.6'

networks:
  proxy:
    external: true

services:
  freqtrade:
    image: freqtradeorg/freqtrade:develop
    networks:
      - proxy
    volumes:
      - "./user_data:/freqtrade/user_data"
      - /etc/timezone:/etc/timezone:ro
    # Default command used when running `docker compose up`
    command: &gt;
      trade
      --logfile /freqtrade/user_data/logs/freqtrade.log
      --config /freqtrade/user_data/config.json
      --strategy BinHV45
      --db-url sqlite:///user_data/tradesv3.sqlite
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      restart_policy:
        condition: on-failure
        delay: 5s
      labels:
         - 'traefik.enable=true'
         - 'traefik.http.routers.binhv45.tls=true'
         - 'traefik.http.routers.binhv45.rule=Host(`binhv45.dmz.yourdomain.com`)'
         - 'traefik.http.services.binhv45.loadbalancer.server.port=8080'
</code></pre>



<p>If you don&#8217;t already have a Traefik proxy set up, you&#8217;ll want to <a href="https://www2.omgthecloud.com/traefik-v2-with-lets-encrypt-ssl/" data-type="post" data-id="148">refer to my video and example code</a> for that. It&#8217;ll make your life so much easier!</p>



<p>Next, let&#8217;s take a look as a sample<strong> config.json</strong> file for FreqTrade. This will vary based on your config, but this is a good starting point:</p>



<pre class="wp-block-code"><code>{
    "max_open_trades": 25,
    "stake_currency": "USDT",
    "stake_amount": 50,
    "tradable_balance_ratio": 0.99,
    "fiat_display_currency": "USD",
    "timeframe": "1m",
    "dry_run": true,
    "cancel_open_orders_on_exit": false,
    "unfilledtimeout": {
        "buy": 10,
        "sell": 30
    },
    "bid_strategy": {
        "price_side": "bid",
        "ask_last_balance": 0.0,
        "use_order_book": false,
        "order_book_top": 1,
        "check_depth_of_market": {
            "enabled": false,
            "bids_to_ask_delta": 1
        }
    },
    "ask_strategy": {
        "price_side": "ask",
        "use_order_book": false,
        "order_book_min": 1,
        "order_book_max": 1,
        "use_sell_signal": true,
        "ignore_roi_if_buy_signal": true
    },
    "download_trades": true,
    "exchange": {
        "name": "binanceus",
        "key": "",
        "secret": "",
        "ccxt_config": {"enableRateLimit": true},
        "ccxt_async_config": {
            "enableRateLimit": true,
            "rateLimit": 200
        },
        "pair_whitelist": &#91;
          "BTC/USDT",
          "ETH/USDT",
          "ETC/USDT",
          "LTC/USDT",
          "XLM/USDT",
          "ADA/USDT"
        ],
        "pair_blacklist": &#91;
          "XRP/USD",
          "USDT/USD",
          "USDC/USD",
          "EUR/USD"
        ]
    },
    "pairlists": &#91;
      {
//          "method": "StaticPairList"}
          "method": "VolumePairList",
          "number_assets": 50,
          "sort_key": "quoteVolume",
          "refresh_period": 1800
      },
      {"method": "AgeFilter", "min_days_listed": 10},
      {
        "method": "RangeStabilityFilter",
        "lookback_days": 5,
        "min_rate_of_change": 0.01,
        "refresh_period": 1440
      }
     ],

    "edge": {
        "enabled": false,
        "process_throttle_secs": 3600,
        "calculate_since_number_of_days": 7,
        "allowed_risk": 0.01,
        "minimum_winrate": 0.60,
        "minimum_expectancy": 0.20,
        "min_trade_number": 10,
        "max_trade_duration_minute": 1440,
        "remove_pumps": false
    },
    "telegram": {
        "enabled": false,
        "token": "",
        "chat_id": ""
    },
    "api_server": {
        "enabled": true,
        "enable_openapi": true,
        "listen_ip_address": "0.0.0.0",
        "listen_port": 8080,
        "verbosity": "info",
        "jwt_secret_key": "somethingrandom",
        "CORS_origins": &#91;],
        "username": "api",
        "password": "api"
    },
    "initial_state": "running",
    "forcebuy_enable": false,
    "internals": {
        "process_throttle_secs": 5
    }
}
</code></pre>



<p>Next, you&#8217;ll need a strategy file. This is the example we&#8217;re using in the video, but I also recommend you check out the examples on <a href="https://github.com/freqtrade/freqtrade">FreqTrade&#8217;s own GitHub page</a>. The below is <strong>BinHV45.py</strong> stored in <strong>/user_data/strategies/ </strong>folder:</p>



<pre class="wp-block-code"><code># --- Do not remove these libs ---
from freqtrade.strategy.interface import IStrategy
from typing import Dict, List
from functools import reduce
from pandas import DataFrame
import numpy as np
# --------------------------------

import talib.abstract as ta
import freqtrade.vendor.qtpylib.indicators as qtpylib


def bollinger_bands(stock_price, window_size, num_of_std):
    rolling_mean = stock_price.rolling(window=window_size).mean()
    rolling_std = stock_price.rolling(window=window_size).std()
    lower_band = rolling_mean - (rolling_std * num_of_std)

    return rolling_mean, lower_band


class BinHV45(IStrategy):
    minimal_roi = {
    #    "0": 0.0125
      "0": 0.99
    }

    stoploss = -0.05
    timeframe = '1m'
    trailing_stop = True
    trailing_only_offset_is_reached = True
    trailing_stop_positive_offset = 0.00375  # Trigger positive stoploss once crosses above this percentage
    trailing_stop_positive = 0.00175 # Sell asset if it dips down this much


    def populate_indicators(self, dataframe: DataFrame, metadata: dict) -&gt; DataFrame:
        mid, lower = bollinger_bands(dataframe&#91;'close'], window_size=40, num_of_std=2)
        dataframe&#91;'mid'] = np.nan_to_num(mid)
        dataframe&#91;'lower'] = np.nan_to_num(lower)
        dataframe&#91;'bbdelta'] = (dataframe&#91;'mid'] - dataframe&#91;'lower']).abs()
        dataframe&#91;'pricedelta'] = (dataframe&#91;'open'] - dataframe&#91;'close']).abs()
        dataframe&#91;'closedelta'] = (dataframe&#91;'close'] - dataframe&#91;'close'].shift()).abs()
        dataframe&#91;'tail'] = (dataframe&#91;'close'] - dataframe&#91;'low']).abs()
        return dataframe

    def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -&gt; DataFrame:
        dataframe.loc&#91;
            (
                dataframe&#91;'lower'].shift().gt(0) &amp;
                dataframe&#91;'bbdelta'].gt(dataframe&#91;'close'] * 0.008) &amp;
                dataframe&#91;'closedelta'].gt(dataframe&#91;'close'] * 0.0175) &amp;
                dataframe&#91;'tail'].lt(dataframe&#91;'bbdelta'] * 0.25) &amp;
                dataframe&#91;'close'].lt(dataframe&#91;'lower'].shift()) &amp;
                dataframe&#91;'close'].le(dataframe&#91;'close'].shift())
            ),
            'buy'] = 1
        return dataframe

    def populate_sell_trend(self, dataframe: DataFrame, metadata: dict) -&gt; DataFrame:
        """
        no sell signal
        """
        dataframe.loc&#91;:, 'sell'] = 0
        return dataframe
</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.omgthecloud.com/freqtrade-deploy-understanding-the-order-book/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">150</post-id>	</item>
		<item>
		<title>Intro to FreqTrade: Open Source Crypto Trading</title>
		<link>https://www.omgthecloud.com/intro-to-freqtrade-open-source-crypto-trading/</link>
					<comments>https://www.omgthecloud.com/intro-to-freqtrade-open-source-crypto-trading/#respond</comments>
		
		<dc:creator><![CDATA[OMG!]]></dc:creator>
		<pubDate>Mon, 10 May 2021 13:00:00 +0000</pubDate>
				<category><![CDATA[CryptoCurrency]]></category>
		<category><![CDATA[Docker]]></category>
		<guid isPermaLink="false">https://www.omgthecloud.com/?p=129</guid>

					<description><![CDATA[In this episode, I&#8217;m introducing FreqTrade, a self-hosted, open source cryptocurrency trading bot. Check it out!]]></description>
										<content:encoded><![CDATA[
<p>In this episode, I&#8217;m introducing FreqTrade, a self-hosted, open source cryptocurrency trading bot. Check it out!</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
<div class="epyt-video-wrapper"><div  id="_ytid_12497"  width="740" height="416"  data-origwidth="740" data-origheight="416" data-facadesrc="https://www.youtube.com/embed/UEGabjQ6Y_k?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;modestbranding=1&#038;rel=0&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;" class="__youtube_prefs__ epyt-facade epyt-is-override  no-lazyload" data-epautoplay="1" ><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy"  alt="YouTube player"  src="https://i.ytimg.com/vi/UEGabjQ6Y_k/maxresdefault.jpg"  /><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.omgthecloud.com/intro-to-freqtrade-open-source-crypto-trading/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">129</post-id>	</item>
	</channel>
</rss>
