Shell kabuk programlama ile ilgili birkaç yardım

Başlatan oktay811, 02 Aralık 2017 - 18:56:20

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

oktay811

Herkese merhaba. Ben vps serverlarda çalışacak şekilde bir script yazmaya çalışıyorum. Şu anda birazını yazdım sadece biraz yardıma ihtiyacım var. Öncelikle yapmak istediğim script coin alım-satım botu olan zenbot. Zenbot ubuntu üzerinde nodejs ve mongodb programlarını kullanıyor. Zenbot ta geriye dönğk simülasyonları yapabiliyorsun. Atıyorum BTC-USDT için geriye dönük 10 günlük datayı indir ve stratejilerin farklı değişkenlerini kullanarak kar yapan komutu bulmaya çalışıyorum. Her simülasyon sonucunda sonuçlar .html olarak kayıt ediliyor. html dosyasının içinden istediğim şeyleri "grep" ile çekiyorum yanlız kullandığım script içinde kombinasyonlarla oluşan başlangıç komutunu almaya çalışıyorum.
#!/bin/bash

for ex in ${@}; do

{
#########    trend_ema    ##########

for var1 in 30s 1m 5m 10m 15m 30m 1h 4h
do
        for var2 in 1 5 10 15 20 30 52 60 100
        do
                for var3 in 0 auto
                do
                      ./zenbot.sh sim $ex --strategy=trend_ema --period=$var1 --min_periods=$var2 --trend_ema=$var2 --neutral_rate=$var3 --oversold_rsi_periods=$var2 --oversold_rsi=$var2
  echo ./zenbot.sh sim $ex --strategy=trend_ema --period=$var1 --min_periods=$var2 --trend_ema=$var2 --neutral_rate=$var3 --oversold_rsi_periods=$var2 --oversold_rsi=$var2 > trend_ema_command.txt

                done
        done
done   
{  
for sim in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $sim
done

        for i in ./simulations/*.html; do
echo "<article>"
echo "<header>"
echo "<b><h1>Simulations Result</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command for profit result: $(cat trend_ema_command.txt) </p>"
link2=$(curl --upload-file $i https:// transfer.sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}

##########      stddev     #########

for var1 in 100ms 500ms 1s 10s 30s 1m 15m
do
        for var2 in 0.5 1 5 10 15 50
        do
                for var3 in 1 5 10 25 52 75 100
                do
                         for var4 in 50 100 200 500 1250 1500 2000
                         do
                                ./zenbot.sh sim $ex --poll_trades 100ms --order_poll_time 1000ms --strategy=stddev --period=$var1 --trendtrades_1=$var2 --trendtrades_2=$var3 --min_periods=$var4
echo ./zenbot.sh sim $ex --poll_trades 100ms --order_poll_time 1000ms --strategy=stddev --period=$var1 --trendtrades_1=$var2 --trendtrades_2=$var3 --min_periods=$var4 > stddev_command.txt
 
                        done
                done
        done
done

{  
for sim in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $sim
       done


for i in ./simulations/*.html
echo "<article>"
echo "<header>"
echo "<b><h1>Simulation Result</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat stddev_command.txt) </p>"
link2=$(curl --upload-file $i https:/ /transfer .sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"


if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}


#########      trust_distrust     ##########

for var1 in 10s 30s 1m 2m 5m 10m 15m 30m 1h 
do
        for var2 in 1 5 15 25 52 60 100
        do
                for var3 in 1 2 5 10 20 25 50
                do
                         for var4 in 0 1 2 5 10 20 50
                         do
                                ./zenbot.sh sim $ex --strategy=trust_distrust --period=$var1 --min_periods=$var2 --sell_threshold=$var3 --sell_threshold_max=$var4 --sell_min=$var3 --buy_threshold=$var3 --buy_threshold_max=$var4 --greed=$var4
echo ./zenbot.sh sim $ex --strategy=trust_distrust --period=$var1 --min_periods=$var2 --sell_threshold=$var3 --sell_threshold_max=$var4 --sell_min=$var3 --buy_threshold=$var3 --buy_threshold_max=$var4 --greed=$var4 > trust_distrust_command.txt
 
                        done
                done
        done
done

{  
for sim in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $sim
       done

for i in ./simulations/*.html
echo "<article>"
echo "<header>"
echo "<b><h1>Simulation Result</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat trust_distrust_command.txt) </p>"
link2=$(curl --upload-file $i https: //transfer .sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"
fi

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}

#######     trendline    #########

for var1 in 5s 10s 30s 1m 5m 10m 15m 30m 1h 
do
        for var2 in 5 10 50 100 200 500 1000
        do
                for var3 in 1 3 6 9 12 20 50
                do
                         for var4 in 5 10 25 53 75 100
                         do
                                for var5 in 50 100 250 500 1250 2500 5000
                                do
                                        ./zenbot.sh sim $ex --strategy=trendline --period=$var1 --min_periods=$var5 --trendtrades_1=$var2 --lastpoints=$var3 --avgpoints=$var4
echo ./zenbot.sh sim $ex --strategy=trendline --period=$var1 --min_periods=$var5 --trendtrades_1=$var2 --lastpoints=$var3 --avgpoints=$var4 > trendline_command.txt
  {  
for i in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $i


if [ -e ./simulations/$i ]; then
echo "<article>"
echo "<header>"
echo "<b><h1>$i</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat trendline_command.txt) </p>"
link2=$(curl --upload-file $i https:/ /transfer. sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"
fi

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}

                                done
                        done
                done
        done
done

#########     macd      #######

for var1 in 1m 5m 15m 30m 1h 4h
do
        for var2 in 1 5 15 25 52 60 100
         do
                for var3 in 2 4 8 12 26 30 40 80 100
                 do
                        for var4 in 3 6 9 12 15 20
                         do
                                for var5 in 0 5 10 15
                                 do
                                        ./zenbot.sh sim $ex --strategy=macd --period=$var1 --min_periods=$var2 --ema_short_period=$var3 --ema_long_period=$var3 --signal_period=$var4 --up_trend_threshold=$var5 --down_trend_threshold=$var5 --overbought_rsi_periods=$var2 --overbought_rsi=$var2
echo ./zenbot.sh sim $ex --strategy=macd --period=$var1 --min_periods=$var2 --ema_short_period=$var3 --ema_long_period=$var3 --signal_period=$var4 --up_trend_threshold=$var5 --down_trend_threshold=$var5 --overbought_rsi_periods=$var2 --overbought_rsi=$var2 > macd_command.txt
  {  
for i in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $i


if [ -e ./simulations/$i ]; then
echo "<article>"
echo "<header>"
echo "<b><h1>$i</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat macd_command.txt) </p>"
link2=$(curl --upload-file $i https:// transfer. sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"
fi

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}

                                done
                        done
                done
        done
done

#########     bneural ###########

for var1 in  500ms 1s 5s 10s 30s 1m 10m 30m
do
        for var2 in sigmoid tanh relu
        do
                for var3 in 1 5 10 20 50 80 100
                do
                         for var4 in 1 3 6 9 12 15 20
                         do
                                for var5 in 100 200 500 1000
                                do
                                        for var6 in 0 1 2 3 4 5
                                        do
                                                for var7 in 100 200 500
                                                do
                                                        ./zenbot.sh sim $ex --strategy=neural  --period=$var1 --activation_1_type=$var2 --neurons_1=$var3 --depth=$var4 --selector=$ex --min_periods=$var5 --min_predict=$var3 --momentum=$var6 --decay=$var6 --learns=$var7
echo ./zenbot.sh sim $ex --strategy=neural  --period=$var1 --activation_1_type=$var2 --neurons_1=$var3 --depth=$var4 --selector=$ex --min_periods=$var5 --min_predict=$var3 --momentum=$var6 --decay=$var6 --learns=$var7 > bneural_profit_command.txt
  {  
for i in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $i


if [ -e ./simulations/$i ]; then
echo "<article>"
echo "<header>"
echo "<b><h1>$i</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat bneural_profit_command.txt) </p>"
link2=$(curl --upload-file $i https:// transfer. sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"
fi

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}

                                                done
                                        done
                                done
                        done
                done
        done
done

##########       srsi_macd  ##########

for per1 in 10s 30s 2m 5m 15m 30m 1h 4h
do
        for var2 in 10 20 50 80 100 200 500 600 1000
        do
                for var3 in 1 3 5 10 15
                do
                         for var4 in 1 3 5 7 9 10 20
                         do
                                for var5 in 0 5 10 15 24 25 50
                                do
                                        ./zenbot.sh sim $ex --strategy=srsi_macd --period=$per1 --min_periods=$var2 --rsi_periods=$var3 --srsi_periods=$var3 --srsi_k=$var4 --srsi_d=$var4 --oversold_rsi=$var2 --overbought_rsi=$var2 --ema_short_period=$var5 --ema_long_period=$var2 --signal_period=$var4 --up_trend_threshold=$var5 --down_trend_threshold=$var5
echo ./zenbot.sh sim $ex --strategy=srsi_macd --period=$per1 --min_periods=$var2 --rsi_periods=$var3 --srsi_periods=$var3 --srsi_k=$var4 --srsi_d=$var4 --oversold_rsi=$var2 --overbought_rsi=$var2 --ema_short_period=$var5 --ema_long_period=$var2 --signal_period=$var4 --up_trend_threshold=$var5 --down_trend_threshold=$var5 > srsi_macd_profit_command.txt
  {  
for i in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $i


if [ -e ./simulations/$i ]; then
echo "<article>"
echo "<header>"
echo "<b><h1>$i</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat srsi_macd_profit_command.txt) </p>"
link2=$(curl --upload-file $i htt ps:// transfe r.sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"
fi

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}

                                done
                        done
                done
        done
done

########       ta_macd     ########

for var1 in 30s 1m 5m 10m 15m 30m 1h 4h
do
        for var2 in 1 5 12 20 26 30 52 60 100
        do
                for var3 in 0.001 0.005 0.009 0.01 0.05 0.09 0.1 0.5 1
                do
                         for var4 in 1 2 5 9 10 15 20 30
                         do
                                for var5 in 0 1 5 10
                                do
                                        for var6 in 5 10 25 50 70 80 100
                                        do
                                                ./zenbot.sh sim $ex --strategy=ta_macd --period=$var1 --min_periods=$var2 --ema_short_period=$var2 --ema_long_period=$var2 --signal_period=$var4 --up_trend_threshold=$var5 --down_trend_threshold=$var5 --overbought_rsi_periods=$var6 --overbought_rsi=$var6
echo ./zenbot.sh sim $ex --strategy=ta_macd --period=$var1 --min_periods=$var2 --ema_short_period=$var2 --ema_long_period=$var2 --signal_period=$var4 --up_trend_threshold=$var5 --down_trend_threshold=$var5 --overbought_rsi_periods=$var6 --overbought_rsi=$var6 > ta_macd_profit_command.txt
  {  
for i in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $i


if [ -e ./simulations/$i ]; then
echo "<article>"
echo "<header>"
echo "<b><h1>$i</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat ta_macd_profit_command.txt) </p>"
link2=$(curl --upload-file $i htt ps:/ /transfer. s h/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"
fi

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}

                                        done
                                done
                        done
                done
        done
done

#########     ta_ema    ########

for var1 in 30s 1m 5m 10m 15m 30m 1h 4h
do
        for var2 in 1 5 10 15 20 30 52 60 100
        do
                for var3 in 0 auto
                do
                ./zenbot.sh sim $ex --strategy=ta_ema --period=$var1 --min_periods=$var2 --trend_ema=$var2 --neutral_rate=$var3 --oversold_rsi_periods=$var2 --oversold_rsi=$var2
echo ./zenbot.sh sim $ex --strategy=ta_ema --period=$var1 --min_periods=$var2 --trend_ema=$var2 --neutral_rate=$var3 --oversold_rsi_periods=$var2 --oversold_rsi=$var2 > ta_ema_profit_command.txt
  {  
for i in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $i


if [ -e ./simulations/$i ]; then
echo "<article>"
echo "<header>"
echo "<b><h1>$i</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat ta_ema_profit_command.txt) </p>"
link2=$(curl --upload-file $i http s:// transfer. sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"
fi

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}

                done
        done
done

#########      trend_ema #########

for var1 in 30s 1m 5m 10m 15m 30m 1h 4h
do
        for var2 in 1 5 10 15 20 30 52 60 100
        do
                for var3 in 0 auto
                do
                ./zenbot.sh sim $ex --strategy=trend_ema --period=$var1 --min_periods=$var2 --trend_ema=$var2 --neutral_rate=$var3 --oversold_rsi_periods=$var2 --oversold_rsi=$var2
echo ./zenbot.sh sim $ex --strategy=trend_ema --period=$var1 --min_periods=$var2 --trend_ema=$var2 --neutral_rate=$var3 --oversold_rsi_periods=$var2 --oversold_rsi=$var2 > profit_trend_ema_command.txt
  {  
for i in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $i


if [ -e ./simulations/$i ]; then
echo "<article>"
echo "<header>"
echo "<b><h1>$i</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat profit_trend_ema_command.txt) </p>"
link2=$(curl --upload-file $i http s:/ /transfe r.sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"
fi

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}

                done
        done
done

###########       sar        ########

for var1 in 5s 10s 30ss 1m 2m 5m 10m 30m 1h
do
        for var2 in 5 10 25 52 75 100
        do
                for var3 in 0.009 0.010 0.015 0.050 0.1 1 2
                do
                         for var4 in 0.009 0.05 0.1 0.3 0.5 0.9 1 5 10
                         do
                                ./zenbot.sh sim $ex --strategy=sar --period=$var1 --min_periods=$var2 --sar_af=$var3 --sar_max_af=$var4
echo ./zenbot.sh sim $ex --strategy=sar --period=$var1 --min_periods=$var2 --sar_af=$var3 --sar_max_af=$var4 > profit_sar_command.txt
  {  
for i in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $i


if [ -e ./simulations/$i ]; then
echo "<article>"
echo "<header>"
echo "<b><h1>$i</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat profit_sar_command.txt) </p>"
link2=$(curl --upload-file $i http s:// transfer.nsh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"
fi

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}

                        done
                done
        done
done

########    speed   ########



for var1 in 30s 1m 5m 10m 15m 30m 1h 
do
        for var2 in 1 5 15 25 52 60 100
        do
                for var3 in 100 200 400 800 1200 2600 3000 4000 8000 10000
                do
                         for var4 in 0.5 1 1.6 2 3.2 5
                         do
                                ./zenbot.sh sim $ex --strategy=speed --period=$var1 --min_periods=$var2 --baseline_periods=$var3 --trigger_factor=$var4
echo ./zenbot.sh sim $ex --strategy=speed --period=$var1 --min_periods=$var2 --baseline_periods=$var3 --trigger_factor=$var4 > profit_speed_command.txt
  {  
for i in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $i


if [ -e ./simulations/$i ]; then
echo "<article>"
echo "<header>"
echo "<b><h1>$i</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat profit_speed_command.txt) </p>"
link2=$(curl --upload-file $i https ://transfe r.sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"
fi

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done 
} >> /var/www/html/index.html

                        done
                done
        done
done

}
done &





Şimdi hocam burada ### içinde yazdığım isimler stratejiler. "for var1 in ....." Başlangıç komutunu oluşturmak değişkenlerin seçileceği değerler. "./zenbot.sh sim $ex ......" Başlangıç komutu, scripti "./script.sh poloniex.BTC-USDT" şeklinde çalıştırıyorum. Kombinasyonlardan oluşan herhangi bir kod terminale girince simülasyon başlıyor ama "history" yazınca sadece başlangıç komutu çıkıyor geçmişte.
Her strateji komutunu tekrar "echo "./zenbot.sh sim... "" ile code.txt içine almaya çalıştım ama her seferinde aynı komut çıktı

Bu işlemi vps serverda kullanacağım için apache2 kurup direk sonuçlara bakıyorum, onun için >>/var.../index.html yaptım.
5mb büyük simülasyon sonuç dosylarını siliyorum çünkü vps server hafızası doluyor, onun yerine transfer.sh sitesini kullandım 14 gün bekletiyor.

Benim tek istediğim kombinasyonlarla oluşan başlatma komutunu her seferinde kayıt edip index.html içine yazdırmak.



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 02 Aralık 2017 - 19:02:07

Botun çalılma mantığı ile ilgili bir videom var. Videoda "./zenbot.sh sim.." diye botu başlatmışım, sonuç dosyasıda bir altklasörde tutuluyor.

https://youtu .be/84qzLnKhAbU

mhmtkrktr

for i in ./simulations/*.html #! ??????????????
echo "<article>"
echo "<header>"
echo "<b><h1>Simulation Result</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command:$(cat trust_distrust_command.txt) </p>"
link2=$(curl --upload-file $i https: //transfer .sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"

fi #! ???????????????

Betiğin bu şekilde çalıştığına emin misin? ( #! ?? )
zenbot konusunda fikrim yok. Orasını bilmiyorum ama soruyu bu konudan bağımsız sorma imkanın var mı? Örn: Şuraya bir değer yazıyorum. Bu değeri şurada okumak istiyorum gibi mesela.
Senin anlatmaya çalıştığın yöntemde poloniex.BTC-USDT anladığım kadarıyla zenbot için bir parametre. History de aynı şekilde parametre mi? Yada bunların tutulduğu belirli bir alan mı var?
Biraz karışık olmuş gibi geldi bana bu soru ;-)

oktay811

[mention=634002]@mhmtkrktr[/mention]
Hocam şimdi bot simülasyonu bitirdikten sonra bir alt klasöründe sonucu html olarak yazıyor. "for sim in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
        rm $sim
done" bu komut ile sonuçları yani değişim yüzdesi - olmuş html dosyalarını siliyorum, geriye kalanlarıda bahsettiğiniz kod ile index,html içerisine yazdırıyorum. Bana sadece lazım olan her defasında değişen "./zenbot.sh sim......." bu oluşan kod.

Oluşan bu kodu alıp index.html içerisine yazmak istiyorum.

mhmtkrktr

Alıntı Yapgeriye kalanlarıda bahsettiğiniz kod ile index,html içerisine yazdırıyorum.

Benim bahsettiğim yer, işaretlediğim yerlerde kodlama hatası olduğu içindi. for döngüsüne do eklemeden devam etmişsin. Ayrıca koşul başlangıcı olmadan fi ile sonlandırmışsın.

Bunun haricinde ne yaptığını anlamadığım daha bir çok yeri var. Mesela şurada ne oluyor.;
for i in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $i
if [ -e ./simulations/$i ]; then

öncelikle neden kontrol ettiğin dosyalar için source karşılığı olan dot kullandın? (./zenbot hariç)
simulations/*.html içerisinde ne var bilmiyoruz? egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html çıktısı birden çok dosya yolumu veriyor ki for döngüsüne tâbi tutup rm ile bunu siliyorsun? Hadi öyle diyelim, bir üst komutla sildiğin dosya için neden bir altta "eğer bu dosya varsa" diye koşul oluşturuyorsun? Zaten kendin sildirmişsin onu.

Buna benzer yerleri boş verip çalışıyormuş gibi bakalım yinede. Zaten soru bunlar değil sanırım. Şunu sorayım öncelikle;
Burada oluşan sim değeri ile,
for sim in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html
burada kullanmak istenilen değer aynı mı?
./zenbot.sh sim ....
Eğer öyle ise bunu şu şekilde değişken olarak belirtmen gerekir ki, "sim" belirli bir kelime yerine for içinde oluşan değer olsun.
./zenbot.sh $sim ....

Tabii "sim" zenbot için farklı bir girdi ise onu bilmiyorum.

Bu konuyu çözmek için biraz zenbot ve coin bilgisine sahip olmak gerekiyor gibi. İşin o tarafını sen biliyorsun. Bu sebeple yapmak istediğini daha bilinir bir konu üzerinden sormanı önermiştim. Bu durumda, bulacağın çözümü kendi betiğinin üzerine uygulamak kalır sadece. Yinede bundan devam etmek istiyorsan, simulations/*.html kaç dosyadır, içeriğinde ne vardır, en azından egrep ile almaya çalıştığın yerlerini paylaş ki, cevap vermek isteyen nereye bakacağını bilsin. 


oktay811

#4
[mention=634022]@mhmtkrktr[/mention] Ben size şöyle anlatayım, o yazıpım uzun kodun birçok yerinde farklı çalışmalar yaptığım için baya saçma şeyler çıkabiliyor :) Ben bu shell script yazma işine 2 haftadır başladım, bazı kaynaklardan baka baka ve arkadaşların yardımıyla yazmaya çalıştım, hata varsa mazur görün. Aşağıda verdiğim tekli strateji üzerinden tartışırsak doğru sonuca vardığımızda sanırım diğerlerinede uygulayabilirim.



for ex in ${@}; do

{
#########    trend_ema    ##########

for var1 in 30s 1m 5m 10m 15m 30m 1h 4h
do
        for var2 in 1 5 10 15 20 30 52 60 100
        do
                for var3 in 0 auto
                do
                      ./zenbot.sh sim $ex --strategy=trend_ema --period=$var1 --min_periods=$var2 --trend_ema=$var2 --neutral_rate=$var3 --oversold_rsi_periods=$var2 --oversold_rsi=$var2
  echo ./zenbot.sh sim $ex --strategy=trend_ema --period=$var1 --min_periods=$var2 --trend_ema=$var2 --neutral_rate=$var3 --oversold_rsi_periods=$var2 --oversold_rsi=$var2 > trend_ema_command.txt

                done
        done
done   
{  
for sim in `egrep -l 'end balance: [0-9\.]+ \((-[^%]+|0.00)%\)' ./simulations/*.html`; do
rm $sim
done

        for i in ./simulations/*.html; do
echo "<article>"
echo "<header>"
echo "<b><h1>Simulations Result</b></h1> "
echo "<p> $(grep -i '"days":' $i) </p>"
echo "<p> $(grep -i '"mode":' $i) </p>"
echo "<p> $(grep -i '"period":' $i) </p>"
echo "<p> $(grep -i '"selector":' $i) </p>"
echo "<b> $(grep -i 'end balance:' $i) </b>"
echo "<p> $(grep -i 'buy hold' $i) </p>"
echo "<p> $(grep -i 'vs. buy hold' $i) </p>"
echo "<p> $(grep -i 'trades over' $i) </p>"
echo "<p> $(grep -i 'win/loss:' $i) </p>"
echo "<p> $(grep -i 'error rate:' $i) </p>"
echo "<p> used command for profit result: $(cat trend_ema_command.txt) </p>"
link2=$(curl --upload-file $i https://transfer.sh/$i & > upload.txt|  grep  -i '$i' upload.txt)
echo "<a href='http://$(ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://')/$i'>Link1</a>;"
echo "<a href='"$link2"'>Link2</a>;"
echo "<p>Results less than 5mb Link1, Link2 for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "</header>"
echo "</article>"

if [ "$(stat -c %s "$i")" -gt 5120 ];
then $(rm $i)

else $(mv $i /var/www/html/)
fi

done >> /var/www/html/index.html
}
done &


Şimdi hocam burada yukarıdaki "for var1 in ...." döngüleriyle aşağıdaki "./zenbot.sh sim $ex ...." komutu yaklaşık 2-3dk (indirdiğin geriye dönük datanın büyüklüğü) teste tabi tutuyor sonra var1 değeri değişince yine aynı şekilde yeni bir teste tabi tutup alt klasörde şu şekilde (ht tp:/ /nfhost.net/~oktay811/sim_result_poloniex.VTC-BTC_171024_191125_UTC.html) .html dosyaları oluşturuyor. Bende "for sim in `egrep...*.html` (oradaki sim ile ./zenbot sim herhangi bir alakası yok, eğer scriot bundan etkilenecekse değiştirebilirim)ile end balance değişimi 0 veya eksi olan sim_result_... dosyalarını siliyorum, böylelikle alttaki "for i in ./similations/*.html" incelemesi için .html kalmıyor. Bunu if ile yapmaya çalıştım ama yapamadım onun için bazı kodlarda fi kalmış :)
yukarıda "for var1 in ...." döngüleri ortasındaki "./zenbot.sh sim..." altında echo ile kullanıcak başlatma komutunu çıkarıp .txt içine yazdırmak istedim, birkaç farklı deneme burdaki gibi aynı mantık ile aynı şekilde yaptım echo ile öyle yapınca üstteki komutun aynısı .txt içine geliyor ama bu scriptte gelmiyor.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 03 Aralık 2017 - 11:20:29

"for i in ./simulations/*.html; do " sonra yazdığım echo ların içine html sayfasında güzel görünsün diye bikaç bişey yerleştirdim. echo $(cat trend_ema_command.txt) bu kod çalışmıyor.

mhmtkrktr

Sorun aslında benim senin gibi o komutların ne çıktı vereceğini bilmiyor olmam ;-) Açıyı değiştirip bir de şu şekilde deneyelim o zaman.
Öncelikle cd ile zenbot.sh nin bulunduğu dizine girelim,
cd /ZenBot/Dizini
Betiğe çalışma izni verelim,
chmod +x zenbot.sh
Komutun oluşturduğu çıktıya bakalım, Sonucu paylaşmanı istiycem.
Not !   $ex değişkeni yerine betiği başlattığın parametre ne ise onu yazman gerekiyor. ( birden fazla ise sadece birini yazman yeterli olacaktır.)
zenbot.sh sim $ex --strategy=trend_ema --period=30s --min_periods=1 --trend_ema=1 --neutral_rate=auto --oversold_rsi_periods=1 --oversold_rsi=1
İstediğin sonuca emsal bir çıktı alabilmişsen, aynı komutu dosyaya yazması için verelim. Aslında doğrudan yazacakmış gibi duruyor ama şansımızı zorlamayalım şimdilik ;-)
echo "$(zenbot.sh sim $ex --strategy=trend_ema --period=30s --min_periods=1 --trend_ema=1 --neutral_rate=auto --oversold_rsi_periods=1 --oversold_rsi=1)" > trend_ema_command.txt
Ardından istediğimiz çıktı dosya içinde varmı kontrol edelim.
cat trend_ema_command.txt

Buraya kadar gelebildiysek, birde şu komutun çıktısına bakalım. Burası için döngüye geçecek bir değer oluşmuyorsa zaten okuma evresine hiç geçemiyor olabilirsin.
!! oluşacak çıktıda özel bir bilgi varsa bunları kaldırabilirsin.
cat simulations/*.html


oktay811

htt ps://youtu. be/_YSPjrerZh4

Kulaklık takılı olduğu için cızırtı var hocam. Videoda herşeyi gösterdim.

oktay811

#7
[mention=634027]@mhmtkrktr[/mention]

kodun son hali: http://nfhost.net/~oktay811/while_vps.sh
Hocam kodu yazmayı bitirdim, fakat sizden son bir yardım daha isteyeceğim. Şimdi bu bot programı her simülasyon sonunda .html oluşturuyor. Bu html dosyasının içinde 'end balance: ......(...%)' diye bir satır var. Ben bunu 'if' koşuluyla kontrol etmek istiyorum.
Örnek:
'end balance: 1000.00000000 (0.00%)'

'end balance: 19.21977440 (-98.08%)'

'end balance: 1135.80974233 (13.58%)'

{
if [ ./simulations/sonuc.html içindeki end balance değeri 1000 den büyük ise]; than
echo 'end balance bigger than 1000'
else
echo ' end balance less than 1000'
fi
}
Gibi bişey yazmak istiyorum.
İlk başta end balance değerini bir a değerine eşitleyip onu [ $a -gt 1000 ] şeklinde yapmaya çalıştım ama yapamadım, olmadı.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 08 Aralık 2017 - 21:53:30

if [ "$(grep -l 'end balance' | sed -n "/end balance: /,/(/p" ./simulations/*.html)" -gt 1000 ];
then
echo ' end balance bigger than 1000 '
else
echo ' end balance less than 1000 '
fi


buda işe yaramadı :(

mhmtkrktr

Birden fazla "end balance:" satırı var ve en büyük olanı bulmak istiyorsun gibi bir soru değilse, şu işini görebilir.

EB=$(grep 'end balance:' /simulations/sonuc.html)
if [[ $(cut -d. -f1 <<<"$EB" | tr -cd [0-9]) -gt 1000 ]]
........



oktay811

#9
Yokarıda verdiğim end balance örnekleri farklı html dosyalarından örnekler, her html dosyasında sadece 1 satır end balance var, ve önce rakam sonrada yüzde olarak yazılıyor.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 09 Aralık 2017 - 00:38:20

Çok teşekkür ediyorum. Okulda bilg mühendisliği bölümündeki arş. görevlisine gittim yardım için linux bilmiyorum dedi, tek yardım alabileceğim yer internet ortamı...

mhmtkrktr

End balance: satırının her zaman kesirli sayı oluşturmayacağını hesaba katarak, aşağıda ki şekilde de kullanabilirsin.

EB=$(grep 'end balance:' /simulations/sonuc.html)
if [[ $(awk '{print $3}' <<<"$EB"|cut -d. -f1) -gt 1000 ]]
........

oktay811

#11
her zaman küsuratlı çıkıyor hocam, verdiğiniz kod işe yaradı teşekkürler.  yalnız aşağıdaki kodu vps de çalıştırınca " syntax error: unexpected end of file " hatası veriyor, neden bilmiyorum 20 defa gözden geçirdim....


#!/bin/bash
read -p 'Exchange? '

#########     macd      #######

while true; do
{
for var1 in 1m 5m 15m 30m 1h 4h
do
        for var2 in 1 5 15 25 52 60 100
         do
                for var3 in 2 4 8 12 26 30 40 80 100
                 do
                        for var4 in 3 6 9 12 15 20
                         do
                                for var5 in 0 5 10 15
                                 do
                                        out_macd=`./zenbot.sh sim $REPLY --strategy=macd --period=$var1 --min_periods=$var2 --ema_short_period=$var3 --ema_long_period=$var3 --signal_period=$var4 --up_trend_threshold=$var5 --down_trend_threshold=$var5 --overbought_rsi_periods=$var2 --overbought_rsi=$var2 | tail -n 1 | cut -d '/' -f 2`

{  

EB4=$(grep 'end balance:' ./simulations/$out_macd)
if [[ $(cut -d. -f1 <<<"$EB4" | tr -cd [0-9]) -gt 1000 ]];
then
echo "<article>"
echo "<header>"
echo "<font size='5' color='green'>Sim Result</color></font> "
echo "<p> $(sed -n "/<pre><code>/,/<\/pre><\/code>/p" ./simulations/$out_macd) </p>"
echo "<p> used command:$(echo "./zenbot.sh sim $REPLY --strategy=macd --period=$var1 --min_periods=$var2 --ema_short_period=$var3 --ema_long_period=$var3 --signal_period=$var4 --up_trend_threshold=$var5 --down_trend_threshold=$var5 --overbought_rsi_periods=$var2 --overbought_rsi=$var2 ") </p>"
link4=$(curl --upload-file ./simulations/$out_macd https://transfer.sh/$out_macd & > upload4.txt |  grep  -i '$out_macd' upload4.txt)
echo "<a href='"$link4"'>Link</a>;"
echo "<p>Link for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "<font size='5' color='red'>The End</color></font>"
echo "</header>"
echo "</article>"
fi
rm ./simulations/$out_macd

} >> /var/www/html/macd_result.html
                                done
                        done
                done
        done
done
}done &

#########     neural ###########

while true; do
{
for var1 in  500ms 1s 5s 10s 30s 1m 10m 30m
do
        for var2 in sigmoid tanh relu
        do
                for var3 in 1 5 10 20 50 80 100
                do
                         for var4 in 1 3 6 9 12 15 20
                         do
                                for var5 in 100 200 500 1000
                                do
                                        for var6 in 0 1 2 3 4 5
                                        do
                                                for var7 in 100 200 500
                                                do
                                                        out_neural=`./zenbot.sh sim $REPLY --strategy=neural  --period=$var1 --activation_1_type=$var2 --neurons_1=$var3 --depth=$var4 --selector=$REPLY --min_periods=$var5 --min_predict=$var3 --momentum=$var6 --decay=$var6 --learns=$var7 | tail -n 1 | cut -d '/' -f 2`

{  

EB5=$(grep 'end balance:' ./simulations/$out_neural)
if [[ $(cut -d. -f1 <<<"$EB5" | tr -cd [0-9]) -gt 1000 ]];
then
echo "<article>"
echo "<header>"
echo  "<font size='5' color='green'>Sim Result</color></font> "
echo "<p> $(sed -n "/<pre><code>/,/<\/pre><\/code>/p" ./simulations/$out_bneural) </p>"
echo "<p> used command:$(echo "./zenbot.sh sim $REPLY --strategy=neural  --period=$var1 --activation_1_type=$var2 --neurons_1=$var3 --depth=$var4 --selector=$REPLY --min_periods=$var5 --min_predict=$var3 --momentum=$var6 --decay=$var6 --learns=$var7 ")</p>"
link5=$(curl --upload-file ./simulations/$out_neural https://transfer.sh/$out_neural & > upload5.txt |  grep  -i '$out_neural' upload5.txt)
echo "<a href='"$link5"'>Link</a>;"
echo "<p>Link for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "<font size='5' color='red'>The End</color></font>"
echo "</header>"
echo "</article>"
fi
rm ./simulations/$out_neural

} >> /var/www/html/neural_result.html

                                                done
                                        done
                                done
                        done
                done
        done
done
} done &

########## srsi_macd ##########

while true; do
{
for per1 in 10s 30s 2m 5m 15m 30m 1h 4h
do
        for var2 in 10 20 50 80 100 200 500 600 1000
        do
                for var3 in 1 3 5 10 15
                do
                         for var4 in 1 3 5 7 9 10 20
                         do
                                for var5 in 0 5 10 15 24 25 50
                                do
                                        out_srsi_macd=`./zenbot.sh sim $REPLY --strategy=srsi_macd --period=$per1 --min_periods=$var2 --rsi_periods=$var3 --srsi_periods=$var3 --srsi_k=$var4 --srsi_d=$var4 --oversold_rsi=$var2 --overbought_rsi=$var2 --ema_short_period=$var5 --ema_long_period=$var2 --signal_period=$var4 --up_trend_threshold=$var5 --down_trend_threshold=$var5 | tail -n 1 | cut -d '/' -f 2`

{  

EB6=$(grep 'end balance:' ./simulations/$out_srsi_macd)
if [[ $(cut -d. -f1 <<<"$EB6" | tr -cd [0-9]) -gt 1000 ]];
then
echo "<article>"
echo "<header>"
echo  "<font size='5' color='green'>Sim Result</color></font>"
echo "<p> $(sed -n "/<pre><code>/,/<\/pre><\/code>/p" ./simulations/$out_srsi_macd) </p>"
echo "<p> used command:$(echo "./zenbot.sh sim $REPLY --strategy=srsi_macd --period=$per1 --min_periods=$var2 --rsi_periods=$var3 --srsi_periods=$var3 --srsi_k=$var4 --srsi_d=$var4 --oversold_rsi=$var2 --overbought_rsi=$var2 --ema_short_period=$var5 --ema_long_period=$var2 --signal_period=$var4 --up_trend_threshold=$var5 --down_trend_threshold=$var5 ") </p>"
link6=$(curl --upload-file ./simulations/$out_srsi_macd https://transfer.sh/$out_srsi_macd & > upload6.txt |  grep  -i '$out_srsi_macd' upload6.txt)
echo "<a href='"$link6"'>Link</a>;"
echo "<p>Link for 14 days upload date: $(date +%d/%m/%Y%t%H:%M:%S)</p>"
echo "<font size='5' color='red'>The End</color></font>"
echo "</header>"
echo "</article>"
fi
rm ./simulations/$out_srsi_macd

} >> /var/www/html/srsi_macd_result.html

                                done
                        done
                done
        done
done
} done &



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 09 Aralık 2017 - 18:08:17

bunun aynısı aynı mantıkta başka bir vps de çalıştırdım gayet düzgün çalışıyor, bunda neden böyle oldu anlamadım. vi editör ile açıp ":set fileformat=unix   :wq "  yaptım yine olmadı :(



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 09 Aralık 2017 - 18:13:39

satırların birinde "}done&" yazmışım ondan çalışmıyormuş :D


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 10 Aralık 2017 - 14:55:48

[mention=634002]@mhmtkrktr[/mention]

Hocam peki ben bu scriptin içine sayaç mantığıyla çalışan bişey, (ardaşık olarak artan) koyabilir miyim?
Yani "while true; do .......(aradaki işlem yapıldığında sayaç 1 artacak).... done &"

Çünkü while yazdıpım için arkaplanda devamlı tekrar ediyor acaba çalışıyormu diye merak ediyorum. Mesela yukarıda verdiğim scriptte 3 tane while ile yazdığım işlem var, herbirinin içine sayacı koyup en alta yine aynı şekilde 30 saniyede bir son sayıyı göstersek: "while true; do echo '....inci backtest yapılıyor' sleep 30 done" şeklinde...



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 10 Aralık 2017 - 15:20:04


counter1=0
while true; do
.....işlemler....
counter1=$((counter1+1))
done &

counter2=0
while true; do
...işlemler...
counter2=$((counter2+1))
done &
.
.
.
while true; do
echo "su anda $counter1 ve $counter2 inci testler yapılıyor.
sleep 1h
done&


Bu işimi görür heralde demi?

oktay811

#12
[mention=634314]@mhmtkrktr[/mention]
hocam kusura bakma serverda şimdi testler devam ediyor bozup tekrar baştan başlatmak istemediğim için soruyorum.

mhmtkrktr

[mention=634374]@oktay811[/mention] her zaman cevap yazma fırsatım olmuyor. Muhtemelen artık denemişsindir. Oluşturduğun yöntemle, olmaması için bir sebep görünmüyor.
Ne iş yaptığını bilmiyorum ama 2 haftalık bash tecrübesi ile kopyala yapıştırla da olsa bu kadarını yapabilmişsen, bence programcılıkla da ilgilenmelisin. ;-)

oktay811

[mention=634442]@mhmtkrktr[/mention]
Hocam çok teşekkür ederim. Kod yazdığımdan beri öğrendiğim her yeni birşey için çok seviniyorum, bu gidişle programlamaya giriş yapacağım heralde :D

Yanlız son yaptıpım sayaç kodunda hepsini yazdım kodu çalışdırdığımda hep 0 olarak gözüküyor. Bakalım sorunu çözebilecekmiyim...

mhmtkrktr

Daha önce paylaştım dediğin videolar açılmıyor. Betiğin nasıl br çıktı oluşturduğu hakkında hâla bir fikrim yok ama iki tane sayaç örneği oluşturdum. Döngü içinde ki diyez işaretini kaldırarak ne yaptığını görebilirisin. İhtiyacına uygunsa kullanırsın.

Sayı aralıklı çıktı oluşturma;
chk_num=10 ## X çalışmada bir ekrana sonuç yaz
cnt=1
rst=0

while true; do
# echo $cnt ; sleep .1
    [[ $rst -ge $chk_num ]] && \
        { rst=0; echo "$cnt defa çalıştı"; }
  : $((cnt++)) ;: $((rst++))
done



Süre (dakika) aralıklı çıktı oluşturma;
chk_sec=1 ## X dakikada bir ekrana sonuç yaz
chk_sec=$(("$chk_sec"*60))
time=$(date +%s)
cnt=1

while true; do
# echo $cnt ; sleep 5
    [[ $(("$(date +%s)"-"$time")) -ge "$chk_sec" ]] && \
        { time=$(date +%s); echo "$cnt defa çalıştı"; }
  : $((cnt++))
done



Şu şekilde kendine uyarlayabilirsin. (Süre aralığı için;)
chk_sec=1 ## x dakikada bir ekrana sonuç yaz
chk_sec=$(("$chk_sec"*60))
time=$(date +%s)
cnt=1

while true; do

# işlemler ................

    [[ $(("$(date +%s)"-"$time")) -ge "$chk_sec" ]] && \
        { time=$(date +%s); echo "$cnt defa çalıştı"; }
  : $((cnt++))
done


chk_sec veya chk_num senin tercihine kalmış.

oktay811

[mention=634472]@mhmtkrktr[/mention]
Yazdığın için çok teşekkür ederim, söylediklerin aklımda daha yeni şeyler açtı zamanla onlara yöneleceğim özellikle son verdiğin örnek :D . Şimdilik kodun son hali linkteki gibi.

http://nfhost.net/~oktay811/while_vps.sh