WORLD TRADE ORGANIZATION Regionala handelsavtal och det multilaterala handelssystemet Redigerat av Rohini Acharya Den här boken behandlar frågor som förhandlas fram i regionala handelsavtal och hur RTA-frågor hänför sig till WTO: s rättsliga ram. Det utgör ett viktigt bidrag till den pågående debatten om WTO: s roll när det gäller att reglera internationell handel och hur WTO-reglerna gäller nya regler som utvecklas av RTA. Medan tidigare arbete har inriktats på undergrupper av RTA, är studierna i denna publikation baserade på vad som förmodligen är den största dataset som hittills använts. Boken undersöker i vilken utsträckning nya regler i RTA: s avviker från regler som WTO-medlemmar har kommit överens om och de potentiella konsekvenserna för parter och icke-parter i RTA. Samarbetat med Cambridge University Press i 2016WORLD TRADE ORGANISATION FÖRSTA WTO: GRUNDLÄGGANDE Principer för handelssystemet WTO-avtalen är långa och komplexa eftersom de är rättsliga texter som täcker ett brett spektrum av aktiviteter. De handlar om: jordbruk, textilier och kläder, bank, telekommunikation, statliga inköp, industristandarder och produktsäkerhet, hygienbestämmelser, immateriella rättigheter och mycket mer. Men ett antal enkla grundläggande principer löper genom alla dessa dokument. Dessa principer är grunden för det multilaterala handelssystemet. En närmare titt på dessa principer: Klicka på för att öppna ett objekt. Ett träd för sidnavigering öppnas här om du aktiverar JavaScript i din webbläsare. 1. Mestbegunstigade (MFN): behandla andra människor lika. Enligt WTO-avtalen kan länder normalt inte diskriminera mellan sina handelspartner. Ge någon någon speciell förmån (till exempel en lägre tullsats för en av sina produkter) och du måste göra samma för alla andra WTO-medlemmar. Denna princip kallas mestbegränsad nation (MFN) behandling (se rutan). Det är så viktigt att det är den första artikeln i Allmänna tull - och handelsavtalet (GATT). som reglerar varuhandeln. MFN är också en prioritet i Allmänna avtalet om handel med tjänster (GATS) (artikel 2) och avtalet om handelsrelaterade aspekter av immateriella rättigheter (TRIPS) (artikel 4), men i varje avtal behandlas principen något annorlunda . Tillsammans omfattar de tre avtalen alla tre huvudområdena för handel som hanteras av WTO. Vissa undantag är tillåtna. Till exempel kan länder inrätta ett frihandelsavtal som endast gäller varor som handlas inom gruppen som diskriminerar varor från utsidan. Eller de kan ge utvecklingsländerna särskild tillgång till sina marknader. Eller ett land kan höja hinder mot produkter som anses vara orättvist handlade från specifika länder. Och i tjänster får länder, i begränsade fall, diskriminera. Men avtalen tillåter endast dessa undantag under strikta förhållanden. I allmänhet betyder MFN att varje gång ett land sänker ett handelshinder eller öppnar en marknad måste den göra det för samma varor eller tjänster från alla sina handelspartner, oavsett om de är rika eller fattiga, svaga eller starka. 2. Nationell behandling: Behandling av utlänningar och lokalbefolkningen lika Importerade och lokalt producerade varor bör behandlas lika minst efter det att utländska varor har kommit in på marknaden. Detsamma bör gälla för utländska och inhemska tjänster samt för utländska och lokala varumärken, upphovsrätt och patent. Denna princip om nationell behandling (som ger andra samma behandling som egna medborgare) återfinns också i alla de tre huvudsakliga WTO-avtalen (artikel 3 i GATT. Artikel 17 i GATS och artikel 3 i TRIPS), även om principen återigen hanteras något annorlunda i var och en av dessa. Nationell behandling gäller endast när en produkt, tjänst eller objekt av immateriella rättigheter har kommit in på marknaden. Därför är tullar vid import inte ett brott mot nationell behandling, även om lokalt producerade produkter inte belastas med motsvarande skatt. Frihandel: gradvis genom förhandlingar tillbaka till toppen Att sänka handelshinder är ett av de mest uppenbara sätten att uppmuntra handel. De berörda hindren är tullar (eller tariffer) och åtgärder som importförbud eller kvoter som selektivt begränsar kvantiteterna. Från tid till annan har även andra problem som byråkrati och växelkurspolitik diskuterats. Sedan GATT-skapelsen 1947-48 har det skett åtta omgångar av handelsförhandlingar. En nionde runda, under Doha Development Agenda, är nu på gång. Först fokuserade de på att sänka tullar (tullar) på importerade varor. Till följd av förhandlingarna hade industriländerna i mitten av 1990-talet sjunkit till mindre än 4 procent av tullsatserna på industrivaror. Men efter 1980-talet hade förhandlingarna utvidgats till att täcka icke-tariffära hinder för varor och till de nya områdena såsom tjänster och immateriella rättigheter. Öppnande marknader kan vara fördelaktiga, men det kräver också justering. WTO-avtalen tillåter länder att gradvis införa förändringar genom progressiv liberalisering. Utvecklingsländerna ges vanligtvis längre tid för att uppfylla sina skyldigheter. Förutsägbarhet: genom bindning och öppenhet bakåt ibland Ibland är det lovande att inte höja ett handelshinder lika viktigt som att sänka en, eftersom löftet ger företagen en tydligare bild av sina framtida möjligheter. Med stabilitet och förutsägbarhet uppmuntras investeringar, jobb skapas och konsumenterna kan fullt ut njuta av fördelarna med konkurrensval och lägre priser. Det multilaterala handelssystemet är ett försök från regeringarna att göra affärsmiljön stabil och förutsägbar. Uruguayrundan ökade bindningar Procenttal av tullar bundna före och efter 1986-94 samtalen (Dessa är tulllinjer, så procentuella viktningar är inte viktiga beroende på volymen eller värdet) I WTO när länderna är överens om att öppna sina marknader för varor eller tjänster , de binder sina åtaganden. För varor är dessa bindningar tak för tulltaxan. Ibland beskattar länder importen till priser som är lägre än de bundna priserna. Ofta är detta fallet i utvecklingsländerna. I industriländerna tenderar de faktiska priserna och de bundna räntorna att vara densamma. Ett land kan ändra sina bindningar, men först efter att ha förhandlat med sina handelspartner, vilket kan betyda att de kompenserar dem för förlust av handel. En av resultaten från Uruguayrundan av multilaterala handelsförhandlingar var att öka mängden handel under bindande åtaganden (se tabell). I jordbruket har 100 av produkterna nu bundna avgifter. Resultatet av allt detta: en väsentligt högre grad av marknadssäkerhet för handlare och investerare. Systemet försöker också förbättra förutsägbarheten och stabiliteten på andra sätt. Ett sätt är att avskräcka från användningen av kvoter och andra åtgärder som används för att fastställa gränser för importmängder som administrerar kvoter kan leda till mer byråkrati och anklagelser om orättvist spel. En annan är att göra ländernas handelsregler så tydliga och offentliga (transparenta) som möjligt. Många WTO-avtal kräver att regeringar offentliggör sina policies och metoder offentligt inom landet eller genom att anmäla WTO. Den regelbundna övervakningen av den nationella handelspolitiken genom översynsmekanismen för handelspolitiken utgör ett ytterligare medel för att uppmuntra insyn både nationellt och på multilateral nivå. WTO beskrivs ibland som en frihandelsinstitution, men det är inte helt korrekt. Systemet tillåter tariffer och, under begränsade omständigheter, andra former av skydd. Mer exakt är det ett system med regler som är avsedda för öppen, rättvis och oförvrängd konkurrens. Reglerna om icke-diskriminerings-MFN och nationell behandling är utformade för att säkerställa rättvisa handelsvillkor. Det är också de som är dumpade (exporterar till låg kostnad för att få marknadsandel) och subventioner. Problemen är komplexa och reglerna försöker fastställa vad som är rättvist eller orättvist, och hur regeringar kan reagera, i synnerhet genom att ta ut ytterligare importtullar beräknade för att kompensera för skador som orsakats av illojal handel. Många av de andra WTO-avtalen syftar till att stödja rättvis konkurrens: inom jordbruk, immateriella rättigheter, tjänster, till exempel. Avtalet om offentlig upphandling (ett plurilateralt avtal eftersom det är undertecknat av endast några WTO-medlemmar) utökar konkurrensreglerna för inköp av tusentals statliga enheter i många länder. Och så vidare. Uppmuntra utveckling och ekonomisk reform tillbaka till toppen WTO-systemet bidrar till utveckling. Å andra sidan behöver utvecklingsländerna flexibilitet i den tid de tar för att genomföra systemavtalen. Och avtalen själva arv de tidigare bestämmelserna i GATT som möjliggör särskilt stöd och handelsmedgivanden för utvecklingsländer. Över tre fjärdedelar av WTO-medlemmar är utvecklingsländer och länder i övergång till marknadsekonomier. Under Uruguayrundans sju och en halv år genomförde över 60 av dessa länder autonoma handelsliberaliseringsprogram. Samtidigt var utvecklingsländer och övergångsekonomier mycket mer aktiva och inflytelserika i Uruguayrundans förhandlingar än i någon tidigare omgång, och de är ännu mer i den nuvarande utvecklingsagendan för Doha. I slutet av Uruguayrundan var utvecklingsländerna beredda att ta på sig de flesta av de skyldigheter som krävs av de utvecklade länderna. Men avtalen gav dem övergångsperioder för att anpassa sig till de mer obekanta och kanske svåra WTO-bestämmelserna, särskilt för de fattigaste, minst utvecklade länderna. Ett ministerbeslut som antogs i slutet av rundan säger att bättre länder bör påskynda genomförandet av åtaganden om marknadstillträde på varor som exporteras av de minst utvecklade länderna och det söker ökat tekniskt bistånd för dem. På senare tid har utvecklade länder började tillåta tullfri och kvotfri import för nästan alla produkter från minst utvecklade länder. I allt detta går WTO och dess medlemmar fortfarande igenom en inlärningsprocess. Den nuvarande utvecklingsagendan för Doha innehåller utvecklingsländer oro över de svårigheter de står inför för att genomföra Uruguayrundans avtal. Handelssystemet bör vara. utan diskriminering bör ett land inte diskriminera mellan sina handelspartner (vilket ger dem lika mest gynnad nation eller MFN-status) och det bör inte diskriminera mellan sina egna och utländska produkter, tjänster eller medborgare (som ger dem nationell behandling) friare hinder som kommer ner genom Förhandlings förutsägbara utländska företag, investerare och regeringar borde vara övertygade om att handelshinder (inklusive tullar och icke-tariffära hinder) inte bör höjas med godtyckliga tullsatser och marknadsåtagande åtaganden är bundna i WTO mer konkurrenskraftiga motverka otillbörliga metoder som exportbidrag och dumpningsprodukter till lägre kostnad för att få marknadsandelar mer fördelaktiga för mindre utvecklade länder, vilket ger dem mer tid att anpassa sig, större flexibilitet och speciella privilegier. Det låter som en motsägelse. Det föreslår särskild behandling, men i WTO betyder det faktiskt att icke-diskriminering behandlar nästan alla lika. Det här är vad som händer. Varje medlem behandlar alla övriga medlemmar lika som mest gynnade handelspartner. Om ett land förbättrar de fördelar som det ger till en handelspartner, måste det ge alla andra WTO-medlemmar samma behandling så att de alla är mest gynnade. MFN-status betyder inte alltid lika behandling. De första bilaterala MFN-fördragen inrättade exklusiva klubbar bland en av landets mest gynnade handelspartner. Enligt GATT och nu WTO är MFN-klubben inte längre exklusiv. MFN-principen säkerställer att varje land behandlar sina över140 medmänniskor lika. Men det finns några undantag. Vilka är de förändringar som har skett sedan Doha Vilken inverkan har de haft på de minst utvecklade länderna och på det inkluderande multilaterala handelssystemet Doha-utvecklingsrundan, som lanserades 2001, har ännu inte kunnat ge väsentliga resultat. Med lilla utsikter till ett genombrott i förhandlingarna definierades följande strategi för Bali: Enades om några så kallade låghängande frukter för att visa att WTO kan nå enighet, åtminstone på vissa frågor och utforska nya och effektivare förhandlingsmekanismer. Dessa två åtgärder syftar till att återuppliva rundan och leda till en lyckad avslutning. Det så kallade lilla paketet består av en överenskommelse om handelslättnad och en överenskommelse om tre jordbruksfrågor och om den så kallade utvecklingsdelen. Det är troligt att en viss överenskommelse som täcker de tre komponenterna är uppnåelig. Att enas om ett litet paket är dock inte tillräckligt för att återuppliva Doha-förhandlingarna. För att rädda det multilaterala systemet är det viktigt att skapa ett trovärdigt sätt att förhandla fram efter förhandlingarna efter Bali. Allt nytt tillvägagångssätt för förhandlingarna måste ta itu med orsakerna till nuvarande dödläget. Stora, snabba och alarmerande förändringar inom och utanför WTO Först och främst har situationen i de minst utvecklade länderna och deras ställning i världen förändrats fundamentalt. Tioåret före Doha var en period av relativ stagnation i de flesta länder. De senaste tio åren har de minst utvecklade länderna upplevt en fortsatt ekonomisk tillväxt och har blivit eftertraktade partner både för sina resurser och som investeringsmål. Denna anmärkningsvärda utveckling har emellertid gjort det svårare för de minst utvecklade länderna att enas om en gemensam ståndpunkt, eftersom deras ekonomier har blivit mer mångsidiga och deras behov har ökat. För det andra förändras organisationen av världens produktionsprocesser, och därmed innehållet i handelsförbindelserna, snabbt. Handel med varor och tjänster ersätts gradvis av handel med uppgifter genom globala värdekedjor (GVC). Värdekedjor behöver vad som kallas djup integration i motsats till endast frihandel. Djup integration kan mycket lättare förhandlas inom en liten och frivillig grupp av länder som delar liknande intressen än med en inkluderande process där någon medlem kan blockera hela processen. Det är således inte förvånande att ramvillkoren för GVC-förhandlingar förhandlas fram i mindre grupper, normalt i förhållande till ett konsumtionscentrum och de relaterade produktionscentra (t. ex. USA med Asien och Latinamerika, EU med Östeuropa och Japan med Asien). För det tredje har det skett en tektonisk förändring av fördelningen av ekonomisk makt och därmed i förhandlingsstyrka inom WTO. Utvecklade länder kan inte längre införa sina lösningar på andra håll i världen. BRICS är nu stora handelsbefogenheter och formidable konkurrenter för de utvecklade länderna. Vad betyder dessa förändringar för Doharundan och WTO Alla dessa förändringar har haft en viktig inverkan på den multilaterala handelsramen och förhandlingsprocessen: Viljan att göra koncessioner för att upprätthålla systemet har minskat Särskilt och differentieringsbehandling måste omdefinieras De olika grupperna måste anpassa sig till den ekonomiska utvecklingen under de senaste tjugo åren. En ny balans mellan rättigheter och skyldigheter bland de stora handelspartnerna måste definieras. Förhandlingsfrågor måste anpassas till kraven på en ständigt föränderlig ekonomisk miljö. Större makter har alternativ sätt att uppnå sina handelsmål: WTO har inte längre monopol att definiera den multilaterala handelsramen. Viktigast, ett gemensamt syfte med förhandlingarna, där varje land ser sitt intresse att göra koncessioner för att få koncessioner, måste inrättas. I de nuvarande förhandlingarna uppfattar vissa länder status quo som tillräckligt och acceptabelt (BRICS), medan andra fruktar att de faktiskt kan förlora i en överenskommelse. En tredje grupp länder (stora makten) är övertygade om att de kan få en mycket bättre affär för sig själva utanför systemet (mega-avtal, EPAS, plurilaterals). I en sådan situation är det inte förvånande att den nödvändiga politiska viljan att komma fram till en överenskommelse helt enkelt inte är att en överenskommelse om ett litet paket inte kommer att räcka för att återuppliva processen. Bali behöver först och främst definiera ett trovärdigt sätt som säkerställer resultat genom att mobilisera alla berörda parters politiska vilja att göra nödvändiga medgivanden. Det finns tre möjliga resultat i Bali: Det finns inget avtal på Bali. I ett sådant fall (lyckligtvis ganska osannolikt) kommer inte bara Doharundan utan även WTO: s förhandlingsfunktion troligtvis att överges till förmån för bilaterala, regionala, plurilaterala och mega-avtal, där utvecklade och nya handelspartier kommer att diktera hur de fungerar av det globala systemet. MUL och andra små ekonomier har mest att förlora i ett sådant scenario. Det finns ett avtal om ett litet paket som inte är trovärdigt, men tillräckligt för att deltagarna låtsas att Doha inte är död - ett scenario som inte är orealistiskt. I ett sådant fall kommer förhandlingarna troligtvis fortsätta officiellt. Stormakten - och deras ekonomiska klientel, som representerar 80-90 procent av världshandeln - kommer dock att lägga energi och resurser i mega-avtal och plurilaterals, där resultaten lättare uppnås. Bali-ministern avslutar med ett litet paket och ett trovärdigt sätt framåt för förhandlingarna. Det kan väl vara det enda sättet att bevara Doharundan och en inkluderande multilateral ram. De minst utvecklade länderna bör sträva efter att göra allt som står i deras makt för att uppnå denna tredje lösning, med tanke på deras grundläggande intresse för ett fungerande inkluderat handelssystem. Vad betyder detta för de minst utvecklade länderna och andra mindre fattigare länder För det första kräver förändringen av den internationella arbetsfördelningen och de globala produktionsprocesserna (GVC) en omprövning av hur de minst utvecklade länderna vill att deras speciella situation ska hanteras. Undantag från regler är inte lösningen. De minst utvecklade länderna måste se till att de regler som överenskommits multilateralt överensstämmer med deras utvecklingsbehov och kan genomföras enligt deras utvecklingsprioriteringar och med hjälp av den utvecklade världen. I detta avseende är handelsavtalet ett mycket bra exempel på hur framtida regler bör förhandlas fram. För det andra måste de minst utvecklade länderna acceptera att alla parter är skyldiga att göra sin del för att komma fram till en överenskommelse. Konceptet om en runda gratis är en illusion. MUL kan överväga att föreslå koncessioner (dvs. reformer) i linje med deras utvecklingsbehov. Detta kräver en mer proaktiv position. För det tredje måste de minst utvecklade länderna erkänna att deras intressen kommer att avvika när förhandlingarna går vidare till specifika koncessioner. De måste hitta sätt att förhandla med varandra för att komma till gemensamma ståndpunkter. Om inte de minst utvecklade länderna har strukturer och förmåga att komma till sådana kompromisser kommer de inte att kunna förhandla proaktivt och begränsas till att reagera (i de flesta fall defensivt) på förslag från sina partner. För det fjärde är de viktigaste intressena för de minst utvecklade länderna i Bali överlevnaden av Doha-förhandlingarna och, ännu viktigare, överlevnaden av ett inkluderande multilateralt system. Innehållet i det lilla paketet är av sekundär betydelse. Som de främsta mottagarna av ett inkluderande multilateralt system borde de minst utvecklade länderna vara entydiga om deras koppling till det multilaterala systemet. För det femte kan de minst utvecklade länderna lägga stor vikt vid vägen framåt efter Bali. De måste ta hänsyn till det faktum att stora befogenheter redan har skiftat intresse för andra handelsforum: mega-avtal, RTA och plurilaterals. De är emellertid medvetna om att politiskt ett inkluderande multilateralt system måste förbli huvudmålet för världsgemenskapen. WTO i Bali måste visa att det multilaterala systemet kan leverera. För det sjätte har systemet inte kunnat leverera och det finns ingen anledning att tro att den kommer att leverera, såvida det inte föreslås väsentliga ändringar i dess funktion. De större krafterna omdefinierar redan ensidigt det sätt som reglerna görs genom mega-avtal och plurilaterals, dvs icke-inkluderande system. Låt det inte vara något tvivel: när väsentligen alla intresserade och intressanta parter deltar i en icke-överenskommelse, kommer andra länder inte att ha något annat val än att följa de regler som definieras eller marginaliseras i världsekonomin. Dessa nya icke-inkluderande tillvägagångssätt är spelväxlare. Utvecklingsfrågor är inte centrala för dessa tillvägagångssätt. Det enda åtagandet är borta och de förhandlade teman kommer att vara de som är av intresse för stormakten, inte för de minst utvecklade länderna. Även de minst utvecklade länderna har rätt att vara emot dessa nya tillvägagångssätt, kan de inte stoppa dem. Om inte de minst utvecklade länderna uppvisar trovärdiga alternativ kommer dessa metoder att användas med eller utan de minst utvecklade länderna. Sjunde LDC måste därför identifiera sätt att kombinera stormakternas berättigade begäran att ha effektiva förhandlingsstrukturer med det legitima målet för de minst utvecklade länderna att upprätthålla ett inkluderande multilateralt system. En sådan konsensus om vägen framåt kan hittas: Å ena sidan har de större makterna ett politiskt intresse att upprätthålla ett inkluderande multilateralt system och bör vara villiga att betala ett visst pris för att behålla det. Å andra sidan vet de minst utvecklade länderna att djupare integrationsavtal mellan en grupp länder som är villiga att göra det inte kan undvikas och därför vara villiga att göra koncessioner för att få dessa avtal till WTO. Åttonde, ett nytt multilateralt handelssystem kan väl grundas på den komparativa fördelen av de två förhandlingsprocesserna, det vill säga fördelen med plurilaterals och frihandelsavtal för att effektivisera förhandlingar om djup integration och fördelarna med att WTO-systemet ingår. Ett eventuellt tillvägagångssätt kanske: att definiera inom ramen för WTO och inklusive de grundläggande principerna alla frihandelsavtal eller plurilaterala överenskommelser bör följas när förhandlingar om exklusiva djupare integrationsavtal acceptera dessa avtal (genom bilaga 4 förfaranden) inom WTO: s rättsliga struktur och överlämna dem till övervakning av WTO. Såligen skulle ett sådant nytt system kräva tid att förhandlas fram och kan verkligen inte vara redo för Bali. En ministerdeklaration i Bali skulle emellertid kunna ge WTO ett mandat att utarbeta ett sådant tillvägagångssätt, som ska överlämnas till en ministerkonferens som ska sammankallas inom ett år. Författare Nicolas Imboden är verkställande direktör för IDEAS-centerPlusilaterala handelsförhandlingar: Supplanting eller komplettering av det multilaterala handelssystemet Under det senaste årtiondet eller mer har mycket bläck spillts ut över huruvida spridningen av frihandelsavtal 1 tjänar som ett steg eller stötande blockera längs vägen mot ytterligare multilateral handelsliberalisering. Men den största delen av den debatten har koncentrerats på konsekvenserna av avtal som är: 1) främst bilaterala 2) om inte bilaterala, främst inom en region och 3) i stort sett liknar WTO: s överenskommelser. Nyligen har en ny trend uppstått, där avtal förhandlas fram som omfattar 1) mer än två eller tre länder 2) medlemskap som inte är strängt regionalt och 3) ämne som går längre än vad som fastställs i WTO-avtalen. Dessa plurilaterala handelsförhandlingar lyfter fram ett antal nya överväganden för det multilaterala handelssystemet. Denna insikt kommer att lyfta fram ett urval av de nyligen genomförda plurilaterala handelsförhandlingarna och bedöma vissa konsekvenser av de föreslagna avtalen för det multilaterala handelssystemet. En ny generation av handelsavtal Samtidigt som WTO-Doha-rundan av handelsförhandlingar har spridit sig på obestämd håll har subsets av WTO-medlemskapet noggrant övervägt, förhandlat fram och till och med slutfört avtal utanför WTO-ramen. Några sådana avtal har varit de typer av bilaterala eller regionala frihandelsavtal som har spridit sig under det senaste decenniet eller längre. Två sådana avtal i ett växande förhandlingsstadium är värda att notera, på grund av de handelsvolymer som skulle påverkas av en framgångsrik slutsats. Den första är det regionala ekonomiska partnerskapet (RCEP), som förhandlas fram av de tio medlemmarna i Sydösteasiatiska Nationen (ASEAN) (Brunei, Kambodja, Indonesien, Laos, Malaysia, Myanmar, Filippinerna, Singapore, Thailand, och Vietnam) plus Australien, Kina, Indien, Japan, Nya Zeeland och Sydkorea. Den andra är det transatlantiska handels - och investeringspartnerskapet (TTIP) som skulle koppla samman Förenta staterna och Europeiska unionen.2 Medan storleken på RCEP och TTIP gör de här avtalen anmärkningsvärda, är andra överenskommelser som är under förhandlingar mer grundläggande eftersom de har flera och geografiskt olika parter samt åtaganden som går utöver WTO-avtalen både i fråga om täckning och omfattning. Några av dessa plurilaterala förhandlingar framhävs nedan. Transatlantiska partnerskapet (TPP) är ett frihandelsavtal som förhandlas fram av elva länder (Australien, Brunei, Kanada, Chile, Malaysia, Mexiko, Nya Zeeland, Peru, Singapore, USA och Vietnam) förhandlingarna denna månad. TPP har kallats ett handelsavtal för tjugoförsta århundradet av Förenta staternas handelsrepresentant3 och andra.4 TPP ses som ett nytt avtal både på grund av dess geografiska mångfald och på grund av dess ambitiösa täckning. Det föreslagna avtalet har sina rötter i det transatlantiska strategiska ekonomiska partnerskapet (även kallat P-4 handelsavtalet) som består av Brunei, Chile, Nya Zeeland och Singapore. P-4-medlemmarna önskade att bilda ett handelsavtal med hög standard som skulle fungera som modell för ett slutgiltigt frihandelsavtal för Asien och Stillahavsområdet, och förbundit sig till full tillgång till marknaden för varor, utan några undantag. TPP-förhandlingarna inleddes med P-4-visionen i åtanke, med deltagarna enades om inga uteslutningar. TPP-partierna förhandlar dock över en rad icke-tariffrelaterade åtaganden som inte ingår i P-4, till exempel discipliner om regelbunden sammanhängning, statligt ägda företag och ökat skydd av immateriella rättigheter. Dessutom kommer dess bindande tvistlösningsmekanism att tillämpas på arbets - och miljöåtaganden. Efter sjutton förhandlingsrundor kvarstår många osäkerheter. Trots den ursprungliga visionen av höga normer och inga undantag, arbetar intressegrupper i Förenta staterna för mjölk - och sockeruteslutningar. Kanada vill skydda sina mjölk - och fjäderfäförsörjningssystem och Japan kommer sannolikt att försöka utesluta ris. Samtidigt är andra deltagare ovilliga att godkänna TRIPS-plus immateriella rättigheter (det vill säga bestämmelser som ger större skydd för immateriella rättigheter än i WTO-avtalet om handelsrelaterade aspekter av immateriella rättigheter (TRIPS)) 5 bland andra bestämmelser , särskilt om fördraget kommer att innefatta undantag eller hinder för marknadstillträdet (t. ex. i form av restriktiva ursprungsregler). Avtal om handel med tjänster Frustrerad med bristen på framsteg mot ytterligare liberalisering av handeln med tjänster inom WTO-ramen förbereder sig WTO-medlemmar6 (och i åtta och sju sju ekonomier, som Europeiska unionen som en deltagare) förhandlingar om nya tjänster avtal med ambitiösa marknadstillträdesförpliktelser avtalet om handel med tjänster (TiSA), även ibland kallat det internationella tjänsteavtalet (ISA) .7 Det är fortfarande avgörande hur TiSA skulle integreras inom WTO, om alls. Ett alternativ skulle vara att behandla det som ett plurilateralt avtal som skulle omfattas av bilaga 4, i enlighet med avtalet om offentlig upphandling.8 Enligt artikel X: 9 i Marrakechavtalet om upprättande av Världshandelsorganisationen 9 skulle detta emellertid kräva att Konsensus godkännande av alla WTO-medlemmar: Ministerkonferensen kan på begäran av ledamöterna i ett handelsavtal besluta enbart med enighet om att lägga till avtalet i bilaga 4. Det verkar osannolikt att alla icke-deltagande utvecklingsländer skulle komma överens om att detta steg. För närvarande planerar ingen av BRICS-länderna (Brasilien, Ryssland, Indien, Kina och Sydafrika) att delta i samtalen och ett antal av dessa länder har uttryckt oro för att multilaterala förhandlingar utanför WTO kan undergräva den multilaterala handeln system.10 En annan möjlighet skulle vara att TiSA skulle integreras som ett protokoll för specialtjänster, i likhet med bilagorna finansiella tjänster och telekommunikationer till Allmänna avtalet om handel med tjänster (GATS). Detta tillvägagångssätt verkar osannolikt, eftersom det skulle kräva att TiSA-parterna ger sina medgivanden på MFN-basis till alla WTO-medlemmar som inte är TiSA. Även om detta kan vara ett kompromissvärde som är värt att göra om TiSA täckte en mycket stor andel av global handel med tjänster, kommer utsikterna att bland annat Kina, Indien och Brasilien att dra nytta av avtalet utan att åta sig några åtaganden, inte troligen att vara en attraktiv alternativ. Alternativt kan förhandlingarna leda till ett avtal om ekonomisk integration utanför WTO-ramen i enlighet med artikel V i GATS (som i likhet med artikel XXIV i Allmänna tull - och handelsavtalet 1994 för handel med varor tillåter WTO-medlemmar att ingå omfattande tjänster frihandelsavtal med en eller flera andra WTO-medlemmar). Även om det här alternativet är lättast att uppnå, skulle det inte uppnå målet att integrera TiSA direkt i WTO. Handelsavtal om varumärkesförfalskning En grupp WTO-medlemmar i huvudsak utvecklat länder har slutfört förhandlingar om ett plurilateralt handelsavtal för varumärkesförfalskning (ACTA). ACTAs signatörer har gått med på att öka skyddet av immateriella rättigheter, med inriktning på varumärkesförfalskning och piratkopiering av upphovsrätt. Det ursprungliga avtalet undertecknades 2011 av Australien, Kanada, Japan, Marocko, Nya Zeeland, Singapore, Sydkorea och USA. År 2012 undertecknade Europeiska unionen och tjugotvå medlemmar, liksom Mexiko. Enligt dess villkor kommer ACTA att träda i kraft när den sjätte undertecknaren ratificerar det, men hittills har endast Japan ratificerat fördraget. Europaparlamentet avböjde att ratificera fördraget genom att för första gången utöva sitt fördrag i Lissabonfördraget för att avslå ett internationellt handelsavtal. 11 Kommer de nya plurilaterala handelsavtalen att leda till fragmentering för det multilaterala handelssystemet eller bana väg framåt Svaret kan vara lite av båda. I händelse av tvistlösning verkar potentialen för fragmentering äkta. Avtalen kan dock väl anspöra WTO-medlemmarna för att uppnå någon form av slutsats mot Doharundan och kan signalera framtiden att komma. Även om kommentatorer tidigare har väckt farhågor över möjligheterna att fatta beslut från frihandelsdomstolar som strider mot rättspraxis från WTO: s tvistlösningspanel och överklagandeorganet, har sådana bekymmer varit i stort sett hypotetiska. Medan teorin i teorin kan försöka lösa en tvist med sin frihandelspartner (och WTO-medlem) genom hänvisning till frihandelsavtalets tvistlösningsmekanism, är sådana klagomål i allmänhet mer vanligt förekommande inför WTO. Även om det endast är möjligt att använda WTO: s tvistlösningsmekanism om den ifrågavarande ärendet uppstår inom ramen för WTO: s överenskomna avtal, innehåller tolv flesta frihandelsavtal åtaganden som överlappar betydligt med de som finns i WTO-avtalen. Om en fråga skulle kunna föras inför WTO: s tvistlösningsmekanism eller WTO: s lagstiftning, verkar WTO-medlemmarna i stor utsträckning föredra WTO. Detta beror troligen på WTO: s omfattande erfarenhet av att lösa medlemmars tvister, den övergripande höga nivån på WTO: s tvistlösningssystem, Appellationsorganets närvaro för att minska möjligheten att ett oskäligt panelbeslut har en varaktig negativ inverkan och bekymmer över att använda en otestad mekanism via FTA. De plurilaterala avtalen som diskuteras ovan har dock en större potential (om de någonsin träder i kraft) för att leda till beslut om tvistlösning som kan överlappa eller till och med kollidera med WTO: s paneler eller överklagandeorganet. Eftersom alla dessa avtal innehåller eller kommer att innehålla innehåll som inte överlappar WTO-avtalen, i den utsträckning tvister uppstod i enlighet med detta nya innehåll, skulle sådana tvister inte kunna väckas inför WTO, eftersom de inte skulle uppstå under de täckta överenskommelser. Det här handlar inte om stor oro för tvister som enbart avser icke-WTO-åtaganden, men kan ge upphov till oro vid tvister som innehåller vissa WTO-överlappande bestämmelser och vissa plurilaterala överenskommelser. Även om det kan vara möjligt att bifurcera tvisten och ta del av den inför WTO och en del av den innan tvistlösningsmekanismen för plurilaterala avtal skulle kunna klara sig, är det bättre att få hela tvisten lösad av tribunalen som fastställs i enlighet med villkor för det plurilaterala avtalet. Språket i inkonsekvent rättspraxis kan således vara mindre teoretiskt när det gäller de nya plurilaterala handelsavtalen än de mer traditionella frihandelsavtal som vi har blivit vana vid. På kort sikt kan de nya plurilaterala avtalen bara hindra framsteg i WTO-förhandlingarna på grund av omläggningen av förhandlingsresurser och uppmärksamhet från Genève. Sådana arrangemang kan emellertid vara de slutliga multilaterala förhandlarna på marknaden. Uruguayrundan avslutades strax efter, och vissa skulle säga att tidsplanen var på grund av att NAFTA-förhandlingarna slutfördes. Vidare har historien visat att multilaterala avtal ofta beror på plurilaterala arrangemang som består av en mindre koalition av de villiga. Låt oss inte glömma att de nuvarande WTO-avtalen om antidumpning, subventioner och utjämningsåtgärder, tekniska handelshinder, importlicenser och tullvärdering allt härrör från plurilaterala avtal. de så kallade GATT-koderna. Även om de nya plurilaterala överenskommelserna täcker nya områden och ger upphov till legitima farhågor mot fragmentering och avvikelse av uppmärksamhet från WTO, kan de också plantera frön för framtida förändringar och tillägg till WTO-avtalen. Meredith Kolsky Lewis, en ASIL-medlem, är docent i juridik och direktör för Canadas US Legal Studies Center vid SUNY Buffalo Law School. Hon är också medlem i fakulteten och biträdande direktören för New Zealand Center för internationell ekonomisk rätt vid Victoria University of Wellington Law School i Wellington, Nya Zeeland. Meredith är medordförande för ASILs Law i Stillahavsområdet Region Interest Group. Hon är också en grundare och medförste vice ordförande i Society of International Economic Law. 1 Sådana avtal kallas också ofta preferenshandelsavtal (PTA) eller regionala handelsavtal (RTA). 2 Se t. ex. Pressmeddelande, Förenta staternas handelsrepresentant, meddelar Obama Administration intentionsavtalet att förhandla om transatlantiska handels - och investeringspartnerskap (20 mars 2013), ustr. govabout-uspress-officepress-releases2013marchadministration-notifies-congress-ttip. 4 Detta har lett forskare att överväga frågan, vad är ett handelsavtal för tjugoförsta århundradet? Se Trans-Stillehavs-partnerskapet: En Quest för ett 2100-talets handelsavtal (CL Lim, Deborah K. Elms, ampere Patrick Low, eds . 2012). 5 Handelsrelaterade aspekter av immateriella rättigheter, 15 april 1994, Marrakechavtalet om upprättande av Världshandelsorganisationen, bilaga 1C, 1869 U. N.T. S. 299, tillgänglig på wto. orgenglishdocselegale27-trips. pdf. 6 Australien, Kanada, Chile, Kinesiska Taipei, Colombia, Costa Rica, Europeiska unionen, Hongkong Kina, Island, Israel, Japan, Korea, Mexiko, Nya Zeeland, Norge, Pakistan, Panama, Peru, Schweiz, Turkiet och Förenta staterna. 9 Marrakeshavtalet om upprättande av Världshandelsorganisationen, 15 april 1994, 1867 U. N.T. S. 154 (1994), tillgänglig på wto. orgenglishdocselegale04-wto. pdf. 10 Formella pluralidala tjänsterförhandlingar kan lanseras i mars. Intl Ctr. för handel och hållbar dev. (20 dec 2012), ictsd. orginewsbridges-africa-review152186. 12 Se Förståelse om regler och förfaranden om tvistlösning art. 3, 15 april 1994, Marrakechavtalet om upprättande av Världshandelsorganisationen, bilaga 2, 1869 U. N.T. S. 401, tillgänglig på wto. orgenglishdocselegale28-dsu. pdf.
Sunday, 10 December 2017
Marknads alternativ binära alternativ
Vad är binära alternativ Ett binärt alternativ frågar en enkel yesno fråga: Om du tror ja, köper du det binära alternativet. Om du tycker nej, säljer du. Hur som helst, ditt pris att köpa eller sälja är mellan 0 och 100. Vad du än betalar är din maximala risk. Du kan inte förlora mer. Håll alternativet till utgången och om du har rätt, får du 100 och din vinst är 100 minus köpeskillingen. Och med Nadex kan du avsluta före utgången för att minska dina förluster eller lås i vinsten du redan har. Det är ganska mycket hur binära alternativ fungerar. Ställ upp dina högtalare och följ vår interaktiva guide Trade Many Markets från One Account Nadex låter dig handla många av de mest omsatta finansiella marknaderna, allt från ett konto: Stock Index Futures The Dow. SampP 500. Nasdaq-100. Russell 2000. FTSE Kina A50. Nikkei 225. FTSE-100. DAX Forex EURUSD, GBPUSD, USDJPY, EURJPY, AUDUSD, USDCAD, GBPJPY, USDCHF, EURGBP, AUDJPY Varor Guld, Silver, Koppar, Råolja, Naturgas, Majs, Sojabönor Ekonomiska händelser Fed Fonder, Arbetslösa fordringar, Lön Enkla steg för att komma igång Senaste Nyheter Snap soars 44 på sin marknadsdebut och har nu större marknadshuvud än Twitter Binära alternativ Daglig granskning av Barry Jenkins. 2017-03-03 Den amerikanska tjänstesektorn utvidgades i januari för 85: e månaden i följd och registrerade 56,5 poäng från 56,6 i föregående månad men lägre än de 57 poäng som hade prognostiserats. Den amerikanska tjänstesektorn beräknas komma upp till 56,6 i februari. Övervaka dollarn för binär optionshandel. Läs mer Dow motsvarar snabbast 1000 poängsteg i historien Binära alternativ Daglig granskning av Barry Jenkins. 2017-03-02 I Storbritannien försvagade PMI till 52,2 poäng i januari och saknade prognoserna för en läsning av 53,9 poäng. Det var den lägsta läsningen sedan augusti 2016. Februari PMI väntas hålla fast vid 52,2. Övervaka pundet för binär optionshandel. Läs mer Välkommen till MarketsWorld - Licensierad och reglerade binära optioner Trading MarketsWorld är din online binära alternativhandel destination. Licensierad och reglerad i Isle of Man, Storbritannien, garanterar säkerheten för ditt konto så att du vet att dina insättningar och eventuella vinster är garanterade. Erbjudande valutahandel, index och råvaruhandel med de högsta utbetalningarna i binäralternativen branschen upp till 90 per handel och det otvistade bästa bonusprogrammet och incitamentprogrammet finns i online binära alternativ och finansiella vadslagning. MarketsWorld har den lägsta minsta insättningen på bara 10. Vi ger också alla kunder tillgång till obegränsade demokonton helt gratis. Se varför MarketsWorld brittisk licensierad och reglerad binär optionsplattform är det varumärke du kan lita på. Världen är din, vad du behöver veta om binära alternativ utanför USA. Binära alternativ är ett enkelt sätt att handla prisfluktuationer på flera globala marknader, men en näringsidkare behöver förstå riskerna och belöningen för dessa ofta missförstådda instrument. Binära alternativ skiljer sig från traditionella alternativ. Om handlas kommer man att finna att dessa alternativ har olika utbetalningar, avgifter och risker, för att inte tala om en helt annan likviditetsstruktur och investeringsprocess. (För relaterad läsning, se: En guide till handel binära alternativ i USA) Binära alternativ som handlas utanför USA är också typiskt strukturerad annorlunda än binärer tillgängliga på amerikanska börser. När man överväger spekulation eller säkring. binära alternativ är ett alternativ, men endast om näringsidkaren fullt ut förstår de två potentiella resultaten av dessa exotiska alternativ. I juni 2013 varnade amerikanska värdepappers - och utbyteskommissionen investerare om de potentiella riskerna med att investera i binära alternativ och debiterade ett cypriotiskt företag med att sälja dem illegalt till amerikanska investerare. Vad är binära alternativ Binära alternativ klassas som exotiska alternativ. men binära filer är extremt enkla att använda och förstår funktionellt. Det vanligaste binära alternativet är ett högt lågt alternativ. Tillhandahållande av tillgång till aktier, index, råvaror och utländsk valuta. ett högt lågt binärt alternativ kallas också ett avkastningsalternativ. Detta beror på att alternativet har en utgångsdatum och även vad som kallas strike-pris. Om en näringsidkare satsar korrekt på marknadens riktning och priset vid tidpunkten för utgången är på rätt sida av lösenpriset, betalas näringsidkaren en fast avkastning oavsett hur mycket instrumentet rörde sig. En näringsidkare som satsar felaktigt på marknadens riktning förlorar sin investering. Om en näringsidkare tror att marknaden stiger, skulle shehe köpa ett samtal. Om näringsidkaren tror att marknaden faller skulle hon köpa en sättning. För ett samtal att tjäna pengar måste priset vara över lösenpriset vid utgången av tiden. För att få tjäna pengar måste priset ligga under lösenpriset vid utgången av tiden. Strike-priset, utgången, utbetalningen och risken redovisas alla vid handelns början. För de flesta höga låga binära alternativen utanför USA är strejkpriset nuvarande pris eller skattesats för den underliggande finansiella produkten, såsom SampP 500-indexet, USD-valutaparet eller ett visst lager. Därför satsar näringsidkaren på huruvida det framtida priset vid utgången blir högre eller lägre än det nuvarande priset. Utländska versus amerikanska binära alternativ Binära alternativ utanför USA har vanligtvis en fast utbetalning och risk, och erbjuds av enskilda mäklare, inte i utbyte. Dessa mäklare gör sina pengar från procentskillnaden mellan vad de betalar ut på att vinna affärer och vad de samlar från att förlora handel. Även om det finns undantag, menas dessa binära alternativ att hållas till utgången i en helt eller inget utbetalningsstruktur. De flesta utländska binära alternativmäklare är inte lagligt tillåtna att begära amerikanska invånare för handelsändamål, såvida inte den här mäklaren är registrerad hos en amerikansk tillsynsorgan såsom SEC eller Commodities Futures Trading Commission. Från och med 2008 började vissa alternativutbyten som Chicago Board Options Exchange (CBOE) notera binära alternativ för amerikanska invånare. SEC reglerar CBOE, vilket ger investerare ökat skydd jämfört med över-the-counter-marknader. Nadex är också en binär alternativutbyte i USA som är föremål för övervakning av CFTC. Dessa alternativ kan handlas när som helst till en kurs baserad på marknadskrafter. Satsen varierar mellan en och 100 baserat på sannolikheten för ett alternativ som slutar in eller ut ur pengarna. Det finns hela tiden full insyn. så en näringsidkare kan avsluta med vinsten eller förlusten som de ser på deras skärm i varje ögonblick. De kan också gå in när som helst eftersom kursen fluktuerar och därigenom kunna göra affärer baserade på olika risk-till-belöningsscenarier. Maximal vinst och förlust är fortfarande känd om näringsidkaren bestämmer sig för att hålla till dess att den löper ut. Eftersom dessa alternativ handlar genom en börs, kräver varje handel en villig köpare och säljare. Utbytena tjänar pengar från en växlingsavgift - för att matcha köpare och säljare - och inte från en binär alternativ handelsförlorare. Exempel på högt binärt alternativ Antag att din analys indikerar att SampP 500 kommer att rallya resten av eftermiddagen, men du är inte säker på hur mycket. Du bestämmer dig för att köpa ett (binärt) köpalternativ på SampP 500-indexet. Antag att indexet är för närvarande på 1800, så genom att köpa ett köpalternativ du satser priset vid utgången kommer att vara över 1.800. Eftersom binära alternativ är tillgängliga på alla möjliga tidsramar - från minuter till månader bort - väljer du en utgångstid (eller datum) som matchar din analys. Du väljer ett alternativ med ett 1 000 strykpris som löper ut 30 minuter från nu. Alternativet betalar dig 70 om SampP 500 är över 1800 vid utgången (30 minuter från nu) om SampP 500 är under 1800 på 30 minuter, kommer du att förlora din investering. Du kan investera nästan vilket som helst belopp, även om det här kommer att variera från mäklare till mäklare. Ofta finns det ett minimum som 10 och ett maximum som 10 000 (kontrollera med mäklaren för specifika investeringsbelopp). Fortsatt med exemplet investerar du 100 i samtalet som löper ut inom 30 minuter. SampP 500-priset vid utgången avgör huruvida du gör eller förlorar pengar. Priset vid utgången kan vara det sista citerade priset. eller (boks) 2. Varje mäklare anger sina egna regler för lösenpris. Anta i så fall det sista citatet på SampP 500 innan utgången var 1.802. Därför gör du 70 vinster (eller 70 av 100) och behåller din ursprungliga 100 investering. Om priset var klart under 1800, skulle du förlora din 100 investering. Om priset hade löpt ut exakt på aktiekursen är det vanligt att näringsidkaren får tillbaka pengarna tillbaka utan vinst eller förlust, men varje mäklare kan ha olika regler eftersom det är en OTC-marknad. Mäklaren överför automatiskt vinst och förlust till och från handelsföretagets konto. Andra typer av binära alternativ Exemplet ovan är ett typiskt högt binärt alternativ - den vanligaste typen av binärt alternativ - utanför USA: s internationella mäklare kommer det vanligtvis att erbjuda flera andra typer av binärer också. Dessa inkluderar binära alternativ med ett tryck, där priset bara behöver röra en viss målnivå en gång före utgången för näringsidkaren att tjäna pengar. Det finns ett mål över och under det nuvarande priset, så handlare kan välja vilket mål de tror kommer att träffas före utgången. Ett binärt alternativ kan göra det möjligt för handlare att välja ett prisklass som tillgången kommer att handla inom tills utgången. Om priset stannar inom det valda intervallet, erhålls en utbetalning. Om priset går utanför det angivna intervallet går investeringen förlorad. Eftersom konkurrensen i binäralternativen ramper upp, erbjuder mäklare allt fler binära alternativprodukter. Även om produktstrukturen kan förändras är risk och belöning alltid känd vid handelns början. Binär alternativ innovation har lett till alternativ som erbjuder 50 till 500 fasta utbetalningar. Detta gör det möjligt för handlare att potentiellt göra mer på en handel än de förlorar - en bättre belöning: riskfaktor - men om ett alternativ erbjuder en 500 utbetalning är det sannolikt strukturerat på så sätt att sannolikheten att vinna utbetalningen är ganska låg. Vissa utländska mäklare tillåter handlare att lämna handel innan det binära alternativet löper ut, men de flesta gör det inte. Att avsluta en handel före utgången resulterar vanligtvis i en lägre utbetalning (specificerad av mäklare) eller liten förlust, men näringsidkaren kommer inte att förlora hela sin investering. Uppsidan och nackdelen Det finns en uppsida till dessa handelsinstrument, men det kräver viss perspektiv. En stor fördel är att risken och belöningen är kända. Det spelar ingen roll hur mycket marknaden går för eller mot näringsidkaren. Det finns bara två resultat: vinn ett fast belopp eller förlora ett fast belopp. Dessutom finns det generellt inga avgifter, t. ex. provisioner, med dessa handelsinstrument (mäklare kan variera). Alternativen är enkla att använda, och det finns bara ett beslut att göra: Är den underliggande tillgången upp och ner? Det finns inga likviditetshinder, eftersom näringsidkaren aldrig äger den underliggande tillgången. och därför kan mäklare erbjuda otaliga träffpriser och utgångsdatum, vilket är attraktivt för en näringsidkare. En slutgiltig fördel är att en näringsidkare får tillgång till flera tillgångsklasser på globala marknader i allmänhet när som helst en marknad är öppen någonstans i världen. Den stora nackdelen med höga låga binära alternativ är att belöningen alltid är lägre än risken. Det innebär att en näringsidkare måste ha rätt en hög andel av tiden för att täcka förluster. Medan utbetalning och risk kommer att fluktuera från mäklare till mäklare och instrument till instrument, förblir en sak konstant: Förlorande av affärer kommer att kosta näringsidkaren mer än hon kan göra på att vinna affärer. Andra typer av binära alternativ (inte högt låga) kan ge utbetalningar där belöningen är potentiellt större än risken. En annan nackdel är att OTC-marknaderna är oreglerade utanför USA och det finns liten övervakning i händelse av en handelsskillnad. Medan mäklare ofta använder en stor extern källa för sina citat, kan handlare fortfarande vara mottagliga för skrupelfria metoder, även om det inte är normen. En annan möjlig oro är att ingen underliggande tillgång ägs, det är helt enkelt en satsning på en underliggande tillgångsriktning. Binära alternativ utanför USA är ett alternativ för spekulation eller säkring men med fördelar och nackdelar. Positiverna inkluderar en känd risk och belöning, inga provisioner, otaliga träffpriser och utgångsdatum, tillgång till flera tillgångsklasser på globala marknader och anpassningsbara investeringsbelopp. Negativen inbegriper ej äganderätt till någon tillgång, lite regleringsövervakning och en vinnande utbetalning som vanligtvis är mindre än förlusten vid att förlora handel när handeln sker med det typiska alternativet med högt lågt binärt värde. Näringsidkare som använder dessa instrument måste ägna stor uppmärksamhet åt sina enskilda mäklareregler, särskilt vad gäller utbetalningar och risker, hur utgångspriserna beräknas och vad som händer om optionen löper ut direkt på aktiekursen. Binära mäklare utanför USA arbetar ofta olagligt om de engagerar amerikanska invånare. Binära alternativ finns också på amerikanska börser. Dessa binärer är typiskt strukturerad ganska annorlunda men har större öppenhet och tillsynsövervakning.
Saturday, 9 December 2017
Trading strategier för amibroker
Backtesting: Tolkning Tidigare Backtesting är en nyckelkomponent i effektiv handelssystemutveckling. Det uppnås genom att rekonstruera med historiska data, som skulle ha inträffat i det förflutna med hjälp av regler definierade av en given strategi. Resultatet erbjuder statistik som kan användas för att mäta strategins effektivitet. Med hjälp av dessa data kan handlare optimera och förbättra sina strategier, hitta tekniska eller teoretiska brister och få förtroende för sin strategi innan de appliceras på de verkliga marknaderna. Den bakomliggande teorin är att varje strategi som fungerade bra i det förflutna sannolikt kommer att fungera bra i framtiden, och omvänt sett är det sannolikt att någon strategi som utförde dåligt i det förflutna sannolikt kommer att fungera dåligt i framtiden. Den här artikeln tar en titt på vilka applikationer som används för att backtest, vilken typ av data som erhålls och hur man använder den Data och verktygen Backtesting kan ge mycket värdefull statistisk återkoppling om ett visst system. Några universella backtesting statistik inkluderar: Nettoresultat eller förlust - Nettoprocent vinst eller förlust. Tidsram - Tidigare datum då testingen inträffade. Universe - Lager som inkluderades i backtest. Volatilitetsåtgärder - Max procent upp och ner. Medeltal - Procentuell genomsnittlig vinst och genomsnittlig förlust, medelstänger hålls. Exponering - Andel av investerat kapital (eller exponerat för marknaden). Förhållanden - vinst-till-förlustförhållande. Årlig avkastning - Procentuell avkastning över ett år. Riskjusterad avkastning - Procentuell avkastning som en funktion av risken. Typiskt kommer backtesting programvara att ha två skärmar som är viktiga. Den första tillåter näringsidkaren att anpassa inställningarna för backtesting. Dessa anpassningar inkluderar allt från tidsperiod till provisionkostnader. Här är ett exempel på en sådan skärm i AmiBroker: Den andra skärmen är den faktiska backtestingresultatrapporten. Här kan du hitta all statistik som nämns ovan. Återigen, här är ett exempel på den här skärmen i AmiBroker: I allmänhet innehåller de flesta handelsprogrammen liknande element. Vissa avancerade program innehåller även extra funktionalitet för automatisk positionering, optimering och andra mer avancerade funktioner. De 10 buden Det finns många faktorer som handlare uppmärksammar när de backtesting handelsstrategier. Här är en lista över de 10 viktigaste sakerna att komma ihåg vid backtesting: Ta hänsyn till de brett marknadstrender inom tidsramen där en given strategi testades. Till exempel, om en strategi bara backtestades 1999-2000, kanske det inte går bra på en björnmarknad. Det är ofta en bra idé att backtest över en lång tidsram som omfattar flera olika typer av marknadsförhållanden. Ta hänsyn till universum där backtesting inträffade. Till exempel, om ett brett marknadssystem testas med ett universum bestående av tekniska lager, kan det misslyckas att fungera bra inom olika sektorer. Som en allmän regel, om en strategi riktar sig mot en viss genre av lager, begränsa universum till den genren, men i alla andra fall behålla ett stort universum för teständamål. Volatilitetsåtgärder är oerhört viktiga att överväga när man utvecklar ett handelssystem. Detta gäller särskilt för hyrda konton, som utsätts för marginalanrop om deras eget kapital sjunker under en viss punkt. Traders bör försöka hålla volatiliteten låg för att minska risken och möjliggöra enklare övergångar in och ut ur ett visst lager. Det genomsnittliga antalet barer som hålls är också mycket viktigt att titta på när man utvecklar ett handelssystem. Även om de flesta backtestingprogrammen innehåller provisionkostnader i de slutliga beräkningarna betyder det inte att du bör ignorera denna statistik. Om möjligt ökar ditt genomsnittliga antal barer som håller på att minska provisionskostnaderna och förbättra din totala avkastning. Exponering är ett dubbelkantigt svärd. Ökad exponering kan leda till högre vinst eller högre förluster, medan minskad exponering innebär lägre vinst eller lägre förluster. Men i allmänhet är det en bra idé att hålla exponeringen under 70 för att minska risken och möjliggöra enklare övergångar in och ut ur ett visst lager. Den genomsnittliga vinstlösningsstatistiken, kombinerad med vinst-till-förlustförhållandet, kan vara användbar för att bestämma optimal positionsstorlek och penninghantering med hjälp av tekniker som Kelly-kriteriet. (Se Money Management Använda Kelly-kriteriet.) Traders kan ta större positioner och minska provisionskostnaderna genom att öka sina genomsnittliga vinster och öka deras vinst-till-förlustförhållande. Årlig avkastning är viktig eftersom den används som ett verktyg för att benchmarka systemets avkastning mot andra investeringsplatser. Det är viktigt att inte bara titta på den totala årliga avkastningen utan också ta hänsyn till ökad eller minskad risk. Detta kan göras genom att titta på den riskjusterade avkastningen, som står för olika riskfaktorer. Innan ett handelssystem antas måste det överträffa alla andra placeringsplatser med lika eller mindre risk. Backtesting anpassning är oerhört viktigt. Många backtesting-applikationer har inmatning för provisionsbelopp, runda (eller fraktionerade) partstorlekar, fältstorlekar, marginalkrav, räntor, antaganden för släppning, positioneringsstorlekar, same-bar exit-regler, (bakåt) stoppinställningar och mycket mer. För att få de mest exakta backtestingresultaten är det viktigt att ställa in dessa inställningar för att efterlikna mäklaren som kommer att användas när systemet går live. Backtesting kan ibland leda till något som kallas överoptimering. Det här är ett villkor där prestanda resultat är så högt anpassat till det förflutna att de inte längre är lika exakta i framtiden. Det är generellt en bra idé att genomföra regler som gäller för alla lager eller en vald uppsättning riktade lager och är inte optimerade i den utsträckning reglerna inte längre är förståeliga av skaparen. Backtesting är inte alltid det mest exakta sättet att mäta effektiviteten hos ett visst handelssystem. Ibland misslyckas strategier som har fungerat bra tidigare i dag. Tidigare resultat är inte en indikation på framtida resultat. Var noga med att handla ett system som har testats framgångsrikt innan du går live för att vara säker på att strategin fortfarande gäller i praktiken. Slutsats Backtesting är en av de viktigaste aspekterna av att utveckla ett handelssystem. Om de skapas och tolkas ordentligt kan det hjälpa handlare att optimera och förbättra sina strategier, hitta några tekniska eller teoretiska brister, samt få förtroende för sin strategi innan de appliceras på den verkliga världsmarknaden. Resources Tradecision (medbeslutande) - High-end Trading System Development AmiBroker (amibroker) - Budget Trading System Development. En ekonomisk teori om totala utgifter i ekonomin och dess effekter på produktion och inflation. Keynesian ekonomi utvecklades. En innehav av en tillgång i en portfölj. En portföljinvestering görs med förväntan på att få en avkastning på den. Detta. Ett förhållande som utvecklats av Jack Treynor som mäter avkastning som förvärvats över det som kunde ha blivit förtjänat på en risklös. Återköp av utestående aktier (återköp) av ett företag för att minska antalet aktier på marknaden. Företag. En skatteåterbäring är en återbetalning av skatter som betalas till en individ eller hushåll när den faktiska skatteskulden är mindre än beloppet. Det monetära värdet av alla färdiga varor och tjänster som produceras inom ett land039s gränsar under en viss tidsperiod. Bakprovning av dina handelsideer En av de mest användbara sakerna du kan göra i analysfönstret är att backtesta din handelsstrategi på historisk data. Detta kan ge dig värdefull inblick i styrkor och svaga punkter i ditt system innan du investerar riktiga pengar. Denna enda AmiBroker-funktionen kan spara mycket pengar för dig. Skriva dina handelsregler Först måste du ha objektiva (eller mekaniska) regler för att komma in och ut ur marknaden. Detta steg är basen för din strategi och du måste tänka på det själv eftersom systemet måste matcha din risk tolerans, portföljstorlek, pengarhanteringsteknik och många andra individuella faktorer. När du har egna regler för handel bör du skriva dem som köp och sälj regler i AmiBroker Formula Lanugage (plus kort och omslag om du vill testa även kort handel). I detta kapitel kommer vi att överväga ett mycket grundläggande glidande medelvärdeöverföringssystem. Systemet skulle köpa stockscontracts när nära pris stiger över 45-dagars exponentiell glidande medelvärde och kommer att sälja stockscontracts när nära pris faller under 45-dagars exponentiell glidande medelvärde. Det exponentiella glidande medlet kan beräknas i AFL med hjälp av den inbyggda funktionen EMA. Allt du behöver göra är att ange inmatnings array och medelvärde, så det 45-dagars exponentiella glidande genomsnittet av slutkurserna kan erhållas med följande uttalande: Den nära identifieraren hänvisar till inbyggd array hållande slutkurs för nu analyserad symbol . För att testa om det närmsta priset passerar över exponentiell glidande medelvärde, använder vi inbyggd korsfunktion: köp kors (nära, ema (nära 45)) Ovanstående uttalande definierar en köphandelregel. Det ger quot1quot eller quottruequot när nära pris korsar över ema (nära, 45). Då kan vi skriva försäljningsregeln som skulle ge quot1quot när motsatt situation händer - nära priskryssningar under ema (nära 45): sälja kors (ema (nära, 45), stäng) Observera att vi använder samma korsfunktion men den motsatta ordningen av argument. Så komplett formel för långa affärer ser så här ut: köp kors (nära, ema (nära 45)) sälj kors (ema (nära 45), stäng) OBS! För att skapa ny formel, vänligen öppna Formelredigeraren med hjälp av Analysis-gtFormula Editor meny, skriv formeln och välj Verktyg-gtSänd till Analys-menyn i Formel-redigeraren För att back-test ditt system klickar du bara på knappen Tillbaka test i fönstret Automatiskt analys. Se till att du har skrivit in den formel som innehåller minst köpa och sälja handelsregler (som visas ovan). När formeln är korrekt börjar AmiBroker analysera dina symboler enligt dina handelsregler och genererar en lista över simulerade affärer. Hela processen är väldigt snabb - du kan tillbaka testa tusentals symboler inom några minuter. Progressfönstret visar uppskattad slutförd tid. Om du vill stoppa processen kan du bara klicka på Avbryt-knappen i fönstret. När processen är klar visas listan över simulerade affärer i den nedre delen av det automatiska analysfönstret. (resultatpanelen). Du kan undersöka när köp och sälj signaler inträffade genom att dubbelklicka på handeln i resultatfönstret. Detta ger dig raka eller ofiltrerade signaler för varje stapel när köp och säljvillkor är uppfyllda. Om du bara vill se enstaka piltangenter (öppnande och stängning av aktuell handel) bör du dubbelklicka på raden medan du håller ned SHIFT-tangenten nedtryckt. Alternativt kan du välja typ av bildskärm genom att välja lämpligt objekt från den snabbmeny som visas när du klickar på resultatrutan med höger musknapp. Förutom resultatlistan kan du få mycket detaljerad statistik över systemets prestanda genom att klicka på knappen Rapport. För mer information om rapportstatistik, kolla in beskrivningsfönsterbeskrivningen. Ändra dina inställningar för bakåtprövning Backtestmotorn i AmiBroker använder vissa fördefinierade värden för att utföra uppgiften, inklusive portföljstorlek, periodicitet (dagligen varje vecka), provisionsbelopp, ränta, maximala förlust - och vinstmålstopp, typ av affärer, prisfält och så på. Alla dessa inställningar kan ändras av användaren med hjälp av inställningsfönstret. Efter att ha ändrat inställningarna, kom ihåg att köra din backtest igen om du vill att resultaten ska synkroniseras med inställningarna. Till exempel, för att backa test på veckobar istället för dagligen klickar du bara på Inställningar-knappen välj Weekly from Periodicity combo box och klicka på OK. Kör sedan din analys genom att klicka på Back test. Reserverade variabla namn I följande tabell visas namnen på reserverade variabler som används av Automatic Analyzer. Betydelsen och exemplen på att använda dem ges senare i detta kapitel. Tillåter kontrollen dollar belopp eller andel av portfölj som investeras i handeln (se förklaringar nedan) Automatisk analys (ny i 3,9) Hittills diskuterade vi ganska enkelt användning av backtestaren. AmiBroker stöder dock mycket mer sofistikerade metoder och begrepp som kommer att diskuteras senare i detta kapitel. Observera att nybörjaren först bör spela lite med de enklare ämnen som beskrivs ovan innan du fortsätter. Så, när du är redo, ta en titt på följande nyligen introducerade funktioner hos back-testeren: a) AFL-script värd för avancerade formelskribenter b) förbättrat stöd för korta affärer c) sättet att styra orderexekveringspriset från script d) olika typer av stopp i back tester e) positionering f) runda parti storlek och tick storlek g) marginal konto h) backtesting futures AFL scripting värd är ett avancerat ämne som är täckt i ett separat dokument tillgängligt här och jag vill inte diskutera det i det här dokumentet. Återstående funktioner är mycket lättare att förstå. I de tidigare versionerna av AmiBroker kunde du bara simulera stop-and-reverse-strategin om du vill back-test-systemet med både långa och korta affärer. När lång position stängdes öppnades en ny kort position omedelbart. Det berodde på att köp och sälja reserverade variabler användes för båda typerna av handel. Nu (med version 3.59 eller högre) finns det separata reserverade variabler för att öppna och stänga långa och korta affärer: buy - quottruequot eller 1 värde öppnas lång handelsförsäljning - quottruequot eller 1 värde stänger lång handel kort - quottruequot eller 1 värde öppnar kort handel - quottruequot eller 1 värde stänger kort handel Som för att back-test korta affärer måste du tilldela korta och täckande variabler. Om du använder stop-and-reverse-system (alltid på marknaden), tilldela du bara sälja till kort och köpa för att täcka kortförsäljningsinköp. Detta simulerar hur pre-3.59-versioner fungerade. Men nu gör AmiBroker dig möjlighet att ha separata handelsregler för att gå länge och för att gå kort som visat i det här enkla exemplet: långa affärer inmatnings - och utträdesregler: köp kors (cci (), 100) sälj kors (100, cci) handlar inmatnings - och utträdesregler: kort kors (-100, cci ()) täckkors (cci (), -100) Observera att i det här exemplet om CCI är mellan -100 och 100 är du borta från marknaden. Kontroller handelspriset AmiBroker erbjuder nu 4 nya reserverade variabler för att specificera det pris som köp, sälja, kort och orderingång utförs. Dessa arrays har följande namn: buyprice, sellprice, shortprice och coverprice. Huvudanvändningen av dessa variabler är att reglera handelspriset: BuyPrice IIF (dayofweek () 1, HIGH, CLOSE) på måndags köp på högt, annars köp på nära sätt Så du kan skriva följande för att simulera verkliga stopporder: BuyStop. Formeln för köpstoppnivå SellStop. Formeln för försäljningsstoppsnivå om köpoptionen (helst vid köpstopp eller lågt som det är högre), när som helst under dagskurserna, ökar över buystop-nivå (highgtbuystop), köper Cross (High, BuyStop) om som helst under dagens priser faller under försäljningsprisnivå Försäljningspriset (Säljpris, Säljstopp) Köppris max (Köpstopp, Låg) Se till att köppriset inte är lägre än Low SellPrice min (SellStop, High) se till att Försäljningspriset är inte högre än Högt Observera att AmiBroker förinställer köppris, försäljningspris, kortpris och täckprissatsvariabler med de värden som definieras i fönstret för systemtestinställningar (visas nedan), så du kan men behöver inte definiera dem i din formel. Om du inte definierar dem fungerar AmiBroker som i de gamla versionerna. Under back-testing kommer AmiBroker att kontrollera om de värden du tilldelade till köpcentret, försäljningspriset, kortpriset, täckpriset passar in i ett högt lågt utbud av given stapel. Om inte, kommer AmiBroker att justera det till högt pris (om prismatrisvärdet är högre än högt) eller till det låga priset (om prismatrisvärdet är lägre än lågt) Resultatmål stannar Som du kan se i bilden ovan, nya inställningar för vinstmålstopp är tillgängliga i fönstret för systemtestinställningar. Resultatmålstopp görs när högpriset för en given dag överstiger stoppnivån som kan ges som procentuell eller punktvis ökning från köpeskillingen. Som standard görs stoppen till det pris du definierar som försäljningsprismatris (för långa transaktioner) eller täckningsprismatris (för korta transaktioner). Detta beteende kan ändras genom att använda quotExit vid stopquot-funktionen. quotExit vid stopquot-funktionen Om du markerar quotExit vid stopquot-rutan i inställningarna stoppas exekveringen vid exakt stoppnivå, dvs om du definierar resultatmål stopp vid 10 ditt stopp och köpeskillingen var 50 stopporder kommer att utföras vid 55 även om Din försäljningsprismatris innehåller olika värde (till exempel stängningskurs på 56). Maximal förlust slutar fungera på ett liknande sätt - de utförs när det låga priset för en given dag sjunker under stoppnivån som kan ges som en procentandel eller punktökning från köpeskillingen. Denna typ av stopp används för att skydda vinsten som den spårar din handel så varje gång ett positionsvärde når en ny hög är bakstoppet placerat på en högre nivå. När vinsten sjunker under den bakre stoppnivån stängs positionen. Denna mekanism illustreras i bilden nedan (10 efterföljande stopp visas): Ett prov på låg nivå implementering av Profit-mål stopp i AFL: Köp Cross (MACD (), Signal ()) för (i 0 I lt BarCount i) if (priceatbuy 0 Köp i) priceatbuy BuyPrice i if (priceatbuy gt 0 Säljpriset 1.1 priceatbuy) Sälj i 1 SäljPris i 1.1 priceatbuy priceatbuy 0 annars Sälj i 0 Detta är en ny funktion i version 3.9. Positionsstorlek i backtester implementeras med hjälp av ny reserverad variabel PositionSize ltsize arraygt Nu kan du styra dollarbelopp eller procentandel av portfölj som investeras i handelspositivt antal definiera (dollar) belopp som investeras i handeln till exempel: PositionSize 1000 investera 1000 i varje handel negativt tal -100 ..- 1 definiera procentandel: -100 ger 100 av nuvarande portföljstorlek, -33 ger 33 av tillgängligt eget kapital till exempel: PositionSize -50 investerar alltid bara hälften av det aktuella kapitalet dynamiskt limeringsexempel: PositionSize - 100 RSI () eftersom RSI varierar från 0..100 det här kommer att resultera i position beroende på RSI-värden - gt låga värden på RSI kommer att resultera i högre andel investerad Om mindre än 100 av tillgängliga pengar investeras så tjänar det återstående beloppet räntan som definieras i inställningarna. Det finns också en ny kryssruta i AA-inställningsfönstret: quotAllow position size shrinkingquot - detta styr hur backtester hanterar situationen när den begärda positionsstorleken (via PositionSize-variabel) överstiger tillgängliga pengar: när denna flagg är markerad placeras positionen med storlek shinkad till tillgänglig kontant om den är avmarkerad är inte positionen inmatad. För att se aktuella positionsstorlekar använd ett nytt rapportläge i AA-inställningsfönstret: quotTrade lista med priser och pos. sizequot För slutet, här är ett exempel på Tharps ATR-baserad positionsstorleksteknik kodad i AFL: Köp ltyour buy formula heregt Sälj 0 säljer bara genom stopp TrailStopAmount 2 ATR (20) Capital 100000 VIKTIGT: Ställ det också i Inställningarna: Initial Equity Risk 0,01Capital PositionSize (RiskTrailStopAmount) BuyPrice ApplyStop (2, TrailStopAmount, 1) Tekniken kan sammanfattas enligt följande: Det totala kapitalet per symbol är 100 000. Vi fastställde risknivån till 1 av totalt eget kapital. Risknivån definieras enligt följande: Om ett eftersläpande stopp på ett 50 lager är till exempel 45 (värdet av två ATR mot positionen) är 5 förlusterna uppdelad i 1000-risken för att ge 200 aktier att köpa. Så är förlustrisken 1000 men fördelningsrisken är 200 aktier x 50share eller 10 000. Så vi tilldelar 10 av kapitalet till inköpet men riskerar bara 1000. (Redigerat utdrag från AmiBroker-postlistan) Rund lotstorlek och kryssstorlek Olika instrument handlas med olika quottrading unitsquot eller quotblocksquot. Till exempel kan du köpa bråkdel av andelar i fond, men du kan inte köpa bruttoantal aktier. Ibland måste du köpa i 10s eller 100s mycket. AmiBroker låter dig nu ange blockstorlek på global och per-symbolnivå. Du kan definiera rundstorlek per symbol på sidan Symbol-gtInformation (bild 3). Värdet på noll betyder att symbolen inte har någon speciell rundstorlek och kommer att använda quotDefault round lot sizequot (global inställning) från sidan Automatiska inställningar (bild 1). Om standardstorleken är inställd till noll betyder det att fraktionerat antal aktierkontrakt är tillåtna. Du kan också styra rundstorlek direkt från din AFL-formel med hjälp av RoundLotSize-reserverad variabel, till exempel: Den här inställningen styr lägsta prisrörelsen för den angivna symbolen. Du kan definiera den på global och per-symbolnivå. Precis som med rundstorlek kan du definiera fältstorlek per symbol på sidan Symbol-gtInformation (bild 3). Värdet på noll instruerar AmiBroker att använda quotdefault tick sizequot definierad på inställningssidan (bild 1) i Automatic Analysis-fönstret. Om standardflikstorlek också sätts till noll betyder det att det inte finns någon minimiprisrörelse. Du kan också ställa in och hämta kryssstorleken även från AFL-formel med hjälp av TickSize reserverad variabel, till exempel: Observera att inställningen för kryssstorlek påverkar ENDAST trades som lämnas av inbyggda stopp och ordet ApplyStop (). Backtestern förutsätter att prisuppgifter följer fältstorlekskrav och det ändrar inte prisuppsättningar som tillhandahålls av användaren. Så att ange fältstorlek är endast meningsfullt om du använder inbyggda stopp så att utgångspunkter genereras till quotallowedquot prisnivåer istället för beräknade. Till exempel i Japan - du kan inte ha fraktionerad delar av yen så att du bör definiera global ticksize till 1, så inbyggd slutar avsluta handel på heltal. Konto marginal inställning definierar procentuell marginal krav för hela kontot. Standardvärdet för Kontantmarginal är 100. Det innebär att du måste tillhandahålla 100 pengar för att komma in i handeln, och det här är hur backtester fungerade i tidigare versioner. Men nu kan du simulera ett marginalkonto. När du köper på marginal lånar du helt enkelt pengar från din mäklare för att köpa aktier. Med gällande regler kan du lägga upp 50 av inköpspriset på det lager du vill köpa och låna den andra hälften från din mäklare. För att simulera detta anger du bara 50 i fältet Kontantmarginal (se bild 1). Om ditt initiala eget kapital är satt till 10000 kommer din köpkraft att vara 20000 och du kommer att kunna gå in i större positioner. Observera att dessa inställningar anger marginen för hela kontot och det är INTE relaterat till futureshandel alls. Med andra ord kan du handla aktier på marginalkonto. quotReverse inmatningssignalen tvingar exitquot-kryssrutan till Backtester-inställningarna. När den är PÅ (standardinställningen) - fungerar backtester som i tidigare versioner och stänger redan öppen positon om ny inmatningssignal i omvänd riktning stöter på. Om denna strömbrytare är AV - även om omvänd signal inträffar håller backtestern nuvarande öppen handel och stänger inte positon tills den vanliga utgången (sälja eller täcka) genereras. Med andra ord när denna brytare är OFF backtester ignorerar korta signaler under långa affärer och ignorerar köpsignaler under korta affärer. quotAllow same bar exit (single bar trade) citationstext till inställningarna När den är PÅ (standardinställningarna) - inmatning och utträde i samma bar är tillåten (som i tidigare versioner) om den är AV - utgången kan hända från och med nästa stapel (det gäller för vanliga signaler, det finns en separat inställning för ApplyStop-genererade utgångar). Om du växlar till OFF kan du reproducera uppförandet av MS-backtester som inte kan hantera samma dagutgångar. quotActivate stannar immediatelyquotThis setting löser problemet med testsystem som går in i handeln på marknaden öppen. I versioner före 4,09 backtester antog du att du kom in i affärer på marknaden nära så inbyggda stopp var aktiverade från nästa dag. Problemet var när du faktiskt definierade öppet pris som handelsinträdespriset - då samma prisutveckling inte utlöst stopparna samma dag. Det fanns några publicerade lösningar baserade på AFL-kod men nu behöver du inte använda dem. Om du bara handlar öppet bör du markera quotActivate stops immediatelyquot (bild 1). Du kanske frågar varför du inte bara kontrollerar buyprice eller shortprice array om den är lika med öppet pris. Olyckligtvis kommer det inte att fungera. Varför helt enkelt för att det finns doji dagar när öppet pris är lika nära och då kommer backtester aldrig veta om handeln ingicks på marknaden öppen eller nära. Så vi behöver verkligen en separat inställning. QUOTE QuickAFLquotQuickAFL (tm) är en funktion som möjliggör snabbare AFL-beräkning under vissa förutsättningar. Ursprungligen (sedan 2003) var den endast tillgänglig för indikatorer, från version 5.14 är den också tillgänglig i automatisk analys. Ursprungligen var tanken att tillåta snabbare diagramrapporteringar genom att endast beräkna AFL-formel för den delen som syns på diagrammet. På samma sätt kan det automatiska analysfönstret använda delmängden av tillgängliga citat för att beräkna AFL, om vald parameter 8220range8221 är mindre än 8220All citationsquot. Detaljerade förklaringar om hur QuickAFL fungerar och hur man kontrollerar det finns i denna Knowledge Base-artikel: amibrokerkb20080703quickafl Observera att det här alternativet inte bara fungerar i backtester utan även i optimeringar, utforskningar och skanningar. AmiBroker Code AmiBroker Code Catalog CodeTraders är nöjd att presentera ny kod för AmiBroker-plattformen, inklusive flera tidsramsstöd. Optimering Iteration Reload Optimering Iteration Reload for Amibroker - Slutligen, ett snabbt och enkelt sätt att ladda om eventuell iteration av någon AmiBroker optimering för backtesting andor chart visualisering. Se vad du behöver se snabbt och återkräva din tid Utmärkt, billiga startpunkter för analys och vidareutveckling: RSI Strategy Suite för Amibroker - RSI Strategy Suite för Amibroker erbjuder en primär RSI-baserad AFL-formel tillsammans med tillbehörsformler , som tillsammans genomför en samling analys, visualisering, presentation och optimeringsteknik för att skapa en komplett lösning för 4-linjers indikatorhandelstransaktion. RSI Strategy Suite är både ett arbetsredskap och en handledning i användningen av AFL som kan tjäna som utgångspunkt för andra projekt. CCI-strategisuccén för Amibroker - CCI-strategisuiten för Amibroker erbjuder en primär CCI-baserad AFL-formel tillsammans med tillbehörsformler som tillsammans genomför en samling analys, visualisering, presentation och optimeringsteknik för att skapa en komplett lösning för 4-linjers indikatorhandel forskning. CCI-strategisuiten är både ett arbetsredskap och en handledning i användningen av AFL som kan tjäna som utgångspunkt för andra projekt. LRS Strategy Suite för Amibroker - LRS Strategy Suite för Amibroker erbjuder en primär LRS-baserad AFL-formel tillsammans med tillbehörsformler som tillsammans genomför en samling analys, visualisering, presentation och optimeringsteknik för att skapa en komplett lösning för 4-linjer indikatorhandel forskning. LRS Strategy Suite är både ett arbetsredskap och en handledning i användningen av AFL som kan tjäna som utgångspunkt för andra projekt. Vilken som helst av ovanstående strategisviter kan användas som en utgångspunkt för att bygga en av de andra. Köp bara en till lägsta kostnad, eller köp mer än en för maximal bekvämlighet och förmåga att omedelbart se skillnaderna i ett filjämförelsesprogram. ZigZag Strategy Suite för Amibroker - ZigZag Strategy Suite för Amibroker erbjuder en primär ZigZag-baserad AFL-formel tillsammans med tillbehörsformler som tillsammans genomför en samling analys, visualisering, presentation och optimeringsteknik för att skapa en komplett lösning för retrospektiv analys av handel eller blekning av Zig-Zags. Momo Strategy Suite, Deluxe TimeFrame Version för Amibroker - Momo Strategy Suite, Deluxe TimeFrame Version för Amibroker erbjuder 3 varianter av sin primära momentbaserade AFL-formel tillsammans med tillbehörsformler som tillsammans genomför en samling analys, visualisering, presentation och optimeringstekniker för att skapa en komplett lösning för daglig eller intradagmomenthandel. Deluxe Timeframe Suites RSI, CCI och LRS Strategy Suites finns i både vanliga och Deluxe Timeframe-versioner. Kraftfull multi-time backtesting, optimering och visualisering är nu färdig. Varför kan du tunga dig själv (The Momo Strategy Suite är endast tillgänglig som en Deluxe TimeFrame-version.) Copyright 2003-2013 Steve Johns, alla rättigheter reserverade. Framgångsrikt backtesting av algoritmiska handelsstrategier - Del I Denna artikel fortsätter serien om kvantitativ handel , som började med Beginners Guide och Strategy Identification. Båda dessa längre, mer inblandade artiklar har varit mycket populära så jag fortsätter i denna ån och ger detaljer om ämnet strategi backtesting. Algoritmisk backtesting kräver kunskap om många områden, däribland psykologi, matematik, statistik, mjukvaruutveckling och marknadsexchange mikrostruktur. Jag kunde inte hoppas att täcka alla dessa ämnen i en artikel, så jag ska dela dem i två eller tre mindre bitar. Vad ska vi diskutera i det här avsnittet Jag börjar med att definiera backtesting och då kommer jag att beskriva grunderna för hur det utförs. Då kommer jag att klargöra de fördomar vi berörde i Beginners Guide to Quantitative Trading. Nästa kommer jag presentera en jämförelse av de olika tillgängliga backtestingprogrammen. I efterföljande artiklar kommer vi att titta på detaljerna i strategimodeller som ofta knappast nämns eller ignoreras. Vi kommer också att överväga hur man gör backtesting processen mer realistisk genom att inkludera idiosyncrasies av en handelsutbyte. Då kommer vi att diskutera transaktionskostnader och hur man korrekt modellerar dem i en backtest-inställning. Vi kommer att sluta med en diskussion om utförandet av våra backtests och slutligen ge ett exempel på en gemensam kvantstrategi, känd som en genomsyrande parhandel. Låt oss börja med att diskutera vad backtesting är och varför vi bör utföra det i vår algoritmiska handel. Vad är Backtesting Algoritmisk handel står förutom andra typer av investeringsklasser eftersom vi på ett mer tillförlitligt sätt kan ge förväntningar om framtida prestanda från tidigare resultat, till följd av riklig tillgång till data. Processen genom vilken detta utförs är känt som backtesting. I enkla termer görs backtesting genom att exponera din specifika strategialgoritm till en ström av historisk finansiell data, vilket leder till en uppsättning handelssignaler. Varje handel (som vi kommer att mena här för att vara en rundresa med två signaler) kommer att ha en associerad vinst eller förlust. Sammanställningen av denna vinstlösning under löptiden för din strategi backtest kommer att leda till den totala vinsten och förlusten (även känd som PL eller PnL). Det är kärnan i idén, även om djävulen självklart alltid är i detaljerna. Vilka är de viktigaste orsakerna till att backtesting en algoritmisk strategi Filtrering - Om du kommer ihåg från artikeln om strategiidentifiering. Vårt mål vid det inledande forskningsfasen var att upprätta en strategipipeline och sedan filtrera bort någon strategi som inte uppfyllde vissa kriterier. Backtesting ger oss en annan filtreringsmekanism, eftersom vi kan eliminera strategier som inte uppfyller våra prestationsbehov. Modellering - Backtesting gör det möjligt för oss att (säkert) testa nya modeller av vissa marknadsfenomen, till exempel transaktionskostnader, orderdirigering, latens, likviditet eller andra marknadsmiljöstrukturproblem. Optimering - Även om strategin optimering är fylld med biaser tillåter backtesting oss att öka prestanda för en strategi genom att ändra kvantiteten eller värdena för parametrarna som är associerade med den strategin och omberäkna dess prestanda. Verifiering - Våra strategier är ofta anskaffade externt, via vår strategipipeline. Backtesting en strategi säkerställer att den inte har implementerats felaktigt. Även om vi sällan kommer att få tillgång till signalerna som genereras av externa strategier, har vi ofta tillgång till prestandametri som Sharpe Ratio och Drawdown egenskaper. Således kan vi jämföra dem med vår egen implementering. Backtesting ger en mängd fördelar för algoritmisk handel. Det är emellertid inte alltid möjligt att helt enkelt backtesta en strategi. I allmänhet, som frekvensen av strategin ökar, blir det svårare att korrekt modellera marknadens och börsens mikrostruktureffekter. Detta leder till mindre tillförlitliga backtests och därigenom en svårare utvärdering av en utvald strategi. Detta är ett speciellt problem där exekveringssystemet är nyckeln till strategins prestanda, som med ultrahögfrekvensalgoritmer. Tyvärr är backtesting full av fördomar av alla slag. Vi har berört några av dessa frågor i tidigare artiklar, men vi kommer nu att diskutera dem på djupet. Fördomar som påverkar strategiska backtests Det finns många fördomar som kan påverka prestandan i en backtestad strategi. Tyvärr har dessa förspänningar en tendens att blåsa upp prestanda snarare än att förringa det. Således bör du alltid överväga en backtest att vara en idealiserad övre gräns för strategins faktiska prestanda. Det är nästan omöjligt att eliminera biaser från algoritmisk handel, så det är vårt jobb att minimera dem så mycket vi kan för att fatta välgrundade beslut om våra algoritmiska strategier. Det finns fyra stora fördomar som jag önskar diskutera: Optimering Bias. Titta framåt. Survivorship Bias och psykologiska tolerans Bias. Optimering Bias Detta är förmodligen den mest skrämmande av alla backtest-förskott. Det innebär att justera eller introducera ytterligare handelsparametrar tills strategins prestanda på backtestdatasatsen är väldigt attraktiv. Men när strategin går, kan strategin vara märkbart annorlunda. Ett annat namn för denna förspänning är kurvmontering eller data-snooping bias. Optimeringsförskjutning är svår att eliminera eftersom algoritmiska strategier ofta involverar många parametrar. Parametrar i det här fallet kan vara inmatningsexekveringskriterier, återkallningsperioder, medelvärden (dvs. den glidande parametern för glidande medel) eller volatilitetsmätningsfrekvensen. Optimeringsperspektivet kan minimeras genom att hålla antalet parametrar till ett minimum och öka antalet datapunkter i träningssatsen. Faktum är att man också måste vara försiktig med den senare eftersom äldre träningspunkter kan bli föremål för en tidigare regim (som en lagstiftningsmiljö) och kan därför inte vara relevant för din nuvarande strategi. En metod för att mildra denna bias är att utföra en känslighetsanalys. Detta innebär att parametrarna varieras stegvis och plottar en yta av prestanda. Ljud, grundläggande resonemang för parametervalg bör med alla andra faktorer betraktas leda till en jämnare parametraryta. Om du har en mycket hoppig yt yta betyder det ofta att en parameter inte speglar ett fenomen och är en artefakt av testdata. Det finns en stor litteratur om flerdimensionella optimeringsalgoritmer och det är ett mycket aktivt forskningsområde. Jag kommer inte att stanna här, men behåll det bakom dig när du hittar en strategi med en fantastisk backtest. Look-Ahead Bias Look-ahead-bias introduceras i ett backtesting-system när framtida data av misstag ingår i en punkt i simulering där data inte skulle ha varit tillgängliga. Om vi kör backtesten kronologiskt och vi når tidpunkt N, så kommer framåtblickande bias uppträda om data ingår för vilken punkt Nk, där k0. Look-ahead biasfel kan vara otroligt subtila. Här är tre exempel på hur framtidsförspänning kan introduceras: Tekniska buggar - Arrayvektorer i kod har ofta iteratorer eller indexvariabler. Felaktiga överskott av dessa index kan leda till en förutseende förspänning genom att inkorporera data vid Nk för icke-noll k. Parameterberäkning - Ett annat vanligt exempel på framåtriktad förspänning inträffar vid beräkning av optimala strategiparametrar, t. ex. med linjära regressioner mellan två tidsserier. Om hela datasatsen (inklusive framtida data) används för att beräkna regressionskoefficienterna och sålunda retroaktivt appliceras på en handelsstrategi för optimeringsändamål, införlivas framtida data och en framåtblickande bias finns. MaximaMinima - Vissa handelsstrategier använder sig av extrema värden under en viss tidsperiod, till exempel inkorporering av höga eller låga priser i OHLC-data. Eftersom de maximala minimala värdena endast kan beräknas i slutet av en tidsperiod införs emellertid en blick för framåtblick om dessa värden används under den aktuella perioden. Det är alltid nödvändigt att lagra highlow-värden med minst en period i någon handelsstrategi som använder dem. Precis som med optimeringsförspänning måste man vara ytterst försiktig för att undvika införandet. Det är ofta den främsta anledningen till att handelsstrategier underpresterar deras backtest signifikant i live trading. Survivorship Bias Survivorship bias är ett särskilt farligt fenomen och kan leda till betydligt uppblåst prestanda för vissa strategityper. Det inträffar när strategier testas på dataset som inte inkluderar hela universum av tidigare tillgångar som kan ha blivit utvalda vid en viss tidpunkt, men bara överväga de som har överlevt till den aktuella tiden. Tänk på att testa en strategi för ett slumpmässigt urval av aktier före och efter marknadskraschen 2001. Vissa tekniklager gick i konkurs, medan andra lyckades hålla sig flytande och till och med blomstrade. Om vi hade begränsat den här strategin endast till lager som gjorde det genom marknadsutnyttjandeperioden skulle vi introducera en överlevnadsperspektiv eftersom de redan har visat deras framgång för oss. Faktum är att detta bara är ett annat specifikt fall med förutseende bias, eftersom framtida uppgifter införlivas i tidigare analyser. There are two main ways to mitigate survivorship bias in your strategy backtests: Survivorship Bias Free Datasets - In the case of equity data it is possible to purchase datasets that include delisted entities, although they are not cheap and only tend to be utilised by institutional firms. In particular, Yahoo Finance data is NOT survivorship bias free, and this is commonly used by many retail algo traders. One can also trade on asset classes that are not prone to survivorship bias, such as certain commodities (and their future derivatives). Use More Recent Data - In the case of equities, utilising a more recent data set mitigates the possibility that the stock selection chosen is weighted to survivors, simply as there is less likelihood of overall stock delisting in shorter time periods. One can also start building a personal survivorship-bias free dataset by collecting data from current point onward. After 3-4 years, you will have a solid survivorship-bias free set of equities data with which to backtest further strategies. We will now consider certain psychological phenomena that can influence your trading performance. Psychological Tolerance Bias This particular phenomena is not often discussed in the context of quantitative trading. However, it is discussed extensively in regard to more discretionary trading methods. It has various names, but Ive decided to call it psychological tolerance bias because it captures the essence of the problem. When creating backtests over a period of 5 years or more, it is easy to look at an upwardly trending equity curve, calculate the compounded annual return, Sharpe ratio and even drawdown characteristics and be satisfied with the results. As an example, the strategy might possess a maximum relative drawdown of 25 and a maximum drawdown duration of 4 months. This would not be atypical for a momentum strategy. It is straightforward to convince oneself that it is easy to tolerate such periods of losses because the overall picture is rosy. However, in practice, it is far harder If historical drawdowns of 25 or more occur in the backtests, then in all likelihood you will see periods of similar drawdown in live trading. These periods of drawdown are psychologically difficult to endure. I have observed first hand what an extended drawdown can be like, in an institutional setting, and it is not pleasant - even if the backtests suggest such periods will occur. The reason I have termed it a bias is that often a strategy which would otherwise be successful is stopped from trading during times of extended drawdown and thus will lead to significant underperformance compared to a backtest. Thus, even though the strategy is algorithmic in nature, psychological factors can still have a heavy influence on profitability. The takeaway is to ensure that if you see drawdowns of a certain percentage and duration in the backtests, then you should expect them to occur in live trading environments, and will need to persevere in order to reach profitability once more. Software Packages for Backtesting The software landscape for strategy backtesting is vast. Solutions range from fully-integrated institutional grade sophisticated software through to programming languages such as C, Python and R where nearly everything must be written from scratch (or suitable plugins obtained). As quant traders we are interested in the balance of being able to own our trading technology stack versus the speed and reliability of our development methodology. Here are the key considerations for software choice: Programming Skill - The choice of environment will in a large part come down to your ability to program software. I would argue that being in control of the total stack will have a greater effect on your long term PL than outsourcing as much as possible to vendor software. This is due to the downside risk of having external bugs or idiosyncrasies that you are unable to fix in vendor software, which would otherwise be easily remedied if you had more control over your tech stack. You also want an environment that strikes the right balance between productivity, library availability and speed of execution. I make my own personal recommendation below. Execution CapabilityBroker Interaction - Certain backtesting software, such as Tradestation, ties in directly with a brokerage. I am not a fan of this approach as reducing transaction costs are often a big component of getting a higher Sharpe ratio. If youre tied into a particular broker (and Tradestation forces you to do this), then you will have a harder time transitioning to new software (or a new broker) if the need arises. Interactive Brokers provide an API which is robust, albeit with a slightly obtuse interface. Customisation - An environment like MATLAB or Python gives you a great deal of flexibility when creating algo strategies as they provide fantastic libraries for nearly any mathematical operation imaginable, but also allow extensive customisation where necessary. Strategy Complexity - Certain software just isnt cut out for heavy number crunching or mathematical complexity. Excel is one such piece of software. While it is good for simpler strategies, it cannot really cope with numerous assets or more complicated algorithms, at speed. Bias Minimisation - Does a particular piece of software or data lend itself more to trading biases You need to make sure that if you want to create all the functionality yourself, that you dont introduce bugs which can lead to biases. Speed of Development - One shouldnt have to spend months and months implementing a backtest engine. Prototyping should only take a few weeks. Make sure that your software is not hindering your progress to any great extent, just to grab a few extra percentage points of execution speed. C is the elephant in the room here Speed of Execution - If your strategy is completely dependent upon execution timeliness (as in HFTUHFT) then a language such as C or C will be necessary. However, you will be verging on Linux kernel optimisation and FPGA usage for these domains, which is outside the scope of this article Cost - Many of the software environments that you can program algorithmic trading strategies with are completely free and open source. In fact, many hedge funds make use of open source software for their entire algo trading stacks. In addition, Excel and MATLAB are both relatively cheap and there are even free alternatives to each. Now that we have listed the criteria with which we need to choose our software infrastructure, I want to run through some of the more popular packages and how they compare: Note: I am only going to include software that is available to most retail practitioners and software developers, as this is the readership of the site. While other software is available such as the more institutional grade tools, I feel these are too expensive to be effectively used in a retail setting and I personally have no experience with them. Backtesting Software Comparison Description: High-level language designed for speed of development. Wide array of libraries for nearly any programmatic task imaginable. Gaining wider acceptance in hedge fund and investment bank community. Not quite as fast as CC for execution speed. Execution: Python plugins exist for larger brokers, such as Interactive Brokers. Hence backtest and execution system can all be part of the same tech stack. Customisation: Python has a very healthy development community and is a mature language. NumPySciPy provide fast scientific computing and statistical analysis tools relevant for quant trading. Strategy Complexity: Many plugins exist for the main algorithms, but not quite as big a quant community as exists for MATLAB. Bias Minimisation: Same bias minimisation problems exist as for any high level language. Need to be extremely careful about testing. Development Speed: Pythons main advantage is development speed, with robust in built in testing capabilities. Execution Speed: Not quite as fast as C, but scientific computing components are optimised and Python can talk to native C code with certain plugins. Cost: FreeOpen Source Description: Mature, high-level language designed for speed of execution. Wide array of quantitative finance and numerical libraries. Harder to debug and often takes longer to implement than Python or MATLAB. Extremely prevalent in both the buy - and sell-side. Execution: Most brokerage APIs are written in C and Java. Thus many plugins exist. Customisation: CC allows direct access to underlying memory, hence ultra-high frequency strategies can be implemented. Strategy Complexity: C STL provides wide array of optimised algorithms. Nearly any specialised mathematical algorithm possesses a free, open-source CC implementation on the web. Bias Minimisation: Look-ahead bias can be tricky to eliminate, but no harder than other high-level language. Good debugging tools, but one must be careful when dealing with underlying memory. Development Speed: C is quite verbose compared to Python or MATLAB for the same algorithmm. More lines-of-code (LOC) often leads to greater likelihood of bugs. Execution Speed: CC has extremely fast execution speed and can be well optimised for specific computational architectures. This is the main reason to utilise it. Cost: Various compilers: LinuxGCC is free, MS Visual Studio has differing licenses. Different strategies will require different software packages. HFT and UHFT strategies will be written in CC (these days they are often carried out on GPUs and FPGAs ), whereas low-frequency directional equity strategies are easy to implement in TradeStation, due to the all in one nature of the softwarebrokerage. My personal preference is for Python as it provides the right degree of customisation, speed of development, testing capability and execution speed for my needs and strategies. If I need anything faster, I can drop in to C directly from my Python programs. One method favoured by many quant traders is to prototype their strategies in Python and then convert the slower execution sections to C in an iterative manner. Eventually the entire algo is written in C and can be left alone to trade In the next few articles on backtesting we will take a look at some particular issues surrounding the implementation of an algorithmic trading backtesting system, as well as how to incorporate the effects of trading exchanges. We will discuss strategy performance measurement and finally conclude with an example strategy. Just Getting Started with Quantitative Trading
Python read text file as binary alternativ
7. Input och Output Det finns flera sätt att presentera utmatningen av ett program. Data kan skrivas ut i en läsbar form eller skrivas till en fil för framtida bruk. I det här kapitlet diskuteras några av möjligheterna. 7,1. Avancerad utmatningsformatering Hittills har we8217ve stött på två sätt att skriva värden: uttalanden och utskriftsdeklarationen. (En tredje metod använder filen write () för filobjekt. Standardutdatafilen kan refereras till som sys. stdout. Se biblioteksreferensen för mer information om detta.) Ofta you8217ll vill ha mer kontroll över formateringen av din produktion än helt enkelt utskriftsutrymme separerade värden. Det finns två sätt att formatera din produktion. Det första sättet är att göra all strängen som hanterar dig själv med hjälp av snedskärning och sammanbindningsoperationer. Du kan skapa vilken layout du kan tänka dig. Strängtyperna har några metoder som utför användbara operationer för vadderingssträngar till en viss kolumnbredd, vilka kommer att diskuteras inom kort. Det andra sättet är att använda metoden str. format (). Strängmodulen innehåller en Mall-klass som erbjuder ännu ett sätt att ersätta värden i strängar. En fråga kvarstår förstås: hur konverterar du värden till strängar Lyckligtvis har Python sätt att konvertera valfritt värde till en sträng: skicka det till repr () eller str () funktionerna. Funktionen str () är avsedd att återge representationer av värden som är ganska mänskliga läsbara, medan repr () är avsedd att generera representationer som kan tolkas av tolken (eller kommer att tvinga en SyntaxError om det inte finns någon motsvarande syntax). För objekt som don8217t har en särskild representation för konsumtion kommer str () att returnera samma värde som repr (). Många värden, såsom tal eller strukturer som listor och ordböcker, har samma representation med hjälp av endera funktionen. Strängar och flytpunkter har i synnerhet två olika representationer. Här är två sätt att skriva ett bord med rutor och kuber: (Observera att i det första exemplet fanns ett mellanslag mellan varje kolumn med det sätt som skrivet fungerar: det lägger alltid till mellanrum mellan dess argument.) Detta exempel visar str. rjust () - metoden för strängobjekt, som högerjusterar en sträng i ett fält med en viss bredd genom att fylla den med mellanslag till vänster. Det finns liknande metoder str. ljust () och str. center (). Dessa metoder skriver inte någonting, de returnerar bara en ny sträng. Om inmatningssträngen är för lång kan de inte styra den, men returnera den oförändrad. Detta kommer att förstöra din kolonnlayout, men det är oftast bättre än alternativet, vilket skulle ligga om ett värde. (Om du verkligen vill ha trunkning kan du alltid lägga till en skivoperation, som i x. ljust (n): n.) Det finns en annan metod, str. zfill (). som lägger en numerisk sträng till vänster med nollor. Det förstår om plus - och minustecken: Grundläggande användning av metoden str. format () ser så här ut: parenteserna och tecknen i dem (kallade formatfält) ersätts med objekten som passerade in i metoden str. format (). Ett tal i parentes hänvisar till positionen för objektet som passerat i metoden str. format (). Om nyckelordsargument används i metoden str. format (), hänvisas deras värden med namnet på argumentet. Positions - och nyckelordsargument kan kombineras godtyckligt: 7.2. Läsa och skriva filer öppna () returnerar ett filobjekt, och brukar användas med två argument: öppna (filnamn, läge). Det första argumentet är en sträng som innehåller filnamnet. Det andra argumentet är en annan sträng som innehåller några tecken som beskriver hur filen ska användas. läge kan r vara när filen bara kommer att läsas, w för att bara skriva (en befintlig fil med samma namn kommer raderas) och en öppnar filen för att lägga till eventuella data som är skriven till filen läggs automatiskt till i slutet. r öppnar filen för både läsning och skrivning. Modusargumentet är valfritt r antas om it8217s utelämnas. På Windows, b bifogas läget öppnar filen i binärt läge, så det finns också lägen som rb. wb. och rb. Python på Windows skiljer mellan text och binära filer Ändra karaktären i textfiler ändras automatiskt lite när data läses eller skrivs. Denna modifiering av bakom kulisserna till fildata är bra för ASCII-textfiler, men it8217ll korrumperar binära data som i JPEG - eller EXE-filer. Var försiktig med att använda binärt läge när du läser och skriver sådana filer. På Unix gör det inte ont för att lägga till ett b i läget, så du kan använda den plattformen - oberoende av alla binära filer. 7.2.1. Metoder för filobjekt Resten av exemplen i det här avsnittet förutsätter att ett filobjekt som heter f redan har skapats. För att läsa en fil8217s innehåll, ring f. read (storlek). som läser en viss mängd data och returnerar den som en sträng. Storlek är ett valfritt numeriskt argument. När storleken är utelämnad eller negativ läses hela innehållet i filen och returneras it8217s ditt problem om filen är dubbelt så stor som ditt machine8217s minne. Annars läses och returneras högst storleksbyte. Om slutet av filen har nåtts kommer f. read () att returnera en tom sträng (kvot). f. readline () läser en enda rad från filen en nylinje tecken (n) lämnas i slutet av strängen och lämnas endast i den sista raden av filen om filen doesn8217t slutar i en ny linje. Detta gör returvärdet entydigt om f. readline () returnerar en tom sträng, slutet på filen har nåtts, medan en tom linje representeras av n. en sträng som bara innehåller en enda ny linje. För att läsa linjer från en fil kan du slingra över filobjektet. Detta är minneseffektivt, snabbt och leder till enkel kod: Om du vill läsa alla rader i en fil i en lista kan du också använda listan (f) eller f. readlines (). f. write (string) skriver innehållet i strängen till filen, returnerar None. För att skriva något annat än en sträng måste det först konverteras till en sträng: f. tell () returnerar ett heltal som ger filen object8217s nuvarande position i filen, mätt i byte från början av filen. För att ändra filen object8217s position, använd f. seek (offset, fromwhat). Positionen beräknas från att man lägger till förskjutning till en referenspunkt, varvid referenspunkten väljs av det från vilket argument. Ett från vilket värde av 0 åtgärder från början av filen, 1 använder nuvarande filposition och 2 använder slutet av filen som referenspunkt. fromwhat kan utelämnas och standardinställningar till 0, med början av filen som referenspunkt. När du är klar med en fil, ring f. close () för att stänga den och frigöra eventuella systemresurser som tagits upp av den öppna filen. Efter att ha ringt f. close (). försök att använda filobjektet kommer automatiskt att misslyckas. Det är bra att använda det med nyckelordet när man hanterar filobjekt. Detta har fördelen att filen är ordentligt stängd efter avslutad svit, även om ett undantag höjdes på vägen. Det är också mycket kortare än att skriva motsvarande försök - äntligen block: Filobjekt har några ytterligare metoder, som isatty () och truncate () som används mindre ofta, kolla Bibliotekshänvisning för en komplett guide till filobjekt. 7.2.2. Att spara strukturerad data med json Strings kan enkelt skrivas till och läsas från en fil. Numren tar lite mer ansträngning, eftersom read () - metoden bara returnerar strängar, vilket måste överföras till en funktion som int (). som tar en sträng som 123 och returnerar sitt numeriska värde 123. När du vill spara mer komplexa datatyper som nestade listor och ordböcker blir parsing och serialisering för hand komplicerad. I stället för att användarna ständigt skriver och debuggerar kod för att spara komplicerade datatyper till filer, tillåter Python dig att använda det populära datautbytesformatet JSON (JavaScript Object Notation). Standardmodulen kallad json kan ta Python datahierarkier och konvertera dem till strängpresentationer kallas serialiseringen. Rekonstruering av data från strängrepresentationen kallas deserialiserande. Mellan serialisering och deserialisering kan strängen som representerar objektet ha lagrats i en fil eller data, eller skickas över en nätverksanslutning till en avlägsen maskin. JSON-formatet används vanligtvis av moderna applikationer för att möjliggöra datautbyte. Många programmerare är redan bekanta med det, vilket gör det till ett bra val för driftskompatibilitet. Om du har ett objekt x. Du kan visa sin JSON-strängrepresentation med en enkel kodkod: En annan variant av dumpfunktionen (), kallad dump (). serialiserar bara objektet till en fil. Så om f är ett filobjekt öppet för skrivning kan vi göra det här: Att avkoda objektet igen, om f är ett filobjekt som har öppnats för läsning: Denna enkla serialiseringsteknik kan hantera listor och ordböcker, men serialiserar godtyckliga klassförekomster i JSON kräver lite extra ansträngning. Referensen för json-modulen innehåller en förklaring till detta. pickle - pickle-modulen i motsats till JSON. pickle är ett protokoll som tillåter serialisering av godtyckligt komplexa Python-objekt. Som sådan är det specifikt för Python och kan inte användas för att kommunicera med applikationer skrivna på andra språk. Det är också osäkert som standard: deserialiserande pickle-data som kommer från en otillförlitlig källa kan exekvera godtycklig kod om data skapades av en skicklig angripare. Med förslag på chrispy: Observera att det med uttalandet inte är tillgängligt i versioner av Python under 2,5. För att använda det i v 2.5 måste du importera det: I 2.6 behövs det inte. I Python 3 är det lite annorlunda. Vi kommer inte längre få raka tecken från strömmen i byte-läge utan byteobjekt, så vi behöver ändra tillståndet: Eller som Benhoyt säger, hoppa över det inte lika och dra nytta av det faktum att b utvärderar till falskt. Detta gör koden kompatibel mellan 2.6 och 3.x utan några ändringar. Det skulle också rädda dig från att ändra villkoret om du går från byteläge till text eller omvänd. För att läsa en fil en byte åt gången (ignorerar bufferten) kan du använda den inbyggda funktionen med två argument iter (callable, sentinel): Det kallar file. read (1) tills det returnerar inget b (tom bytestring). Minnet växer inte obegränsat för stora filer. Du kan passera buffering0 för att öppna (). för att inaktivera bufferten garanterar det att endast en byte läses per iteration. med - information stänger filen automatiskt, inklusive fallet när koden nedan ger upphov till ett undantag. Trots närvaron av intern buffert som standard är det fortfarande ineffektivt att bearbeta en byte åt gången. Till exempel, här är blackhole. py-verktyget som äter allt det ges: 1,5 GBs med standardbuffert på min maskin och bara 7,5 MB om bufsize1. Det vill säga det är 200 gånger långsammare att läsa en byte åt gången. Ta hänsyn till om du kan skriva om din behandling för att använda mer än en byte åt gången och om du behöver prestanda. mmap låter dig behandla en fil som en biträde och ett filobjekt samtidigt. Det kan fungera som ett alternativ för att ladda hela filen i minnet om du behöver åtkomst till båda gränssnitt. I synnerhet kan du iterera en byte åt gången över en minneskortad fil bara med en vanlig för-loop: mmap stöder skivanotation. Till exempel returnerar mmi: ilen len bytes från filen som börjar vid position i. Kontexthanteringsprotokollet stöds inte före Python 3.2. Du måste kalla mm. close () uttryckligen i det här fallet. Iterating över varje byte med mmap förbrukar mer minne än file. read (1). men mmap är en storleksordning snabbare. svarat den 16 november kl 13:47. Sammanfattningsvis är alla de briljanta punkterna Chrispy, Skurmedel, Ben Hoyt och Peter Hansen det bästa alternativet för att bearbeta en binär fil en byte i taget. För pythonversioner 2.6 och senare, eftersom: pythonbuffertar internt - ingen anledning att läsa bitar DRY-principen - repetera inte läsrad med uttalande säkerställer att en ren fil nära byte utvärderar till falskt när det inte finns fler byte (inte när en byte är noll) Eller använd JF Sebastians lösning för förbättrad hastighet Eller om du vill ha det som en generatorfunktion som demonstreras av codeape: svarat 6 sep 13 kl 7:55 JFSebastian - du är 100 korrekt - förmodligen mycket snabbare ndash Holger Bille 9 maj 16 kl 8:12 Som det länkade svaret säger att behandlingen av en byte åt gången är långsam i Python även om läsningarna är buffrade. Prestanda kan förbättras drastiskt om flera byte i taget kan behandlas som i exemplet i det länkade svaret: 1,5 GB vs 7,5 MB. ndash J. F. Sebastian maj 9 16 kl. 11:49 Om du har mycket binär data att läsa kanske du vill överväga struct-modulen. Det är dokumenterat som att konvertera mellan C och Python typer, men naturligtvis är byte bitgrupper, och om de skapades som C-typer spelar ingen roll. Om din binära data innehåller två tvåbyte heltal och ett 4-byte heltal kan du exempelvis läsa dem enligt följande (exempel taget från strukturdokumentation): Du kan hitta det här mer bekvämt, snabbare eller båda än att uttryckligen slingra över innehållet i en fil svarade den 1 juli kl. 11:24 Läs binärfil i Python och loopa över varje byte. Låt oss skapa en fil: Nu kan vi iterera över det, med hjälp av rb-flaggan (läsläge, byte-läge). Observera att multipeln för slingor inte ökar komplexiteten (som förblir O (n)) - det här är bara hur du slår ljuvligt över en fil - linje för rad. Detta kommer att slingra över varje byte i koden, utan någon hacky. read (1) verksamhet. Det här är mycket mer pythoniskt och naturligt än det ögonblickliga och komplicerade jag har sett i de andra svaren här. Buffrad läsning Om du har stora filer utan nya linjer kanske du vill buffra din läsning. Python 2.7 kräver io. open att få det här: Och vi har nu en buffradläsare: Python 3s inbyggd öppen funktion är 2s io. open. Hur läser och skriver filer i Python När du programmerar i Python-språket bortom de mest triviala programmen, you39ll är vanligtvis skyldig att läsa data från och skriva data till filer som existerar utanför själva programmet. Python ger enkla mekanismer för att komma åt och ändra specifika filer med hjälp av standardfunktioner som ingår i kärnspråket. Öppna filer i Python Bestäm om användarpolicy. Du behöver veta om du behöver läsa från eller skriva till filen innan du kan öppna filen. Öppna bara filen med de behörigheter du verkligen behöver och öppna inte en fil i läs - och skrivläge när du bara behöver läsa av det. Detta kommer att förhindra oavsiktligt att skriva till filen du inte borde skriva till. Bestäm om du ska använda ASCII eller binärt läge. Om du läser text, vill du använda ASCII-läget. Om du läser binär data, använd binärt läge. I det här läget översätts linjens ändringar till det läge som operativsystemet använder. Skapa lägessträngen. Den första tecknen är läs - eller skrivläge. Om du vill öppna i binärt läge, lägg till en quotbquot till slutet av strängen. Till exempel, för att läsa i ASCII-läget, skulle lägessträngen vara quotrquot och för att skriva i binärt läge skulle modesträngen vara quotwbquot. Öppna filen med hjälp av den öppna funktionen. Spara det resulterande filobjektet i en variabel. Till exempel: f öppen (quotfilenamegoesherequot, quotrquot) Läs från filer i Python Iterate över alla linjer. Ett filobjekt kan användas som en samling med quotforquot-loopen. Du kan iterera över alla rader i en fil (en gemensam åtgärd) med förklaringen. för rad i f: print line Sök till en viss punkt i filen. Filer läses inte alltid i följd så det är ofta nödvändigt att söka till en viss punkt i filen innan den läses från filen. Du kan göra detta med sökmetoden för ett filobjekt. Sök till 100: e byte f. seek (100) Sök till 10 byte från nuvarande byte f. seek (10, 1) Läs binära data från en fil. Med hjälp av läsmetoden för ett filobjekt kan du läsa ett godtyckligt antal byte från en fil. Läs 16 byte från filen buf f. read (16) Skriv till Python-filer Skriv data till en fil. Om en fil öppnas i skrivläge kan du skriva ASCII eller binära data till den. Detta görs med skrivmetoden för ett filobjekt. f. write (quotThis är lite textquot) Skriv objekt till en fil. Om du behöver spara ett objektets interna tillstånd kan du citera det. För att plocka upp ett föremål måste du först importera pickle-modulen. Därefter kan du hämta nästan alla föremål med pickle. dump-funktionen. importera pickle pickle. dump (anyobject, f) Stäng filen. När skrivningen är klar måste du stänga filen. Detta säkerställer att alla buffertar är spolade och filen inte är låst så att andra program kan komma åt det. Detta görs med det närmaste metoden för ett filobjekt.