| 
  
   Size: 2166 
  
  Comment:  
 | 
  
   Size: 2269 
  
  Comment:  
 | 
| Deletions are marked like this. | Additions are marked like this. | 
| Line 1: | Line 1: | 
| !NeatPortal's Market Trading Script // Simple Trading Script v0.05 (c) 2012 NeatPortal.com // WARNING: Requires version 2718+ to work properly  | 
 {{{ // STS v0.09a - Smart Trading Script (c) 2012-2013 NeatPortal.com // WARNING: This script requires NEATBOT 2735+ to run  | 
| Line 7: | Line 6: | 
| // Algorithm is simplified, but should work reasonably well // Uncomment to enable auto start //laber autorun  | 
//  // Comment out if you want to disable auto start label autorun // MAX_TRADE = 9999999 // uncomment if you are using 2720-2734 build // ===== OPTIONAL CONFIGURATION PARAMETERS =====  | 
| Line 11: | Line 14: | 
| //        food, wood, stone, iron, gold: extra = [ 10m, 2m, 5m, 2m, 0 ] // How aggressive we want to be (lower number would increase trading gains at the cost of potentially slower trade execution), from 0 to 0.49 aggr = 0.05 // === nothing to configure below this line ===  | 
//       food, wood, stone, iron, gold: extra = [ 1m, 1m, 1m, 1m, 100 ] // How aggressive we want to be (lower number would increase trading gains at the cost of potentially slower trade execution) aggr = 2% // Only trade if we expect this much gain gain = 2% // ===== NOTHING TO CONFIGURE BELOW THIS LINE ===== delay = 10  | 
| Line 18: | Line 27: | 
| comm = 0.005 maxBatch = 9999999  | 
comm = 0.5% | 
| Line 21: | Line 29: | 
| Line 24: | Line 33: | 
| if city.resource[resName].amount > maxRes goto tryother reserved = city.reservedResource resGold = max(reserved.gold + extra[4], (city.resource.gold + reserved.gold + extra[4]) / 2)  | 
|
| Line 31: | Line 38: | 
| resGold = city.reservedResource.gold + extra[4] + max(0, city.resource.gold - city.reservedResource.gold - extra[4]) * 0.8 | |
| Line 32: | Line 40: | 
| if prices[1] / prices[0] < 1.01 goto trynext sellVolume = floor(min(city.resource[resName].amount - reserved[resName] - extra[res], (city.resource.gold - resGold) / prices[3], 1.1 * maxBatch - buyVolume / 10)) if sellVolume <= 0 sellVolume = max(0, floor(min(1, city.resource[resName].amount - reserved[resName] - extra[res], (city.resource.gold - 1) / prices[3], 1.1 * maxBatch - buyVolume / 10))) if sellVolume > 0 execute "sell " + res + " " + min(sellVolume, maxBatch) + " " + prices[1] buyVolume = max(0, floor((city.resource.gold - resGold) / prices[2])) if buyVolume > 0 execute "buy " + res + " " + min(buyVolume, maxBatch) + " " + prices[0] if city.tradesArray.length < 8 if buyVolume + sellVolume > 0 goto trading label tryother sleep 10  | 
canSell = (city.resource[resName].amount - city.reservedResource[resName] - extra[res]) * 0.8 if canSell > 0 if (prices[1] + prices[3]) / prices[2] < (1 + gain) goto trynext sellLimit = (city.resource.gold - resGold) / prices[3] if sellLimit < 1 sellLimit = min(1, (city.resource.gold - 1) / prices[3]) // we are low on gold sellVolume = floor(min(canSell, sellLimit, 1.1 * MAX_TRADE - buyVolume / 10)) if sellVolume > 0 execute "sell " + res + " " + min(sellVolume, MAX_TRADE) + " " + prices[1] buyVolume = max(0, floor(min(maxRes - city.resource[resName].amount, (city.resource.gold - resGold) / prices[2]))) if buyVolume > 0 execute "buy " + res + " " + min(buyVolume, MAX_TRADE) + " " + prices[0] if city.tradesArray.length < 8 if buyVolume + max(0, sellVolume) > 0 goto trading execute "sleep " + delay  | 
| Line 44: | Line 53: | 
| }}} | 
// STS v0.09a - Smart Trading Script (c) 2012-2013 NeatPortal.com // WARNING: This script requires NEATBOT 2735+ to run // // The script tries to gain more resources by using spread between bid and ask prices // // Comment out if you want to disable auto start label autorun // MAX_TRADE = 9999999 // uncomment if you are using 2720-2734 build // ===== OPTIONAL CONFIGURATION PARAMETERS ===== // Extra resources to reserve (in addition to city's reserved resources) // food, wood, stone, iron, gold: extra = [ 1m, 1m, 1m, 1m, 100 ] // How aggressive we want to be (lower number would increase trading gains at the cost of potentially slower trade execution) aggr = 2% // Only trade if we expect this much gain gain = 2% // ===== NOTHING TO CONFIGURE BELOW THIS LINE ===== delay = 10 config trade:0 res = 0 comm = 0.5% maxRes = 990B label nextres if !m_context.marketReady() goto nextres resName = ResourceIntNames[res] buyVolume = 0 label trading if city.tradesArray.length > 8 execute "canceltrade " + city.tradesArray[0].id if city.tradesArray.length > 8 goto trading resGold = city.reservedResource.gold + extra[4] + max(0, city.resource.gold - city.reservedResource.gold - extra[4]) * 0.8 prices = [ Price(res, aggr), Price(res, 1 - aggr), Price(res, aggr) * (1 + comm), Price(res, 1 - aggr) * comm ] canSell = (city.resource[resName].amount - city.reservedResource[resName] - extra[res]) * 0.8 if canSell > 0 if (prices[1] + prices[3]) / prices[2] < (1 + gain) goto trynext sellLimit = (city.resource.gold - resGold) / prices[3] if sellLimit < 1 sellLimit = min(1, (city.resource.gold - 1) / prices[3]) // we are low on gold sellVolume = floor(min(canSell, sellLimit, 1.1 * MAX_TRADE - buyVolume / 10)) if sellVolume > 0 execute "sell " + res + " " + min(sellVolume, MAX_TRADE) + " " + prices[1] buyVolume = max(0, floor(min(maxRes - city.resource[resName].amount, (city.resource.gold - resGold) / prices[2]))) if buyVolume > 0 execute "buy " + res + " " + min(buyVolume, MAX_TRADE) + " " + prices[0] if city.tradesArray.length < 8 if buyVolume + max(0, sellVolume) > 0 goto trading execute "sleep " + delay label trynext res = (res + 1) MOD 4 goto nextres

![[+]](/moin_static/explorer/img/toggle1.png)

![[-]](/moin_static/explorer/img/toggle0.png)
