Skip to content

Trading ko KR

JustArchi edited this page Dec 24, 2018 · 30 revisions

거래

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


논리ꡬ쑰

ASFλŠ” 주인(Master) ν˜Ήμ€ κ·Έ μ΄μƒμ˜ 봇 μ ‘κ·ΌκΆŒν•œμ„ 가진 μ‚¬μš©μžκ°€ 보낸 λͺ¨λ“  거래λ₯Ό ν•­λͺ©μ— 상관없이 μˆ˜λ½ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•΄μ„œ 봇 μΈμŠ€ν„΄μŠ€μ—μ„œ 농사지은 Steam μΉ΄λ“œλ₯Ό μ‰½κ²Œ κ°€μ Έμ˜¬ 수 있고 봇이 보관함에 가지고 μžˆλŠ” Steam ν•­λͺ©μ„ μ‰½κ²Œ 관리할 수 μžˆμŠ΅λ‹ˆλ‹€.

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

When SteamTradeMatcher is active, ASF will use quite complex algorithm of checking if trade passes STM rules and is at least neutral towards us. The actual logic is following:

  • Reject the trade if we're losing anything but item types specified in our MatchableTypes.
  • Reject the trade if we're not receiving at least the same number of items on per-game and per-type basis.
  • Reject the trade if user asks for special Steam summer/winter sale cards, and has a trade hold.
  • Reject the trade if trade hold duration exceeds MaxTradeHoldDuration global config property.
  • Reject the trade if we don't have MatchEverything set, and it's worse than neutral for us.
  • Accept the trade if we didn't reject it through any of the points above.

It's nice to note that ASF also supports overpaying - the logic will work properly when user is adding something extra to the trade, as long as all above conditions are met.

First 4 reject predicates should be obvious for everyone. The final one includes actual dupes logic which checks current state of our inventory and decides what is the status of the trade.

  • Trade is good if our progress towards set completion advances. A A (before) <-> A B (after)
  • Trade is neutral if our progress towards set completion stays in-tact. A B (before) <-> A C (after)
  • Trade is bad if our progress towards set completion declines. A C (before) <-> A A (after)

STM operates only on good trades, which means that user using STM for dupes matching should always suggest only good trades for us. However, ASF is liberal, and it also accepts neutral trades, because in those trades we're not actually losing anything, so there is no real reason to decline them. This is especially useful for your friends, since they can swap your excessive cards without using STM at all, as long as you're not losing any set progress.

By default ASF will reject bad trades - this is almost always what you want as an user. However, you can optionally enable MatchEverything in your TradingPreferences in order to make ASF accept all dupe trades, including bad ones. This is useful only if you want to run a 1:1 trade bot under your account, as you understand that ASF will no longer help you progress towards badge completion, and make you prone to losing entire finished set for N dupes of the same card. Unless you intentionally want to run a trade bot that is never supposed to finish any set, you don't want to enable this option.

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 might 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, without a requirement of 100 items. This means that, at the minimum you must have Statistics enabled, unrestricted account, ASF 2FA active, public inventory 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 Any (MatchEverything) bots currently available.

  • Each matching is composed of "rounds", with up to 10 being maximum at once.
  • 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 item type and appID it's from) 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.
  • 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.
  • Matching round ends the moment we try to match a total of 40 bots, or when we hit no items to match with consecutive 20 different bots.
  • If last round resulted in at least a single trade being sent, 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 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 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 on any bot that is not set to MatchEverything.

ASF will do 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. Exact algorithm of choosing bots to match is ASF's implementation detail, but right now ASF will tend to favor bots with better diversity of games that their items are from.

MatchActively takes into accounts 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