Skip to content

Trading ko KR

GitHub Action edited this page Nov 18, 2020 · 30 revisions

거래

ASFλŠ” Steam λΉ„-λŒ€ν™”ν˜•(μ˜€ν”„λΌμΈ) 거래λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€. 거래λ₯Ό λ°›λŠ”κ²ƒ(수락/거절)κ³Ό λ³΄λ‚΄λŠ” 것이 μ¦‰μ‹œ κ°€λŠ₯ν•˜κ³ , νŠΉλ³„ν•œ 섀정이 ν•„μš”ν•˜μ§€ μ•Šμ§€λ§Œ λΆ„λͺ…νžˆ μ œν•œλ˜μ§€ μ•Šμ€ Steam 계정이 ν•„μš”ν•©λ‹ˆλ‹€.(μƒμ μ—μ„œ $5λ₯Ό 이미 μ‚¬μš©ν•œ 계정) 거래 λͺ¨λ“ˆμ€ μ œν•œλœ κ³„μ •μ—μ„œλŠ” μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.


논리ꡬ쑰

ASFλŠ” 주인(Master) ν˜Ήμ€ κ·Έ μ΄μƒμ˜ 봇 μ ‘κ·ΌκΆŒν•œμ„ 가진 μ‚¬μš©μžκ°€ 보낸 λͺ¨λ“  거래λ₯Ό ν•­λͺ©μ— 상관없이 μˆ˜λ½ν•©λ‹ˆλ‹€. This allows not only easily looting steam cards farmed by the bot instance, but also allows to easily manage Steam items that bot stashes in the inventory - including those from other games (such as CS:GO).

ASFλŠ” 거래 λͺ¨λ“ˆμ˜ λΈ”λž™λ¦¬μŠ€νŠΈμ— 였λ₯Έ 주인이 μ•„λ‹Œ λͺ¨λ“  μ‚¬μš©μžλ‘œλΆ€ν„°μ˜ 거래 μ œμ•ˆμ„ λ‚΄μš©κ³Ό 상관없이 κ±°μ ˆν•©λ‹ˆλ‹€. λΈ”λž™λ¦¬μŠ€νŠΈλŠ” ν‘œμ€€ 봇이름.db λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯되며 bl, bladd, blrm **λͺ…λ Ήμ–΄**둜 관리할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” Steam이 μ œκ³΅ν•˜λŠ” ν‘œμ€€ μ‚¬μš©μž μ°¨λ‹¨μ˜ λŒ€μ•ˆμœΌλ‘œμ¨ μž‘λ™ν•˜λ―€λ‘œ μ‚¬μš©μ— μ£Όμ˜ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

ASFλŠ” TradingPreferences에 λ΄‡κ±°λž˜μˆ˜λ½μ•ˆν•¨(DontAcceptBotTrades)이 λͺ…μ‹œλ˜μ–΄μžˆμ§€ μ•ŠλŠ” ν•œ 봇 κ°„μ˜ λͺ¨λ“  loot 같은 거래λ₯Ό μˆ˜λ½ν•©λ‹ˆλ‹€. 즉, TradingPreferences의 기본값인 μ—†μŒ(None)은 μœ„μ—μ„œ μ„€λͺ…ν•œλŒ€λ‘œ λ΄‡μ˜ 주인(Master) κΆŒν•œμ„ 가진 μ‚¬μš©μžλ‘œλΆ€ν„°μ˜ 거래λ₯Ό μžλ™μœΌλ‘œ μˆ˜λ½ν•˜λ„λ‘ ν•©λ‹ˆλ‹€. λ˜ν•œ ASF ν”„λ‘œμ„ΈμŠ€λ‘œ μΌμ–΄λ‚˜λŠ” λ‹€λ₯Έ λ΄‡μ˜ κΈ°λΆ€ κ±°λž˜λ„ μžλ™μœΌλ‘œ μˆ˜λ½ν•©λ‹ˆλ‹€. λ‹€λ₯Έ λ΄‡μœΌλ‘œλΆ€ν„°μ˜ κΈ°λΆ€ 거래λ₯Ό λΉ„ν™œμ„±ν™” ν•˜λ €λ©΄ TradingPreferences의 λ΄‡κ±°λž˜μˆ˜λ½μ•ˆν•¨(DontAcceptBotTrades)을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

TradingPreferences에 κΈ°λΆ€μˆ˜λ½(AcceptDonations)을 ν™œμ„±ν™”ν•˜λ©΄ 봇 계정이 μ–΄λ–€ ν•­λͺ©λ„ μžƒμ§€ μ•ŠλŠ” κΈ°λΆ€ 거래λ₯Ό μˆ˜λ½ν•  κ²ƒμž…λ‹ˆλ‹€. 이 속성값은 봇이 μ•„λ‹Œ κ³„μ •μ—λ§Œ 영ν–₯을 μ£Όκ³ , 봇 계정은 λ΄‡κ±°λž˜μˆ˜λ½μ•ˆν•¨(DontAcceptBotTrades)의 영ν–₯을 λ°›μŠ΅λ‹ˆλ‹€. κΈ°λΆ€μˆ˜λ½(AcceptDonations)은 λ‹€λ₯Έ μ‚¬λžŒμ΄λ‚˜ ASF ν”„λ‘œμ„ΈμŠ€μ— μ°Έμ—¬ν•˜μ§€ μ•Šμ€ λ΄‡μœΌλ‘œλΆ€ν„°μ˜ κΈ°λΆ€λ₯Ό μ‰½κ²Œ μˆ˜λ½ν•˜κ²Œ ν•΄μ€λ‹ˆλ‹€.

μ–΄λ–€ ν•­λͺ©λ„ μžƒμ§€ μ•ŠλŠ” 경우 확인사항이 μ—†μœΌλ―€λ‘œ κΈ°λΆ€μˆ˜λ½(AcceptDonations)은 ASF 2단계 인증 을 ν•„μš”λ‘œ ν•˜μ§€ μ•ŠμŒμ„ μ•Œμ•„λ‘μ‹­μ‹œμ˜€.

TradingPreferencesλ₯Ό μ μ ˆν•˜κ²Œ μˆ˜μ •ν•˜μ—¬ ASF의 거래 κΈ°λŠ₯을 더 μžμ„Έν•˜κ²Œ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. TradingPreferences의 μ£Όμš” κΈ°λŠ₯ 쀑 ν•˜λ‚˜λŠ” SteamTradeMatcher μ˜΅μ…˜μœΌλ‘œ, SteamTradeMatcher 의 곡개 λ¦¬μŠ€νŠΈμ™€ ν˜‘μ—…ν• λ•Œ 특히 μœ μš©ν•œλ°, 배지λ₯Ό μ™„μ„±ν•  수 μžˆλ„λ‘ 거래λ₯Ό λ°›μ•„λ“€μ΄λŠ” ASF의 λ‚΄μž₯ 논리ꡬ쑰λ₯Ό μ‚¬μš©ν•˜λ„λ‘ ν•©λ‹ˆλ‹€. λ¬Όλ‘  SteamTradeMatcher 없이도 κ°€λŠ₯ν•©λ‹ˆλ‹€. μ•„λž˜μ—μ„œ 더 μžμ„Έν•˜κ²Œ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.


SteamTradeMatcher

SteamTradeMatcherκ°€ ν™œμ„±ν™” 되면, ASFλŠ” κ±°λž˜κ°€ STM의 κ·œμΉ™μ„ ν†΅κ³Όν•˜κ³  μš°λ¦¬μ—κ²Œ 적어도 쀑립인지λ₯Ό ν™•μΈν•˜λŠ” κ½€ λ³΅μž‘ν•œ μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•©λ‹ˆλ‹€. μ‹€μ œ λ…Όλ¦¬κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • MatchableTypes에 νŠΉμ •λœ ν•­λͺ©νƒ€μž…이 μ•„λ‹Œ 것을 μžƒκ²Œ 되면 거래λ₯Ό κ±°μ ˆν•©λ‹ˆλ‹€.
  • Reject the trade if we're not receiving at least the same number of items on per-game, per-type and per-rarity basis.
  • μ‚¬μš©μžκ°€ νŠΉλ³„ν•œ Steam 여름/겨울 세일 μΉ΄λ“œλ₯Ό μš”μ²­ν•˜κ³ , 거래 μ§€μ—°μ˜ 영ν–₯을 λ°›λŠ”λ‹€λ©΄ 거래λ₯Ό κ±°μ ˆν•©λ‹ˆλ‹€.
  • 거래 지연 기간이 일반 ν™˜κ²½μ„€μ •μ˜ MaxTradeHoldDuration 속성값을 μ΄ˆκ³Όν•˜λŠ” 경우 거래λ₯Ό κ±°μ ˆν•©λ‹ˆλ‹€.
  • MatchEverything 섀정이 μ•„λ‹ˆλΌλ©΄ 거래λ₯Ό κ±°μ ˆν•©λ‹ˆλ‹€. μ΄λŠ” μš°λ¦¬μ—κ²Œ 쀑립보닀 더 λ‚˜μ©λ‹ˆλ‹€.
  • μœ„μ˜ λ‚΄μš©μœΌλ‘œ κ±°μ ˆλ˜μ§€ μ•Šμ•˜λ‹€λ©΄ 거래λ₯Ό μˆ˜λ½ν•©λ‹ˆλ‹€.

ASFκ°€ 과지급을 지원함을 μ•Œμ•„λ‘μ‹­μ‹œμ˜€. 이 λ…Όλ¦¬κ΅¬μ‘°λŠ” μœ„μ˜ λͺ¨λ“  쑰건을 λ§Œμ‘±ν•˜λ©΄μ„œ μ‚¬μš©μžκ°€ λ­”κ°€λ₯Ό μΆ”κ°€λ‘œ κ±°λž˜μ— μΆ”κ°€ν• λ•Œ μ •ν™•ν•˜κ²Œ λ™μž‘ν•©λ‹ˆλ‹€.

처음 4개의 거절 쑰건은 λͺ¨λ‘μ—κ²Œ λͺ…λ°±ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ§ˆμ§€λ§‰ 거절 쑰건은 우리 λ³΄κ΄€ν•¨μ˜ ν˜„μž¬ μƒνƒœλ₯Ό ν™•μΈν•˜κ³  거래 μƒνƒœλ₯Ό κ²°μ •ν•˜λŠ” μ‹€μ œ 쀑볡 논리ꡬ쑰λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.

  • μ„ΈνŠΈ μ™„μ„± 진행도가 μ¦κ°€ν–ˆλ‹€λ©΄ 이 κ±°λž˜λŠ” μ’‹μŒ(good) μž…λ‹ˆλ‹€. Example: A A (before) <-> A B (거래 ν›„)
  • μ„ΈνŠΈ μ™„μ„± 진행도가 ν˜„μƒνƒœ κ·ΈλŒ€λ‘œλΌλ©΄ 이 κ±°λž˜λŠ” 쀑립(neutral) μž…λ‹ˆλ‹€. Example: A B (before) <-> A C (거래 ν›„)
  • μ„ΈνŠΈ μ™„μ„± 진행도가 κ°μ†Œν–ˆλ‹€λ©΄ 이 κ±°λž˜λŠ” λ‚˜μ¨(bad) μž…λ‹ˆλ‹€. Example: A C (before) <-> A A (거래 ν›„)

STM은 μ’‹μŒ 거래만 μˆ˜ν–‰ν•©λ‹ˆλ‹€. 즉, 쀑볡 맀칭을 μœ„ν•΄ STM을 μ‚¬μš©ν•˜λŠ” μ‚¬μš©μžλŠ” μš°λ¦¬μ—κ²ŒλŠ” 항상 μ’‹μŒ 거래만 μ œμ•ˆν•  κ²ƒμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ ASFλŠ” μžμœ λ―Όμ£Όμ£Όμ˜λΌμ„œ 쀑립 κ±°λž˜λ„ μˆ˜λ½ν•©λ‹ˆλ‹€. 쀑립 κ±°λž˜λŠ” μ‹€μ œλ‘œ μš°λ¦¬κ°€ μžƒλŠ”κ²ƒμ΄ μ—†κΈ° λ•Œλ¬Έμ—, κ±°μ ˆν•  μ΄μœ κ°€ μ—†μŠ΅λ‹ˆλ‹€. μ΄λŠ” λ‹Ήμ‹ μ˜ μΉœκ΅¬λ“€μ—κ²Œ 특히 μœ μš©ν•©λ‹ˆλ‹€. 그듀은 STM을 μ „ν˜€ μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„ λ‹Ήμ‹ μ˜ κ³Όλ„ν•œ μΉ΄λ“œλ₯Ό κ΅ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹Ήμ‹ μ˜ μ„ΈνŠΈ μ™„μ„± 진행도도 떨어지지 μ•ŠμŠ΅λ‹ˆλ‹€.

기본적으둜 ASFλŠ” λ‚˜μ¨ 거래λ₯Ό κ±°μ ˆν•©λ‹ˆλ‹€. μ΄λŠ” μ‚¬μš©μžλΌλ©΄ 거의 항상 μ›ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ, ASFκ°€ λ‚˜μ¨ 거래λ₯Ό ν¬ν•¨ν•œ λͺ¨λ“  쀑볡 거래λ₯Ό 받아듀일 수 μžˆλ„λ‘ TradingPreferences의 MatchEverythingλ₯Ό ν™œμ„±ν™”ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ‹Ήμ‹ μ˜ κ³„μ •μ—μ„œ 1:1 거래 봇을 μ‹€ν–‰ν•˜κ³  싢은 경우 μœ μš©ν•©λ‹ˆλ‹€. λ¬Όλ‘  ASFλŠ” 더이상 λ‹Ήμ‹ μ˜ 배지완성 진행도λ₯Ό 도와주지 μ•Šμ„κ²ƒμ΄κ³ , μ™„μ„±λœ μ„ΈνŠΈλ₯Ό 쀑볡 μΉ΄λ“œ Nμž₯으둜 바꿔버리기 μ‰½κ²Œ 함을 μ•Œκ³  κ³„μ‹­μ‹œμ˜€. μ–΄λ–€ μ„ΈνŠΈλ„ μ ˆλŒ€ μ™„μ„±ν•˜μ§€ λͺ»ν•˜λŠ” 거래 봇을 μΌλΆ€λŸ¬ μ‹€ν–‰ν•˜λ €λŠ” 것이 μ•„λ‹ˆλΌλ©΄, 이 μ˜΅μ…˜μ„ ν™œμ„±ν™”ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.

Regardless of your chosen TradingPreferences, a trade being rejected by ASF doesn't mean that you can't accept it yourself. If you kept default value of BotBehaviour, which doesn't include RejectInvalidTrades, ASF will just ignore those trades - allowing you to decide yourself if you're interested in them or not. Same goes for trades with items outside of MatchableTypes, as well as everything else - the module is supposed to help you automate STM trades, not decide what is a good trade and what is not. The only exception from this rule is when talking about users you blacklisted from trading module using bladd command - trades from those users are immediately rejected regardless of BotBehaviour settings.

It's highly recommended to use ASF 2FA when you enable this option, as this function loses its whole potential if you decide to manually confirm every trade. SteamTradeMatcher will work properly even without ability to confirm trades, but it can generate backlog of confirmations if you're not accepting them in time.


λŠ₯동적 맀칭(MatchActively)

MatchActively setting is extended version of SteamTradeMatcher which in addition to passive matching offered by that option, also includes active matching in which the bot will send trades to other people.

In order to make use of that option, you have a set of requirements to meet. Firstly, you need to enable SteamTradeMatcher (as this feature is extension of that), and ensure that you have MatchEverything disabled (as trading bots never match actively). Afterwards, you have to be eligible for our ASF STM listing, with a bit relaxed requirements. At the minimum you must have Statistics enabled, unrestricted account, ASF 2FA active and at least one valid type in MatchableTypes, such as trading cards.

If you meet all of the requirements above, ASF will periodically communicate with our public ASF STM listing in order to actively match bots that are currently available.

  • Each matching session is composed of "rounds", with 10 being maximum in a single matching session.
  • In each round ASF will fetch our inventory and inventory of selected bots that are listed in order to find MatchableTypes items that can be matched. If match is found, ASF will send and confirm trade offer automatically.
  • Each set (composition of appID, type and rarity of the item) can be matched in a single round only once. This is implemented in order to minimize "items no longer available" and avoid a need to wait for each bot to react before sending all the trades. It's also the primary reason why matching is composed of rounds and not one ongoing process.
  • ASF will send no more than 255 items in a single trade, and no more than 5 trades to a single user in a single round. This is imposed by Steam limits, as well as our own load-balancing.
  • ASF has a hard limit of 40 unique bots that can be matched in a single round, if not cancelled before due to running out of sets to match - in this case, during the next round ASF will try to match bots that weren't matched yet firstly.
  • If ASF determines that the matching should continue, next round starts within 5 minutes since the last one (to add some cooldown and allow all bots to react to our trades), otherwise matching session ends and repeats itself in 8 hours.

This module is supposed to be transparent. Matching will start in approximately 1 hour since ASF start, and will repeat itself each 8 hours (if needed). MatchActively feature is aimed to be used as a long-run, periodical measure to ensure that we're actively heading towards sets completion, but without a short-term time and resources pressure that would happen if this was offered as a command. The target users of this module are primary accounts and "stash" alt accounts, although it can be used by any bot that is not set to MatchEverything.

ASF does its best to minimize the amount of requests and pressure generated by using this option, while at the same time maximizing efficiency of matching to the upper limit. The exact algorithm of choosing the bots to match and otherwise organize the whole process, is ASF's implementation detail and can change in regards to feedback, situation and possible future ideas.

The current version of the algorithm makes ASF prioritize Any bots first, especially those with better diversity of games that their items are from. When running out of Any bots, ASF will move on to the fair ones upon same diversity rule, with those owning excessive number of items further deprioritized due to higher chance of possible inventory-related problems compared to other bots. Regardless of that, ASF will try to match every available bot at least once, to ensure that we're not missing on a possible set progress.

MatchActively takes into account bots that you blacklisted from trading through bladd command and will not attempt to actively match them. This can be used for telling ASF which bots it should never match, even if they'd have potential dupes for us to use.

Clone this wiki locally