Ставки Что Проспер API кодекса Пример QuickSnipe.java | фильм в P2P кредитования, одноранговой кредитования, между людьми Кредитование

For my ProsperDays presentation this year I will demonstrating bidding with the Prosper API… I have built a quick and dirty bid snipping java program. (This program is not ready for primetime as bid sniping tool, but it is very close and a very effective demo. The reason I say it is not ready is that it lacks memory, meaning that it would bid on the same listing on subsequent passes.) Для моей ProsperDays презентации в этом году я буду демонстрируя торгов с Проспер API … я построил быструю и грязную snipping ставку Java программы. (Эта программа не готова к PrimeTime как ставка снайперов инструмент, но он очень близок, и очень эффективным демо – . Причина, по которой я говорю это не готов, что ему не хватает памяти, а это означает, что она будет ставка по тому же реклама на последующих проходах.)

I think API bidding is the 1st step in a brave new world of Prosper Lending. For one, it easily allows custom models. Я думаю, API торгов является 1-й шаг в прекрасном новом мире Проспер кредитования. Во-первых, она позволяет легко пользовательских моделей.

So what does this 126 line program do? Так что это 126 строка программой делать?

It queries the active AA-C credit grade listings… If a listing passes my extended credit filters (hard coded) AND the minimum Prosper calculated ROI values (generated by Prosper and the floor is passed in as a parameter) AND the minimum time remaining in the auction it will place a validation test bid or a real bid. Он запросы Активные AA-C кредитного класса списки … Если реклама передает мое кредиты фильтры (в печатном коде), а минимальная Проспер рассчитанные значения рентабельности инвестиций (порожденных процветать и слово передается в качестве параметра) и минимального времени, оставшегося в Аукцион будет место валидации теста ставки или реальные ставки.

What are the extended credit requirements of this code? Какие кредиты требований настоящего Кодекса?Short answer… very tight. Короткий ответ … очень напряженным.

  • 0 current DQ 0 нынешней DQ
  • 0-1 inquires in the last 6 months 0-1 опросы в последние 6 месяцев
  • 0 public records in last 10 years 0 государственных архивов в последние 10 лет
  • 0 DQ in last 7 years 0 DQ в последние 7 лет
  • Bankcard utilization between 3% and 80% Банковская использования от 3% до 80%

Here is the java code (I have contributed this code to the Здесь Java-код (я способствовал этому кодSourceForge Prosper API project SourceForge процветать API проекта). It requires the API classes generated by the Java2WSDL and open source tool by Apache foundation. ). Она требует API классов, порожденных Java2WSDL с открытым исходным инструментом в Apache Foundation.

package prosper.api; Пакет prosper.api;import java.math.BigDecimal; Импорт java.math.BigDecimal;import java.math.MathContext; Импорт java.math.MathContext;import java.rmi.RemoteException; Импорт java.rmi.RemoteException;import java.sql.Timestamp; Импорт java.sql.Timestamp;import java.util.Calendar; Импорт java.util.Calendar;import java.util.Iterator; Импорт java.util.Iterator;import java.util.TreeMap; Импорт java.util.TreeMap;import javax.xml.rpc.ServiceException; Импорт javax.xml.rpc.ServiceException;import com.prosper.services.ProsperAPI.DefinitionResult; Импорт com.prosper.services.ProsperAPI.DefinitionResult;import com.prosper.services.ProsperAPI.Field; Импорт com.prosper.services.ProsperAPI.Field;import com.prosper.services.ProsperAPI.Listing; Импорт com.prosper.services.ProsperAPI.Listing;import com.prosper.services.ProsperAPI.ProsperAPILocator; Импорт com.prosper.services.ProsperAPI.ProsperAPILocator;import com.prosper.services.ProsperAPI.ProsperAPISoap; Импорт com.prosper.services.ProsperAPI.ProsperAPISoap;import com.prosper.services.ProsperAPI.ProsperObject; Импорт com.prosper.services.ProsperAPI.ProsperObject;import com.prosper.services.ProsperAPI.ProsperObjectResult; Импорт com.prosper.services.ProsperAPI.ProsperObjectResult;public class QuickSnipe Public Class QuickSnipe{ (private String m_Username; Строка частных m_Username;private String m_Password; Строка частных m_Password;private double m_MinROI; частные двойных m_MinROI;private int m_HoursToGo; частные INT m_HoursToGo;private boolean m_PlaceBids; частные булевы m_PlaceBids;private ProsperAPISoap m_APISoap; частные ProsperAPISoap m_APISoap;public QuickSnipe(String username, String password, double minROI, int hoursToGo, boolean placeBids) throws ServiceException государственных QuickSnipe (строка имя пользователя, пароль, струны, двойные minROI, INT hoursToGo, булевы placeBids) броски ServiceException{ (m_Username = username; m_Username = Имя пользователя;m_Password = password; m_Password = пароль;m_MinROI = minROI; m_MinROI = minROI;m_PlaceBids = placeBids; m_PlaceBids = placeBids;m_HoursToGo = hoursToGo; m_HoursToGo = hoursToGo;m_APISoap = (new ProsperAPILocator()).getProsperAPISoap(); m_APISoap = (новые ProsperAPILocator ()). getProsperAPISoap ();} )/** / *** @param args * @ Param args*/ * /public static void main(String[] args) общественности статической вакуум основных (Строка [] args){ (if (args.length!=5) если (args.length! = 5){ (System.err.println(“Usage: QuickSnipe username password minROI hoursToGo PlaceBids”); System.err.println ( “Использование: QuickSnipe имя пользователя пароль minROI hoursToGo PlaceBids”);return; возвращение;} )try попробовать{ (QuickSnipe qs = new QuickSnipe(args[0], args[1], Double.parseDouble(args[2]), Integer.parseInt(args[3]), Boolean.parseBoolean(args[4])); QuickSnipe QS = новый QuickSnipe (args [0], args [1], Double.parseDouble (args [2]), Integer.parseInt (args [3]), Boolean.parseBoolean (args [4]));qs.snipe(); qs.snipe ();} )catch (Exception e) улова (Исключение E){ (e.printStackTrace(System.err); e.printStackTrace (System.err);} )} )private void snipe() throws Exception частные недействительным бекас () бросает исключение{ (DefinitionResult res = m_APISoap.login(m_Username,m_Password); DefinitionResult Res = m_APISoap.login (m_Username, m_Password);String token = res.getMessage(); Строка признака = res.getMessage ();ProsperObjectResult por = m_APISoap.query(token, “listing”, getFieldsString(“listing”,true), “status=2 and (creditgrade=7 or creditgrade=6 or creditgrade=5 or creditgrade=4)”); На ProsperObjectResult = m_APISoap.query (того, “реклама”, getFieldsString ( “реклама”, True), “статус = 2 и (creditgrade = 7 или creditgrade = 6 или creditgrade = 5 или creditgrade = 4)”);ProsperObject[] pos = por.getProsperObjects(); ProsperObject [] = Pos por.getProsperObjects ();TreeMap timeLeftListings = new TreeMap(); TreeMap timeLeftListings = новый TreeMap ();for (int i=0; i<pos.length; i++) для (INT I = 0; I <pos.length; I + +){ (Listing l = (Listing)pos[i]; Список L = (листинг) Pos [I];Calendar end = (Calendar)l.getStartDate().clone(); Календарь конца = (календарь) l.getStartDate (). Клон ();end.add(Calendar.HOUR, (l.getDuration()*24)); end.add (Calendar.HOUR, (l.getDuration () * 24));long millisToGo = end.getTimeInMillis() – System.currentTimeMillis(); долго millisToGo = end.getTimeInMillis () – System.currentTimeMillis ();if (l.getNowDelinquent()==0 //my required extended credit and ROI если (l.getNowDelinquent () == 0 / / Моя требуются кредиты и рентабельность инвестиций&& (millisToGo/1000/60/60)<=m_HoursToGo И И (millisToGo/1000/60/60) <= m_HoursToGo&& l.getInquiriesLast6Months()<2 И И l.getInquiriesLast6Months () <2&& l.getPublicRecordsLast10Years()==0 И И l.getPublicRecordsLast10Years () == 0&& l.getDelinquenciesLast7Years()==0 И И l.getDelinquenciesLast7Years () == 0&& l.getBankcardUtilization().doubleValue()<=.8 И И l.getBankcardUtilization (). DoubleValue ()=.03 И И l.getBankcardUtilization (). DoubleValue ()>=. 03&& ((l.getBidMaximumRate().doubleValue()+l.getROINetDefaultRate().doubleValue()+l.getROIInterestAndFeesRate().doubleValue()+l.getROIServicingFeeRate().doubleValue())>=m_MinROI) И И ((l.getBidMaximumRate (). DoubleValue () + l.getROINetDefaultRate (). DoubleValue () + l.getROIInterestAndFeesRate (). DoubleValue () + l.getROIServicingFeeRate (). DoubleValue ())>= m_MinROI) ) { (timeLeftListings.put(end, l); timeLeftListings.put (конец, L);} )} )boolean pause = false; Булевы пауза = ложным;for (Iterator i = timeLeftListings.values().iterator(); i.hasNext(); ) для (Iterator I = timeLeftListings.values (). итератор (); i.hasNext ();){ (if (pause) // you have to pause to avoid bid throttling если (пауза) / / у вас на паузу, чтобы избежать ставку дросселирования{try {Thread.sleep(6000);}catch (Exception ignore){}} ((попробуйте Thread.sleep (6000);) улова (Исключение игнорировать) ())Listing l = i.next(); Список L = i.next ();Timestamp startts = new Timestamp(l.getStartDate().getTimeInMillis()); Времени startts = новом времени (l.getStartDate (). GetTimeInMillis ());Calendar end = (Calendar)l.getStartDate().clone(); Календарь конца = (календарь) l.getStartDate (). Клон ();end.add(Calendar.HOUR, (l.getDuration()*24)); end.add (Calendar.HOUR, (l.getDuration () * 24));Timestamp endts = new Timestamp(end.getTimeInMillis()); Времени endts = новом времени (end.getTimeInMillis ());long hoursToGo = (end.getTimeInMillis() – System.currentTimeMillis())/1000/60/60; долго hoursToGo = (end.getTimeInMillis () – System.currentTimeMillis ()) / 1000/60/60;System.err.println(“\n”+startts+” + “+l.getDuration()+” days = “+endts+” | Hours To Go: “+hoursToGo); System.err.println ( “\ N” startts + + “+” + l.getDuration () + “дней =” + endts + “| Часы пойти:” + hoursToGo);System.err.println(“Bid on Listing: “+l.getListingNumber()+”\nAt Rate: “+(m_MinROI-l.getROINetDefaultRate().doubleValue()-l.getROIInterestAndFeesRate().doubleValue()-l.getROIServicingFeeRate().doubleValue())); System.err.println ( “Ставка на Объявлений:” + l.getListingNumber () + “\ физ Рейтинг:” + (m_MinROI-l.getROINetDefaultRate (). DoubleValue ()-l.getROIInterestAndFeesRate (). DoubleValue ()-L . getROIServicingFeeRate (). doubleValue ()));res = m_APISoap.bid(token, l.getListingNumber(), new BigDecimal(50,new MathContext(4)), new BigDecimal(m_MinROI-l.getROINetDefaultRate().doubleValue()-l.getROIInterestAndFeesRate().doubleValue()-l.getROIServicingFeeRate().doubleValue(),new MathContext(4)), m_PlaceBids); Res = m_APISoap.bid (того, l.getListingNumber (), новые BigDecimal (50, новых MathContext (4)), новый BigDecimal (m_MinROI-l.getROINetDefaultRate (). doubleValue ()-l.getROIInterestAndFeesRate (). doubleValue () -l.getROIServicingFeeRate (). doubleValue (), новые MathContext (4)), m_PlaceBids);pause = true; пауза = TRUE;System.err.println(“Bid Message: “+res.getMessage()); System.err.println ( “Ставка сообщение:” + res.getMessage ());} )m_APISoap.logout(token); m_APISoap.logout (признака);} )private String getFieldsString(String type, boolean authenticated) throws RemoteException Строка частных getFieldsString (строка типа булевых подлинности) броски RemoteException{ (DefinitionResult res = m_APISoap.describe(null, type); DefinitionResult Res = m_APISoap.describe (NULL, типа);Field[] fields = res.getDefinition().getFields(); Полевой [] = областях res.getDefinition (). GetFields ();int count = 0; INT кол = 0;String s=””; Строка S = “”;for (int i=0; i<fields.length; i++) для (INT I = 0; I <fields.length; I + +){ (if (authenticated || !fields[i].isAuthenticated()) если (подлинность | |! полей [I]. isAuthenticated ()){ (if (count!=0) если (кол! = 0){ (s+= ","; S + = "";} )s+= fields[i].getName(); S + = полей [I]. getName ();count++; кол + +;} )} )return s; возвращение с;} )} )If you liked this article, vote for it onЕсли вам понравилась эта статья, голосовать за него наdel.icio.usdel.icio.usandиstumbleuponstumbleupon..

Categories:Категории:

Related ArticlesСтатьи по теме

Related StoresСвязанные магазины

Leave a Reply

Your email address will not be published. Required fields are marked *