From 0c5d8b3a29bd6186374a8a89e3efe6af1b013f84 Mon Sep 17 00:00:00 2001 From: Jim Daniels Wasswa <104334373+jim-deriv@users.noreply.github.com> Date: Thu, 25 Jul 2024 09:27:31 +0800 Subject: [PATCH 01/40] [WALL] Jim/WALL-4588/update expectations and conditional (#16183) * chore: update expectations and conditional * chore: add isSubscribed to conditional * chore: update ref name --- packages/wallets/src/AppContent.tsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/wallets/src/AppContent.tsx b/packages/wallets/src/AppContent.tsx index dd067ac31790..7cdbb9c85277 100644 --- a/packages/wallets/src/AppContent.tsx +++ b/packages/wallets/src/AppContent.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useDerivAccountsList } from '@deriv/api-v2'; import { Analytics } from '@deriv-com/analytics'; @@ -12,18 +12,21 @@ const AppContent: React.FC = () => { const [isPanelOpen, setIsPanelOpen] = useState(false); const { i18n } = useTranslation(); const { isSubscribed, subscribeToAllBalance, unsubscribeFromAllBalance } = useAllBalanceSubscription(); - const { data: derivAccountList, isRefetching } = useDerivAccountsList(); + const { data: derivAccountList } = useDerivAccountsList(); + const previousDerivAccountListLenghtRef = useRef(0); useEffect(() => { - if ((derivAccountList?.length ?? 0) > 0 && !isRefetching && !isSubscribed) { + if (!derivAccountList?.length) return; + if (previousDerivAccountListLenghtRef.current !== derivAccountList.length || !isSubscribed) { subscribeToAllBalance(); + previousDerivAccountListLenghtRef.current = derivAccountList.length; } return () => { if (isSubscribed) { unsubscribeFromAllBalance(); } }; - }, [derivAccountList?.length, isRefetching, isSubscribed, subscribeToAllBalance, unsubscribeFromAllBalance]); + }, [derivAccountList?.length, isSubscribed, subscribeToAllBalance, unsubscribeFromAllBalance]); useEffect(() => { const handleShortcutKey = (event: globalThis.KeyboardEvent) => { From fedf163f9babf2cbf7380e833ee13783d7051ffe Mon Sep 17 00:00:00 2001 From: fasihali-deriv <121229483+fasihali-deriv@users.noreply.github.com> Date: Thu, 25 Jul 2024 15:41:52 +0800 Subject: [PATCH 02/40] chore: fixed console error by adding useeffect (#16109) --- .../src/App/Containers/Redirect/redirect.jsx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/core/src/App/Containers/Redirect/redirect.jsx b/packages/core/src/App/Containers/Redirect/redirect.jsx index fa8b28394e51..9223ec2b2e97 100644 --- a/packages/core/src/App/Containers/Redirect/redirect.jsx +++ b/packages/core/src/App/Containers/Redirect/redirect.jsx @@ -1,3 +1,4 @@ +import { useEffect } from 'react'; import PropTypes from 'prop-types'; import { withRouter, useHistory } from 'react-router-dom'; import { loginUrl, routes, redirectToLogin, SessionStore } from '@deriv/shared'; @@ -245,13 +246,14 @@ const Redirect = observer(() => { default: break; } - - if (!redirected_to_route && history.location.pathname !== routes.traders_hub) { - history.push({ - pathname: routes.traders_hub, - search: url_query_string, - }); - } + useEffect(() => { + if (!redirected_to_route && history.location.pathname !== routes.traders_hub) { + history.push({ + pathname: routes.traders_hub, + search: url_query_string, + }); + } + }, [redirected_to_route, url_query_string, history]); return null; }); From 632e990167ce622fded1b369c85eeeceffdad530 Mon Sep 17 00:00:00 2001 From: Aizad Ridzo <103104395+aizad-deriv@users.noreply.github.com> Date: Thu, 25 Jul 2024 15:43:44 +0800 Subject: [PATCH 03/40] [WALL] Aizad/WALL-4353/ Replace Tooltip with Tooltip from deriv-com/ui (#15966) * chore: update ui package to the latest changes * chore: replacing tooltip within MT5TradeModal * chore: replace existing tooltip component with the one from deriv/ui * chore: replace tooltip componet within cashier with deriv-com/ui * chore: Remove tooltip component from Wallets package * chore: replace TransactionsPendingRowField with tooltip from deriv/ui * chore: rename component according to file * chore: fix test cases * chore: fix version for analytics * chore: update ui version updates and make changes to existing implementations * chore: update tooltip inside of transactionspendingrow component * chore: rerun pr * chore: rerun proecesses * chore: update code --- package-lock.json | 46 +++---- packages/account/package.json | 2 +- packages/cashier-v2/package.json | 2 +- packages/cfd/package.json | 2 +- packages/components/package.json | 2 +- packages/core/package.json | 2 +- packages/reports/package.json | 2 +- packages/trader/package.json | 2 +- packages/wallets/package.json | 2 +- .../src/components/Base/Tooltip/Tooltip.scss | 77 ------------ .../src/components/Base/Tooltip/Tooltip.tsx | 39 ------ .../Base/Tooltip/__tests__/Tooltip.spec.tsx | 116 ------------------ .../src/components/Base/Tooltip/index.ts | 1 - .../Base/WalletClipboard/WalletClipboard.scss | 9 -- .../Base/WalletClipboard/WalletClipboard.tsx | 39 +++--- .../__tests__/WalletClipboard.spec.tsx | 18 +-- packages/wallets/src/components/Base/index.ts | 1 - .../DepositCryptoAddress.tsx | 2 - .../__tests__/DepositCryptoAddress.spec.tsx | 2 + .../TransactionsPendingRow.tsx | 45 +++---- .../__tests__/TransactionsPendingRow.spec.tsx | 22 ++-- .../TransactionsPendingRowField.tsx | 24 ++-- .../WithdrawalCryptoPriority.tsx | 19 ++- .../WithdrawalCryptoPriorityFeeInfo.tsx | 12 +- .../CompareAccountsTitleIcon.scss | 11 +- .../CompareAccountsTitleIcon.tsx | 28 ++--- .../MT5TradeDetailsItem.tsx | 26 ++-- 27 files changed, 130 insertions(+), 423 deletions(-) delete mode 100644 packages/wallets/src/components/Base/Tooltip/Tooltip.scss delete mode 100644 packages/wallets/src/components/Base/Tooltip/Tooltip.tsx delete mode 100644 packages/wallets/src/components/Base/Tooltip/__tests__/Tooltip.spec.tsx delete mode 100644 packages/wallets/src/components/Base/Tooltip/index.ts delete mode 100644 packages/wallets/src/components/Base/WalletClipboard/WalletClipboard.scss diff --git a/package-lock.json b/package-lock.json index 5488c5c5a9b2..f2b47090e177 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "@deriv-com/quill-tokens": "^2.0.4", "@deriv-com/quill-ui": "1.13.17", "@deriv-com/translations": "1.3.4", - "@deriv-com/ui": "1.29.3", + "@deriv-com/ui": "1.29.7", "@deriv-com/utils": "^0.0.25", "@deriv/api-types": "1.0.172", "@deriv/deriv-api": "^1.0.15", @@ -3146,9 +3146,9 @@ } }, "node_modules/@deriv-com/ui": { - "version": "1.29.3", - "resolved": "https://registry.npmjs.org/@deriv-com/ui/-/ui-1.29.3.tgz", - "integrity": "sha512-GhIqgGffNPPihv9S/+FWFpY6RdOm15/663kCcHKDQueiXFwv5ZCU88kTTIE1vfU5QFU2PB7PPNpmb5p6T2hUQA==", + "version": "1.29.7", + "resolved": "https://registry.npmjs.org/@deriv-com/ui/-/ui-1.29.7.tgz", + "integrity": "sha512-lIjNusj4dF55amS+Y0xLBkg64vTSOW+aD4sUX3GEcYssLgziaumNiM/qgdpLZ2aKUE6vInC4p13X0HW+7Z0TVg==", "dependencies": { "@popperjs/core": "^2.11.8", "@types/react-modal": "^3.16.3", @@ -3158,6 +3158,25 @@ "@rollup/rollup-linux-x64-gnu": "^4.13.0" } }, + "node_modules/@deriv-com/ui/node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/@deriv-com/ui/node_modules/react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", + "dependencies": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + }, + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" + } + }, "node_modules/@deriv-com/utils": { "version": "0.0.25", "resolved": "https://registry.npmjs.org/@deriv-com/utils/-/utils-0.0.25.tgz", @@ -47874,25 +47893,6 @@ "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/react-popper": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", - "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", - "dependencies": { - "react-fast-compare": "^3.0.1", - "warning": "^4.0.2" - }, - "peerDependencies": { - "@popperjs/core": "^2.0.0", - "react": "^16.8.0 || ^17 || ^18", - "react-dom": "^16.8.0 || ^17 || ^18" - } - }, - "node_modules/react-popper/node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" - }, "node_modules/react-qrcode": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/react-qrcode/-/react-qrcode-0.3.6.tgz", diff --git a/packages/account/package.json b/packages/account/package.json index fd70b07a2cf4..ae946efe204d 100644 --- a/packages/account/package.json +++ b/packages/account/package.json @@ -33,7 +33,7 @@ "@deriv-com/analytics": "1.10.0", "@deriv-com/translations": "1.3.4", "@deriv-com/utils": "^0.0.25", - "@deriv-com/ui": "1.29.3", + "@deriv-com/ui": "1.29.7", "@deriv/api": "^1.0.0", "@deriv-com/quill-ui": "1.13.17", "@deriv/components": "^1.0.0", diff --git a/packages/cashier-v2/package.json b/packages/cashier-v2/package.json index a7ab208703dd..32ccf1e2a380 100644 --- a/packages/cashier-v2/package.json +++ b/packages/cashier-v2/package.json @@ -14,7 +14,7 @@ "start": "rimraf dist && npm run test && npm run serve" }, "dependencies": { - "@deriv-com/ui": "1.29.3", + "@deriv-com/ui": "1.29.7", "@deriv-com/utils": "^0.0.25", "@deriv/api-v2": "^1.0.0", "@deriv/integration": "^1.0.0", diff --git a/packages/cfd/package.json b/packages/cfd/package.json index 1c3f420611b9..7251b294bd84 100644 --- a/packages/cfd/package.json +++ b/packages/cfd/package.json @@ -86,7 +86,7 @@ }, "dependencies": { "@deriv-com/analytics": "1.10.0", - "@deriv-com/ui": "1.29.3", + "@deriv-com/ui": "1.29.7", "@deriv-com/translations": "1.3.4", "@deriv-com/utils": "^0.0.25", "@deriv/account": "^1.0.0", diff --git a/packages/components/package.json b/packages/components/package.json index 43f35aa51cd8..0392c01c3419 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -73,7 +73,7 @@ }, "dependencies": { "@contentpass/zxcvbn": "^4.4.3", - "@deriv-com/ui": "1.29.3", + "@deriv-com/ui": "1.29.7", "@deriv/shared": "^1.0.0", "@deriv/stores": "^1.0.0", "@deriv/translations": "^1.0.0", diff --git a/packages/core/package.json b/packages/core/package.json index 198b7a658564..b2b43908cd0c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -100,7 +100,7 @@ "@deriv-com/quill-tokens": "^2.0.4", "@deriv-com/quill-ui": "1.13.17", "@deriv-com/translations": "1.3.4", - "@deriv-com/ui": "1.29.3", + "@deriv-com/ui": "1.29.7", "@deriv-com/utils": "^0.0.25", "@deriv/account": "^1.0.0", "@deriv/api": "^1.0.0", diff --git a/packages/reports/package.json b/packages/reports/package.json index 27c0975ce5bb..236d2de8aafc 100644 --- a/packages/reports/package.json +++ b/packages/reports/package.json @@ -78,7 +78,7 @@ }, "dependencies": { "@deriv-com/analytics": "1.10.0", - "@deriv-com/ui": "1.29.3", + "@deriv-com/ui": "1.29.7", "@deriv/components": "^1.0.0", "@deriv/deriv-api": "^1.0.15", "@deriv/api-types": "1.0.172", diff --git a/packages/trader/package.json b/packages/trader/package.json index 6868af16678d..cbd0a0def17e 100644 --- a/packages/trader/package.json +++ b/packages/trader/package.json @@ -92,7 +92,7 @@ "@deriv-com/quill-tokens": "^2.0.4", "@deriv-com/quill-ui": "1.13.17", "@deriv-com/utils": "^0.0.25", - "@deriv-com/ui": "1.29.3", + "@deriv-com/ui": "1.29.7", "@deriv/api-types": "1.0.172", "@deriv/components": "^1.0.0", "@deriv/deriv-api": "^1.0.15", diff --git a/packages/wallets/package.json b/packages/wallets/package.json index 70c1239c5c74..7b63c6e4cd74 100644 --- a/packages/wallets/package.json +++ b/packages/wallets/package.json @@ -16,7 +16,7 @@ }, "dependencies": { "@deriv-com/analytics": "1.10.0", - "@deriv-com/ui": "1.29.3", + "@deriv-com/ui": "1.29.7", "@deriv-com/utils": "^0.0.25", "@deriv/api-v2": "^1.0.0", "@deriv/integration": "^1.0.0", diff --git a/packages/wallets/src/components/Base/Tooltip/Tooltip.scss b/packages/wallets/src/components/Base/Tooltip/Tooltip.scss deleted file mode 100644 index 5a44f577e731..000000000000 --- a/packages/wallets/src/components/Base/Tooltip/Tooltip.scss +++ /dev/null @@ -1,77 +0,0 @@ -.wallets-tooltip { - width: fit-content; - height: fit-content; - position: relative; - - &__content { - display: flex; - align-items: center; - position: absolute; - z-index: 1; - - &--right { - top: 50%; - left: 100%; - transform: translateY(-50%); - } - - &--top { - flex-direction: column-reverse; - transform: translate(-50%, -100%); - top: 0; - left: 50%; - } - - &--bottom { - flex-direction: column; - left: 50%; - transform: translateX(-50%); - } - - &--left { - flex-direction: row-reverse; - top: 50%; - transform: translate(-100%, -50%); - } - } - - &__arrow { - background: var(--system-light-5-active-background, #d6dadb); - - &--right { - width: 0.4rem; - height: 0.8rem; - clip-path: polygon(0 50%, 100% 100%, 100% 0); - } - - &--top { - width: 0.8rem; - height: 0.4rem; - clip-path: polygon(0 0, 50% 100%, 100% 0); - } - - &--bottom { - width: 0.8rem; - height: 0.4rem; - clip-path: polygon(0% 100%, 50% 0%, 100% 100%); - } - - &--left { - width: 0.4rem; - height: 0.8rem; - clip-path: polygon(100% 50%, 0 0, 0 100%); - } - } - - &__message { - width: max-content; - max-width: 22rem; - padding: 0.8rem; - border-radius: 4px; - font-size: 1.2rem; - line-height: 1.8rem; - white-space: pre-wrap; - - background: var(--system-light-5-active-background, #d6dadb); - } -} diff --git a/packages/wallets/src/components/Base/Tooltip/Tooltip.tsx b/packages/wallets/src/components/Base/Tooltip/Tooltip.tsx deleted file mode 100644 index 177ffea50cae..000000000000 --- a/packages/wallets/src/components/Base/Tooltip/Tooltip.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -import classNames from 'classnames'; -import './Tooltip.scss'; - -type TProps = { - alignment?: 'bottom' | 'left' | 'right' | 'top'; - className?: string; - isVisible: boolean; - message: string; -}; - -const Tooltip: React.FC> = ({ - alignment = 'left', - children, - className, - isVisible, - message, -}) => { - return ( -
- {children} - {isVisible && ( -
-
-
{message}
-
- )} -
- ); -}; - -export default Tooltip; diff --git a/packages/wallets/src/components/Base/Tooltip/__tests__/Tooltip.spec.tsx b/packages/wallets/src/components/Base/Tooltip/__tests__/Tooltip.spec.tsx deleted file mode 100644 index 73958078d609..000000000000 --- a/packages/wallets/src/components/Base/Tooltip/__tests__/Tooltip.spec.tsx +++ /dev/null @@ -1,116 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import Tooltip from '../Tooltip'; - -const WrappedComponent = () =>
WrappedComponent
; - -describe('Tooltip', () => { - type TTooltipProps = React.ComponentProps; - const tooltipMessage = 'Test tooltip message'; - const baseMockProps: TTooltipProps = { - isVisible: true, - message: tooltipMessage, - }; - it('should not be visible if isVisible=false', () => { - const mockProps: TTooltipProps = { - ...baseMockProps, - isVisible: false, - }; - render( - - - - ); - expect(screen.queryByText('WrappedComponent')).toBeInTheDocument(); - expect(screen.queryByText(tooltipMessage)).not.toBeInTheDocument(); - }); - it('should be visible if isVisible=true', () => { - const mockProps: TTooltipProps = { - ...baseMockProps, - }; - render( - - - - ); - expect(screen.queryByText('WrappedComponent')).toBeInTheDocument(); - expect(screen.queryByText(tooltipMessage)).toBeInTheDocument(); - }); - it('should have "left" CSS modifier by default', () => { - const mockProps: TTooltipProps = { - ...baseMockProps, - }; - render( - - - - ); - expect(screen.queryByText('WrappedComponent')).toBeInTheDocument(); - expect(screen.getByTestId('dt_tooltip_content')).toHaveClass('wallets-tooltip__content--left'); - }); - it('should have "left" CSS modifier if alignment="left"', () => { - const mockProps: TTooltipProps = { - ...baseMockProps, - alignment: 'left', - }; - render( - - - - ); - expect(screen.queryByText('WrappedComponent')).toBeInTheDocument(); - expect(screen.getByTestId('dt_tooltip_content')).toHaveClass('wallets-tooltip__content--left'); - }); - it('should have "bottom" CSS modifier if alignment="bottom"', () => { - const mockProps: TTooltipProps = { - ...baseMockProps, - alignment: 'bottom', - }; - render( - - - - ); - expect(screen.queryByText('WrappedComponent')).toBeInTheDocument(); - expect(screen.getByTestId('dt_tooltip_content')).toHaveClass('wallets-tooltip__content--bottom'); - }); - it('should have "right" CSS modifier if alignment="right"', () => { - const mockProps: TTooltipProps = { - ...baseMockProps, - alignment: 'right', - }; - render( - - - - ); - expect(screen.queryByText('WrappedComponent')).toBeInTheDocument(); - expect(screen.getByTestId('dt_tooltip_content')).toHaveClass('wallets-tooltip__content--right'); - }); - it('should have "top" CSS modifier if alignment="top"', () => { - const mockProps: TTooltipProps = { - ...baseMockProps, - alignment: 'top', - }; - render( - - - - ); - expect(screen.queryByText('WrappedComponent')).toBeInTheDocument(); - expect(screen.getByTestId('dt_tooltip_content')).toHaveClass('wallets-tooltip__content--top'); - }); - it("should have a class applied if it's passed as className prop", () => { - const mockProps: TTooltipProps = { - ...baseMockProps, - className: 'test-class', - }; - render( - - - - ); - expect(screen.queryByText('WrappedComponent')).toBeInTheDocument(); - expect(screen.getByTestId('dt_tooltip_content')).toHaveClass('test-class'); - }); -}); diff --git a/packages/wallets/src/components/Base/Tooltip/index.ts b/packages/wallets/src/components/Base/Tooltip/index.ts deleted file mode 100644 index 49ab72ce0238..000000000000 --- a/packages/wallets/src/components/Base/Tooltip/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as Tooltip } from './Tooltip'; diff --git a/packages/wallets/src/components/Base/WalletClipboard/WalletClipboard.scss b/packages/wallets/src/components/Base/WalletClipboard/WalletClipboard.scss deleted file mode 100644 index e4dae1ac75ff..000000000000 --- a/packages/wallets/src/components/Base/WalletClipboard/WalletClipboard.scss +++ /dev/null @@ -1,9 +0,0 @@ -.wallets-clipboard { - all: unset; - border-radius: 0rem 0.4rem 0.4rem 0rem; - border-left: none; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; -} diff --git a/packages/wallets/src/components/Base/WalletClipboard/WalletClipboard.tsx b/packages/wallets/src/components/Base/WalletClipboard/WalletClipboard.tsx index 4dab3a48bbbc..1fc94b806dfa 100644 --- a/packages/wallets/src/components/Base/WalletClipboard/WalletClipboard.tsx +++ b/packages/wallets/src/components/Base/WalletClipboard/WalletClipboard.tsx @@ -1,27 +1,18 @@ -import React, { useEffect, useRef, useState } from 'react'; -import { useCopyToClipboard, useHover } from 'usehooks-ts'; +import React, { ComponentProps, useEffect, useState } from 'react'; +import { useCopyToClipboard } from 'usehooks-ts'; import { LegacyCopy1pxIcon, LegacyWonIcon } from '@deriv/quill-icons'; +import { Tooltip } from '@deriv-com/ui'; import useDevice from '../../../hooks/useDevice'; -import { Tooltip } from '../Tooltip'; -import './WalletClipboard.scss'; type TProps = { - infoMessage?: string; - popoverAlignment?: 'bottom' | 'left' | 'right' | 'top'; - successMessage?: string; + popoverAlignment?: ComponentProps['tooltipPosition']; textCopy: string; }; -const WalletClipboard = ({ - // info_message, success_message, - popoverAlignment = 'right', - textCopy, -}: TProps) => { +const WalletClipboard = ({ popoverAlignment = 'right', textCopy }: TProps) => { const [, copy] = useCopyToClipboard(); const { isMobile } = useDevice(); const [isCopied, setIsCopied] = useState(false); - const hoverRef = useRef(null); - const isHovered = useHover(hoverRef); let timeoutClipboard: ReturnType; const onClick = (event: { stopPropagation: () => void }) => { @@ -39,17 +30,17 @@ const WalletClipboard = ({ return ( - + {isCopied ? ( + + ) : ( + + )} ); }; diff --git a/packages/wallets/src/components/Base/WalletClipboard/__tests__/WalletClipboard.spec.tsx b/packages/wallets/src/components/Base/WalletClipboard/__tests__/WalletClipboard.spec.tsx index 7e7adfbe796d..abc07fb28b49 100644 --- a/packages/wallets/src/components/Base/WalletClipboard/__tests__/WalletClipboard.spec.tsx +++ b/packages/wallets/src/components/Base/WalletClipboard/__tests__/WalletClipboard.spec.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { useCopyToClipboard, useHover } from 'usehooks-ts'; +import { useCopyToClipboard } from 'usehooks-ts'; import { act, render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import useDevice from '../../../../hooks/useDevice'; @@ -7,7 +7,6 @@ import WalletClipboard from '../WalletClipboard'; jest.mock('usehooks-ts', () => ({ useCopyToClipboard: jest.fn(), - useHover: jest.fn(), })); jest.mock('../../../../hooks/useDevice', () => ({ @@ -18,14 +17,12 @@ jest.mock('../../../../hooks/useDevice', () => ({ describe('WalletClipboard', () => { let mockCopy: jest.Mock; const mockUseDevice = useDevice as jest.Mock; - const mockUseHover = useHover as jest.Mock; const mockUseCopyToClipboard = useCopyToClipboard as jest.Mock; const renderComponent = () => render(); beforeEach(() => { mockCopy = jest.fn(); mockUseCopyToClipboard.mockReturnValue([null, mockCopy]); - mockUseHover.mockReturnValue(false); mockUseDevice.mockReturnValue({ isMobile: false }); }); @@ -53,8 +50,8 @@ describe('WalletClipboard', () => { describe('when hovered', () => { it('shows tooltip with "Copy" message', async () => { - mockUseHover.mockReturnValue(true); renderComponent(); + userEvent.hover(screen.getByRole('button')); await waitFor(() => { expect(screen.queryByText('Copy')).toBeInTheDocument(); @@ -64,9 +61,9 @@ describe('WalletClipboard', () => { describe('when hovered and clicked', () => { const renderScenario = async () => { - mockUseHover.mockReturnValue(true); const { unmount } = renderComponent(); const button = await screen.findByRole('button'); + userEvent.hover(button); await userEvent.click(button); return { unmount }; @@ -91,15 +88,6 @@ describe('WalletClipboard', () => { expect(screen.queryByText('Copied!')).toBeInTheDocument(); }); }); - it("doesn't show tooltip on mobile", async () => { - mockUseDevice.mockReturnValue({ isMobile: true }); - await renderScenario(); - - await waitFor(() => { - expect(screen.queryByText('Copy')).not.toBeInTheDocument(); - expect(screen.queryByText('Copied!')).not.toBeInTheDocument(); - }); - }); it('resets the icon and message after 2 seconds', async () => { jest.useFakeTimers(); await renderScenario(); diff --git a/packages/wallets/src/components/Base/index.ts b/packages/wallets/src/components/Base/index.ts index b5004d83fdc0..61eef358d802 100644 --- a/packages/wallets/src/components/Base/index.ts +++ b/packages/wallets/src/components/Base/index.ts @@ -5,7 +5,6 @@ export * from './ModalStepWrapper'; export * from './ModalWrapper'; export * from './ProgressBar'; export * from './Tabs'; -export * from './Tooltip'; export * from './WalletAlertMessage'; export * from './WalletButton'; export * from './WalletButtonGroup'; diff --git a/packages/wallets/src/features/cashier/modules/DepositCrypto/components/DepositCryptoAddress/DepositCryptoAddress.tsx b/packages/wallets/src/features/cashier/modules/DepositCrypto/components/DepositCryptoAddress/DepositCryptoAddress.tsx index 77e4cefe5cfd..5741762b729b 100644 --- a/packages/wallets/src/features/cashier/modules/DepositCrypto/components/DepositCryptoAddress/DepositCryptoAddress.tsx +++ b/packages/wallets/src/features/cashier/modules/DepositCrypto/components/DepositCryptoAddress/DepositCryptoAddress.tsx @@ -22,9 +22,7 @@ const DepositCryptoAddress: React.FC = ({ depositCryptoAddress }) => {
diff --git a/packages/wallets/src/features/cashier/modules/DepositCrypto/components/DepositCryptoAddress/__tests__/DepositCryptoAddress.spec.tsx b/packages/wallets/src/features/cashier/modules/DepositCrypto/components/DepositCryptoAddress/__tests__/DepositCryptoAddress.spec.tsx index ba783a5d5322..338758d3f138 100644 --- a/packages/wallets/src/features/cashier/modules/DepositCrypto/components/DepositCryptoAddress/__tests__/DepositCryptoAddress.spec.tsx +++ b/packages/wallets/src/features/cashier/modules/DepositCrypto/components/DepositCryptoAddress/__tests__/DepositCryptoAddress.spec.tsx @@ -1,6 +1,7 @@ import React from 'react'; import { useHover } from 'usehooks-ts'; import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import useDevice from '../../../../../../../hooks/useDevice'; import DepositCryptoAddress from '../DepositCryptoAddress'; @@ -33,6 +34,7 @@ describe('DepositCryptoAddress', () => { it('should show copy text when hovering', () => { (useHover as jest.Mock).mockReturnValue(true); render(); + userEvent.hover(screen.getByRole('button')); expect(screen.getByText('Copy')).toBeInTheDocument(); }); }); diff --git a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx index eccdf2c86638..e6e3b03f8635 100644 --- a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx +++ b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx @@ -1,11 +1,10 @@ -import React, { useCallback, useMemo, useRef } from 'react'; +import React, { useCallback, useMemo } from 'react'; import classNames from 'classnames'; import moment from 'moment'; -import { useHover } from 'usehooks-ts'; import { useActiveWalletAccount, useCancelCryptoTransaction } from '@deriv/api-v2'; import { LegacyClose1pxIcon } from '@deriv/quill-icons'; -import { Divider } from '@deriv-com/ui'; -import { Tooltip, WalletButton, WalletText } from '../../../../../../components/Base'; +import { Divider, Tooltip } from '@deriv-com/ui'; +import { WalletButton, WalletText } from '../../../../../../components/Base'; import { useModal } from '../../../../../../components/ModalProvider'; import { WalletCurrencyCard } from '../../../../../../components/WalletCurrencyCard'; import useDevice from '../../../../../../hooks/useDevice'; @@ -18,15 +17,12 @@ type TProps = { transaction: THooks.CryptoTransactions; }; -const TransactionsCryptoRow: React.FC = ({ transaction }) => { +const TransactionsPendingRow: React.FC = ({ transaction }) => { const { data } = useActiveWalletAccount(); const { isMobile } = useDevice(); const displayCode = useMemo(() => data?.currency_config?.display_code || 'USD', [data]); const modal = useModal(); - const statusRef = useRef(null); - const isStatusHovered = useHover(statusRef); - const { mutate } = useCancelCryptoTransaction(); const cancelTransaction = useCallback(() => { @@ -168,30 +164,27 @@ const TransactionsCryptoRow: React.FC = ({ transaction }) => { )}
- + {!isMobile && !!transaction.is_valid_to_cancel && ( ) : ( diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/components/WithdrawalCryptoPriority/WithdrawalCryptoPriority.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/components/WithdrawalCryptoPriority/WithdrawalCryptoPriority.tsx index 5ef03f6db990..86427e7588d8 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/components/WithdrawalCryptoPriority/WithdrawalCryptoPriority.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/components/WithdrawalCryptoPriority/WithdrawalCryptoPriority.tsx @@ -1,7 +1,7 @@ -import React, { useEffect, useRef } from 'react'; +import React, { useEffect } from 'react'; import { useFormikContext } from 'formik'; -import { useHover } from 'usehooks-ts'; -import { Tooltip, WalletCheckbox, WalletsPriorityCryptoWithdrawLoader } from '../../../../../../../../components'; +import { Tooltip } from '@deriv-com/ui'; +import { WalletCheckbox, WalletsPriorityCryptoWithdrawLoader } from '../../../../../../../../components'; import InfoIcon from '../../../../../../../../public/images/ic-info-outline.svg'; import { useWithdrawalCryptoContext } from '../../../../provider'; import { WithdrawalCryptoPriorityFeeInfo } from '../WithdrawalCryptoPriorityFeeInfo'; @@ -23,9 +23,6 @@ const WithdrawalCryptoPriority = () => { unsubscribeCryptoEstimations, } = useWithdrawalCryptoContext(); - const hoverRef = useRef(null); - const isHovered = useHover(hoverRef); - useEffect(() => { if (cryptoEstimationsError) { setError(cryptoEstimationsError); @@ -61,13 +58,11 @@ const WithdrawalCryptoPriority = () => { }} /> -
- -
+
{isLoadingCryptoEstimationFee && } diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/components/WithdrawalCryptoPriorityFeeInfo/WithdrawalCryptoPriorityFeeInfo.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/components/WithdrawalCryptoPriorityFeeInfo/WithdrawalCryptoPriorityFeeInfo.tsx index 3094bf884fb4..b587f0ebc7ab 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/components/WithdrawalCryptoPriorityFeeInfo/WithdrawalCryptoPriorityFeeInfo.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/components/WithdrawalCryptoPriorityFeeInfo/WithdrawalCryptoPriorityFeeInfo.tsx @@ -1,14 +1,12 @@ -import React, { useRef } from 'react'; -import { useHover } from 'usehooks-ts'; -import { Tooltip, WalletText } from '../../../../../../../../components'; +import React from 'react'; +import { Tooltip } from '@deriv-com/ui'; +import { WalletText } from '../../../../../../../../components'; import { useWithdrawalCryptoContext } from '../../../../provider'; import './WithdrawalCryptoPriorityFeeInfo.scss'; const WithdrawalCryptoPriorityFeeInfo = ({ cryptoAmount }: { cryptoAmount: string }) => { const { activeWallet, countDownEstimationFee, cryptoEstimationsFee, fractionalDigits, serverTime } = useWithdrawalCryptoContext(); - const hoverRef = useRef(null); - const isHovered = useHover(hoverRef); return (
@@ -28,8 +26,8 @@ const WithdrawalCryptoPriorityFeeInfo = ({ cryptoAmount }: { cryptoAmount: strin : - - + + {cryptoEstimationsFee.toFixed(fractionalDigits.crypto as number)} {activeWallet?.currency} diff --git a/packages/wallets/src/features/cfd/screens/CompareAccounts/CompareAccountsTitleIcon.scss b/packages/wallets/src/features/cfd/screens/CompareAccounts/CompareAccountsTitleIcon.scss index 4e089d792510..fa5e30854b29 100644 --- a/packages/wallets/src/features/cfd/screens/CompareAccounts/CompareAccountsTitleIcon.scss +++ b/packages/wallets/src/features/cfd/screens/CompareAccounts/CompareAccountsTitleIcon.scss @@ -1,4 +1,4 @@ -.wallets-compare-accounts-title-icon { +.wallets-compare-accounts-title { display: flex; flex-direction: column; gap: 0.5rem; @@ -12,12 +12,11 @@ } &__tooltip { - transform: translateX(-80%); + width: 19rem; + z-index: 9999; - .wallets-tooltip__arrow { - &--bottom { - margin-left: 60%; - } + @include mobile { + width: 16rem; } } } diff --git a/packages/wallets/src/features/cfd/screens/CompareAccounts/CompareAccountsTitleIcon.tsx b/packages/wallets/src/features/cfd/screens/CompareAccounts/CompareAccountsTitleIcon.tsx index ded2c20cc48e..436045509dc2 100644 --- a/packages/wallets/src/features/cfd/screens/CompareAccounts/CompareAccountsTitleIcon.tsx +++ b/packages/wallets/src/features/cfd/screens/CompareAccounts/CompareAccountsTitleIcon.tsx @@ -1,8 +1,6 @@ -import React, { useRef } from 'react'; -import { useHover } from 'usehooks-ts'; -import { Divider } from '@deriv-com/ui'; -import { Tooltip, WalletText } from '../../../../components'; -import useDevice from '../../../../hooks/useDevice'; +import React from 'react'; +import { Divider, Tooltip } from '@deriv-com/ui'; +import { WalletText } from '../../../../components'; import InfoIcon from '../../../../public/images/ic-info-outline.svg'; import { THooks, TPlatforms } from '../../../../types'; import { CFD_PLATFORMS } from '../../constants'; @@ -58,10 +56,6 @@ const CompareAccountsTitleIcon = ({ isDemo, marketType, platform, shortCode }: T const marketTypeShortCode: TMarketWithShortCode = `${marketType}_${shortCode}`; const jurisdictionCardIcon = getAccountIcon(platform, marketType); - const hoverRef = useRef(null); - const isHovered = useHover(hoverRef); - const { isDesktop } = useDevice(); - const jurisdictionCardTitle = platform === CFD_PLATFORMS.DXTRADE || platform === CFD_PLATFORMS.CTRADER ? getAccountCardTitle(platform, isDemo) @@ -71,22 +65,20 @@ const CompareAccountsTitleIcon = ({ isDemo, marketType, platform, shortCode }: T return ( -
+
{jurisdictionCardIcon} -
+
{jurisdictionCardTitle} {marketTypeShortCode === MARKET_TYPE_SHORTCODE.FINANCIAL_LABUAN && ( -
- -
+
)}
diff --git a/packages/wallets/src/features/cfd/screens/MT5TradeScreen/MT5TradeDetailsItem/MT5TradeDetailsItem.tsx b/packages/wallets/src/features/cfd/screens/MT5TradeScreen/MT5TradeDetailsItem/MT5TradeDetailsItem.tsx index 563df433d01f..0cce2068ee8c 100644 --- a/packages/wallets/src/features/cfd/screens/MT5TradeScreen/MT5TradeDetailsItem/MT5TradeDetailsItem.tsx +++ b/packages/wallets/src/features/cfd/screens/MT5TradeScreen/MT5TradeDetailsItem/MT5TradeDetailsItem.tsx @@ -1,7 +1,7 @@ -import React, { FC, useRef } from 'react'; +import React, { FC } from 'react'; import classNames from 'classnames'; -import { useHover } from 'usehooks-ts'; -import { Tooltip, WalletClipboard, WalletText } from '../../../../../components/Base'; +import { Tooltip } from '@deriv-com/ui'; +import { WalletClipboard, WalletText } from '../../../../../components/Base'; import { useModal } from '../../../../../components/ModalProvider'; import useDevice from '../../../../../hooks/useDevice'; import EditIcon from '../../../../../public/images/ic-edit.svg'; @@ -16,8 +16,6 @@ type TMT5TradeDetailsItemProps = { const MT5TradeDetailsItem: FC = ({ label, value, variant = 'clipboard' }) => { const { isDesktop } = useDevice(); - const hoverRef = useRef(null); - const isHovered = useHover(hoverRef); const { show } = useModal(); return (
= ({ label, value, vari {value} - {variant === 'clipboard' && ( - - )} + {variant === 'clipboard' && } {variant === 'password' && ( - -
- show()} - /> -
+ show()} + tooltipContent='Change password' + tooltipPosition='left' + > + )}
From 2b5a801ef157aab513b041067385b113ea2fd9c0 Mon Sep 17 00:00:00 2001 From: fasihali-deriv <121229483+fasihali-deriv@users.noreply.github.com> Date: Thu, 25 Jul 2024 15:56:39 +0800 Subject: [PATCH 04/40] Fasih/TRAH-3827/ Enable tooltip again (#16175) * Revert "Fasih/TRAH-3793/ Removed popup (#16048)" This reverts commit 06d5e1a72bdb924f1a422f4bcb8abec2d5cfaead. * chore: imported URL from external URL file * chore: fixed build issue --- .../additional-kyc-info-form.tsx | 18 ++++++ .../forms/personal-details-form.jsx | 58 ++++++++++++++++++- .../__tests__/personal-details.spec.tsx | 53 +++++++++++++++++ 3 files changed, 127 insertions(+), 2 deletions(-) diff --git a/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-form.tsx b/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-form.tsx index f5468d095ede..3691c2f0ffff 100644 --- a/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-form.tsx +++ b/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-form.tsx @@ -5,6 +5,7 @@ import clsx from 'clsx'; import { Form, Formik } from 'formik'; import React from 'react'; import { useSettings } from '@deriv/api'; +import { OECD_TIN_FORMAT_URL } from '../../Constants/external-urls'; import FormFieldInfo from '../form-field-info'; import { FormInputField } from '../forms/form-fields'; import FormSelectField from '../forms/form-select-field'; @@ -119,6 +120,23 @@ export const AdditionalKycInfoForm = observer(({ setError }: TAdditionalKycInfoF {...fields.tax_identification_number} data_testId='dt_tax_identification_number' /> + , +
, + ]} + /> + } + />
{ const { isDesktop } = useDevice(); @@ -52,6 +53,7 @@ const PersonalDetailsForm = props => { const is_svg_only = is_svg && !is_eu_user; const [is_tax_residence_popover_open, setIsTaxResidencePopoverOpen] = React.useState(false); + const [is_tin_popover_open, setIsTinPopoverOpen] = React.useState(false); const { errors, touched, values, setFieldValue, handleChange, handleBlur, setFieldTouched } = useFormikContext(); @@ -59,7 +61,10 @@ const PersonalDetailsForm = props => { if (is_tax_residence_popover_open) { setIsTaxResidencePopoverOpen(false); } - }, [is_tax_residence_popover_open]); + if (is_tin_popover_open) { + setIsTinPopoverOpen(false); + } + }, [is_tax_residence_popover_open, is_tin_popover_open]); React.useEffect(() => { if (should_close_tooltip) { @@ -421,11 +426,15 @@ const PersonalDetailsForm = props => { residence_list={residence_list} required setIsTaxResidencePopoverOpen={setIsTaxResidencePopoverOpen} + setIsTinPopoverOpen={setIsTinPopoverOpen} is_tax_residence_popover_open={is_tax_residence_popover_open} /> )} {'tax_identification_number' in values && ( @@ -557,11 +566,15 @@ const PersonalDetailsForm = props => { disabled={isFieldImmutable('tax_residence', editable_fields)} residence_list={residence_list} setIsTaxResidencePopoverOpen={setIsTaxResidencePopoverOpen} + setIsTinPopoverOpen={setIsTinPopoverOpen} is_tax_residence_popover_open={is_tax_residence_popover_open} /> )} {'tax_identification_number' in values && ( )} @@ -669,6 +682,7 @@ const TaxResidenceField = ({ residence_list, required = false, setIsTaxResidencePopoverOpen, + setIsTinPopoverOpen, is_tax_residence_popover_open, disabled, }) => { @@ -717,6 +731,7 @@ const TaxResidenceField = ({ data-testid='tax_residence_pop_over' onClick={e => { setIsTaxResidencePopoverOpen(true); + setIsTinPopoverOpen(false); e.stopPropagation(); }} > @@ -737,7 +752,14 @@ const TaxResidenceField = ({ ); }; -const TaxIdentificationNumberField = ({ disabled, required = false }) => { +const TaxIdentificationNumberField = ({ + is_tin_popover_open, + setIsTinPopoverOpen, + setIsTaxResidencePopoverOpen, + disabled, + required = false, +}) => { + const { isDesktop } = useDevice(); return ( ); }; diff --git a/packages/account/src/Components/personal-details/__tests__/personal-details.spec.tsx b/packages/account/src/Components/personal-details/__tests__/personal-details.spec.tsx index 7880b50d96cb..a5453cec53c5 100644 --- a/packages/account/src/Components/personal-details/__tests__/personal-details.spec.tsx +++ b/packages/account/src/Components/personal-details/__tests__/personal-details.spec.tsx @@ -63,6 +63,7 @@ const mock_errors: FormikErrors = { const tax_residence_pop_over_text = /the country in which you meet the criteria for paying taxes\. usually the country in which you physically reside\./i; +const tin_pop_over_text = /don't know your tax identification number\?/i; const runCommonFormfieldsTests = (is_svg: boolean) => { expect(screen.getByRole('radio', { name: /mr/i })).toBeInTheDocument(); @@ -98,6 +99,24 @@ const runCommonFormfieldsTests = (is_svg: boolean) => { ).toBeInTheDocument(); } + const tax_residence_pop_over = screen.queryByTestId('tax_residence_pop_over'); + if (tax_residence_pop_over) { + fireEvent.click(tax_residence_pop_over); + } + + expect(screen.getByText(tax_residence_pop_over_text)).toBeInTheDocument(); + + expect(screen.getByLabelText(/tax identification number/i)).toBeInTheDocument(); + const tax_identification_number_pop_over = screen.queryByTestId('tax_identification_number_pop_over'); + expect(tax_identification_number_pop_over).toBeInTheDocument(); + + if (tax_identification_number_pop_over) { + fireEvent.click(tax_identification_number_pop_over); + } + + expect(screen.getByText(tin_pop_over_text)).toBeInTheDocument(); + expect(screen.getByRole('link', { name: 'here' })).toBeInTheDocument(); + if (is_svg) expect( screen.getByRole('heading', { @@ -800,6 +819,23 @@ describe('', () => { expect(screen.queryByText(tax_residence_pop_over_text)).not.toBeInTheDocument(); }); + it('should close tax_identification_number_pop_over when clicked outside', () => { + const new_props = { ...mock_props, is_svg: false }; + renderwithRouter({ props: new_props }); + + const tin_pop_over = screen.getByTestId('tax_identification_number_pop_over'); + expect(tin_pop_over).toBeInTheDocument(); + fireEvent.click(tin_pop_over); + + expect(screen.getByText(tin_pop_over_text)).toBeInTheDocument(); + expect(screen.getByRole('link', { name: 'here' })).toBeInTheDocument(); + + fireEvent.click(screen.getByRole('heading', { name: /account opening reason/i })); + + expect(screen.queryByText(tin_pop_over_text)).not.toBeInTheDocument(); + expect(screen.queryByRole('link', { name: 'here' })).not.toBeInTheDocument(); + }); + it('should close tax_residence pop-over when scrolled', () => { renderwithRouter({}); @@ -816,6 +852,23 @@ describe('', () => { expect(screen.queryByText(tax_residence_pop_over_text)).not.toBeInTheDocument(); }); + it('should close tax_identification_number_pop_over when scrolled', () => { + renderwithRouter({}); + + const tax_identification_number_pop_over = screen.getByTestId('tax_identification_number_pop_over'); + expect(tax_identification_number_pop_over).toBeInTheDocument(); + fireEvent.click(tax_identification_number_pop_over); + expect(screen.getByText(tin_pop_over_text)).toBeInTheDocument(); + expect(screen.getByRole('link', { name: 'here' })).toBeInTheDocument(); + + fireEvent.scroll(screen.getByTestId('dt_personal_details_container'), { + target: { scrollY: 100 }, + }); + + expect(screen.queryByText(tax_residence_pop_over_text)).not.toBeInTheDocument(); + expect(screen.queryByRole('link', { name: 'here' })).not.toBeInTheDocument(); + }); + it('should validate idv values when a document type is selected', async () => { (shouldShowIdentityInformation as jest.Mock).mockReturnValue(true); const new_props = { From bdebbf37ad2a70c6397da22513e7843f19af0d54 Mon Sep 17 00:00:00 2001 From: Jim Daniels Wasswa <104334373+jim-deriv@users.noreply.github.com> Date: Thu, 25 Jul 2024 21:25:14 +0800 Subject: [PATCH 05/40] [WALL] Jim/WALL-4349/replace walletbutton with button (#16146) * refactor: replace walletbutton with button * chore: update package and fix component test * chore: add package-lock --- package-lock.json | 8 +++--- packages/account/package.json | 2 +- packages/cashier-v2/package.json | 2 +- packages/cfd/package.json | 2 +- packages/components/package.json | 2 +- packages/core/package.json | 2 +- packages/reports/package.json | 2 +- packages/trader/package.json | 2 +- .../crypto-payment-redirection.spec.tsx | 4 +-- packages/wallets/package.json | 2 +- .../WalletsErrorScreen/WalletsErrorScreen.tsx | 8 +++--- .../WalletActionModal/WalletActionModal.tsx | 10 +++++--- .../cashier/modules/FiatOnRamp/FiatOnRamp.tsx | 7 +++--- .../FiatOnRampDisclaimer.tsx | 11 ++++---- .../__tests__/FiatOnRampDisclaimer.spec.tsx | 6 +---- .../FiatOnRampProviderCard.tsx | 7 +++--- .../modules/ResetBalance/ResetBalance.tsx | 9 ++++--- .../CryptoTransaction/CryptoTransaction.tsx | 9 ++++--- .../TransactionStatusError.tsx | 8 +++--- .../TransactionStatusSuccess.tsx | 10 +++++--- .../TransactionsPendingRow.tsx | 15 ++++++++--- .../cashier/modules/Transfer/Transfer.tsx | 2 +- .../components/TransferForm/TransferForm.tsx | 9 ++++--- .../__tests__/TransferForm.spec.tsx | 25 +++++++------------ .../TransferMessages/TransferMessages.tsx | 7 +++--- .../TransferReceipt/TransferReceipt.tsx | 8 +++--- .../WithdrawalCryptoForm.tsx | 9 ++++--- .../WithdrawalCryptoReceipt.tsx | 14 ++++++----- .../WithdrawalVerificationRequest.tsx | 7 +++--- .../WithdrawalVerificationSent.tsx | 14 +++++++---- .../TransferNotAvailableProvider.tsx | 10 ++++---- .../WithdrawalErrorScreen.tsx | 5 ++-- .../WithdrawalNoBalance.tsx | 7 +++--- 33 files changed, 136 insertions(+), 109 deletions(-) diff --git a/package-lock.json b/package-lock.json index f2b47090e177..5a0bd7fef0b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "@deriv-com/quill-tokens": "^2.0.4", "@deriv-com/quill-ui": "1.13.17", "@deriv-com/translations": "1.3.4", - "@deriv-com/ui": "1.29.7", + "@deriv-com/ui": "1.29.9", "@deriv-com/utils": "^0.0.25", "@deriv/api-types": "1.0.172", "@deriv/deriv-api": "^1.0.15", @@ -3146,9 +3146,9 @@ } }, "node_modules/@deriv-com/ui": { - "version": "1.29.7", - "resolved": "https://registry.npmjs.org/@deriv-com/ui/-/ui-1.29.7.tgz", - "integrity": "sha512-lIjNusj4dF55amS+Y0xLBkg64vTSOW+aD4sUX3GEcYssLgziaumNiM/qgdpLZ2aKUE6vInC4p13X0HW+7Z0TVg==", + "version": "1.29.9", + "resolved": "https://registry.npmjs.org/@deriv-com/ui/-/ui-1.29.9.tgz", + "integrity": "sha512-11rxCG5eSn3huaf+dqqMUzRhNogHu+Qv9NNlJdXiwdHzNt2X7NGtrNpAtB669yjjtdt11ImwFQsN6BIPJg6DeA==", "dependencies": { "@popperjs/core": "^2.11.8", "@types/react-modal": "^3.16.3", diff --git a/packages/account/package.json b/packages/account/package.json index ae946efe204d..62707f08a289 100644 --- a/packages/account/package.json +++ b/packages/account/package.json @@ -33,7 +33,7 @@ "@deriv-com/analytics": "1.10.0", "@deriv-com/translations": "1.3.4", "@deriv-com/utils": "^0.0.25", - "@deriv-com/ui": "1.29.7", + "@deriv-com/ui": "1.29.9", "@deriv/api": "^1.0.0", "@deriv-com/quill-ui": "1.13.17", "@deriv/components": "^1.0.0", diff --git a/packages/cashier-v2/package.json b/packages/cashier-v2/package.json index 32ccf1e2a380..c98247c437ab 100644 --- a/packages/cashier-v2/package.json +++ b/packages/cashier-v2/package.json @@ -14,7 +14,7 @@ "start": "rimraf dist && npm run test && npm run serve" }, "dependencies": { - "@deriv-com/ui": "1.29.7", + "@deriv-com/ui": "1.29.9", "@deriv-com/utils": "^0.0.25", "@deriv/api-v2": "^1.0.0", "@deriv/integration": "^1.0.0", diff --git a/packages/cfd/package.json b/packages/cfd/package.json index 7251b294bd84..9ed896b8739f 100644 --- a/packages/cfd/package.json +++ b/packages/cfd/package.json @@ -86,7 +86,7 @@ }, "dependencies": { "@deriv-com/analytics": "1.10.0", - "@deriv-com/ui": "1.29.7", + "@deriv-com/ui": "1.29.9", "@deriv-com/translations": "1.3.4", "@deriv-com/utils": "^0.0.25", "@deriv/account": "^1.0.0", diff --git a/packages/components/package.json b/packages/components/package.json index 0392c01c3419..89c7c4caf3d8 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -73,7 +73,7 @@ }, "dependencies": { "@contentpass/zxcvbn": "^4.4.3", - "@deriv-com/ui": "1.29.7", + "@deriv-com/ui": "1.29.9", "@deriv/shared": "^1.0.0", "@deriv/stores": "^1.0.0", "@deriv/translations": "^1.0.0", diff --git a/packages/core/package.json b/packages/core/package.json index b2b43908cd0c..fad236217e25 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -100,7 +100,7 @@ "@deriv-com/quill-tokens": "^2.0.4", "@deriv-com/quill-ui": "1.13.17", "@deriv-com/translations": "1.3.4", - "@deriv-com/ui": "1.29.7", + "@deriv-com/ui": "1.29.9", "@deriv-com/utils": "^0.0.25", "@deriv/account": "^1.0.0", "@deriv/api": "^1.0.0", diff --git a/packages/reports/package.json b/packages/reports/package.json index 236d2de8aafc..432ec292aee8 100644 --- a/packages/reports/package.json +++ b/packages/reports/package.json @@ -78,7 +78,7 @@ }, "dependencies": { "@deriv-com/analytics": "1.10.0", - "@deriv-com/ui": "1.29.7", + "@deriv-com/ui": "1.29.9", "@deriv/components": "^1.0.0", "@deriv/deriv-api": "^1.0.15", "@deriv/api-types": "1.0.172", diff --git a/packages/trader/package.json b/packages/trader/package.json index cbd0a0def17e..5e27b0a16533 100644 --- a/packages/trader/package.json +++ b/packages/trader/package.json @@ -92,7 +92,7 @@ "@deriv-com/quill-tokens": "^2.0.4", "@deriv-com/quill-ui": "1.13.17", "@deriv-com/utils": "^0.0.25", - "@deriv-com/ui": "1.29.7", + "@deriv-com/ui": "1.29.9", "@deriv/api-types": "1.0.172", "@deriv/components": "^1.0.0", "@deriv/deriv-api": "^1.0.15", diff --git a/packages/wallets/component-tests/crypto-payment-redirection.spec.tsx b/packages/wallets/component-tests/crypto-payment-redirection.spec.tsx index 7249360d1af9..862172bb48df 100644 --- a/packages/wallets/component-tests/crypto-payment-redirection.spec.tsx +++ b/packages/wallets/component-tests/crypto-payment-redirection.spec.tsx @@ -54,8 +54,8 @@ test.describe('Wallets - Crypto withdrawal', () => { // #fiatAmount await expect(page.locator('#fiatAmount')).toBeVisible(); - // button of type "submit" with text "Withdraw" and with class .wallets-button - const submitButton = await page.locator('button.wallets-button[type="submit"]'); + // button of type "submit" with text "Withdraw" and with class .deriv-button + const submitButton = await page.locator('button.deriv-button[type="submit"]'); await expect(submitButton).toBeVisible(); await expect(submitButton).toHaveText('Withdraw'); }); diff --git a/packages/wallets/package.json b/packages/wallets/package.json index 7b63c6e4cd74..50c53631ab20 100644 --- a/packages/wallets/package.json +++ b/packages/wallets/package.json @@ -16,7 +16,7 @@ }, "dependencies": { "@deriv-com/analytics": "1.10.0", - "@deriv-com/ui": "1.29.7", + "@deriv-com/ui": "1.29.9", "@deriv-com/utils": "^0.0.25", "@deriv/api-v2": "^1.0.0", "@deriv/integration": "^1.0.0", diff --git a/packages/wallets/src/components/WalletsErrorScreen/WalletsErrorScreen.tsx b/packages/wallets/src/components/WalletsErrorScreen/WalletsErrorScreen.tsx index d0e0d290a299..b0f9f15359f9 100644 --- a/packages/wallets/src/components/WalletsErrorScreen/WalletsErrorScreen.tsx +++ b/packages/wallets/src/components/WalletsErrorScreen/WalletsErrorScreen.tsx @@ -1,11 +1,11 @@ import React, { ComponentProps } from 'react'; -import { WalletButton } from '../Base'; +import { Button } from '@deriv-com/ui'; import { WalletsActionScreen } from '../WalletsActionScreen'; import './WalletsErrorScreen.scss'; type TProps = { buttonText?: string; - buttonVariant?: ComponentProps['variant']; + buttonVariant?: ComponentProps['variant']; message?: string; onClick?: () => void; title?: string; @@ -24,9 +24,9 @@ const WalletsErrorScreen: React.FC = ({ description={message} renderButtons={() => buttonText ? ( - + ) : null } title={title} diff --git a/packages/wallets/src/features/cashier/components/WalletActionModal/WalletActionModal.tsx b/packages/wallets/src/features/cashier/components/WalletActionModal/WalletActionModal.tsx index f240a725e70f..184bb9681b70 100644 --- a/packages/wallets/src/features/cashier/components/WalletActionModal/WalletActionModal.tsx +++ b/packages/wallets/src/features/cashier/components/WalletActionModal/WalletActionModal.tsx @@ -1,5 +1,6 @@ import React from 'react'; -import { ModalWrapper, WalletButton, WalletText } from '../../../../components/Base'; +import { Button } from '@deriv-com/ui'; +import { ModalWrapper, WalletText } from '../../../../components/Base'; import useDevice from '../../../../hooks/useDevice'; import './WalletActionModal.scss'; @@ -34,14 +35,17 @@ const WalletActionModal: React.FC = ({ {!!actionButtonsOptions.length && (
{actionButtonsOptions.map(action => ( - {action.text} - + ))}
)} diff --git a/packages/wallets/src/features/cashier/modules/FiatOnRamp/FiatOnRamp.tsx b/packages/wallets/src/features/cashier/modules/FiatOnRamp/FiatOnRamp.tsx index 6ce67b9dee9d..dc01e56989c4 100644 --- a/packages/wallets/src/features/cashier/modules/FiatOnRamp/FiatOnRamp.tsx +++ b/packages/wallets/src/features/cashier/modules/FiatOnRamp/FiatOnRamp.tsx @@ -1,7 +1,8 @@ import React, { useState } from 'react'; import { useHistory } from 'react-router-dom'; import { LegacyArrowLeft2pxIcon } from '@deriv/quill-icons'; -import { WalletButton, WalletText } from '../../../../components'; +import { Button } from '@deriv-com/ui'; +import { WalletText } from '../../../../components'; import { FiatOnRampDisclaimer, FiatOnRampProviderCard } from './components'; import { fiatOnRampProvider } from './constants'; import './FiatOnRamp.scss'; @@ -19,13 +20,13 @@ const FiatOnRamp = () => { ) : (
- } onClick={() => history.push('/wallet/deposit')} > Back - +
diff --git a/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampDisclaimer/FiatOnRampDisclaimer.tsx b/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampDisclaimer/FiatOnRampDisclaimer.tsx index cc78870e7732..92b47f750df9 100644 --- a/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampDisclaimer/FiatOnRampDisclaimer.tsx +++ b/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampDisclaimer/FiatOnRampDisclaimer.tsx @@ -1,6 +1,7 @@ import React, { MouseEventHandler, useCallback, useEffect } from 'react'; import { useMutation } from '@deriv/api-v2'; -import { WalletButton, WalletText } from '../../../../../../components'; +import { Button } from '@deriv-com/ui'; +import { WalletText } from '../../../../../../components'; import './FiatOnRampDisclaimer.scss'; type TFiatOnRampDisclaimer = { @@ -32,12 +33,12 @@ const FiatOnRampDisclaimer: React.FC = ({ handleDisclaime you encounter any issues related to Banxa services, you should contact Banxa directly.
- + +
); diff --git a/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampDisclaimer/__tests__/FiatOnRampDisclaimer.spec.tsx b/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampDisclaimer/__tests__/FiatOnRampDisclaimer.spec.tsx index b9dce53f0e90..89339635f071 100644 --- a/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampDisclaimer/__tests__/FiatOnRampDisclaimer.spec.tsx +++ b/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampDisclaimer/__tests__/FiatOnRampDisclaimer.spec.tsx @@ -8,10 +8,6 @@ jest.mock('@deriv/api-v2', () => ({ })); const mockUseMutation = useMutation as jest.Mock; -jest.mock('@deriv-com/ui', () => ({ - Loader: jest.fn(() =>
Loading...
), -})); - describe('FiatOnRampDisclaimer', () => { beforeEach(() => { mockUseMutation.mockReturnValue({ @@ -46,7 +42,7 @@ describe('FiatOnRampDisclaimer', () => { const handleDisclaimer = jest.fn(); render(); - expect(screen.getByText('Loading...')).toBeInTheDocument(); + expect(screen.getByTestId('dt_derivs-loader')).toBeInTheDocument(); }); it('should call handleDisclaimer function on "Back" button click', () => { diff --git a/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampProviderCard/FiatOnRampProviderCard.tsx b/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampProviderCard/FiatOnRampProviderCard.tsx index 81ab35f59043..eae1e0dc5595 100644 --- a/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampProviderCard/FiatOnRampProviderCard.tsx +++ b/packages/wallets/src/features/cashier/modules/FiatOnRamp/components/FiatOnRampProviderCard/FiatOnRampProviderCard.tsx @@ -1,5 +1,6 @@ import React, { MouseEventHandler } from 'react'; -import { WalletButton, WalletText } from '../../../../../../components'; +import { Button } from '@deriv-com/ui'; +import { WalletText } from '../../../../../../components'; import './FiatOnRampProviderCard.scss'; type TFiatOnRampProvider = { @@ -48,9 +49,9 @@ const FiatOnRampProviderCard: React.FC = ({
))}
- +
); }; diff --git a/packages/wallets/src/features/cashier/modules/ResetBalance/ResetBalance.tsx b/packages/wallets/src/features/cashier/modules/ResetBalance/ResetBalance.tsx index 5222ad391b14..ffbfbc82316c 100644 --- a/packages/wallets/src/features/cashier/modules/ResetBalance/ResetBalance.tsx +++ b/packages/wallets/src/features/cashier/modules/ResetBalance/ResetBalance.tsx @@ -1,7 +1,8 @@ import React from 'react'; import { useHistory } from 'react-router-dom'; import { useMutation } from '@deriv/api-v2'; -import { WalletButton, WalletsActionScreen } from '../../../../components'; +import { Button } from '@deriv-com/ui'; +import { WalletsActionScreen } from '../../../../components'; //TODO: replace with quill-icons import IcResetDemoBalance from '../../../../public/images/ic-demo-reset-balance.svg'; import IcResetDemoBalanceDone from '../../../../public/images/ic-demo-reset-balance-done.svg'; @@ -22,12 +23,14 @@ const ResetBalance = () => { } icon={isResetBalanceSuccess ? : } renderButtons={() => ( - history.push('/wallet/account-transfer') : resetBalance} size='lg' + textSize='md' > {isResetBalanceSuccess ? 'Transfer funds' : 'Reset balance'} - + )} title={isResetBalanceSuccess ? 'Success' : 'Reset balance'} /> diff --git a/packages/wallets/src/features/cashier/modules/TransactionStatus/components/CryptoTransaction/CryptoTransaction.tsx b/packages/wallets/src/features/cashier/modules/TransactionStatus/components/CryptoTransaction/CryptoTransaction.tsx index f603fec0049e..7ab32dc1a46e 100644 --- a/packages/wallets/src/features/cashier/modules/TransactionStatus/components/CryptoTransaction/CryptoTransaction.tsx +++ b/packages/wallets/src/features/cashier/modules/TransactionStatus/components/CryptoTransaction/CryptoTransaction.tsx @@ -3,7 +3,8 @@ import classNames from 'classnames'; import moment from 'moment'; import { useCancelCryptoTransaction } from '@deriv/api-v2'; import { LegacyClose1pxIcon } from '@deriv/quill-icons'; -import { WalletButton, WalletText } from '../../../../../../components/Base'; +import { Button } from '@deriv-com/ui'; +import { WalletText } from '../../../../../../components/Base'; import { useModal } from '../../../../../../components/ModalProvider'; import useDevice from '../../../../../../hooks/useDevice'; import { THooks } from '../../../../../../types'; @@ -133,14 +134,16 @@ const CryptoTransaction: React.FC = ({ )} {!!transaction.is_valid_to_cancel && isMobile && (
- Cancel transaction - +
)}
diff --git a/packages/wallets/src/features/cashier/modules/TransactionStatus/components/TransactionStatusError/TransactionStatusError.tsx b/packages/wallets/src/features/cashier/modules/TransactionStatus/components/TransactionStatusError/TransactionStatusError.tsx index c99305ae67c2..044f32fe8be2 100644 --- a/packages/wallets/src/features/cashier/modules/TransactionStatus/components/TransactionStatusError/TransactionStatusError.tsx +++ b/packages/wallets/src/features/cashier/modules/TransactionStatus/components/TransactionStatusError/TransactionStatusError.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { Divider } from '@deriv-com/ui'; -import { WalletButton, WalletText } from '../../../../../../components/Base'; +import { Button, Divider } from '@deriv-com/ui'; +import { WalletText } from '../../../../../../components/Base'; type TTransactionStatusError = { refresh: VoidFunction; @@ -12,9 +12,9 @@ const TransactionStatusError: React.FC = ({ refresh }) Unfortunately, we cannot retrieve the information at this time. - + ); diff --git a/packages/wallets/src/features/cashier/modules/TransactionStatus/components/TransactionStatusSuccess/TransactionStatusSuccess.tsx b/packages/wallets/src/features/cashier/modules/TransactionStatus/components/TransactionStatusSuccess/TransactionStatusSuccess.tsx index 8a4713deb12b..5c0f12544868 100644 --- a/packages/wallets/src/features/cashier/modules/TransactionStatus/components/TransactionStatusSuccess/TransactionStatusSuccess.tsx +++ b/packages/wallets/src/features/cashier/modules/TransactionStatus/components/TransactionStatusSuccess/TransactionStatusSuccess.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { useHistory } from 'react-router-dom'; -import { Divider } from '@deriv-com/ui'; -import { WalletButton, WalletText } from '../../../../../../components/Base'; +import { Button, Divider } from '@deriv-com/ui'; +import { WalletText } from '../../../../../../components/Base'; import { THooks } from '../../../../../../types'; import { CryptoTransaction } from '../CryptoTransaction'; @@ -41,7 +41,9 @@ const TransactionStatusSuccess: React.FC = ({ transac ))} {filteredTransactions.length > 3 && ( - { // should navigate to transactions page with "Pending transactions" toggle on and filter set to `transactionType` @@ -54,7 +56,7 @@ const TransactionStatusSuccess: React.FC = ({ transac variant='outlined' > View more - + )} ) : ( diff --git a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx index e6e3b03f8635..a0db1d26f8f9 100644 --- a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx +++ b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx @@ -3,8 +3,8 @@ import classNames from 'classnames'; import moment from 'moment'; import { useActiveWalletAccount, useCancelCryptoTransaction } from '@deriv/api-v2'; import { LegacyClose1pxIcon } from '@deriv/quill-icons'; -import { Divider, Tooltip } from '@deriv-com/ui'; -import { WalletButton, WalletText } from '../../../../../../components/Base'; +import { Button, Divider, Tooltip } from '@deriv-com/ui'; +import { WalletText } from '../../../../../../components/Base'; import { useModal } from '../../../../../../components/ModalProvider'; import { WalletCurrencyCard } from '../../../../../../components/WalletCurrencyCard'; import useDevice from '../../../../../../hooks/useDevice'; @@ -196,9 +196,16 @@ const TransactionsPendingRow: React.FC = ({ transaction }) => {
{isMobile && !!transaction.is_valid_to_cancel && ( - + )}
diff --git a/packages/wallets/src/features/cashier/modules/Transfer/Transfer.tsx b/packages/wallets/src/features/cashier/modules/Transfer/Transfer.tsx index fff258e2ac6f..87e856547f83 100644 --- a/packages/wallets/src/features/cashier/modules/Transfer/Transfer.tsx +++ b/packages/wallets/src/features/cashier/modules/Transfer/Transfer.tsx @@ -1,8 +1,8 @@ import React from 'react'; import type { THooks } from '../../../../types'; +import { TransferErrorScreen } from '../../screens/TransferErrorScreen'; import { TransferForm, TransferReceipt } from './components'; import { TransferProvider, useTransfer } from './provider'; -import { TransferErrorScreen } from '../../screens/TransferErrorScreen'; type TProps = { accounts: THooks.TransferAccount[]; diff --git a/packages/wallets/src/features/cashier/modules/Transfer/components/TransferForm/TransferForm.tsx b/packages/wallets/src/features/cashier/modules/Transfer/components/TransferForm/TransferForm.tsx index aad95bef92ca..f04a81ffc37d 100644 --- a/packages/wallets/src/features/cashier/modules/Transfer/components/TransferForm/TransferForm.tsx +++ b/packages/wallets/src/features/cashier/modules/Transfer/components/TransferForm/TransferForm.tsx @@ -1,7 +1,6 @@ import React, { useCallback, useRef } from 'react'; import { Formik } from 'formik'; -import { Loader } from '@deriv-com/ui'; -import { WalletButton } from '../../../../../../components'; +import { Button, Loader } from '@deriv-com/ui'; import useDevice from '../../../../../../hooks/useDevice'; import { useTransfer } from '../../provider'; import type { TInitialTransferFormValues } from '../../types'; @@ -54,13 +53,15 @@ const TransferForm = () => {
- Transfer - +
)} diff --git a/packages/wallets/src/features/cashier/modules/Transfer/components/TransferForm/__tests__/TransferForm.spec.tsx b/packages/wallets/src/features/cashier/modules/Transfer/components/TransferForm/__tests__/TransferForm.spec.tsx index f4b80a51b5e2..caa0bf580e5b 100644 --- a/packages/wallets/src/features/cashier/modules/Transfer/components/TransferForm/__tests__/TransferForm.spec.tsx +++ b/packages/wallets/src/features/cashier/modules/Transfer/components/TransferForm/__tests__/TransferForm.spec.tsx @@ -9,10 +9,6 @@ import TransferForm from '../TransferForm'; const mockAccounts = ['CR1', 'CR2']; let mockFormikValues: unknown; -jest.mock('@deriv-com/ui', () => ({ - Loader: jest.fn(() =>
Loading...
), -})); - jest.mock('../../../../../../../hooks/useDevice', () => jest.fn()); jest.mock('../../../provider', () => ({ @@ -21,16 +17,6 @@ jest.mock('../../../provider', () => ({ useTransfer: jest.fn(), })); // const mockUseFormikContext = jest.spyOn(formik, 'useFormikContext') as jest.Mock; -jest.mock('../../TransferFormAmountInput', () => ({ - ...jest.requireActual('../../TransferFormAmountInput'), - TransferFormAmountInput: jest.fn(({ fieldName }) => ), -})); - -jest.mock('../../TransferFormDropdown', () => ({ - ...jest.requireActual('../../TransferFormDropdown'), - TransferFormDropdown: jest.fn(({ fieldName }) =>
{fieldName}
), -})); - const mockTransferMessages = jest.fn(() => { const { setValues } = useFormikContext(); useEffect(() => { @@ -40,8 +26,15 @@ const mockTransferMessages = jest.fn(() => { return
TransferMessages
; }); +jest.mock('../../TransferFormAmountInput', () => ({ + TransferFormAmountInput: jest.fn(({ fieldName }) => ), +})); + +jest.mock('../../TransferFormDropdown', () => ({ + TransferFormDropdown: jest.fn(({ fieldName }) =>
{fieldName}
), +})); + jest.mock('../../TransferMessages', () => ({ - ...jest.requireActual('../../TransferMessages'), TransferMessages: jest.fn(() => mockTransferMessages()), })); @@ -61,7 +54,7 @@ describe('', () => { render(, { wrapper }); - expect(screen.getByText('Loading...')).toBeInTheDocument(); + expect(screen.getByTestId('dt_derivs-loader')).toBeInTheDocument(); }); it('should test that transfer button is disabled when fromAmount is 0', async () => { diff --git a/packages/wallets/src/features/cashier/modules/Transfer/components/TransferMessages/TransferMessages.tsx b/packages/wallets/src/features/cashier/modules/Transfer/components/TransferMessages/TransferMessages.tsx index 6ba873ddde87..10a11028e97c 100644 --- a/packages/wallets/src/features/cashier/modules/Transfer/components/TransferMessages/TransferMessages.tsx +++ b/packages/wallets/src/features/cashier/modules/Transfer/components/TransferMessages/TransferMessages.tsx @@ -2,7 +2,8 @@ import React, { useEffect } from 'react'; import { useFormikContext } from 'formik'; import { Trans } from 'react-i18next'; import { Link } from 'react-router-dom'; -import { FadedAnimatedList, WalletAlertMessage, WalletButton } from '../../../../../../components'; +import { Button } from '@deriv-com/ui'; +import { FadedAnimatedList, WalletAlertMessage } from '../../../../../../components'; import { useTransferMessages } from '../../hooks'; import { useTransfer } from '../../provider'; import { TInitialTransferFormValues } from '../../types'; @@ -36,7 +37,7 @@ const TransferMessages: React.FC = () => { {action?.buttonLabel && action?.navigateTo && (
- +
)}
diff --git a/packages/wallets/src/features/cashier/modules/Transfer/components/TransferReceipt/TransferReceipt.tsx b/packages/wallets/src/features/cashier/modules/Transfer/components/TransferReceipt/TransferReceipt.tsx index b209b4245d3f..c6b8dfd92f37 100644 --- a/packages/wallets/src/features/cashier/modules/Transfer/components/TransferReceipt/TransferReceipt.tsx +++ b/packages/wallets/src/features/cashier/modules/Transfer/components/TransferReceipt/TransferReceipt.tsx @@ -1,7 +1,8 @@ import React from 'react'; import classNames from 'classnames'; import { LegacyArrowRight2pxIcon } from '@deriv/quill-icons'; -import { AppCard, WalletButton, WalletCard, WalletText } from '../../../../../../components'; +import { Button } from '@deriv-com/ui'; +import { AppCard, WalletCard, WalletText } from '../../../../../../components'; import useDevice from '../../../../../../hooks/useDevice'; import { TPlatforms } from '../../../../../../types'; import { useTransfer } from '../../provider'; @@ -103,13 +104,14 @@ const TransferReceipt = () => {
- resetTransfer()} size={isMobile ? 'md' : 'lg'} textSize={isMobile ? 'md' : 'sm'} > Make a new transfer - +
); diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/WithdrawalCryptoForm.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/WithdrawalCryptoForm.tsx index e9ad00165cc1..0db0ed237736 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/WithdrawalCryptoForm.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoForm/WithdrawalCryptoForm.tsx @@ -1,7 +1,8 @@ import React from 'react'; import { Field, FieldProps, Formik } from 'formik'; import { useGrowthbookIsOn } from '@deriv/api-v2'; -import { WalletButton, WalletTextField } from '../../../../../../components'; +import { Button } from '@deriv-com/ui'; +import { WalletTextField } from '../../../../../../components'; import { useWithdrawalCryptoContext } from '../../provider'; import { validateCryptoAddress } from '../../utils'; import { WithdrawalCryptoAmountConverter } from './components/WithdrawalCryptoAmountConverter'; @@ -59,14 +60,16 @@ const WithdrawalCryptoForm: React.FC = () => { {Boolean(isPriorityCryptoWithdrawalEnabled) && }
- Withdraw - +
); diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/WithdrawalCryptoReceipt.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/WithdrawalCryptoReceipt.tsx index 2ee43a84dd6f..8d7601ca2d85 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/WithdrawalCryptoReceipt.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/WithdrawalCryptoReceipt.tsx @@ -1,7 +1,8 @@ import React from 'react'; import { useHistory } from 'react-router-dom'; import { LegacyArrowDown2pxIcon } from '@deriv/quill-icons'; -import { WalletButton, WalletCard, WalletText } from '../../../../../../components'; +import { Button } from '@deriv-com/ui'; +import { WalletCard, WalletText } from '../../../../../../components'; import { TWithdrawalReceipt } from '../../types'; import { WithdrawalCryptoDestinationAddress } from './components'; import './WithdrawalCryptoReceipt.scss'; @@ -43,17 +44,18 @@ const WithdrawalCryptoReceipt: React.FC = ({ onClose, withdrawalReceipt
- history.push('/wallet/transactions')} size='lg' + textSize='md' variant='outlined' > View transactions - - + +
); diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalVerification/WithdrawalVerificationRequest/WithdrawalVerificationRequest.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalVerification/WithdrawalVerificationRequest/WithdrawalVerificationRequest.tsx index 4bd86dbf8924..f9da3c5420c8 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalVerification/WithdrawalVerificationRequest/WithdrawalVerificationRequest.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalVerification/WithdrawalVerificationRequest/WithdrawalVerificationRequest.tsx @@ -1,6 +1,7 @@ import React from 'react'; import { DerivLightEmailVerificationIcon } from '@deriv/quill-icons'; -import { WalletButton, WalletsActionScreen, WalletText } from '../../../../../components'; +import { Button } from '@deriv-com/ui'; +import { WalletsActionScreen, WalletText } from '../../../../../components'; import './WithdrawalVerificationRequest.scss'; type TProps = { @@ -30,9 +31,9 @@ const WithdrawalVerificationRequest: React.FC = ({ sendEmail }) => { } renderButtons={() => ( - + )} title='Confirm your identity to make a withdrawal.' /> diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalVerification/WithdrawalVerificationSent/WithdrawalVerificationSent.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalVerification/WithdrawalVerificationSent/WithdrawalVerificationSent.tsx index 6b62a690fba7..08346db09c54 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalVerification/WithdrawalVerificationSent/WithdrawalVerificationSent.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalVerification/WithdrawalVerificationSent/WithdrawalVerificationSent.tsx @@ -1,5 +1,6 @@ import React, { useState } from 'react'; -import { WalletButton, WalletsActionScreen } from '../../../../../components'; +import { Button } from '@deriv-com/ui'; +import { WalletsActionScreen } from '../../../../../components'; import EmailSent from '../../../../../public/images/email-sent.svg'; import './WithdrawalVerificationSent.scss'; @@ -26,16 +27,19 @@ const WithdrawalVerificationSent: React.FC = ({ counter, sendEmail }) => renderButtons={ !showResend ? () => ( - { sendEmail(); setShowResend(!showResend); }} size='lg' + textSize='md' variant='ghost' > Didn't receive the email? - + ) : undefined } @@ -46,9 +50,9 @@ const WithdrawalVerificationSent: React.FC = ({ counter, sendEmail }) => ( - + )} title="Didn't receive the email?" /> diff --git a/packages/wallets/src/features/cashier/screens/TransferNotAvailable/TransferNotAvailableProvider.tsx b/packages/wallets/src/features/cashier/screens/TransferNotAvailable/TransferNotAvailableProvider.tsx index b266cd4957cb..291d8da55519 100644 --- a/packages/wallets/src/features/cashier/screens/TransferNotAvailable/TransferNotAvailableProvider.tsx +++ b/packages/wallets/src/features/cashier/screens/TransferNotAvailable/TransferNotAvailableProvider.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { useHistory } from 'react-router-dom'; -import { WalletButton } from '../../../../components'; +import { Button } from '@deriv-com/ui'; import { THooks } from '../../../../types'; type TGetMessageProps = { @@ -28,9 +28,9 @@ const getMessage = ({ return { actionButton: () => ( - history.push('/')} size='lg'> + ), description, title, @@ -49,9 +49,9 @@ const getMessage = ({ return { actionButton: () => ( - history.push(locationPathName)} size='lg'> + ), description, title, diff --git a/packages/wallets/src/features/cashier/screens/WithdrawalErrorScreen/WithdrawalErrorScreen.tsx b/packages/wallets/src/features/cashier/screens/WithdrawalErrorScreen/WithdrawalErrorScreen.tsx index 700916cbded6..f3a745da521b 100644 --- a/packages/wallets/src/features/cashier/screens/WithdrawalErrorScreen/WithdrawalErrorScreen.tsx +++ b/packages/wallets/src/features/cashier/screens/WithdrawalErrorScreen/WithdrawalErrorScreen.tsx @@ -2,7 +2,8 @@ import React, { ComponentProps } from 'react'; import { useHistory } from 'react-router-dom'; import { useActiveWalletAccount } from '@deriv/api-v2'; import { TSocketError } from '@deriv/api-v2/types'; -import { WalletButton, WalletsErrorScreen } from '../../../../components'; +import { Button } from '@deriv-com/ui'; +import { WalletsErrorScreen } from '../../../../components'; import { CryptoWithdrawalErrorCodes } from '../../../../constants/errorCodes'; type TProps = { @@ -13,7 +14,7 @@ type TProps = { type TErrorContent = { buttonText?: string; - buttonVariant?: ComponentProps['variant']; + buttonVariant?: ComponentProps['variant']; message?: string; onClick?: () => void; title?: string; diff --git a/packages/wallets/src/features/cashier/screens/WithdrawalNoBalance/WithdrawalNoBalance.tsx b/packages/wallets/src/features/cashier/screens/WithdrawalNoBalance/WithdrawalNoBalance.tsx index bbee25723a48..700ad1111902 100644 --- a/packages/wallets/src/features/cashier/screens/WithdrawalNoBalance/WithdrawalNoBalance.tsx +++ b/packages/wallets/src/features/cashier/screens/WithdrawalNoBalance/WithdrawalNoBalance.tsx @@ -1,7 +1,8 @@ import React from 'react'; import { useHistory } from 'react-router-dom'; import { DerivLightCashierNoBalanceIcon } from '@deriv/quill-icons'; -import { WalletButton, WalletsActionScreen } from '../../../../components'; +import { Button } from '@deriv-com/ui'; +import { WalletsActionScreen } from '../../../../components'; import { THooks } from '../../../../types'; type TWithdrawalNoBalanceProps = { @@ -17,9 +18,9 @@ const WithdrawalNoBalance: React.FC = ({ activeWallet descriptionSize='md' icon={} renderButtons={() => ( - history.push('/wallet/deposit')} size='lg'> + )} title={`No funds in ${activeWallet.currency} Wallet`} /> From 563e0b7c1ee3f0a417966d33fa35205f0478af67 Mon Sep 17 00:00:00 2001 From: henry-deriv <118344354+henry-deriv@users.noreply.github.com> Date: Fri, 26 Jul 2024 10:34:05 +0800 Subject: [PATCH 06/40] [DTRA] henry/dtra-1448/enable-landscape-blocker-dtrader (#16119) * fix: test * fix: show blocker for dtrader mobile landscape view * fix: add console log for browserstack * fix: remove logic that was blocking on tablet * fix: remove console log * fix: console.log * fix: remove ipad from checking for mobileOS * fix: add checkfor android mobile check * fix: console log useragent * fix: put exclusive check for mobile when os is android * fix: remove console log * fix: remove mobile from regex * fix: change link filtering logic * fix: add blocker for reports and contract details * fix: add blocker for reports and contract details --- .../LandscapeBlocker/landscape-blocker.tsx | 15 +++++++++++++-- packages/shared/src/utils/os/os_detect.ts | 3 ++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/core/src/App/Components/Elements/LandscapeBlocker/landscape-blocker.tsx b/packages/core/src/App/Components/Elements/LandscapeBlocker/landscape-blocker.tsx index ff64f6674dd6..14cc3211769c 100644 --- a/packages/core/src/App/Components/Elements/LandscapeBlocker/landscape-blocker.tsx +++ b/packages/core/src/App/Components/Elements/LandscapeBlocker/landscape-blocker.tsx @@ -1,21 +1,32 @@ import React from 'react'; import { useLocation } from 'react-router-dom'; -import { isDisabledLandscapeBlockerRoute, isTabletOs, routes } from '@deriv/shared'; +import { isDisabledLandscapeBlockerRoute, isMobileOs, isTabletOs, routes } from '@deriv/shared'; import { observer, useStore } from '@deriv/stores'; import LandscapeBlockerSvg from 'Assets/SvgComponents/settings/landscape-blocker.svg'; import './landscape-blocker.scss'; +import { useDevice } from '@deriv-com/ui'; const LandscapeBlocker = observer(() => { // need to check for wallet account and don't hide landscape blocker for users migrated to wallets const { client: { has_wallet }, } = useStore(); + const { isMobile } = useDevice(); const location = useLocation(); const pathname = location?.pathname; const is_hidden_landscape_blocker = isDisabledLandscapeBlockerRoute(pathname); const shouldShowDtraderTabletView = pathname === routes.trade && isTabletOs; + const showBlockerDtraderMobileLandscapeView = + !isMobile && + isMobileOs() && + (pathname.startsWith(routes.trade) || pathname.startsWith(routes.reports || pathname.startsWith('/contract/'))); - if (!has_wallet && (is_hidden_landscape_blocker || shouldShowDtraderTabletView)) return null; + if ( + !has_wallet && + !showBlockerDtraderMobileLandscapeView && + (is_hidden_landscape_blocker || shouldShowDtraderTabletView) + ) + return null; return (
diff --git a/packages/shared/src/utils/os/os_detect.ts b/packages/shared/src/utils/os/os_detect.ts index 3a7c906f9537..cb5249f20de9 100644 --- a/packages/shared/src/utils/os/os_detect.ts +++ b/packages/shared/src/utils/os/os_detect.ts @@ -58,7 +58,8 @@ export const isDesktopOs = () => { }; export const isMobileOs = () => - /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); + (/android/i.test(navigator.userAgent.toLowerCase()) && /mobile/i.test(navigator.userAgent.toLowerCase())) || + /webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); export const isTabletOs = /ipad|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i.test(navigator.userAgent.toLowerCase()) || From 3470ab439ea0087ea9c8b104a552811187abdbcd Mon Sep 17 00:00:00 2001 From: Maryia <103177211+maryia-deriv@users.noreply.github.com> Date: Fri, 26 Jul 2024 05:39:40 +0300 Subject: [PATCH 07/40] [DTRA] Kate/Maryia/DTRA-1354/feat: Redesigned Trade params & Purchase buttons (#16032) * chore: init branch * Maryia/DTRA-1421/feat: add temporary Trade types selector (chips) & Assets dropdown (#137) * feat: add trade types selector (chips) * feat: add assets (dropdown) * chore: use Dropdown for assets * DTRA / Kate / DTRA-1422: Create initial layout for chart, trade params & purchase buttons (#136) * feat: init layout * refactor: make purchase button sticky * feat: add dynamic chart height calculation * refactor: css * refactor: extract purchase button with trade params to a separate files --------- Co-authored-by: Maryia <103177211+maryia-deriv@users.noreply.github.com> * chore: fix: conflicts * Maryia/DTRA-1423/feat: add config for all Trade types params + display components for Rise/Fall (#140) * feat: add display components for Rise/Fall based on real data + config for trade params * refactor: isolate trade params logic * DTRA-1422/ Kate / Add scrolling bahaviour for trade params (#139) * feat: add animation on scrolling * refactor: improve animation * refactor: pass trade params as children * feat: add barrier trade param (#141) * DTRA-1425 / Kate / Feat: add trade params for Accumulators contract (#142) * feat: create take profit and growth rate trade params * feat: add accumulators information trade param * DTRA-1436 / Kate / Feat: add trade params for multipliers (#143) * feat: add trade params for multipliers * chore: change order to alhabetical one * Maryia/DTRA-1427/feat: TradeTypeTabs and Strike display components (#144) * feat: trade-type-tabs * feat: Strike * feat: PayoutPerPoint + refactoring (#146) * fix: trade params config for Even/Odd * DTRA-1424 / Kate / Enable purchase functionality (#145) * refactor: customize amount of buttons and it name * feat: add basis text and amount for button based on contract type * refactor: purchase button * feat: eanble purchase functionality * feat: add sell functionality for acc button * chore: add caption text from quill * fix: add store init to bottomnav * DTRA-1455 / Kate / Create state management for purchase button (#148) * feat: create state management for purchase button * chore: refactor comments * Maryia/DTRA-1441/feat: add chart + display current spot for digit trade types (#149) * feat: CurrentSpot init version * fix: trade types & chart styles * fix: trade page performance * fix: use small localize for TextField labels to avoid app crash due to duplicate [object Object] ids * chore: add skeleton while current spot is still updating * fix: payout per point skeleton + refactor trade params list * build: use version 1.13.16 * build: downgrade to quill-ui v1.13.13 * Maryia/DTRA-1441/feat: add last digit selector and expand displayed spot feature for digits (#150) * feat: Last digit selector using bottomWidgets data from chart * chore: digits params layout + refactoring * feat: current spot display for ongoing contracts * refactor: onScroll * refactor: current-spot * chore: wrap onScroll with useCallback * DTRA-1487 / Kate / Add tests for new files (#151) * feat: add tests for purchase buttom content file * refactor: add tests for purchase button file * refactor: change content for multipliers description * refactor: add tests for trade type tabs file * refactor: add tests for trade parameters container file * refactor: add tests for trade parameters file * chore: add more test cases * chore: add mockcontractinfo function usage * build: use master version of quill-ui * DTRA-1469 / Kate / Implement Allow equals trade param and Carousel functionality (#153) * feat: add allow equals main content and functionality * feat: add carousel * refactor: extracted carpusel into a separate component * refactor: replace localize function with the component * refactor: add variables for css * refactor: add tests for carousel * refactor: add test for allow equals * chore: make id numbers * DTRA / Kate / Refactoring: resetting style (#154) * refactor: trading and contract details * fix: reset button style in definition * DTRA-1489 / Kate / Add tests (#155) * refactor: add tests for trade * refactor: add tests for trade param utils * Maryia/DTRA-1491/feat: finalize LastDigitPrediction param + Current spot price animation (#152) * feat: LastDigitPrediction stats mode * chore: highlight min & max stats * feat: Action sheet for LastDigitPrediction + border highlight for current spot * fix: profit for cards in Closed tab * feat: current spot animation for contract purchase + multiple contract purchase * chore: improve animation + refactoring * feat: finalize current spot animation * refactor: address comments * refactor: update quill ui and refactor carousel component (#156) * DTRA-1354 / Kate / Refactor before submitting (#158) * refactor: rename carousel prop * refactor: add skeleton loader for video fargmenst * DTRA-1354/ Kate / Tests for isDigitContractWinning function (#160) * refactor: add tests for util function * fix: test case * Maryia/DTRA-1491/test: last digit selector & current spot (#157) * test: packages/trader/src/AppV2/Components/CurrentSpot/current-spot.tsx * test: CurrentSpotDisplay * refactor: tests * refactor: address review comments * test: LastDigitPrediction * refactor: remove unused import * test: LastDigitSelector * test: Digit * test: setDigitStats & setDigitTick in trade-store * refactor: current-spot * fix: cannot find name_plural of undefined * chore: apply suggestions * chore: address review comments * fix: bottom layout * refactor: add button type function * chore: improve animation + apply suggestion for prev_contract * feat: integrate v2 assets component * test: fix tests that failed after assets v2 integration * fix: console error * fix: console error for trade params label * refactor: update quill ui lib * refactor: add dvh (#161) * fix: video loading style * feat: make active_symbols API call based on the selected contract_type + quill-ui components fixes * refactor: active_symbols_v2 to has_symbols_for_v2 --------- Co-authored-by: kate-deriv <121025168+kate-deriv@users.noreply.github.com> Co-authored-by: kate-deriv --- .stylelintrc.js | 2 +- package-lock.json | 9 +- packages/account/package.json | 2 +- packages/core/package.json | 2 +- packages/core/src/App/app.jsx | 17 +- .../core/src/Stores/contract-trade-store.js | 7 + .../account-switcher-dtrader-v2.scss | 8 +- .../shared/src/utils/constants/contract.ts | 2 + packages/stores/src/mockStore.ts | 3 + packages/stores/types.ts | 1 + packages/trader/package.json | 2 +- .../__tests__/active-symbols-list.spec.tsx | 1 + .../ActiveSymbolsList/active-symbols-list.tsx | 4 +- .../Components/BottomNav/bottom-nav.scss | 8 + .../AppV2/Components/BottomNav/bottom-nav.tsx | 15 +- .../Carousel/__tests__/carousel.spec.tsx | 56 ++++ .../AppV2/Components/Carousel/carousel.scss | 11 + .../AppV2/Components/Carousel/carousel.tsx | 39 +++ .../src/AppV2/Components/Carousel/index.ts | 4 + .../__tests__/current-spot-display.spec.tsx | 45 +++ .../__tests__/current-spot.spec.tsx | 317 ++++++++++++++++++ .../CurrentSpot/current-spot-display.tsx | 133 ++++++++ .../Components/CurrentSpot/current-spot.scss | 107 ++++++ .../Components/CurrentSpot/current-spot.tsx | 158 +++++++++ .../src/AppV2/Components/CurrentSpot/index.ts | 4 + .../FavoriteSymbols/favorite-symbols.scss | 2 +- .../__tests__/contract-type-filter.spec.tsx | 14 +- .../Filter/__tests__/time-filter.spec.tsx | 9 +- .../multipliers-trade-description.tsx | 6 + .../__tests__/video-fragment.spec.tsx | 4 +- .../Guide/Description/video-fragment.tsx | 4 +- .../Components/Guide/__tests__/guide.spec.tsx | 14 +- .../src/AppV2/Components/Guide/guide.scss | 13 +- .../src/AppV2/Components/Guide/guide.tsx | 13 +- .../market-category-item.tsx | 2 +- .../__tests__/market-selector.spec.tsx | 10 +- .../MarketSelector/market-selector.scss | 5 +- .../MarketSelector/market-selector.tsx | 13 +- .../purchase-button-content.spec.tsx | 145 ++++++++ .../__tests__/purchase-button.spec.tsx | 228 +++++++++++++ .../AppV2/Components/PurchaseButton/index.ts | 4 + .../purchase-button-content.tsx | 91 +++++ .../PurchaseButton/purchase-button.scss | 57 ++++ .../PurchaseButton/purchase-button.tsx | 159 +++++++++ .../risk-management-item.scss | 4 + .../accumulators-information.scss | 14 + .../accumulators-information.tsx | 43 +++ .../AccumulatorsInformation/index.ts | 4 + .../__tests__/allow-equals.spec.tsx | 92 +++++ .../AllowEquals/allow-equals-header.tsx | 26 ++ .../AllowEquals/allow-equals.scss | 19 ++ .../AllowEquals/allow-equals.tsx | 109 ++++++ .../TradeParameters/AllowEquals/index.ts | 4 + .../TradeParameters/Barrier/barrier.tsx | 25 ++ .../TradeParameters/Barrier/index.ts | 3 + .../TradeParameters/Duration/duration.tsx | 29 ++ .../TradeParameters/Duration/index.ts | 3 + .../GrowthRate/growth-rate.tsx | 27 ++ .../TradeParameters/GrowthRate/index.tsx | 3 + .../__tests__/digit.spec.tsx | 54 +++ .../__tests__/last-digit-prediction.spec.tsx | 94 ++++++ .../__tests__/last-digit-selector.spec.tsx | 26 ++ .../LastDigitPrediction/digit.tsx | 44 +++ .../LastDigitPrediction/index.ts | 4 + .../last-digit-prediction.scss | 73 ++++ .../last-digit-prediction.tsx | 96 ++++++ .../last-digit-selector.tsx | 39 +++ .../TradeParameters/Multiplier/index.ts | 3 + .../TradeParameters/Multiplier/multiplier.tsx | 25 ++ .../MultipliersInformation/index.ts | 4 + .../multipliers-information.scss | 14 + .../multipliers-information.tsx | 43 +++ .../TradeParameters/PayoutPerPoint/index.ts | 3 + .../PayoutPerPoint/payout-per-point.tsx | 42 +++ .../TradeParameters/RiskManagement/index.ts | 3 + .../RiskManagement/risk-management.tsx | 27 ++ .../Components/TradeParameters/Stake/index.ts | 3 + .../TradeParameters/Stake/stake.tsx | 38 +++ .../TradeParameters/Strike/index.ts | 3 + .../TradeParameters/Strike/strike.tsx | 25 ++ .../TradeParameters/TakeProfit/index.ts | 3 + .../TakeProfit/take-profit.tsx | 27 ++ .../__tests__/trade-type-tabs.spec.tsx | 61 ++++ .../TradeParameters/TradeTypeTabs/index.ts | 3 + .../TradeTypeTabs/trade-type-tabs.tsx | 38 +++ .../trade-parameters-container.spec.tsx | 29 ++ .../__tests__/trade-parameters.spec.tsx | 171 ++++++++++ .../AppV2/Components/TradeParameters/index.ts | 4 + .../trade-parameters-container.tsx | 43 +++ .../TradeParameters/trade-parameters.scss | 66 ++++ .../TradeParameters/trade-parameters.tsx | 57 ++++ .../Containers/Chart/chart-placeholder.tsx | 2 +- .../src/AppV2/Containers/Chart/index.ts | 4 +- .../AppV2/Containers/Chart/trade-chart.tsx | 193 +++++++++++ .../ContractDetails/contract-details.tsx | 2 +- .../Containers/Trade/__tests__/trade.spec.tsx | 131 ++++++++ .../AppV2/Containers/Trade/trade-types.tsx | 28 ++ .../src/AppV2/Containers/Trade/trade.scss | 45 +++ .../src/AppV2/Containers/Trade/trade.tsx | 84 ++++- .../Hooks/__tests__/useActiveSymbols.spec.tsx | 33 +- .../src/AppV2/Hooks/useActiveSymbols.ts | 89 +++-- .../__tests__/trade-param-utils.spec.tsx | 77 +++++ .../trader/src/AppV2/Utils/layout-utils.tsx | 6 + .../trader/src/AppV2/Utils/positions-utils.ts | 2 +- .../src/AppV2/Utils/trade-params-utils.tsx | 44 +++ .../src/AppV2/Utils/trade-types-utils.tsx | 21 ++ packages/trader/src/AppV2/app.tsx | 1 - .../Trading/__tests__/trade-store.spec.ts | 42 ++- .../src/Stores/Modules/Trading/trade-store.ts | 22 ++ 109 files changed, 4033 insertions(+), 113 deletions(-) create mode 100644 packages/trader/src/AppV2/Components/Carousel/__tests__/carousel.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/Carousel/carousel.scss create mode 100644 packages/trader/src/AppV2/Components/Carousel/carousel.tsx create mode 100644 packages/trader/src/AppV2/Components/Carousel/index.ts create mode 100644 packages/trader/src/AppV2/Components/CurrentSpot/__tests__/current-spot-display.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/CurrentSpot/__tests__/current-spot.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/CurrentSpot/current-spot-display.tsx create mode 100644 packages/trader/src/AppV2/Components/CurrentSpot/current-spot.scss create mode 100644 packages/trader/src/AppV2/Components/CurrentSpot/current-spot.tsx create mode 100644 packages/trader/src/AppV2/Components/CurrentSpot/index.ts create mode 100644 packages/trader/src/AppV2/Components/PurchaseButton/__tests__/purchase-button-content.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/PurchaseButton/__tests__/purchase-button.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/PurchaseButton/index.ts create mode 100644 packages/trader/src/AppV2/Components/PurchaseButton/purchase-button-content.tsx create mode 100644 packages/trader/src/AppV2/Components/PurchaseButton/purchase-button.scss create mode 100644 packages/trader/src/AppV2/Components/PurchaseButton/purchase-button.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/accumulators-information.scss create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/accumulators-information.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/__tests__/allow-equals.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals-header.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.scss create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/Barrier/barrier.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/Barrier/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/Duration/duration.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/Duration/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/GrowthRate/growth-rate.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/GrowthRate/index.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/digit.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/last-digit-prediction.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/last-digit-selector.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/digit.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.scss create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-selector.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/Multiplier/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/Multiplier/multiplier.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/multipliers-information.scss create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/multipliers-information.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/PayoutPerPoint/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/PayoutPerPoint/payout-per-point.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/RiskManagement/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/RiskManagement/risk-management.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/Stake/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/Stake/stake.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/Strike/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/Strike/strike.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/TakeProfit/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/TakeProfit/take-profit.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/__tests__/trade-type-tabs.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/trade-type-tabs.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/__tests__/trade-parameters-container.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/__tests__/trade-parameters.spec.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/index.ts create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/trade-parameters-container.tsx create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss create mode 100644 packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.tsx create mode 100644 packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx create mode 100644 packages/trader/src/AppV2/Containers/Trade/__tests__/trade.spec.tsx create mode 100644 packages/trader/src/AppV2/Containers/Trade/trade-types.tsx create mode 100644 packages/trader/src/AppV2/Utils/__tests__/trade-param-utils.spec.tsx create mode 100644 packages/trader/src/AppV2/Utils/layout-utils.tsx create mode 100644 packages/trader/src/AppV2/Utils/trade-params-utils.tsx diff --git a/.stylelintrc.js b/.stylelintrc.js index e7727f58da5d..06d00b803dbc 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -36,7 +36,7 @@ module.exports = { 'shorthand-property-no-redundant-values': true, 'string-no-newline': true, 'time-min-milliseconds': 100, - 'unit-allowed-list': ['fr', 'px', 'em', 'rem', '%', 'svh', 'svw', 'vw', 'vh', 'deg', 'ms', 's', 'dpcm'], + 'unit-allowed-list': ['fr', 'px', 'em', 'rem', '%', 'svh', 'svw', 'vw', 'vh', 'dvh', 'deg', 'ms', 's', 'dpcm'], 'value-keyword-case': 'lower', }, extends: [ diff --git a/package-lock.json b/package-lock.json index 5a0bd7fef0b7..b323e7818a36 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@datadog/browser-rum": "^5.11.0", "@deriv-com/analytics": "1.10.0", "@deriv-com/quill-tokens": "^2.0.4", - "@deriv-com/quill-ui": "1.13.17", + "@deriv-com/quill-ui": "1.13.22", "@deriv-com/translations": "1.3.4", "@deriv-com/ui": "1.29.9", "@deriv-com/utils": "^0.0.25", @@ -2959,9 +2959,9 @@ } }, "node_modules/@deriv-com/quill-ui": { - "version": "1.13.17", - "resolved": "https://registry.npmjs.org/@deriv-com/quill-ui/-/quill-ui-1.13.17.tgz", - "integrity": "sha512-CTwfMMYiSe1XgQQ5NMe+lZhV8aPyRcW/TGSzaQBpfcQxFH+0Vgpdi90AGJJrENaDWPvh5qvpaV8XM/lhwIurUg==", + "version": "1.13.22", + "resolved": "https://registry.npmjs.org/@deriv-com/quill-ui/-/quill-ui-1.13.22.tgz", + "integrity": "sha512-1xUmNkS898TxfmnepYBLFVBMoIvu5fGlcY4xdXX1C2xw3Y1+6RP8xxqVIqt/paJAAbIq3WStp/CM6BZPyWvMWg==", "dependencies": { "@deriv-com/quill-tokens": "^2.0.8", "@deriv/quill-icons": "^1.22.10", @@ -2971,6 +2971,7 @@ "react-number-format": "^5.4.0", "react-swipeable": "^6.2.1", "react-tiny-popover": "^8.0.4", + "react-transition-group": "4.4.2", "usehooks-ts": "^3.0.2", "uuid": "^9.0.1" }, diff --git a/packages/account/package.json b/packages/account/package.json index 62707f08a289..989f9a68f5a0 100644 --- a/packages/account/package.json +++ b/packages/account/package.json @@ -35,7 +35,7 @@ "@deriv-com/utils": "^0.0.25", "@deriv-com/ui": "1.29.9", "@deriv/api": "^1.0.0", - "@deriv-com/quill-ui": "1.13.17", + "@deriv-com/quill-ui": "1.13.22", "@deriv/components": "^1.0.0", "@deriv/hooks": "^1.0.0", "@deriv/integration": "1.0.0", diff --git a/packages/core/package.json b/packages/core/package.json index fad236217e25..22a60b5661d8 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -98,7 +98,7 @@ "@datadog/browser-rum": "^5.11.0", "@deriv-com/analytics": "1.10.0", "@deriv-com/quill-tokens": "^2.0.4", - "@deriv-com/quill-ui": "1.13.17", + "@deriv-com/quill-ui": "1.13.22", "@deriv-com/translations": "1.3.4", "@deriv-com/ui": "1.29.9", "@deriv-com/utils": "^0.0.25", diff --git a/packages/core/src/App/app.jsx b/packages/core/src/App/app.jsx index 63749400b264..bc585b67b267 100644 --- a/packages/core/src/App/app.jsx +++ b/packages/core/src/App/app.jsx @@ -10,7 +10,10 @@ import { CFDStore } from '@deriv/cfd'; import { Loading } from '@deriv/components'; import { POIProvider, + getPositionsV2TabIndexFromURL, initFormErrorMessages, + isDTraderV2, + routes, setSharedCFDText, setUrlLanguage, setWebsocket, @@ -105,6 +108,18 @@ const AppWithoutTranslation = ({ root_store }) => { } }, [root_store.client.email]); + const getLoader = () => + isDTraderV2() ? ( + + ) : ( + + ); + return ( <> {is_translation_loaded ? ( @@ -116,7 +131,7 @@ const AppWithoutTranslation = ({ root_store }) => { {/* This is required as translation provider uses suspense to reload language */} - }> + diff --git a/packages/core/src/Stores/contract-trade-store.js b/packages/core/src/Stores/contract-trade-store.js index e7e5aff78032..ec6e8ec2f8ef 100644 --- a/packages/core/src/Stores/contract-trade-store.js +++ b/packages/core/src/Stores/contract-trade-store.js @@ -70,6 +70,7 @@ export default class ContractTradeStore extends BaseStore { last_contract: computed, clearError: action.bound, getContractById: action.bound, + prev_contract: computed, savePreviousChartMode: action.bound, setNewAccumulatorBarriersData: action.bound, }); @@ -428,6 +429,12 @@ export default class ContractTradeStore extends BaseStore { return length > 0 ? applicable_contracts[length - 1] : {}; } + get prev_contract() { + const applicable_contracts = this.applicable_contracts(); + const length = this.contracts[0]?.contract_info.current_spot_time ? applicable_contracts.length : -1; + return applicable_contracts[length - 2]; + } + clearError() { this.error_message = ''; this.has_error = false; diff --git a/packages/core/src/sass/app/_common/components/account-switcher-dtrader-v2.scss b/packages/core/src/sass/app/_common/components/account-switcher-dtrader-v2.scss index 3061d163aad7..aeaca907aed8 100644 --- a/packages/core/src/sass/app/_common/components/account-switcher-dtrader-v2.scss +++ b/packages/core/src/sass/app/_common/components/account-switcher-dtrader-v2.scss @@ -21,18 +21,18 @@ &__accounts-list { overflow-y: scroll; - max-height: calc(90vh - 52px); + max-height: calc(90dvh - 52px); &--with-button { - max-height: calc(90vh - 116px); + max-height: calc(90dvh - 116px); } &--with-cfd-banner { - max-height: calc(90vh - 106px); + max-height: calc(90dvh - 106px); } &--with-both { - max-height: calc(90vh - 170px); + max-height: calc(90dvh - 170px); } &__group { diff --git a/packages/shared/src/utils/constants/contract.ts b/packages/shared/src/utils/constants/contract.ts index 65d5764a96bd..08d5db96e81f 100644 --- a/packages/shared/src/utils/constants/contract.ts +++ b/packages/shared/src/utils/constants/contract.ts @@ -10,7 +10,9 @@ import { LocalStore } from '../storage'; export const getLocalizedBasis = () => ({ accumulator: localize('Accumulators'), + current_stake: localize('Current stake'), multiplier: localize('Multiplier'), + max_payout: localize('Max payout'), payout_per_pip: localize('Payout per pip'), payout_per_point: localize('Payout per point'), payout: localize('Payout'), diff --git a/packages/stores/src/mockStore.ts b/packages/stores/src/mockStore.ts index 8fd77226ef1c..0d4a0b9b4056 100644 --- a/packages/stores/src/mockStore.ts +++ b/packages/stores/src/mockStore.ts @@ -618,6 +618,7 @@ const mock = (): TStores & { is_mock: boolean } => { markers_array: [], onUnmount: jest.fn(), prev_chart_type: '', + prev_contract: {}, prev_granularity: null, removeContract: jest.fn(), savePreviousChartMode: jest.fn(), @@ -717,6 +718,8 @@ const mock = (): TStores & { is_mock: boolean } => { onChangeMultiple: jest.fn(), onHoverPurchase: jest.fn(), onPurchase: jest.fn(), + onMount: jest.fn(), + onUnmount: jest.fn(), previous_symbol: '', proposal_info: {}, purchase_info: {}, diff --git a/packages/stores/types.ts b/packages/stores/types.ts index 7126a458c673..9d9d81254fa6 100644 --- a/packages/stores/types.ts +++ b/packages/stores/types.ts @@ -932,6 +932,7 @@ type TContractTradeStore = { }>; onUnmount: () => void; prev_chart_type: string; + prev_contract: TContractStore | Record; prev_granularity: number | null; removeContract: (data: { contract_id: string }) => void; savePreviousChartMode: (chart_type: string, granularity: number | null) => void; diff --git a/packages/trader/package.json b/packages/trader/package.json index 5e27b0a16533..12302e2bcfcb 100644 --- a/packages/trader/package.json +++ b/packages/trader/package.json @@ -90,7 +90,7 @@ "@cloudflare/stream-react": "^1.9.1", "@deriv-com/analytics": "1.10.0", "@deriv-com/quill-tokens": "^2.0.4", - "@deriv-com/quill-ui": "1.13.17", + "@deriv-com/quill-ui": "1.13.22", "@deriv-com/utils": "^0.0.25", "@deriv-com/ui": "1.29.9", "@deriv/api-types": "1.0.172", diff --git a/packages/trader/src/AppV2/Components/ActiveSymbolsList/__tests__/active-symbols-list.spec.tsx b/packages/trader/src/AppV2/Components/ActiveSymbolsList/__tests__/active-symbols-list.spec.tsx index 137462dd7ba5..60188bbad1e0 100644 --- a/packages/trader/src/AppV2/Components/ActiveSymbolsList/__tests__/active-symbols-list.spec.tsx +++ b/packages/trader/src/AppV2/Components/ActiveSymbolsList/__tests__/active-symbols-list.spec.tsx @@ -28,6 +28,7 @@ describe('', () => { modules: { trade: { symbol: '', + setTickData: jest.fn(), }, }, }; diff --git a/packages/trader/src/AppV2/Components/ActiveSymbolsList/active-symbols-list.tsx b/packages/trader/src/AppV2/Components/ActiveSymbolsList/active-symbols-list.tsx index 79f3ef6f2880..f1d27f13a958 100644 --- a/packages/trader/src/AppV2/Components/ActiveSymbolsList/active-symbols-list.tsx +++ b/packages/trader/src/AppV2/Components/ActiveSymbolsList/active-symbols-list.tsx @@ -18,12 +18,14 @@ const ActiveSymbolsList = observer(({ isOpen, setIsOpen }: TActiveSymbolsList) = const [isSearching, setIsSearching] = useState(false); const [selectedSymbol, setSelectedSymbol] = useState(default_symbol); const [searchValue, setSearchValue] = useState(''); - const { symbol } = useTraderStore(); + const { setTickData, symbol } = useTraderStore(); const marketCategoriesRef = useRef(null); useEffect(() => { setSelectedSymbol(symbol ?? default_symbol); + setTickData(null); + // eslint-disable-next-line react-hooks/exhaustive-deps }, [symbol, default_symbol]); return ( diff --git a/packages/trader/src/AppV2/Components/BottomNav/bottom-nav.scss b/packages/trader/src/AppV2/Components/BottomNav/bottom-nav.scss index f0ea5b07932f..5b34e36a8d3b 100644 --- a/packages/trader/src/AppV2/Components/BottomNav/bottom-nav.scss +++ b/packages/trader/src/AppV2/Components/BottomNav/bottom-nav.scss @@ -16,6 +16,8 @@ &-selection { flex: 1; overflow: auto; + -ms-overflow-style: none; + scrollbar-width: none; } &-item { @@ -24,6 +26,7 @@ flex-direction: column; align-items: center; flex: 1 0 0; + height: var(--core-size-2100); &--active { .bottom-nav-item-label { @@ -33,5 +36,10 @@ fill: var(--core-color-opacity-coral-600); } } + + &-label { + font-size: var(--core-fontSize-50); + line-height: var(--core-lineHeight-100); + } } } diff --git a/packages/trader/src/AppV2/Components/BottomNav/bottom-nav.tsx b/packages/trader/src/AppV2/Components/BottomNav/bottom-nav.tsx index 8c48b3a569d3..fa6beb4b6b41 100644 --- a/packages/trader/src/AppV2/Components/BottomNav/bottom-nav.tsx +++ b/packages/trader/src/AppV2/Components/BottomNav/bottom-nav.tsx @@ -17,12 +17,13 @@ import { useHistory, useLocation } from 'react-router'; type BottomNavProps = { children: React.ReactNode; className?: string; + onScroll?: (e: React.UIEvent) => void; }; -const BottomNav = observer(({ children, className }: BottomNavProps) => { +const BottomNav = observer(({ children, className, onScroll }: BottomNavProps) => { const history = useHistory(); const location = useLocation(); - const { active_positions_count } = useStore().portfolio; + const { active_positions_count, onMount, onUnmount } = useStore().portfolio; const bottomNavItems = [ { @@ -85,10 +86,16 @@ const BottomNav = observer(({ children, className }: BottomNavProps) => { setSelectedIndex(index); history.push(bottomNavItems[index].path); }; - + React.useEffect(() => { + onMount(); + return onUnmount; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); return (
-
{children}
+
+ {children} +
{bottomNavItems.map((item, index) => ( Mock Content 1, + }, + { + id: 2, + component: , + }, +]; + +const MockHeader: React.ComponentProps['header'] = ({ current_index, onNextClick, onPrevClick }) => ( + +
Current Index: {current_index}
+ + +
+); + +const mock_props = { + pages: mock_pages, + header: MockHeader, +}; + +describe('Carousel', () => { + it('should render all passed pages', () => { + render(); + + expect(screen.getAllByTestId(data_test_id)).toHaveLength(mock_pages.length); + }); + + it('should set index to 1 if user clicks on "Next"', () => { + const mockSetCurrentIndex = jest.fn(); + jest.spyOn(React, 'useState').mockImplementationOnce(() => [0, mockSetCurrentIndex]); + render(); + + userEvent.click(screen.getByText('Next')); + expect(mockSetCurrentIndex).toBeCalledWith(1); + }); + + it('should set index to 0 if user clicks on "Previous"', () => { + const mockSetCurrentIndex = jest.fn(); + jest.spyOn(React, 'useState').mockImplementationOnce(() => [1, mockSetCurrentIndex]); + render(); + + userEvent.click(screen.getByText('Previous')); + + expect(mockSetCurrentIndex).toBeCalledWith(0); + }); +}); diff --git a/packages/trader/src/AppV2/Components/Carousel/carousel.scss b/packages/trader/src/AppV2/Components/Carousel/carousel.scss new file mode 100644 index 000000000000..c6200c3026d2 --- /dev/null +++ b/packages/trader/src/AppV2/Components/Carousel/carousel.scss @@ -0,0 +1,11 @@ +.carousel { + display: flex; + flex-wrap: nowrap; + overflow-x: hidden; + + &__item { + width: 100vw; + min-width: 100vw; + transition: transform 0.24s ease-in-out; + } +} diff --git a/packages/trader/src/AppV2/Components/Carousel/carousel.tsx b/packages/trader/src/AppV2/Components/Carousel/carousel.tsx new file mode 100644 index 000000000000..64299084f564 --- /dev/null +++ b/packages/trader/src/AppV2/Components/Carousel/carousel.tsx @@ -0,0 +1,39 @@ +import React from 'react'; + +type THeaderProps = { + current_index: number; + onNextClick: () => void; + onPrevClick: () => void; +}; +type TCarousel = { + header: ({ current_index, onNextClick, onPrevClick }: THeaderProps) => JSX.Element; + pages: { id: number; component: JSX.Element }[]; +}; + +const Carousel = ({ header, pages }: TCarousel) => { + const [current_index, setCurrentIndex] = React.useState(0); + + const HeaderComponent = header; + + const onNextClick = () => setCurrentIndex((current_index + 1) % pages.length); + const onPrevClick = () => setCurrentIndex((current_index - 1 + pages.length) % pages.length); + + return ( + + +
    + {pages.map(({ component, id }) => ( +
  • + {component} +
  • + ))} +
+
+ ); +}; + +export default Carousel; diff --git a/packages/trader/src/AppV2/Components/Carousel/index.ts b/packages/trader/src/AppV2/Components/Carousel/index.ts new file mode 100644 index 000000000000..646e37b85858 --- /dev/null +++ b/packages/trader/src/AppV2/Components/Carousel/index.ts @@ -0,0 +1,4 @@ +import './carousel.scss'; +import Carousel from './carousel'; + +export default Carousel; diff --git a/packages/trader/src/AppV2/Components/CurrentSpot/__tests__/current-spot-display.spec.tsx b/packages/trader/src/AppV2/Components/CurrentSpot/__tests__/current-spot-display.spec.tsx new file mode 100644 index 000000000000..b93dccc08902 --- /dev/null +++ b/packages/trader/src/AppV2/Components/CurrentSpot/__tests__/current-spot-display.spec.tsx @@ -0,0 +1,45 @@ +import React from 'react'; +import { render, screen, waitFor } from '@testing-library/react'; +import CurrentSpotDisplay from '../current-spot-display'; + +describe('CurrentSpotDisplay', () => { + const mocked_props = { + has_tick_count: false, + spot: '389.45', + tick: null, + }; + + it('should not render if spot prop is null', () => { + const { container } = render(); + expect(container).toBeEmptyDOMElement(); + }); + it('should render spot value without tick count when spot prop is provided while tick={null} and has_tick_count={false}', () => { + render(); + + expect(screen.getByText(mocked_props.spot.slice(0, -1))).toBeInTheDocument(); + expect(screen.getByText(mocked_props.spot.slice(-1))).toBeInTheDocument(); + expect(screen.queryByText(/Tick/)).not.toBeInTheDocument(); + }); + it('should render tick count when tick prop is provided and has_tick_count={true}', () => { + render(); + + expect(screen.getByText('Tick 2')).toBeInTheDocument(); + }); + it('should update last digit upon spot update', async () => { + jest.useFakeTimers(); + const { rerender } = render(); + expect(screen.getByText(mocked_props.spot.slice(0, -1))).toBeInTheDocument(); + + rerender(); + await waitFor(() => { + jest.advanceTimersByTime(240); // equal to total animation time + expect(screen.getByText('9')).toBeInTheDocument(); + }); + + rerender(); + await waitFor(() => { + jest.advanceTimersByTime(240); // equal to total animation time + expect(screen.getByText('1')).toBeInTheDocument(); + }); + }); +}); diff --git a/packages/trader/src/AppV2/Components/CurrentSpot/__tests__/current-spot.spec.tsx b/packages/trader/src/AppV2/Components/CurrentSpot/__tests__/current-spot.spec.tsx new file mode 100644 index 000000000000..293927003976 --- /dev/null +++ b/packages/trader/src/AppV2/Components/CurrentSpot/__tests__/current-spot.spec.tsx @@ -0,0 +1,317 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import { CONTRACT_TYPES, mockContractInfo, TContractStore } from '@deriv/shared'; +import { mockStore } from '@deriv/stores'; +import TraderProviders from '../../../../trader-providers'; +import ModulesProvider from 'Stores/Providers/modules-providers'; +import CurrentSpot from '../current-spot'; + +const mocked_now = Math.floor(Date.now() / 1000); +const symbol = '1HZ100V'; + +describe('CurrentSpot', () => { + let default_mock_store: ReturnType; + const tick_data = { + ask: 405.76, + bid: 405.56, + epoch: mocked_now, + id: 'f90a93f8-965a-28ab-a830-6253bff4cc98', + pip_size: 2, + quote: 405.66, + symbol, + }; + const current_spot = '405.6'; + const current_last_digit = '6'; + const ongoing_contract_info = mockContractInfo({ + barrier: '0', + contract_id: 250136683588, + contract_type: CONTRACT_TYPES.EVEN_ODD.EVEN, + date_expiry: mocked_now + 1000, + date_start: 1721636565, + entry_tick: 389.39, + is_expired: 0, + is_path_dependent: 0, + is_sold: 0, + profit: -0.39, + status: 'open', + tick_count: 10, + tick_stream: [ + { + epoch: 1721636566, + tick: 389.39, + tick_display_value: '389.39', + }, + { + epoch: 1721636567, + tick: 389.37, + tick_display_value: '389.37', + }, + { + epoch: 1721636568, + tick: 389.4, + tick_display_value: '389.40', + }, + ], + underlying: symbol, + }); + const closed_contract_info = mockContractInfo({ + barrier: '0', + contract_id: 250136653148, + contract_type: CONTRACT_TYPES.EVEN_ODD.ODD, + date_expiry: 1721636554, + date_start: 1721636544, + entry_tick: 389.32, + exit_tick_time: 1721636554, + is_expired: 1, + is_path_dependent: 0, + is_sold: 1, + profit: -10, + sell_time: 1721636554, + status: 'lost', + tick_count: 10, + tick_stream: [ + { + epoch: 1721636545, + tick: 389.32, + tick_display_value: '389.32', + }, + { + epoch: 1721636546, + tick: 389.35, + tick_display_value: '389.35', + }, + { + epoch: 1721636547, + tick: 389.36, + tick_display_value: '389.36', + }, + { + epoch: 1721636548, + tick: 389.43, + tick_display_value: '389.43', + }, + { + epoch: 1721636549, + tick: 389.5, + tick_display_value: '389.50', + }, + { + epoch: 1721636550, + tick: 389.39, + tick_display_value: '389.39', + }, + { + epoch: 1721636551, + tick: 389.31, + tick_display_value: '389.31', + }, + { + epoch: 1721636552, + tick: 389.33, + tick_display_value: '389.33', + }, + { + epoch: 1721636553, + tick: 389.43, + tick_display_value: '389.43', + }, + { + epoch: 1721636554, + tick: 389.38, + tick_display_value: '389.38', + }, + ], + underlying: symbol, + }); + const ongoing_contract = { + digits_info: { + 1721636566: { + digit: 9, + spot: '389.39', + }, + 1721636567: { + digit: 7, + spot: '389.37', + }, + 1721636568: { + digit: 0, + spot: '389.30', + }, + 1721636569: { + digit: 7, + spot: '389.27', + }, + 1721636570: { + digit: 6, + spot: '389.26', + }, + 1721636571: { + digit: 8, + spot: '389.18', + }, + 1721636572: { + digit: 7, + spot: '389.27', + }, + 1721636573: { + digit: 8, + spot: '389.38', + }, + 1721636574: { + digit: 7, + spot: '389.47', + }, + [mocked_now + 1000]: { + digit: 4, + spot: '389.44', + }, + }, + display_status: 'purchased', + is_digit_contract: true, + is_ended: false, + contract_info: ongoing_contract_info, + } as unknown as TContractStore; + const closed_contract = { + digits_info: { + 1721636545: { + digit: 2, + spot: '389.32', + }, + 1721636546: { + digit: 5, + spot: '389.35', + }, + 1721636547: { + digit: 6, + spot: '389.36', + }, + 1721636548: { + digit: 3, + spot: '389.43', + }, + 1721636549: { + digit: 0, + spot: '389.50', + }, + 1721636550: { + digit: 9, + spot: '389.39', + }, + 1721636551: { + digit: 1, + spot: '389.31', + }, + 1721636552: { + digit: 3, + spot: '389.33', + }, + 1721636553: { + digit: 3, + spot: '389.43', + }, + 1721636554: { + digit: 8, + spot: '389.38', + }, + }, + display_status: 'lost', + is_digit_contract: true, + is_ended: true, + contract_info: closed_contract_info, + } as unknown as TContractStore; + const ongoing_contract_tick_stream = ongoing_contract.contract_info.tick_stream as { [key: string]: unknown }[]; + const ongoing_contract_current_tick = ongoing_contract_tick_stream?.length; + + beforeEach(() => { + default_mock_store = mockStore({ + modules: { + trade: { + tick_data: null, + symbol, + }, + }, + }); + }); + + const mockCurrentSpot = (store = default_mock_store) => ( + + + + + + ); + + it('should render skeleton loader if has no tick data to display', () => { + render(mockCurrentSpot()); + + expect(screen.getByTestId('dt_skeleton')).toBeInTheDocument(); + }); + it('should render spot (tick.quote) without tick count if has tick data but no contract data', () => { + default_mock_store.modules.trade.tick_data = tick_data; + render(mockCurrentSpot()); + + expect(screen.getByText(current_spot)).toBeInTheDocument(); + expect(screen.getByText(current_last_digit)).toBeInTheDocument(); + }); + it('should render the latest tick_stream spot from last contract info together with tick count when has last contract data', () => { + default_mock_store.modules.trade.tick_data = tick_data; + default_mock_store.contract_trade.last_contract = ongoing_contract; + default_mock_store.contract_trade.prev_contract = closed_contract; + render(mockCurrentSpot()); + + const spot = ongoing_contract_tick_stream?.[2].tick_display_value as string; + expect(screen.getByText(`Tick ${ongoing_contract_current_tick}`)).toBeInTheDocument(); + expect(screen.getByText(spot.slice(0, -1))).toBeInTheDocument(); + expect(screen.getByText(spot.slice(-1))).toBeInTheDocument(); + }); + it('should render 2 tick counts for animation purposes when next contract is opened while previous contract is ongoing', () => { + default_mock_store.modules.trade.tick_data = tick_data; + default_mock_store.contract_trade.prev_contract = { + ...ongoing_contract, + contract_info: { + ...ongoing_contract_info, + contract_id: 250136683587, + tick_stream: [...ongoing_contract_tick_stream, ...ongoing_contract_tick_stream], + }, + }; + default_mock_store.contract_trade.last_contract = ongoing_contract; + + const { rerender } = render(mockCurrentSpot()); + + expect(screen.getByText(`Tick ${ongoing_contract_current_tick}`)).toBeInTheDocument(); + const spot = ongoing_contract_tick_stream?.[2].tick_display_value as string; + expect(screen.getByText(spot.slice(0, -1))).toBeInTheDocument(); + expect(screen.getByText(spot.slice(-1))).toBeInTheDocument(); + + rerender( + mockCurrentSpot({ + ...default_mock_store, + contract_trade: { + ...default_mock_store.contract_trade, + prev_contract: ongoing_contract, + last_contract: { + ...ongoing_contract, + contract_info: { + ...ongoing_contract_info, + contract_id: 250136683589, + tick_stream: ongoing_contract_tick_stream.slice(0, 1), + }, + }, + }, + }) + ); + expect(screen.getAllByText(/Tick/)).toHaveLength(2); + const new_spot = ongoing_contract_tick_stream?.[0].tick_display_value as string; + expect(screen.getByText(new_spot.slice(0, -1))).toBeInTheDocument(); + expect(screen.getByText(new_spot.slice(-1))).toBeInTheDocument(); + }); + it('should render spot (tick.quote) without tick count if last contract is closed', () => { + default_mock_store.modules.trade.tick_data = tick_data; + default_mock_store.contract_trade.last_contract = closed_contract; + render(mockCurrentSpot()); + + expect(screen.queryByText(/Tick/)).not.toBeInTheDocument(); + expect(screen.getByText(current_spot)).toBeInTheDocument(); + expect(screen.getByText(current_last_digit)).toBeInTheDocument(); + }); +}); diff --git a/packages/trader/src/AppV2/Components/CurrentSpot/current-spot-display.tsx b/packages/trader/src/AppV2/Components/CurrentSpot/current-spot-display.tsx new file mode 100644 index 000000000000..5fad99701087 --- /dev/null +++ b/packages/trader/src/AppV2/Components/CurrentSpot/current-spot-display.tsx @@ -0,0 +1,133 @@ +import React from 'react'; +import clsx from 'clsx'; +import { Heading, Text } from '@deriv-com/quill-ui'; +import { Localize } from '@deriv/translations'; +import { usePrevious } from '@deriv/components'; + +type TCurrentSpotDisplayProps = { + has_tick_count?: boolean; + spot: string | null; + tick: number | null; +}; + +const ACTIONS = { + INC: 'increment', + DEC: 'decrement', + ADD10: 'add10', +} as const; +const TOTAL_ANIMATION_TIME = 240; + +const CurrentSpotDisplay = ({ has_tick_count, spot, tick }: TCurrentSpotDisplayProps) => { + const last_digit = Number(spot?.slice(-1)); + const prev_spot = usePrevious(spot); + const prev_last_digit = Number(prev_spot?.slice(-1)); + + const [should_enter_from_top, setShouldEnterFromTop] = React.useState(false); + const [should_enter_from_bottom, setShouldEnterFromBottom] = React.useState(false); + const [next_displayed_last_digit, setNextDisplayedLastDigit] = React.useState(last_digit); + const [displayed_last_digit, setDisplayedLastDigit] = React.useState(last_digit); + + const last_digit_ref = React.useRef(prev_last_digit); + const spin_interval_id = React.useRef>(); + const spin_timeout_id = React.useRef>(); + const spinning_wrapper_ref = React.useRef(null); + + const spinLastDigit = ( + action: typeof ACTIONS[keyof typeof ACTIONS], + interval_ms: number, + start: number, + end: number + ) => { + clearInterval(spin_interval_id.current); + const interval_id = setInterval(() => { + if (action === ACTIONS.INC && last_digit_ref.current < end) { + last_digit_ref.current = (last_digit_ref.current + 1) % 10; + } else if (action === ACTIONS.DEC && last_digit_ref.current > end) { + last_digit_ref.current = Math.abs(last_digit_ref.current - 1) % 10; + } else if (action === ACTIONS.ADD10 && last_digit_ref.current < start + 10) { + last_digit_ref.current += 1; + } else if ( + action === ACTIONS.ADD10 ? last_digit_ref.current === start + 10 : last_digit_ref.current === end + ) { + clearInterval(interval_id); + } + setNextDisplayedLastDigit(last_digit_ref.current % 10); + }, interval_ms); + spin_interval_id.current = interval_id; + }; + + React.useEffect(() => { + if (isNaN(prev_last_digit) || isNaN(last_digit) || !spot) return; + + const diff = Math.abs(Number(prev_last_digit) - last_digit); + const timeout_speed = diff > 0 ? Math.floor(TOTAL_ANIMATION_TIME / diff) : TOTAL_ANIMATION_TIME; + const should_increment = Number(prev_last_digit) <= last_digit; + + spinning_wrapper_ref.current?.style.setProperty('--animation-time', `${timeout_speed}ms`); + + if (should_increment) { + setShouldEnterFromTop(true); + } else { + setShouldEnterFromBottom(true); + } + + spin_timeout_id.current = setTimeout(() => { + setShouldEnterFromTop(false); + setShouldEnterFromBottom(false); + setDisplayedLastDigit(last_digit_ref.current % 10); + }, TOTAL_ANIMATION_TIME); + + const getAction = () => { + let action: typeof ACTIONS[keyof typeof ACTIONS] = ACTIONS.ADD10; + if (Number(prev_last_digit) < last_digit) { + action = ACTIONS.INC; + } else if (Number(prev_last_digit) > last_digit) { + action = ACTIONS.DEC; + } + return action; + }; + last_digit_ref.current = Number(prev_last_digit); + spinLastDigit(getAction(), timeout_speed, Number(prev_last_digit), last_digit); + + return () => { + clearTimeout(spin_timeout_id.current); + clearInterval(spin_interval_id.current); + }; + }, [spot, prev_last_digit, last_digit]); + + if (!spot) return null; + return ( +
+ {has_tick_count && ( + + + + )} +
+ + {spot.slice(0, -1)} + +
+
+ {should_enter_from_top && ( + {next_displayed_last_digit} + )} + {displayed_last_digit} + {should_enter_from_bottom && ( + {next_displayed_last_digit} + )} +
+
+
+
+ ); +}; + +export default React.memo(CurrentSpotDisplay); diff --git a/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.scss b/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.scss new file mode 100644 index 000000000000..c7fef839d019 --- /dev/null +++ b/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.scss @@ -0,0 +1,107 @@ +.trade__current-spot { + position: relative; + border-radius: var(--core-borderRadius-400); + background-color: var(--core-color-solid-slate-50); + height: var(--core-size-2400); + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + + .current-spot { + display: flex; + gap: var(--core-spacing-100); + + p { + color: var(--core-color-opacity-black-800); + } + &__wrapper { + position: absolute; + bottom: 0; + inset-inline-start: 0; + inset-inline-end: 0; + + &--enter-from-top { + animation: enter-from-top var(--motion-duration-snappy) ease-out; + } + } + &__display { + padding: var(--core-spacing-400) var(--core-spacing-800); + display: flex; + justify-content: center; + align-items: flex-end; + width: 100%; + height: 100%; + } + &__last-digit { + width: var(--core-size-800); + height: var(--core-size-1400); + + &-container { + overflow: hidden; + width: var(--core-size-800); + height: var(--core-size-1400); + position: relative; + } + &-wrapper { + position: absolute; + bottom: 0; + inset-inline-start: 0; + inset-inline-end: 0; + + &--enter-from-top { + animation: enter-from-top var(--animation-time) ease-out infinite; + } + &--enter-from-bottom { + bottom: unset; + top: 0; + animation: enter-from-bottom var(--animation-time) ease-out infinite; + + @keyframes enter-from-bottom { + to { + transform: translateY(-50%); + } + } + } + } + } + @keyframes enter-from-top { + to { + transform: translateY(50%); + } + } + } + &--won { + border: var(--core-borderWidth-75) solid var(--core-color-solid-green-700); + + .current-spot__last-digit { + color: var(--core-color-solid-green-700); + } + } + &--lost { + border: var(--core-borderWidth-75) solid var(--core-color-solid-red-700); + + .current-spot__last-digit { + color: var(--core-color-solid-red-700); + } + } + &--has-contract { + .current-spot { + &__display { + justify-content: space-between; + } + } + } + &--enter-from-left { + .current-spot { + animation: enter-from-left var(--motion-duration-snappy) ease-out; + + @keyframes enter-from-left { + from { + transform: translateX(50%); + margin-inline-end: 50%; + } + } + } + } +} diff --git a/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.tsx b/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.tsx new file mode 100644 index 000000000000..31ead8621a63 --- /dev/null +++ b/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.tsx @@ -0,0 +1,158 @@ +import React from 'react'; +import { observer } from 'mobx-react'; +import clsx from 'clsx'; +import { useTraderStore } from 'Stores/useTraderStores'; +import { Skeleton, usePrevious } from '@deriv/components'; +import { useStore } from '@deriv/stores'; +import { isContractElapsed } from '@deriv/shared'; +import { toJS } from 'mobx'; +import { TickSpotData } from '@deriv/api-types'; +import CurrentSpotDisplay from './current-spot-display'; +import { isDigitContractWinning } from 'AppV2/Utils/trade-params-utils'; + +const STATUS = { + LOST: 'lost', + WON: 'won', +}; + +const CurrentSpot = observer(() => { + const contract_switching_timer = React.useRef>(); + + const { contract_trade } = useStore(); + const { last_contract, prev_contract } = contract_trade; + const { + contract_info = {}, + digits_info = {}, + display_status, + is_digit_contract, + is_ended, + } = last_contract.contract_info?.entry_tick || !prev_contract ? last_contract : prev_contract; + const { tick_data, symbol } = useTraderStore(); + const { contract_id, entry_tick, date_start, contract_type, tick_stream, underlying } = contract_info; + const prev_contract_id = usePrevious(contract_id); + + let tick = tick_data; + + const is_contract_elapsed = isContractElapsed(contract_info, tick); + const is_prev_contract_elapsed = isContractElapsed(prev_contract?.contract_info, tick); + const status = !is_contract_elapsed && !!tick ? display_status : null; + + // tick from contract_info.tick_stream differs from a ticks_history API tick. + if (date_start && !is_contract_elapsed) { + if (tick_stream?.length) { + const { epoch, tick: latest_stream_tick, tick_display_value } = toJS(tick_stream.slice(-1)[0]); + tick = { + ask: latest_stream_tick, + bid: latest_stream_tick, + epoch, + pip_size: tick_display_value?.split('.')[1].length, + quote: latest_stream_tick, + current_tick: tick_stream.length, + } as TickSpotData; + } + } + const current_tick = tick && 'current_tick' in tick ? (tick.current_tick as number) : null; + // 'won' or 'lost' status exists after contract expiry: + const is_digit_contract_ended = is_ended && is_digit_contract; + const is_won = is_digit_contract_ended && status === STATUS.WON; + const is_lost = is_digit_contract_ended && status === STATUS.LOST; + const digits_array = Object.keys(digits_info) + .sort((a, b) => +a - +b) + .map(spot_time => digits_info[+spot_time]); + // last_contract_digit refers to digit and spot values from last digit contract in contracts array: + const last_contract_digit = React.useMemo(() => digits_array.slice(-1)[0] || {}, [digits_array]); + const latest_tick_pip_size = tick ? +tick.pip_size : null; + const latest_tick_quote_price = + tick?.quote && latest_tick_pip_size ? tick.quote.toFixed(latest_tick_pip_size) : null; + const latest_tick_digit = latest_tick_quote_price ? +(latest_tick_quote_price.split('').pop() || '') : null; + // latest_digit refers to digit and spot values from the latest price: + const latest_digit = React.useMemo( + () => + is_won || is_lost + ? (last_contract_digit as { digit: number | null; spot: string | null }) + : { digit: latest_tick_digit, spot: latest_tick_quote_price }, + [is_won, is_lost, latest_tick_digit, latest_tick_quote_price, last_contract_digit] + ); + + const [displayed_tick, setDisplayedTick] = React.useState(current_tick); + const [displayed_spot, setDisplayedSpot] = React.useState(latest_digit.spot); + const [should_enter_from_top, setShouldEnterFromTop] = React.useState(false); + + const barrier = !is_contract_elapsed && !!tick ? Number(contract_info.barrier) : null; + const is_winning = isDigitContractWinning(contract_type, barrier, latest_digit.digit); + const has_contract = is_digit_contract && status && latest_digit.spot && !!entry_tick; + const has_open_contract = has_contract && !is_ended; + const has_relevant_tick_data = underlying === symbol || !underlying; + const should_show_tick_count = has_contract && has_relevant_tick_data; + const should_enter_from_left = + !prev_contract?.contract_info || + !!(is_prev_contract_elapsed && last_contract.contract_info?.tick_stream?.length === 1); + + const setNewData = React.useCallback(() => { + setDisplayedTick(current_tick); + setDisplayedSpot(latest_digit.spot); + }, [current_tick, latest_digit.spot]); + + React.useEffect(() => { + const has_multiple_contracts = + prev_contract?.contract_info && !is_prev_contract_elapsed && last_contract.contract_info?.entry_tick; + const is_next_contract_opened = prev_contract_id && contract_id && prev_contract_id !== contract_id; + if (has_multiple_contracts && is_next_contract_opened) { + setShouldEnterFromTop(true); + contract_switching_timer.current = setTimeout(() => { + setShouldEnterFromTop(false); + setNewData(); + }, 240); // equal to animation duration + } else if (!should_enter_from_top) { + setNewData(); + } + }, [ + contract_id, + is_prev_contract_elapsed, + last_contract, + prev_contract, + prev_contract_id, + setNewData, + should_enter_from_top, + ]); + + React.useEffect(() => { + return () => { + clearTimeout(contract_switching_timer.current); + }; + }, []); + + return ( +
+ {tick && has_relevant_tick_data && displayed_spot ? ( +
+ {should_enter_from_top && ( + + )} + +
+ ) : ( + + )} +
+ ); +}); + +export default CurrentSpot; diff --git a/packages/trader/src/AppV2/Components/CurrentSpot/index.ts b/packages/trader/src/AppV2/Components/CurrentSpot/index.ts new file mode 100644 index 000000000000..72fddd4d5e44 --- /dev/null +++ b/packages/trader/src/AppV2/Components/CurrentSpot/index.ts @@ -0,0 +1,4 @@ +import CurrentSpot from './current-spot'; +import './current-spot.scss'; + +export default CurrentSpot; diff --git a/packages/trader/src/AppV2/Components/FavoriteSymbols/favorite-symbols.scss b/packages/trader/src/AppV2/Components/FavoriteSymbols/favorite-symbols.scss index cc359a22d0b1..85f705b44f28 100644 --- a/packages/trader/src/AppV2/Components/FavoriteSymbols/favorite-symbols.scss +++ b/packages/trader/src/AppV2/Components/FavoriteSymbols/favorite-symbols.scss @@ -5,7 +5,7 @@ &--no-fav { padding: 0 var(--core-spacing-2400); position: absolute; - top: calc(45vh - var(--size-generic-2xl)); + top: calc(45dvh - var(--size-generic-2xl)); text-align: center; width: 100%; } diff --git a/packages/trader/src/AppV2/Components/Filter/__tests__/contract-type-filter.spec.tsx b/packages/trader/src/AppV2/Components/Filter/__tests__/contract-type-filter.spec.tsx index ef5c28da349d..fb5abf1a03a5 100644 --- a/packages/trader/src/AppV2/Components/Filter/__tests__/contract-type-filter.spec.tsx +++ b/packages/trader/src/AppV2/Components/Filter/__tests__/contract-type-filter.spec.tsx @@ -33,7 +33,7 @@ describe('ContractTypeFilter', () => { render(); expect(screen.queryByText(defaultFilterName)).not.toBeInTheDocument(); - expect(screen.getAllByText(mockContractTypeFilter[0])).toHaveLength(2); + expect(screen.getByText(mockContractTypeFilter[0])).toBeInTheDocument(); }); it('should render correct chip name is contractTypeFilter is with multiple items', () => { @@ -44,10 +44,10 @@ describe('ContractTypeFilter', () => { expect(screen.getByText(`${mockContractTypeFilter.length} trade types`)).toBeInTheDocument(); }); - it('should call onApplyContractTypeFilter and setter (spied on) with array with chosen option after user clicks on contract type and clicks on "Apply" button', async () => { + it('should call onApplyContractTypeFilter and setter (spied on) with array with chosen option after user clicks on contract type and clicks on "Apply" button', () => { const mockSetChangedOptions = jest.fn(); jest.spyOn(React, 'useState') - .mockImplementationOnce(() => [false, jest.fn()]) + .mockImplementationOnce(() => [true, jest.fn()]) .mockImplementationOnce(() => [[], mockSetChangedOptions]); render(); @@ -59,11 +59,11 @@ describe('ContractTypeFilter', () => { expect(mockProps.onApplyContractTypeFilter).toBeCalled(); }); - it('should call setter (spied on) with array without chosen option if user clicks on it, but it was already in contractTypeFilter', async () => { + it('should call setter (spied on) with array without chosen option if user clicks on it, but it was already in contractTypeFilter', () => { const mockContractTypeFilter = ['Rise/Fall', 'Higher/Lower']; const mockSetChangedOptions = jest.fn(); jest.spyOn(React, 'useState') - .mockImplementationOnce(() => [false, jest.fn()]) + .mockImplementationOnce(() => [true, jest.fn()]) .mockImplementationOnce(() => [mockContractTypeFilter, mockSetChangedOptions]); render(); @@ -73,11 +73,11 @@ describe('ContractTypeFilter', () => { expect(mockSetChangedOptions).toHaveBeenCalledWith(['Higher/Lower']); }); - it('should call setter (spied on) with empty array if user clicks on "Clear All" button', async () => { + it('should call setter (spied on) with empty array if user clicks on "Clear All" button', () => { const mockContractTypeFilter = ['Touch/No Touch']; const mockSetChangedOptions = jest.fn(); jest.spyOn(React, 'useState') - .mockImplementationOnce(() => [false, jest.fn()]) + .mockImplementationOnce(() => [true, jest.fn()]) .mockImplementationOnce(() => [mockContractTypeFilter, mockSetChangedOptions]); render(); diff --git a/packages/trader/src/AppV2/Components/Filter/__tests__/time-filter.spec.tsx b/packages/trader/src/AppV2/Components/Filter/__tests__/time-filter.spec.tsx index 6f362f754974..75b977665263 100644 --- a/packages/trader/src/AppV2/Components/Filter/__tests__/time-filter.spec.tsx +++ b/packages/trader/src/AppV2/Components/Filter/__tests__/time-filter.spec.tsx @@ -33,12 +33,13 @@ describe('TimeFilter', () => { it('should render correct chip name if user have not chosen anything else', () => { render(); - expect(screen.getAllByText(defaultFilterName)).toHaveLength(2); + expect(screen.getByText(defaultFilterName)).toBeInTheDocument(); }); it('should call setTimeFilter with corresponding value if user clicks on "Today"', () => { render(); + userEvent.click(screen.getByRole('button')); userEvent.click(screen.getByText('Today')); expect(mockProps.setTimeFilter).toHaveBeenCalledWith('Today'); @@ -47,6 +48,7 @@ describe('TimeFilter', () => { it('should call setTimeFilter with corresponding value if user clicks on "Yesterday"', () => { render(); + userEvent.click(screen.getByRole('button')); userEvent.click(screen.getByText('Yesterday')); expect(mockProps.setTimeFilter).toHaveBeenCalledWith('Yesterday'); @@ -55,6 +57,7 @@ describe('TimeFilter', () => { it('should call setTimeFilter with corresponding value if user clicks on "Last 60 days"', () => { render(); + userEvent.click(screen.getByRole('button')); userEvent.click(screen.getByText('Last 60 days')); expect(mockProps.setTimeFilter).toHaveBeenCalledWith('60'); @@ -63,6 +66,7 @@ describe('TimeFilter', () => { it('should call setTimeFilter and setCustomTimeRangeFilter with empty string if user clicks on "All time"', () => { render(); + userEvent.click(screen.getByRole('button')); userEvent.click(screen.getByText('All time')); expect(mockProps.setTimeFilter).toHaveBeenCalledWith(''); @@ -71,8 +75,8 @@ describe('TimeFilter', () => { it('should show Date Picker if user clicks on "Custom" button', () => { render(); + userEvent.click(screen.getByRole('button')); expect(screen.queryByText(datePickerComponentText)).not.toBeInTheDocument(); - userEvent.click(screen.getByText('Custom')); expect(screen.getByText(datePickerComponentText)).toBeInTheDocument(); @@ -81,6 +85,7 @@ describe('TimeFilter', () => { it('should close Date Picker if it was shown after user clicks on overlay', () => { render(); + userEvent.click(screen.getByRole('button')); userEvent.click(screen.getByText('Custom')); expect(screen.getByText(datePickerComponentText)).toBeInTheDocument(); diff --git a/packages/trader/src/AppV2/Components/Guide/Description/ContractDescription/multipliers-trade-description.tsx b/packages/trader/src/AppV2/Components/Guide/Description/ContractDescription/multipliers-trade-description.tsx index a568f779e261..ed512793b0a4 100644 --- a/packages/trader/src/AppV2/Components/Guide/Description/ContractDescription/multipliers-trade-description.tsx +++ b/packages/trader/src/AppV2/Components/Guide/Description/ContractDescription/multipliers-trade-description.tsx @@ -115,6 +115,12 @@ const MultipliersTradeDescription = ({ onTermClick }: { onTermClick: (term: stri ), }, + { + type: 'paragraph', + text: ( + + ), + }, ]; return {getContractDescription(content)}; diff --git a/packages/trader/src/AppV2/Components/Guide/Description/__tests__/video-fragment.spec.tsx b/packages/trader/src/AppV2/Components/Guide/Description/__tests__/video-fragment.spec.tsx index 9819ff144dfa..11c74e694a09 100644 --- a/packages/trader/src/AppV2/Components/Guide/Description/__tests__/video-fragment.spec.tsx +++ b/packages/trader/src/AppV2/Components/Guide/Description/__tests__/video-fragment.spec.tsx @@ -1,10 +1,10 @@ import React from 'react'; -import { render, screen, fireEvent } from '@testing-library/react'; +import { render, screen } from '@testing-library/react'; import { useDevice } from '@deriv-com/ui'; import { CONTRACT_LIST } from 'AppV2/Utils/trade-types-utils'; import VideoFragment from '../video-fragment'; -const loader = 'dt_initial_loader'; +const loader = 'dt_skeleton'; const video_fragment = 'DotLottieReact'; jest.mock('@deriv/shared', () => ({ diff --git a/packages/trader/src/AppV2/Components/Guide/Description/video-fragment.tsx b/packages/trader/src/AppV2/Components/Guide/Description/video-fragment.tsx index 2fcf71fa0dda..f570656f367c 100644 --- a/packages/trader/src/AppV2/Components/Guide/Description/video-fragment.tsx +++ b/packages/trader/src/AppV2/Components/Guide/Description/video-fragment.tsx @@ -1,6 +1,6 @@ import React from 'react'; import classNames from 'classnames'; -import { Loading } from '@deriv/components'; +import { Skeleton } from '@deriv/components'; import { useDevice } from '@deriv-com/ui'; import { getUrlBase } from '@deriv/shared'; import { CONTRACT_LIST } from 'AppV2/Utils/trade-types-utils'; @@ -41,7 +41,7 @@ const VideoFragment = ({ contract_type }: TVideoFragment) => { contract_type.toLowerCase() === CONTRACT_LIST.ACCUMULATORS.toLowerCase(), })} > - {is_loading && } + {is_loading && } { jest.clearAllMocks(); }); - it('should render component', () => { + it('should render component with label and if user clicks on it, should show available contract information', () => { renderGuide(); expect(screen.getByText('Guide')).toBeInTheDocument(); + + userEvent.click(screen.getByRole('button')); + expect(screen.getByText('Trade types')).toBeInTheDocument(); AVAILABLE_CONTRACTS.forEach(({ id }) => expect(screen.getByText(id)).toBeInTheDocument()); }); - it('should render component without label if has_label === false', () => { + it('should render component without label if has_label === false and if user clicks on it, should show available contract information', () => { renderGuide({ has_label: false }); expect(screen.queryByText('Guide')).not.toBeInTheDocument(); + + userEvent.click(screen.getByRole('button')); + expect(screen.getByText('Trade types')).toBeInTheDocument(); AVAILABLE_CONTRACTS.forEach(({ id }) => expect(screen.getByText(id)).toBeInTheDocument()); }); @@ -52,14 +58,12 @@ describe('Guide', () => { it('should set correct contract type if user clicked on chip', () => { const mockSelectedContractType = jest.fn(); jest.spyOn(React, 'useState') - .mockImplementationOnce(() => [false, jest.fn()]) + .mockImplementationOnce(() => [true, jest.fn()]) .mockImplementationOnce(() => [CONTRACT_LIST.RISE_FALL, mockSelectedContractType]) .mockImplementationOnce(() => ['', jest.fn()]); renderGuide(); - userEvent.click(screen.getByText('Guide')); - userEvent.click(screen.getByText(CONTRACT_LIST.ACCUMULATORS)); expect(mockSelectedContractType).toHaveBeenCalledWith(CONTRACT_LIST.ACCUMULATORS); }); diff --git a/packages/trader/src/AppV2/Components/Guide/guide.scss b/packages/trader/src/AppV2/Components/Guide/guide.scss index 297f1058e802..a8b56d3369a9 100644 --- a/packages/trader/src/AppV2/Components/Guide/guide.scss +++ b/packages/trader/src/AppV2/Components/Guide/guide.scss @@ -27,7 +27,9 @@ &__contract-description { overflow-y: auto; - height: calc(90vh - 23rem); + height: calc(90dvh - 23rem); + -ms-overflow-style: none; + scrollbar-width: none; } &__button { @@ -109,6 +111,7 @@ &__content { &--definition { + all: unset; color: var(--core-color-solid-coral-700); } &--bold { @@ -143,11 +146,19 @@ margin-block-end: var(--component-actionSheet-spacing-padding-md); width: 24.8rem; height: 16.1rem; + position: relative; margin-inline: auto; &--accumulator { margin-block-end: var(--component-actionSheet-spacing-padding-sm); } + + .skeleton-video-loader { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } } } diff --git a/packages/trader/src/AppV2/Components/Guide/guide.tsx b/packages/trader/src/AppV2/Components/Guide/guide.tsx index af51c7d9e96a..90ff7bac3860 100644 --- a/packages/trader/src/AppV2/Components/Guide/guide.tsx +++ b/packages/trader/src/AppV2/Components/Guide/guide.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Button } from '@deriv-com/quill-ui'; +import { Button, Text } from '@deriv-com/quill-ui'; import { LabelPairedPresentationScreenSmRegularIcon } from '@deriv/quill-icons'; import { Localize } from '@deriv/translations'; import { CONTRACT_LIST } from 'AppV2/Utils/trade-types-utils'; @@ -23,11 +23,16 @@ const Guide = ({ has_label = false }: TGuide) => { setIsDescriptionOpened(false)} diff --git a/packages/trader/src/AppV2/Components/MarketCategoryItem/market-category-item.tsx b/packages/trader/src/AppV2/Components/MarketCategoryItem/market-category-item.tsx index 9677d92b0eeb..a0b2f1bb1c43 100644 --- a/packages/trader/src/AppV2/Components/MarketCategoryItem/market-category-item.tsx +++ b/packages/trader/src/AppV2/Components/MarketCategoryItem/market-category-item.tsx @@ -89,7 +89,7 @@ const MarketCategoryItem = forwardRef( {!item.exchange_is_open && ( } + label={} color='error' variant={selectedSymbol === item.symbol ? 'outline' : 'fill'} showIcon={false} diff --git a/packages/trader/src/AppV2/Components/MarketSelector/__tests__/market-selector.spec.tsx b/packages/trader/src/AppV2/Components/MarketSelector/__tests__/market-selector.spec.tsx index fc132b196253..6d77d26b91f4 100644 --- a/packages/trader/src/AppV2/Components/MarketSelector/__tests__/market-selector.spec.tsx +++ b/packages/trader/src/AppV2/Components/MarketSelector/__tests__/market-selector.spec.tsx @@ -25,6 +25,10 @@ describe('MarketSelector', () => { modules: { trade: { symbol: 'EURUSD', + tick_data: { + quote: 1234.23, + pip_size: 2, + }, }, }, }; @@ -40,14 +44,14 @@ describe('MarketSelector', () => { render(MockedMarketSelector(mockStore(mock_store))); expect(screen.getByText('EUR/USD')).toBeInTheDocument(); - expect(screen.getByText('1234')).toBeInTheDocument(); + expect(screen.getByText(mock_store.modules.trade.tick_data.quote)).toBeInTheDocument(); }); it('should render CLOSED when current symbol exchange_is_open is 0', () => { mock_store.modules.trade.symbol = 'GBPUSD'; render(MockedMarketSelector(mockStore(mock_store))); expect(screen.getByText('GBP/USD')).toBeInTheDocument(); - expect(screen.getByText('1234')).toBeInTheDocument(); + expect(screen.getByText(mock_store.modules.trade.tick_data.quote)).toBeInTheDocument(); expect(screen.getByText('CLOSED')).toBeInTheDocument(); }); it('should render default symbol when storesSymbol is not set', () => { @@ -55,7 +59,7 @@ describe('MarketSelector', () => { render(MockedMarketSelector(mockStore(mock_store))); expect(screen.getByText('CAD/AUD')).toBeInTheDocument(); - expect(screen.getByText('1234')).toBeInTheDocument(); + expect(screen.getByText(mock_store.modules.trade.tick_data.quote)).toBeInTheDocument(); expect(screen.getByText('CLOSED')).toBeInTheDocument(); }); }); diff --git a/packages/trader/src/AppV2/Components/MarketSelector/market-selector.scss b/packages/trader/src/AppV2/Components/MarketSelector/market-selector.scss index 55ccd3003814..585a481f9c50 100644 --- a/packages/trader/src/AppV2/Components/MarketSelector/market-selector.scss +++ b/packages/trader/src/AppV2/Components/MarketSelector/market-selector.scss @@ -4,7 +4,7 @@ gap: var(--core-spacing-400); &__container { - padding: var(--core-spacing-400) var(--core-spacing-800); + padding: 0 var(--core-spacing-800); } &-info { display: flex; @@ -14,5 +14,8 @@ display: flex; gap: var(--core-spacing-400); } + &__price { + color: var(--core-color-opacity-black-600); + } } } diff --git a/packages/trader/src/AppV2/Components/MarketSelector/market-selector.tsx b/packages/trader/src/AppV2/Components/MarketSelector/market-selector.tsx index fd1570596b07..224325795f3d 100644 --- a/packages/trader/src/AppV2/Components/MarketSelector/market-selector.tsx +++ b/packages/trader/src/AppV2/Components/MarketSelector/market-selector.tsx @@ -7,14 +7,17 @@ import { Localize } from '@deriv/translations'; import { LabelPairedChevronDownMdRegularIcon } from '@deriv/quill-icons'; import { observer } from '@deriv/stores'; import { useTraderStore } from 'Stores/useTraderStores'; +import { Skeleton } from '@deriv/components'; const MarketSelector = observer(() => { const [isOpen, setIsOpen] = useState(false); const { default_symbol, activeSymbols } = useActiveSymbols({}); - const { symbol: storeSymbol } = useTraderStore(); + const { symbol: storeSymbol, tick_data } = useTraderStore(); const currentSymbol = activeSymbols.find( symbol => symbol.symbol === storeSymbol || symbol.symbol === default_symbol ); + const { pip_size, quote } = tick_data ?? {}; + const current_spot = quote?.toFixed(pip_size); return ( @@ -26,7 +29,7 @@ const MarketSelector = observer(() => { {currentSymbol?.display_name} {!currentSymbol?.exchange_is_open && ( } + label={} color='error' variant='fill' showIcon={false} @@ -35,7 +38,11 @@ const MarketSelector = observer(() => { )}
- 1234 + {current_spot ? ( + {current_spot} + ) : ( + + )}
diff --git a/packages/trader/src/AppV2/Components/PurchaseButton/__tests__/purchase-button-content.spec.tsx b/packages/trader/src/AppV2/Components/PurchaseButton/__tests__/purchase-button-content.spec.tsx new file mode 100644 index 000000000000..ed6a4a0a1255 --- /dev/null +++ b/packages/trader/src/AppV2/Components/PurchaseButton/__tests__/purchase-button-content.spec.tsx @@ -0,0 +1,145 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import { getLocalizedBasis } from '@deriv/shared'; +import PurchaseButtonContent from '../purchase-button-content'; + +type TInfo = React.ComponentProps['info']; + +const mock_props = { + currency: 'USD', + current_stake: 12, + has_open_accu_contract: false, + info: { + has_error: false, + has_error_details: false, + obj_contract_basis: { + text: 'Payout', + value: 19.23, + }, + payout: 19.23, + profit: '9.23', + } as TInfo, + is_accumulator: false, + is_multiplier: false, + is_turbos: false, + is_vanilla: false, + is_vanilla_fx: false, + is_reverse: false, +}; +const wrapper_data_test_id = 'dt_purchase_button_wrapper'; +const localized_basis = getLocalizedBasis(); + +describe('PurchaseButtonContent', () => { + it('should render empty wrapper with specific className if info prop is empty object or falsy', () => { + render(); + + expect(screen.getByTestId(wrapper_data_test_id)).toHaveClass( + 'purchase-button__information__wrapper--disabled-placeholder' + ); + expect(screen.queryByText(mock_props.currency)).not.toBeInTheDocument(); + }); + + it('should render correct default text basis and amount if info was passed', () => { + render(); + + expect(screen.getByTestId(wrapper_data_test_id)).not.toHaveClass( + 'purchase-button__information__wrapper--disabled-placeholder' + ); + expect(screen.getByText(localized_basis.payout)).toBeInTheDocument(); + expect(screen.getByText(/19.23/)).toBeInTheDocument(); + expect(screen.getByText(/USD/i)).toBeInTheDocument(); + }); + + it('should apply specific className to wrapper when is_reverse is true', () => { + render(); + + expect(screen.getByTestId(wrapper_data_test_id)).toHaveClass('purchase-button__information__wrapper--reverse'); + }); + + it('should render correct specific text basis and amount for Multipliers', () => { + const multipliers_info = { + has_error: false, + has_error_details: false, + obj_contract_basis: { + text: '', + value: '', + }, + stake: '10.00', + }; + render(); + + expect(screen.getByText(localized_basis.stake)).toBeInTheDocument(); + expect(screen.getByText(/10/)).toBeInTheDocument(); + expect(screen.getByText(/USD/i)).toBeInTheDocument(); + }); + + it('should render correct specific text basis and amount for Accumulators (when there is no open contract and with it)', () => { + const accumulators_info = { + has_error: false, + has_error_details: false, + obj_contract_basis: { + text: '', + value: '', + }, + maximum_payout: 4000, + }; + const { rerender } = render( + + ); + + expect(screen.getByText(localized_basis.max_payout)).toBeInTheDocument(); + expect(screen.getByText(/4,000.00/)).toBeInTheDocument(); + expect(screen.getByText(/USD/i)).toBeInTheDocument(); + + rerender( + + ); + + expect(screen.getByText(localized_basis.current_stake)).toBeInTheDocument(); + expect(screen.getByText(/12/)).toBeInTheDocument(); + expect(screen.getByText(/USD/i)).toBeInTheDocument(); + }); + + it('should render correct specific text basis and amount for Turbos', () => { + const turbos_info = { + has_error: false, + has_error_details: false, + obj_contract_basis: { + text: 'Payout per point', + value: '8.250455', + }, + }; + render(); + + expect(screen.getByText(localized_basis.payout_per_point)).toBeInTheDocument(); + expect(screen.getByText(/8.250455/)).toBeInTheDocument(); + expect(screen.getByText(/USD/i)).toBeInTheDocument(); + }); + + it('should render correct specific text basis and amount for Vanilla (not fx and fx)', () => { + const vanilla_info = { + has_error: false, + has_error_details: false, + obj_contract_basis: { + text: 'Payout per point', + value: '12.77095', + }, + }; + const { rerender } = render(); + + expect(screen.getByText(localized_basis.payout_per_point)).toBeInTheDocument(); + expect(screen.getByText(/12.77095/)).toBeInTheDocument(); + expect(screen.getByText(/USD/i)).toBeInTheDocument(); + + rerender(); + + expect(screen.getByText(localized_basis.payout_per_pip)).toBeInTheDocument(); + expect(screen.getByText(/12.77095/)).toBeInTheDocument(); + expect(screen.getByText(/USD/i)).toBeInTheDocument(); + }); +}); diff --git a/packages/trader/src/AppV2/Components/PurchaseButton/__tests__/purchase-button.spec.tsx b/packages/trader/src/AppV2/Components/PurchaseButton/__tests__/purchase-button.spec.tsx new file mode 100644 index 000000000000..647b11eaafa5 --- /dev/null +++ b/packages/trader/src/AppV2/Components/PurchaseButton/__tests__/purchase-button.spec.tsx @@ -0,0 +1,228 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { mockContractInfo } from '@deriv/shared'; +import { mockStore } from '@deriv/stores'; +import { ReportsStoreProvider } from '../../../../../../reports/src/Stores/useReportsStores'; +import TraderProviders from '../../../../trader-providers'; +import ModulesProvider from 'Stores/Providers/modules-providers'; +import PurchaseButton from '../purchase-button'; + +describe('PositionsContent', () => { + let default_mock_store: ReturnType; + + beforeEach(() => { + default_mock_store = mockStore({ + portfolio: { + all_positions: [ + { + contract_info: { + ...mockContractInfo({ + contract_id: 243687440268, + contract_type: 'MULTUP', + multiplier: 100, + }), + }, + details: + "If you select 'Up', your total profit/loss will be the percentage increase in Volatility 100 (1s) Index, multiplied by 1000, minus commissions.", + display_name: '', + id: 243687440268, + indicative: 41.4, + purchase: 10, + reference: 486015531488, + type: 'MULTUP', + contract_update: { + stop_out: { + display_name: 'Stop out', + order_amount: -10, + order_date: 1716877413, + value: '774.81', + }, + }, + entry_spot: 782.35, + profit_loss: 31.4, + is_valid_to_sell: true, + status: 'profit', + }, + { + contract_info: { + ...mockContractInfo({ + contract_id: 243705193508, + contract_type: 'TURBOSLONG', + }), + }, + details: + 'You will receive a payout at expiry if the spot price never breaches the barrier. The payout is equal to the payout per point multiplied by the distance between the final price and the barrier.', + display_name: '', + id: 243705193508, + indicative: 4.4, + purchase: 10, + reference: 486048790368, + type: 'TURBOSLONG', + barrier: 821.69, + entry_spot: 824.24, + profit_loss: -5.6, + is_valid_to_sell: true, + status: 'profit', + }, + { + contract_info: { + ...mockContractInfo({ + contract_id: 249545026128, + contract_type: 'ACCU', + is_settleable: 0, + is_sold: 0, + is_valid_to_cancel: 0, + is_valid_to_sell: 1, + growth_rate: 0.03, + entry_spot: 364.15, + entry_spot_display_value: '364.15', + }), + }, + details: + 'After the entry spot tick, your stake will grow continuously by 3% for every tick that the spot price remains within the ± 0.03797% from the previous spot price.', + display_name: 'Volatility 100 (1s) Index', + id: 249545026128, + indicative: 18.6, + purchase: 10, + type: 'ACCU', + profit_loss: 8.6, + is_valid_to_sell: true, + current_tick: 21, + status: 'profit', + entry_spot: 364.15, + high_barrier: 364.149, + low_barrier: 363.871, + }, + ], + }, + modules: { + trade: { + ...mockStore({}).modules.trade, + currency: 'USD', + contract_type: 'rise_fall', + is_purchase_enabled: true, + proposal_info: { + PUT: { + id: 1234, + has_error: false, + has_error_details: false, + message: + 'Win payout if Volatility 100 (1s) Index is strictly lower than entry spot at 10 minutes after contract start time.', + obj_contract_basis: { + text: 'Payout', + value: 19.2, + }, + payout: 19.2, + profit: '9.20', + returns: '92.00%', + stake: '10.00', + spot: 366.11, + barrier: '366.11', + growth_rate: 0.03, + spot_time: 1721206371, + }, + CALL: { + id: 12345, + has_error: false, + has_error_details: false, + message: + 'Win payout if Volatility 100 (1s) Index is strictly higher than entry spot at 10 minutes after contract start time.', + obj_contract_basis: { + text: 'Payout', + value: 19.26, + }, + payout: 19.26, + profit: '9.26', + returns: '92.60%', + stake: '10.00', + spot: 366.11, + barrier: '366.11', + growth_rate: 0.03, + spot_time: 1721206371, + }, + }, + symbol: '1HZ100V', + trade_types: { + CALL: 'Rise', + PUT: 'Fall', + }, + }, + }, + }); + }); + + const mockPurchaseButton = () => { + render( + + + + + + + + ); + }; + + it('should render two buttons (for Rise and for Fall) with a proper content from proposal_info', () => { + mockPurchaseButton(); + + expect(screen.getAllByText('Payout')).toHaveLength(2); + expect(screen.getByText(/19.26/)).toBeInTheDocument(); + expect(screen.getAllByText(/USD/i)).toHaveLength(2); + expect(screen.getByText('Rise')).toBeInTheDocument(); + expect(screen.getByText('Fall')).toBeInTheDocument(); + }); + + it('should switch to loading state (apply a proper className and show loader instead of button name) and call onPurchase function if user clicks on purchase button', () => { + mockPurchaseButton(); + + const purchase_button = screen.getAllByRole('button')[0]; + expect(purchase_button).not.toHaveClass('purchase-button--loading'); + expect(default_mock_store.modules.trade.onPurchase).not.toBeCalled(); + expect(screen.queryByTestId('button-loader')).not.toBeInTheDocument(); + + userEvent.click(purchase_button); + + expect(purchase_button).toHaveClass('purchase-button--loading'); + expect(default_mock_store.modules.trade.onPurchase).toBeCalled(); + expect(screen.getByTestId('button-loader')).toBeInTheDocument(); + }); + + it('should disable the button if one of the prop is false (is_trade_enabled, is_proposal_empty, !info.id, is_purchase_enabled): button should have a specific attribute and if user clicks on it onPurchase will not be called', () => { + default_mock_store.modules.trade.is_purchase_enabled = false; + mockPurchaseButton(); + + const purchase_button = screen.getAllByRole('button')[0]; + expect(purchase_button).toBeDisabled(); + expect(default_mock_store.modules.trade.onPurchase).not.toBeCalled(); + + userEvent.click(purchase_button); + + expect(default_mock_store.modules.trade.onPurchase).not.toBeCalled(); + }); + + it('should render only one button if trade_types have only one field', () => { + default_mock_store.modules.trade.trade_types = { + CALL: 'Rise', + }; + mockPurchaseButton(); + + const purchase_button = screen.getByRole('button'); + expect(purchase_button).toBeInTheDocument(); + expect(purchase_button).toHaveClass('purchase-button--single'); + }); + + it('should render sell button for Accumulators contract if there is an open Accumulators contract; if user clicks on it - onClickSell should be called', () => { + default_mock_store.modules.trade.has_open_accu_contract = true; + default_mock_store.modules.trade.is_accumulator = true; + mockPurchaseButton(); + + const sell_button = screen.getByText('Sell'); + expect(sell_button).toBeInTheDocument(); + expect(default_mock_store.portfolio.onClickSell).not.toBeCalled(); + + userEvent.click(sell_button); + expect(default_mock_store.portfolio.onClickSell).toBeCalled(); + }); +}); diff --git a/packages/trader/src/AppV2/Components/PurchaseButton/index.ts b/packages/trader/src/AppV2/Components/PurchaseButton/index.ts new file mode 100644 index 000000000000..8cdf4f720500 --- /dev/null +++ b/packages/trader/src/AppV2/Components/PurchaseButton/index.ts @@ -0,0 +1,4 @@ +import PurchaseButton from './purchase-button'; +import './purchase-button.scss'; + +export default PurchaseButton; diff --git a/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button-content.tsx b/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button-content.tsx new file mode 100644 index 000000000000..19c091b71d28 --- /dev/null +++ b/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button-content.tsx @@ -0,0 +1,91 @@ +import React from 'react'; +import clsx from 'clsx'; +import { CaptionText } from '@deriv-com/quill-ui'; +import { useTraderStore } from 'Stores/useTraderStores'; +import { getLocalizedBasis } from '@deriv/shared'; +import { Money } from '@deriv/components'; + +type TPurchaseButtonContent = { + current_stake?: number | null; + info: ReturnType['proposal_info'][0]; + is_reverse?: boolean; +} & Pick< + ReturnType, + | 'currency' + | 'has_open_accu_contract' + | 'is_accumulator' + | 'is_multiplier' + | 'is_vanilla_fx' + | 'is_vanilla' + | 'is_turbos' +>; + +const PurchaseButtonContent = ({ + currency, + current_stake, + has_open_accu_contract, + info, + is_accumulator, + is_multiplier, + is_turbos, + is_vanilla, + is_vanilla_fx, + is_reverse, +}: TPurchaseButtonContent) => { + const localized_basis = getLocalizedBasis(); + + const getAmount = () => { + if (is_multiplier) return info.stake; + if (is_accumulator) return has_open_accu_contract ? Number(current_stake) : info.maximum_payout; + return info?.obj_contract_basis?.value; + }; + const getTextBasis = () => { + if (is_turbos || (is_vanilla && !is_vanilla_fx)) return localized_basis.payout_per_point; + if (is_vanilla_fx) return localized_basis.payout_per_pip; + if (is_multiplier) return localized_basis.stake; + if (is_accumulator) return has_open_accu_contract ? localized_basis.current_stake : localized_basis.max_payout; + return localized_basis.payout; + }; + + const text_basis = getTextBasis(); + const amount = getAmount(); + const is_content_empty = !text_basis || !amount; + + return ( + + {!is_content_empty && ( + + + {text_basis} + + + + + + )} + + ); +}; + +export default PurchaseButtonContent; diff --git a/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button.scss b/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button.scss new file mode 100644 index 000000000000..d94a03fad48a --- /dev/null +++ b/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button.scss @@ -0,0 +1,57 @@ +.purchase-button { + flex-direction: column-reverse; + padding-block: var(--core-spacing-400); + align-items: flex-end; + height: var(--core-size-2800); + gap: 0px; + + &:nth-child(2):not(.purchase-button--loading) { + align-items: flex-start; + } + + &--single { + align-items: center; + justify-content: center; + + .purchase-button__information__wrapper { + justify-content: center; + gap: var(--core-spacing-400); + } + } + + &--loading { + align-items: center; + } + + &__information { + &__wrapper { + width: 100%; + display: inline-flex; + justify-content: space-between; + align-items: center; + + &--reverse { + flex-direction: row-reverse; + } + + &--disabled-placeholder { + min-height: var(--core-size-900); + } + } + + &__item { + color: var(--core-color-solid-slate-50); + } + } + + &__wrapper { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0px var(--core-spacing-400) var(--core-spacing-400) var(--core-spacing-400); + gap: var(--core-spacing-400); + position: sticky; + z-index: 2; // chart has z-index: 1, it should not push purchase buttons down + bottom: 0; + } +} diff --git a/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button.tsx b/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button.tsx new file mode 100644 index 000000000000..44ae371aec57 --- /dev/null +++ b/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button.tsx @@ -0,0 +1,159 @@ +import React from 'react'; +import clsx from 'clsx'; +import { observer } from 'mobx-react'; +import { useStore } from '@deriv/stores'; +import { useTraderStore } from 'Stores/useTraderStores'; +import { Button } from '@deriv-com/quill-ui'; +import { useDevice } from '@deriv-com/ui'; +import { + CONTRACT_TYPES, + getContractTypeDisplay, + getIndicativePrice, + hasContractEntered, + isAccumulatorContract, + isEmptyObject, + isOpen, + isValidToSell, +} from '@deriv/shared'; +import { Localize } from '@deriv/translations'; +import PurchaseButtonContent from './purchase-button-content'; + +const PurchaseButton = observer(() => { + const [loading_button_index, setLoadingButtonIndex] = React.useState(null); + const { isMobile } = useDevice(); + + const { + portfolio: { all_positions, onClickSell }, + } = useStore(); + const { + contract_type, + currency, + has_open_accu_contract, + is_accumulator, + is_multiplier, + is_purchase_enabled, + is_trade_enabled, + is_turbos, + is_vanilla_fx, + is_vanilla, + onPurchase, + proposal_info, + symbol, + trade_types, + } = useTraderStore(); + + /*TODO: add error handling when design will be ready. validation_errors can be taken from useTraderStore + const hasError = (info: TTradeStore['proposal_info'][string]) => { + const has_validation_error = Object.values(validation_errors).some(e => e.length); + return has_validation_error || info?.has_error + };*/ + const is_high_low = /^high_low$/.test(contract_type.toLowerCase()); + const is_proposal_empty = isEmptyObject(proposal_info); + const purchase_button_content_props = { + currency, + has_open_accu_contract, + is_accumulator, + is_multiplier, + is_turbos, + is_vanilla_fx, + is_vanilla, + }; + const trade_types_array = Object.keys(trade_types); + const active_accu_contract = is_accumulator + ? all_positions.find( + ({ contract_info, type }) => + isAccumulatorContract(type) && contract_info.underlying === symbol && !contract_info.is_sold + ) + : undefined; + const is_valid_to_sell = active_accu_contract?.contract_info + ? hasContractEntered(active_accu_contract.contract_info) && + isOpen(active_accu_contract.contract_info) && + isValidToSell(active_accu_contract.contract_info) + : false; + const current_stake = + (is_valid_to_sell && active_accu_contract && getIndicativePrice(active_accu_contract.contract_info)) || null; + + const getButtonType = (index: number, trade_type: string) => { + const purchase_button_trade_types = [ + CONTRACT_TYPES.VANILLA.CALL, + CONTRACT_TYPES.TURBOS.LONG, + CONTRACT_TYPES.ACCUMULATOR, + ] as string[]; + + const sell_button_trade_types = [CONTRACT_TYPES.VANILLA.PUT, CONTRACT_TYPES.TURBOS.SHORT] as string[]; + + if (purchase_button_trade_types.includes(trade_type)) return 'purchase'; + if (sell_button_trade_types.includes(trade_type)) return 'sell'; + return index ? 'sell' : 'purchase'; + }; + + React.useEffect(() => { + if (is_purchase_enabled) setLoadingButtonIndex(null); + }, [is_purchase_enabled]); + + if (is_accumulator && has_open_accu_contract) { + const info = proposal_info?.[trade_types_array[0]] || {}; + return ( +
+ +
+ ); + } + + return ( +
+ {trade_types_array.map((trade_type, index) => { + const info = proposal_info?.[trade_type] || {}; + const is_single_button = trade_types_array.length === 1; + const is_loading = loading_button_index === index; + const is_disabled = !is_trade_enabled || is_proposal_empty || !info.id || !is_purchase_enabled; + + return ( + + ); + })} +
+ ); +}); + +export default PurchaseButton; diff --git a/packages/trader/src/AppV2/Components/RiskManagementItem/risk-management-item.scss b/packages/trader/src/AppV2/Components/RiskManagementItem/risk-management-item.scss index 556b6a275d67..6d56ba6b75f0 100644 --- a/packages/trader/src/AppV2/Components/RiskManagementItem/risk-management-item.scss +++ b/packages/trader/src/AppV2/Components/RiskManagementItem/risk-management-item.scss @@ -13,6 +13,10 @@ &__title { display: flex; gap: var(--semantic-spacing-gap-md); + + button { + all: unset; + } } .deal-cancellation-badge { diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/accumulators-information.scss b/packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/accumulators-information.scss new file mode 100644 index 000000000000..ab04ec211a56 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/accumulators-information.scss @@ -0,0 +1,14 @@ +.accumulators-info { + &__wrapper { + width: 100%; + } + &__row { + display: flex; + justify-content: space-between; + align-items: center; + padding-block: var(--component-badge-notification-spacing-padding-sm); + } + &__title { + border-bottom: var(--core-borderWidth-75) dotted var(--component-textIcon-normal-default); + } +} diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/accumulators-information.tsx b/packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/accumulators-information.tsx new file mode 100644 index 000000000000..271d00c30a47 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/accumulators-information.tsx @@ -0,0 +1,43 @@ +import React from 'react'; +import { observer } from 'mobx-react'; +import { Localize, localize } from '@deriv/translations'; +import { Money } from '@deriv/components'; +import { Text } from '@deriv-com/quill-ui'; +import { useTraderStore } from 'Stores/useTraderStores'; + +type TAccumulatorsInformationProps = { + is_minimized?: boolean; +}; + +const AccumulatorsInformation = observer(({ is_minimized }: TAccumulatorsInformationProps) => { + const { currency, maximum_payout, maximum_ticks } = useTraderStore(); + const content = [ + { + label: , + value: , + }, + { + label: , + value: `${maximum_ticks || 0} ${maximum_ticks === 1 ? localize('tick') : localize('ticks')}`, + }, + ]; + + if (is_minimized) return null; + + return ( +
+ {content.map(({ label, value }) => ( +
+ + {label} + + + {value} + +
+ ))} +
+ ); +}); + +export default AccumulatorsInformation; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/index.ts new file mode 100644 index 000000000000..e5851aa3fbb7 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/AccumulatorsInformation/index.ts @@ -0,0 +1,4 @@ +import AccumulatorsInformation from './accumulators-information'; +import './accumulators-information.scss'; + +export default AccumulatorsInformation; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/__tests__/allow-equals.spec.tsx b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/__tests__/allow-equals.spec.tsx new file mode 100644 index 000000000000..d9b5e8d33a02 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/__tests__/allow-equals.spec.tsx @@ -0,0 +1,92 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { mockStore } from '@deriv/stores'; +import ModulesProvider from 'Stores/Providers/modules-providers'; +import { hasCallPutEqual, hasDurationForCallPutEqual } from 'Stores/Modules/Trading/Helpers/allow-equals'; +import TraderProviders from '../../../../../trader-providers'; +import AllowEquals from '../allow-equals'; + +jest.mock('Stores/Modules/Trading/Helpers/allow-equals', () => ({ + ...jest.requireActual('Stores/Modules/Trading/Helpers/allow-equals'), + hasCallPutEqual: jest.fn(() => true), + hasDurationForCallPutEqual: jest.fn(() => true), +})); + +const title = 'Allow equals'; +const mediaQueryList = { + matches: true, + addEventListener: jest.fn(), + removeEventListener: jest.fn(), +}; + +window.matchMedia = jest.fn().mockImplementation(() => mediaQueryList); + +describe('AllowEquals', () => { + let default_mock_store: ReturnType; + + beforeEach(() => { + default_mock_store = mockStore({}); + }); + + const mockAllowEquals = () => { + return ( + + + + + + ); + }; + + it('should not render component if hasCallPutEqual return false', () => { + (hasCallPutEqual as jest.Mock).mockReturnValueOnce(false); + const { container } = render(mockAllowEquals()); + + expect(container).toBeEmptyDOMElement(); + }); + + it('should not render component if hasDurationForCallPutEqual return false', () => { + (hasDurationForCallPutEqual as jest.Mock).mockReturnValueOnce(false); + const { container } = render(mockAllowEquals()); + + expect(container).toBeEmptyDOMElement(); + }); + + it('should render component with correct input value if is_equal is 0', () => { + render(mockAllowEquals()); + + expect(screen.getByText(title)).toBeInTheDocument(); + expect(screen.getByRole('textbox')).toHaveValue('-'); + }); + + it('should render component with correct input value if is_equal is 1', () => { + default_mock_store.modules.trade.is_equal = 1; + render(mockAllowEquals()); + + expect(screen.getByText(title)).toBeInTheDocument(); + expect(screen.getByRole('textbox')).toHaveValue('Enabled'); + }); + + it('should show ActionSheet if user clicks on input', () => { + render(mockAllowEquals()); + + userEvent.click(screen.getByRole('textbox')); + + expect(screen.getByRole('dialog')).toHaveAttribute('data-state', 'open'); + }); + + it('should call onChange function if user opens ActionSheet, changes ToggleSwitch and clicks on "Save" button', () => { + render(mockAllowEquals()); + + userEvent.click(screen.getByRole('textbox')); + + const [toggle_switch_button, save_button] = screen.getAllByRole('button'); + expect(toggle_switch_button).toHaveAttribute('aria-pressed', 'false'); + userEvent.click(toggle_switch_button); + expect(toggle_switch_button).toHaveAttribute('aria-pressed', 'true'); + + userEvent.click(save_button); + expect(default_mock_store.modules.trade.onChange).toBeCalled(); + }); +}); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals-header.tsx b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals-header.tsx new file mode 100644 index 000000000000..b545c11ec624 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals-header.tsx @@ -0,0 +1,26 @@ +import React from 'react'; +import { ActionSheet } from '@deriv-com/quill-ui'; +import { LabelPairedArrowLeftMdRegularIcon, LabelPairedCircleInfoMdRegularIcon } from '@deriv/quill-icons'; +import { Localize } from '@deriv/translations'; + +type TAllowEqualsProps = { + current_index: number; + onNextClick: () => void; + onPrevClick: () => void; +}; + +const AllowEqualsHeader = ({ current_index, onNextClick, onPrevClick }: TAllowEqualsProps) => ( + } + icon={ + current_index ? ( + + ) : ( + + ) + } + iconPosition={current_index ? 'left' : 'right'} + /> +); + +export default AllowEqualsHeader; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.scss b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.scss new file mode 100644 index 000000000000..2e8cc14fbae3 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.scss @@ -0,0 +1,19 @@ +$HANDLEBAR_HEIGHT: var(--core-size-1000); +$HEADER_TITLE_HEIGHT: var(--core-size-3200); +$FOOTER_BUTTON_HEIGHT: var(--core-size-4000); + +.allow-equals { + &__wrapper { + height: calc(40dvh - $HANDLEBAR_HEIGHT - $HEADER_TITLE_HEIGHT - $FOOTER_BUTTON_HEIGHT); + + &--definition { + height: calc(40dvh - $HANDLEBAR_HEIGHT - $HEADER_TITLE_HEIGHT); + } + } + + &__content { + display: flex; + justify-content: space-between; + align-items: center; + } +} diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.tsx b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.tsx new file mode 100644 index 000000000000..e3f857a100ab --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.tsx @@ -0,0 +1,109 @@ +import React from 'react'; +import { observer } from 'mobx-react'; +import clsx from 'clsx'; +import { ActionSheet, ToggleSwitch, Text, TextField } from '@deriv-com/quill-ui'; +import { Localize, localize } from '@deriv/translations'; +import { hasCallPutEqual, hasDurationForCallPutEqual } from 'Stores/Modules/Trading/Helpers/allow-equals'; +import { useTraderStore } from 'Stores/useTraderStores'; +import Carousel from 'AppV2/Components/Carousel'; +import AllowEqualsHeader from './allow-equals-header'; + +type TAllowEqualsProps = { + is_minimized?: boolean; +}; + +const AllowEquals = observer(({ is_minimized }: TAllowEqualsProps) => { + const { contract_types_list, contract_start_type, duration_unit, expiry_type, is_equal, onChange } = + useTraderStore(); + + const [is_open, setIsOpen] = React.useState(false); + const [is_allow_equal_enabled, setIsAllowEqualEnabled] = React.useState(!!is_equal); + + const has_callputequal_duration = hasDurationForCallPutEqual( + contract_types_list, + duration_unit, + contract_start_type + ); + const has_callputequal = hasCallPutEqual(contract_types_list); + const has_allow_equals = (has_callputequal_duration || expiry_type === 'endtime') && has_callputequal; + + const onSaveButtonClick = () => { + if (!!is_equal !== is_allow_equal_enabled) + onChange({ target: { name: 'is_equal', value: Number(is_allow_equal_enabled) } }); + }; + const onActionSheetClose = () => { + setIsOpen(false); + setIsAllowEqualEnabled(!!is_equal); + }; + + const action_sheet_content = [ + { + id: 1, + component: ( + + +
+ + + + setIsAllowEqualEnabled(is_enabled)} + /> +
+
+ , + onAction: onSaveButtonClick, + }} + /> +
+ ), + }, + { + id: 2, + component: ( + +
+ + + +
+
+ ), + }, + ]; + + React.useEffect(() => { + setIsAllowEqualEnabled(!!is_equal); + }, [is_equal]); + + if (!has_allow_equals) return null; + + return ( + + + } + value={is_equal ? localize('Enabled') : '-'} + className={clsx('trade-params__option', is_minimized && 'trade-params__option--minimized')} + onClick={() => setIsOpen(true)} + /> + + + + + + + ); +}); + +export default AllowEquals; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/index.ts new file mode 100644 index 000000000000..f10fd0214b01 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/index.ts @@ -0,0 +1,4 @@ +import './allow-equals.scss'; +import AllowEquals from './allow-equals'; + +export default AllowEquals; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Barrier/barrier.tsx b/packages/trader/src/AppV2/Components/TradeParameters/Barrier/barrier.tsx new file mode 100644 index 000000000000..8f9b96c40bba --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/Barrier/barrier.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import clsx from 'clsx'; +import { observer } from 'mobx-react'; +import { TextField } from '@deriv-com/quill-ui'; +import { Localize } from '@deriv/translations'; +import { useTraderStore } from 'Stores/useTraderStores'; + +type TDurationProps = { + is_minimized?: boolean; +}; + +const Barrier = observer(({ is_minimized }: TDurationProps) => { + const { barrier_1 } = useTraderStore(); + return ( + } + value={barrier_1} + className={clsx('trade-params__option', is_minimized && 'trade-params__option--minimized')} + /> + ); +}); + +export default Barrier; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Barrier/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/Barrier/index.ts new file mode 100644 index 000000000000..dae0fa68c1c8 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/Barrier/index.ts @@ -0,0 +1,3 @@ +import Barrier from './barrier'; + +export default Barrier; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Duration/duration.tsx b/packages/trader/src/AppV2/Components/TradeParameters/Duration/duration.tsx new file mode 100644 index 000000000000..819aedf2377d --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/Duration/duration.tsx @@ -0,0 +1,29 @@ +import React from 'react'; +import clsx from 'clsx'; +import { observer } from 'mobx-react'; +import { TextField } from '@deriv-com/quill-ui'; +import { getUnitMap } from '@deriv/shared'; +import { Localize } from '@deriv/translations'; +import { useTraderStore } from 'Stores/useTraderStores'; + +type TDurationProps = { + is_minimized?: boolean; +}; + +const Duration = observer(({ is_minimized }: TDurationProps) => { + const { duration, duration_unit } = useTraderStore(); + const { name_plural, name } = getUnitMap()[duration_unit] ?? {}; + const duration_unit_text = name_plural ?? name; + + return ( + } + value={`${duration} ${duration_unit_text}`} + className={clsx('trade-params__option', is_minimized && 'trade-params__option--minimized')} + /> + ); +}); + +export default Duration; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Duration/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/Duration/index.ts new file mode 100644 index 000000000000..0dab04703e1f --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/Duration/index.ts @@ -0,0 +1,3 @@ +import Duration from './duration'; + +export default Duration; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/GrowthRate/growth-rate.tsx b/packages/trader/src/AppV2/Components/TradeParameters/GrowthRate/growth-rate.tsx new file mode 100644 index 000000000000..3711f453919a --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/GrowthRate/growth-rate.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import clsx from 'clsx'; +import { observer } from 'mobx-react'; +import { TextField } from '@deriv-com/quill-ui'; +import { Localize } from '@deriv/translations'; +import { useTraderStore } from 'Stores/useTraderStores'; +import { getGrowthRatePercentage } from '@deriv/shared'; + +type TGrowthRateProps = { + is_minimized?: boolean; +}; + +const GrowthRate = observer(({ is_minimized }: TGrowthRateProps) => { + const { growth_rate, has_open_accu_contract } = useTraderStore(); + return ( + } + value={`${getGrowthRatePercentage(growth_rate)}%`} + className={clsx('trade-params__option', is_minimized && 'trade-params__option--minimized')} + disabled={has_open_accu_contract} + /> + ); +}); + +export default GrowthRate; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/GrowthRate/index.tsx b/packages/trader/src/AppV2/Components/TradeParameters/GrowthRate/index.tsx new file mode 100644 index 000000000000..32449048a620 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/GrowthRate/index.tsx @@ -0,0 +1,3 @@ +import GrowthRate from './growth-rate'; + +export default GrowthRate; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/digit.spec.tsx b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/digit.spec.tsx new file mode 100644 index 000000000000..6c369d486b40 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/digit.spec.tsx @@ -0,0 +1,54 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import Digit from '../digit'; + +describe('Digit', () => { + const mock_props = { + digit: 5, + digit_stats: [120, 86, 105, 94, 85, 86, 124, 107, 90, 103], + is_active: false, + is_disabled: false, + is_max: false, + is_min: false, + onClick: jest.fn(), + }; + const percentage_testid = 'dt_digit_stats_percentage'; + + it('should not render digit if digit is passed as undefined despite the type restriction', () => { + const { container } = render(); + + expect(container).toBeEmptyDOMElement(); + }); + it('should render an enabled digit button with stats if digit and digit_stats are defined', () => { + render(); + + expect(screen.getByRole('button', { name: '5' })).toBeEnabled(); + expect(screen.getByText('8.6%')).toBeInTheDocument(); + }); + it('should render digit button without stats is digit_stats for the digit is not available', () => { + render(); + + expect(screen.getByRole('button', { name: '5' })).toBeEnabled(); + expect(screen.queryByText(/%/)).not.toBeInTheDocument(); + }); + it('should render a disabled digit button if is_disabled={true}', () => { + render(); + + expect(screen.getByRole('button', { name: '5' })).toBeDisabled(); + }); + it('should render a digit button with correct classname if is_active={true}', () => { + render(); + + expect(screen.getByRole('button', { name: '5' })).toHaveClass('active'); + }); + it('should render percentage with correct classname if is_min={true}', () => { + render(); + + expect(screen.getByTestId(percentage_testid)).toHaveClass('percentage--min'); + }); + it('should render percentage with correct classname if is_max={true}', () => { + render(); + + expect(screen.getByTestId(percentage_testid)).toHaveClass('percentage--max'); + }); +}); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/last-digit-prediction.spec.tsx b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/last-digit-prediction.spec.tsx new file mode 100644 index 000000000000..22e02b6560c9 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/last-digit-prediction.spec.tsx @@ -0,0 +1,94 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { mockStore } from '@deriv/stores'; +import TraderProviders from '../../../../../trader-providers'; +import ModulesProvider from 'Stores/Providers/modules-providers'; +import LastDigitPrediction from '../last-digit-prediction'; + +const title = 'Last digit prediction'; +const mediaQueryList = { + matches: true, + addEventListener: jest.fn(), + removeEventListener: jest.fn(), +}; + +window.matchMedia = jest.fn().mockImplementation(() => mediaQueryList); + +describe('LastDigitPrediction', () => { + let default_mock_store: ReturnType; + const digit_stats = [120, 86, 105, 94, 85, 86, 124, 107, 90, 103]; + + beforeEach(() => { + default_mock_store = mockStore({ + modules: { + trade: { + digit_stats: [], + last_digit: 5, + onChange: jest.fn(), + }, + }, + }); + }); + + const mockLastDigitPrediction = (props?: React.ComponentProps) => { + return ( + + + + + + ); + }; + + it('should render skeleton loader if is_minimized={false} and digit_stats is empty', () => { + render(mockLastDigitPrediction()); + + expect(screen.getByTestId('dt_skeleton')).toBeInTheDocument(); + }); + it('should render 10 enabled buttons for each digit if digit_stats are available', () => { + default_mock_store.modules.trade.digit_stats = digit_stats; + render(mockLastDigitPrediction()); + + const buttons = screen.getAllByRole('button'); + expect(buttons).toHaveLength(10); + buttons.forEach((button: HTMLElement) => { + expect(button).toBeEnabled(); + }); + }); + it('should render 10 disabled buttons for each digit in stats mode if digit_stats are available', () => { + default_mock_store.modules.trade.digit_stats = digit_stats; + render(mockLastDigitPrediction({ is_stats_mode: true })); + + const buttons = screen.getAllByRole('button'); + expect(buttons).toHaveLength(10); + buttons.forEach((button: HTMLElement) => { + expect(button).toBeDisabled(); + }); + }); + it('should render component with correct last digit value when minimized', () => { + render(mockLastDigitPrediction({ is_minimized: true })); + + expect(screen.getByText(title)).toBeInTheDocument(); + expect(screen.getByRole('textbox')).toHaveValue(default_mock_store.modules.trade.last_digit.toString()); + }); + it('should show ActionSheet if user clicks on the minimized Last digit prediction param', () => { + render(mockLastDigitPrediction({ is_minimized: true })); + + userEvent.click(screen.getByRole('textbox')); + + expect(screen.getByRole('dialog')).toHaveAttribute('data-state', 'open'); + }); + it('should call onChange function if user opens ActionSheet, selects another digit and clicks on "Save" button', () => { + render(mockLastDigitPrediction({ is_minimized: true })); + + userEvent.click(screen.getByRole('textbox')); + + const digit_button_seven = screen.getByRole('button', { name: '7' }); + const save_button = screen.getByRole('button', { name: 'Save' }); + + userEvent.click(digit_button_seven); + userEvent.click(save_button); + expect(default_mock_store.modules.trade.onChange).toBeCalled(); + }); +}); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/last-digit-selector.spec.tsx b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/last-digit-selector.spec.tsx new file mode 100644 index 000000000000..e09e98287f12 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/__tests__/last-digit-selector.spec.tsx @@ -0,0 +1,26 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import LastDigitSelector from '../last-digit-selector'; + +const mocked_digit = 'Digit'; + +jest.mock('../digit', () => jest.fn(() =>
{mocked_digit}
)); + +describe('LastDigitSelector', () => { + const digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; + const mock_props = { + digits: [], + digit_stats: [120, 86, 105, 94, 85, 86, 124, 107, 90, 103], + }; + + it('should not render digits if digits is empty', () => { + render(); + + expect(screen.queryByText(mocked_digit)).not.toBeInTheDocument(); + }); + it('should render 10 digits for each digit if digits are available', () => { + render(); + + expect(screen.getAllByText(mocked_digit)).toHaveLength(10); + }); +}); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/digit.tsx b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/digit.tsx new file mode 100644 index 000000000000..41df43a8eda7 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/digit.tsx @@ -0,0 +1,44 @@ +import React from 'react'; +import clsx from 'clsx'; +import { CaptionText, Text } from '@deriv-com/quill-ui'; + +type TDigitsProps = { + is_active?: boolean; + is_disabled?: boolean; + is_max?: boolean; + is_min?: boolean; + digit: number; + digit_stats: number[]; + onClick?: (digit: number) => void; +}; + +const Digit = ({ digit, digit_stats = [], is_active, is_disabled, is_max, is_min, onClick }: TDigitsProps) => { + const stats = digit_stats.length ? digit_stats[digit] : null; + const percentage = stats ? (stats * 100) / 1000 : null; + const display_percentage = percentage && !isNaN(percentage) ? parseFloat(percentage.toFixed(1)) : null; + + if (!digit && isNaN(digit)) return null; + return ( +
+ + {!!display_percentage && ( + + {display_percentage}% + + )} +
+ ); +}; + +export default Digit; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/index.ts new file mode 100644 index 000000000000..d1944d5ef7e4 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/index.ts @@ -0,0 +1,4 @@ +import LastDigitPrediction from './last-digit-prediction'; +import './last-digit-prediction.scss'; + +export default LastDigitPrediction; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.scss b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.scss new file mode 100644 index 000000000000..c6c11c809797 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.scss @@ -0,0 +1,73 @@ +.last-digit-prediction { + display: flex; + flex-direction: column; + gap: var(--core-spacing-400); + padding: var(--core-spacing-400) var(--core-spacing-800); + border-radius: var(--core-spacing-400); + background: var(--core-color-opacity-black-75); + width: 100%; + + &__title { + color: var(--core-color-opacity-black-600); + } + &__selector { + display: flex; + flex-direction: column; + gap: var(--core-spacing-400); + width: 100%; + + &-row { + display: flex; + gap: var(--core-spacing-400); + width: 100%; + } + .digit { + height: var(--core-size-3300); + display: flex; + flex-direction: column; + align-items: center; + flex: 1; + + button { + display: flex; + height: var(--core-size-2400); + width: 100%; + justify-content: center; + align-items: center; + border-radius: var(--core-borderRadius-800); + border: var(--core-borderWidth-75) solid var(--core-color-opacity-black-100); + background-color: var(--core-color-solid-slate-50); + } + button.active { + background-color: var(--core-color-solid-slate-1400); + + p { + color: var(--core-color-solid-slate-50); + } + } + .percentage { + color: var(--core-color-opacity-black-500); + + &--max { + color: var(--core-color-solid-green-800); + } + &--min { + color: var(--core-color-solid-red-700); + } + } + } + &:is(.action-sheet--content *) { + margin: var(--core-spacing-1600) 0; + } + } + &--stats-mode { + border-radius: var(--core-borderRadius-400); + background-color: var(--core-color-solid-slate-50); + padding: var(--core-spacing-400) var(--core-spacing-800) var(--core-spacing-800); + + .digit button { + background-color: unset; + border: unset; + } + } +} diff --git a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx new file mode 100644 index 000000000000..ba015a0820b4 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx @@ -0,0 +1,96 @@ +import React from 'react'; +import { observer } from 'mobx-react'; +import clsx from 'clsx'; +import { ActionSheet, CaptionText, TextField } from '@deriv-com/quill-ui'; +import { Skeleton } from '@deriv/components'; +import { Localize } from '@deriv/translations'; +import { useTraderStore } from 'Stores/useTraderStores'; +import LastDigitSelector from './last-digit-selector'; + +type TLastDigitSelectorProps = { + is_minimized?: boolean; + is_stats_mode?: boolean; +}; + +const displayed_digits = [...Array(10).keys()]; // digits array [0 - 9] + +const LastDigitPrediction = observer(({ is_minimized, is_stats_mode }: TLastDigitSelectorProps) => { + const { digit_stats = [], last_digit, onChange } = useTraderStore(); + const [is_open, setIsOpen] = React.useState(false); + const [selected_digit, setSelectedDigit] = React.useState(last_digit); + + React.useEffect(() => { + setSelectedDigit(last_digit); + }, [last_digit]); + + const handleLastDigitChange = (digit: number) => { + onChange({ target: { name: 'last_digit', value: digit } }); + }; + const onSaveButtonClick = () => { + if (last_digit !== selected_digit) handleLastDigitChange(selected_digit); + }; + const onActionSheetClose = () => { + setIsOpen(false); + //TODO: check if we need these 2 resets below after latest Quill Action sheet changes will be in our branch + setSelectedDigit(last_digit); + }; + + if (is_minimized) + return ( + <> + + } + value={last_digit.toString()} // TODO: remove toString after TextField supports a numeric 0 value in quill-ui + className={clsx('trade-params__option', 'trade-params__option--minimized')} + onClick={() => setIsOpen(true)} + /> + + + } /> + + + + , + onAction: onSaveButtonClick, + }} + /> + + + + ); + if (!digit_stats.length) return ; + return ( +
+ {!is_stats_mode && ( + + + + )} + +
+ ); +}); + +export default LastDigitPrediction; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-selector.tsx b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-selector.tsx new file mode 100644 index 000000000000..4e7e1c9852cb --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-selector.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import Digit from './digit'; + +type TLastDigitSelectorProps = { + digits: number[]; + digit_stats: number[]; + is_stats_mode?: boolean; + onDigitSelect?: (digit: number) => void; + selected_digit?: number; +}; + +const LastDigitSelector = ({ + digits = [], + digit_stats, + is_stats_mode, + onDigitSelect, + selected_digit, +}: TLastDigitSelectorProps) => ( +
+ {[...Array(2).keys()].map(row_key => ( +
+ {digits.slice(row_key * 5, (row_key + 1) * 5).map(digit => ( + + ))} +
+ ))} +
+); + +export default LastDigitSelector; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Multiplier/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/Multiplier/index.ts new file mode 100644 index 000000000000..cac0ec790a6a --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/Multiplier/index.ts @@ -0,0 +1,3 @@ +import Multiplier from './multiplier'; + +export default Multiplier; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Multiplier/multiplier.tsx b/packages/trader/src/AppV2/Components/TradeParameters/Multiplier/multiplier.tsx new file mode 100644 index 000000000000..c4b8a8ff5864 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/Multiplier/multiplier.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import clsx from 'clsx'; +import { observer } from 'mobx-react'; +import { TextField } from '@deriv-com/quill-ui'; +import { Localize } from '@deriv/translations'; +import { useTraderStore } from 'Stores/useTraderStores'; + +type TMultiplierProps = { + is_minimized?: boolean; +}; + +const Multiplier = observer(({ is_minimized }: TMultiplierProps) => { + const { multiplier } = useTraderStore(); + return ( + } + value={`x${multiplier}`} + className={clsx('trade-params__option', is_minimized && 'trade-params__option--minimized')} + /> + ); +}); + +export default Multiplier; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/index.ts new file mode 100644 index 000000000000..78a235c0f249 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/index.ts @@ -0,0 +1,4 @@ +import MultipliersInformation from './multipliers-information'; +import './multipliers-information.scss'; + +export default MultipliersInformation; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/multipliers-information.scss b/packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/multipliers-information.scss new file mode 100644 index 000000000000..011683551a4f --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/multipliers-information.scss @@ -0,0 +1,14 @@ +.multipliers-info { + &__wrapper { + width: 100%; + } + &__row { + display: flex; + justify-content: space-between; + align-items: center; + padding-block: var(--component-badge-notification-spacing-padding-sm); + } + &__title { + border-bottom: var(--core-borderWidth-75) dotted var(--component-textIcon-normal-default); + } +} diff --git a/packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/multipliers-information.tsx b/packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/multipliers-information.tsx new file mode 100644 index 000000000000..e283dcdee727 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/MultipliersInformation/multipliers-information.tsx @@ -0,0 +1,43 @@ +import React from 'react'; +import { observer } from 'mobx-react'; +import { Localize } from '@deriv/translations'; +import { Money } from '@deriv/components'; +import { Text } from '@deriv-com/quill-ui'; +import { useTraderStore } from 'Stores/useTraderStores'; + +type TMultipliersInformationProps = { + is_minimized?: boolean; +}; + +const MultipliersInformation = observer(({ is_minimized }: TMultipliersInformationProps) => { + const { currency, commission, stop_out } = useTraderStore(); + const content = [ + { + label: , + value: commission, + }, + { + label: , + value: stop_out, + }, + ]; + + if (is_minimized) return null; + + return ( +
+ {content.map(({ label, value }) => ( +
+ + {label} + + + + +
+ ))} +
+ ); +}); + +export default MultipliersInformation; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/PayoutPerPoint/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/PayoutPerPoint/index.ts new file mode 100644 index 000000000000..ea7497d66da0 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/PayoutPerPoint/index.ts @@ -0,0 +1,3 @@ +import PayoutPerPoint from './payout-per-point'; + +export default PayoutPerPoint; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/PayoutPerPoint/payout-per-point.tsx b/packages/trader/src/AppV2/Components/TradeParameters/PayoutPerPoint/payout-per-point.tsx new file mode 100644 index 000000000000..2170f7b77245 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/PayoutPerPoint/payout-per-point.tsx @@ -0,0 +1,42 @@ +import React from 'react'; +import clsx from 'clsx'; +import { observer } from 'mobx-react'; +import { TextField } from '@deriv-com/quill-ui'; +import { Localize } from '@deriv/translations'; +import { useTraderStore } from 'Stores/useTraderStores'; +import { getCurrencyDisplayCode } from '@deriv/shared'; +import { Skeleton } from '@deriv/components'; + +type TPayoutPerPointProps = { + is_minimized?: boolean; +}; + +const PayoutPerPoint = observer(({ is_minimized }: TPayoutPerPointProps) => { + const { contract_type, currency, proposal_info } = useTraderStore(); + const contract_key = contract_type.toUpperCase(); + const { value: payout_per_point } = proposal_info[contract_key]?.obj_contract_basis || {}; + const classname = clsx('trade-params__option', is_minimized && 'trade-params__option--minimized'); + + if (!payout_per_point) + return ( +
+ +
+ ); + return ( + + } + value={`${payout_per_point} ${getCurrencyDisplayCode(currency)}`} + className={classname} + /> + ); +}); + +export default PayoutPerPoint; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/RiskManagement/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/RiskManagement/index.ts new file mode 100644 index 000000000000..a9a774c4598e --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/RiskManagement/index.ts @@ -0,0 +1,3 @@ +import RiskManagement from './risk-management'; + +export default RiskManagement; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/RiskManagement/risk-management.tsx b/packages/trader/src/AppV2/Components/TradeParameters/RiskManagement/risk-management.tsx new file mode 100644 index 000000000000..33948e07d65a --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/RiskManagement/risk-management.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import clsx from 'clsx'; +import { TextField } from '@deriv-com/quill-ui'; +import { Localize, localize } from '@deriv/translations'; + +type TRiskManagementProps = { + is_minimized?: boolean; +}; + +const RiskManagement = ({ is_minimized }: TRiskManagementProps) => { + return ( + + } + value={localize('Not set')} + className={clsx('trade-params__option', is_minimized && 'trade-params__option--minimized')} + /> + ); +}; + +export default RiskManagement; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Stake/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/Stake/index.ts new file mode 100644 index 000000000000..918d2dcb512b --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/Stake/index.ts @@ -0,0 +1,3 @@ +import Stake from './stake'; + +export default Stake; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Stake/stake.tsx b/packages/trader/src/AppV2/Components/TradeParameters/Stake/stake.tsx new file mode 100644 index 000000000000..ba58c9764db4 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/Stake/stake.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import clsx from 'clsx'; +import { observer } from 'mobx-react'; +import { TextField } from '@deriv-com/quill-ui'; +import { Localize } from '@deriv/translations'; +import { useTraderStore } from 'Stores/useTraderStores'; +import { getCurrencyDisplayCode } from '@deriv/shared'; + +type TStakeProps = { + is_minimized?: boolean; +}; + +const BASIS = { + PAYOUT: 'payout', + STAKE: 'stake', +}; + +const Stake = observer(({ is_minimized }: TStakeProps) => { + const { amount, basis, currency, onChange } = useTraderStore(); + + React.useEffect(() => { + if (basis === BASIS.PAYOUT) onChange({ target: { name: 'basis', value: BASIS.STAKE } }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [basis]); + + if (basis === BASIS.PAYOUT) return null; + return ( + } + value={`${amount} ${getCurrencyDisplayCode(currency)}`} + className={clsx('trade-params__option', is_minimized && 'trade-params__option--minimized')} + /> + ); +}); + +export default Stake; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Strike/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/Strike/index.ts new file mode 100644 index 000000000000..3189f709652c --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/Strike/index.ts @@ -0,0 +1,3 @@ +import Strike from './strike'; + +export default Strike; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Strike/strike.tsx b/packages/trader/src/AppV2/Components/TradeParameters/Strike/strike.tsx new file mode 100644 index 000000000000..d6a0a49850a2 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/Strike/strike.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import { observer } from 'mobx-react'; +import { TextField } from '@deriv-com/quill-ui'; +import { Localize } from '@deriv/translations'; +import clsx from 'clsx'; +import { useTraderStore } from 'Stores/useTraderStores'; + +type TStrikeProps = { + is_minimized?: boolean; +}; + +const Strike = observer(({ is_minimized }: TStrikeProps) => { + const { barrier_1 } = useTraderStore(); + return ( + } + value={barrier_1} + className={clsx('trade-params__option', is_minimized && 'trade-params__option--minimized')} + /> + ); +}); + +export default Strike; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/TakeProfit/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/TakeProfit/index.ts new file mode 100644 index 000000000000..331cdb569ef4 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/TakeProfit/index.ts @@ -0,0 +1,3 @@ +import TakeProfit from './take-profit'; + +export default TakeProfit; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/TakeProfit/take-profit.tsx b/packages/trader/src/AppV2/Components/TradeParameters/TakeProfit/take-profit.tsx new file mode 100644 index 000000000000..aa2b95cafd6c --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/TakeProfit/take-profit.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import clsx from 'clsx'; +import { observer } from 'mobx-react'; +import { TextField } from '@deriv-com/quill-ui'; +import { Localize, localize } from '@deriv/translations'; +import { useTraderStore } from 'Stores/useTraderStores'; +import { getCurrencyDisplayCode } from '@deriv/shared'; + +type TTakeProfitProps = { + is_minimized?: boolean; +}; + +const TakeProfit = observer(({ is_minimized }: TTakeProfitProps) => { + const { currency, has_open_accu_contract, take_profit } = useTraderStore(); + return ( + } + value={take_profit ? `${take_profit} ${getCurrencyDisplayCode(currency)}` : localize('Not set')} + className={clsx('trade-params__option', is_minimized && 'trade-params__option--minimized')} + disabled={has_open_accu_contract} + /> + ); +}); + +export default TakeProfit; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/__tests__/trade-type-tabs.spec.tsx b/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/__tests__/trade-type-tabs.spec.tsx new file mode 100644 index 000000000000..d5b07252fd08 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/__tests__/trade-type-tabs.spec.tsx @@ -0,0 +1,61 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { TRADE_TYPES } from '@deriv/shared'; +import { mockStore } from '@deriv/stores'; +import ModulesProvider from 'Stores/Providers/modules-providers'; +import TraderProviders from '../../../../../trader-providers'; +import { ReportsStoreProvider } from '../../../../../../../reports/src/Stores/useReportsStores'; +import TradeTypeTabs from '../trade-type-tabs'; + +describe('TradeTypeTabs', () => { + let default_mock_store: ReturnType; + + beforeEach(() => { + default_mock_store = mockStore({}); + }); + + const mockTradeTypeTabs = (props?: React.ComponentProps) => { + return ( + + + + + + + + ); + }; + + it('should not render component if contract type is not Vanillas or Turbos', () => { + const { container } = render(mockTradeTypeTabs()); + + expect(container).toBeEmptyDOMElement(); + }); + + it('should render correct tabs name for Vanillas', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.VANILLA.CALL; + default_mock_store.modules.trade.is_vanilla = true; + render(mockTradeTypeTabs({ is_minimized: true })); + + expect(screen.getByText('Call')).toBeInTheDocument(); + expect(screen.getByText('Put')).toBeInTheDocument(); + + userEvent.click(screen.getByText('Put')); + }); + + it('should call onChange function if user clicks on another tab and not call it if he clicks on the already chosen one', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.TURBOS.LONG; + default_mock_store.modules.trade.is_turbos = true; + render(mockTradeTypeTabs()); + + const current_tab = screen.getByText('Up'); + const another_tab = screen.getByText('Down'); + expect(default_mock_store.modules.trade.onChange).not.toBeCalled(); + userEvent.click(current_tab); + expect(default_mock_store.modules.trade.onChange).not.toBeCalled(); + + userEvent.click(another_tab); + expect(default_mock_store.modules.trade.onChange).toBeCalled(); + }); +}); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/index.ts new file mode 100644 index 000000000000..d20d9987748d --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/index.ts @@ -0,0 +1,3 @@ +import TradeTypeTabs from './trade-type-tabs'; + +export default TradeTypeTabs; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/trade-type-tabs.tsx b/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/trade-type-tabs.tsx new file mode 100644 index 000000000000..1c74b17eb7e2 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/trade-type-tabs.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import { observer } from 'mobx-react'; +import clsx from 'clsx'; +import { SegmentedControlSingleChoice } from '@deriv-com/quill-ui'; +import { useTraderStore } from 'Stores/useTraderStores'; +import { TRADE_TYPES } from '@deriv/shared'; + +type TTradeTypeTabsProps = { + is_minimized?: boolean; +}; + +const TradeTypeTabs = observer(({ is_minimized }: TTradeTypeTabsProps) => { + const { contract_type, is_turbos, is_vanilla, onChange } = useTraderStore(); + const tab_list = [ + { label: 'Up', value: TRADE_TYPES.TURBOS.LONG, is_displayed: is_turbos }, + { label: 'Down', value: TRADE_TYPES.TURBOS.SHORT, is_displayed: is_turbos }, + { label: 'Call', value: TRADE_TYPES.VANILLA.CALL, is_displayed: is_vanilla }, + { label: 'Put', value: TRADE_TYPES.VANILLA.PUT, is_displayed: is_vanilla }, + ]; + const options = tab_list.filter(({ is_displayed }) => is_displayed); + const selected_item_index = options.findIndex(({ value }) => value === contract_type); + const handleTabChange = (selected_item_index: number) => { + onChange({ target: { name: 'contract_type', value: options[selected_item_index].value } }); + }; + + if (!is_turbos && !is_vanilla) return null; + return ( + ({ label }))} + selectedItemIndex={selected_item_index} + /> + ); +}); + +export default TradeTypeTabs; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/__tests__/trade-parameters-container.spec.tsx b/packages/trader/src/AppV2/Components/TradeParameters/__tests__/trade-parameters-container.spec.tsx new file mode 100644 index 000000000000..508777e820c3 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/__tests__/trade-parameters-container.spec.tsx @@ -0,0 +1,29 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import TradeParametersContainer from '../trade-parameters-container'; + +const children = 'children'; +const mock_children =
{children}
; + +jest.mock('react-transition-group', () => ({ + CSSTransition: jest.fn(({ children }) =>
{children}
), +})); +jest.mock('../../Guide', () => jest.fn(() => 'Guide')); + +describe('TradeParametersContainer', () => { + it('should render a proper content with children if is_minimized is false', () => { + render({mock_children}); + + expect(screen.getByText('Set your trade')).toBeInTheDocument(); + expect(screen.getByText('Guide')).toBeInTheDocument(); + expect(screen.getByText(children)).toBeInTheDocument(); + }); + + it('should render only children if is_minimized is true', () => { + render({mock_children}); + + expect(screen.queryByText('Set your trade')).not.toBeInTheDocument(); + expect(screen.queryByText('Guide')).not.toBeInTheDocument(); + expect(screen.getByText(children)).toBeInTheDocument(); + }); +}); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/__tests__/trade-parameters.spec.tsx b/packages/trader/src/AppV2/Components/TradeParameters/__tests__/trade-parameters.spec.tsx new file mode 100644 index 000000000000..8419f6b1f2a6 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/__tests__/trade-parameters.spec.tsx @@ -0,0 +1,171 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import { TRADE_TYPES } from '@deriv/shared'; +import { mockStore } from '@deriv/stores'; +import ModulesProvider from 'Stores/Providers/modules-providers'; +import TraderProviders from '../../../../trader-providers'; +import { ReportsStoreProvider } from '../../../../../../reports/src/Stores/useReportsStores'; +import TradeParameters from '../trade-parameters'; + +const TRADE_PARAMS = { + ALLOW_EQUALS: 'AllowEquals', + DURATION: 'Duration', + STAKE: 'Stake', + BARRIER: 'Barrier', + GROWTH_RATE: 'GrowthRate', + TAKE_PROFIT: 'TakeProfit', + ACCUMULATORS_INFORMATION: 'AccumulatorsInformation', + MULTIPLIER: 'Multiplier', + RISK_MANAGEMENT: 'RiskManagement', + MULTIPLIERS_INFORMATION: 'MultipliersInformation', + TRADE_TYPE_TABS: 'TradeTypeTabs', + STRIKE: 'Strike', + PAYOUT_PER_POINT: 'PayoutPerPoint', + LAST_DIGIT_PREDICTION: 'LastDigitPrediction', +}; +const data_test = 'dt_trade_param'; + +jest.mock('../AllowEquals', () => jest.fn(() =>
{TRADE_PARAMS.ALLOW_EQUALS}
)); +jest.mock('../Duration', () => jest.fn(() =>
{TRADE_PARAMS.DURATION}
)); +jest.mock('../Stake', () => jest.fn(() =>
{TRADE_PARAMS.STAKE}
)); +jest.mock('../Barrier', () => jest.fn(() =>
{TRADE_PARAMS.BARRIER}
)); +jest.mock('../GrowthRate', () => jest.fn(() =>
{TRADE_PARAMS.GROWTH_RATE}
)); +jest.mock('../TakeProfit', () => jest.fn(() =>
{TRADE_PARAMS.TAKE_PROFIT}
)); +jest.mock('../AccumulatorsInformation', () => + jest.fn(() =>
{TRADE_PARAMS.ACCUMULATORS_INFORMATION}
) +); +jest.mock('../Multiplier', () => jest.fn(() =>
{TRADE_PARAMS.MULTIPLIER}
)); +jest.mock('../RiskManagement', () => jest.fn(() =>
{TRADE_PARAMS.RISK_MANAGEMENT}
)); +jest.mock('../MultipliersInformation', () => + jest.fn(() =>
{TRADE_PARAMS.MULTIPLIERS_INFORMATION}
) +); +jest.mock('../TradeTypeTabs', () => jest.fn(() =>
{TRADE_PARAMS.TRADE_TYPE_TABS}
)); +jest.mock('../Strike', () => jest.fn(() =>
{TRADE_PARAMS.STRIKE}
)); +jest.mock('../PayoutPerPoint', () => jest.fn(() =>
{TRADE_PARAMS.PAYOUT_PER_POINT}
)); +jest.mock('../LastDigitPrediction', () => + jest.fn(() =>
{TRADE_PARAMS.LAST_DIGIT_PREDICTION}
) +); + +describe('TradeParameters', () => { + let default_mock_store: ReturnType; + + beforeEach(() => { + default_mock_store = mockStore({}); + }); + + const mockTradeParameters = () => { + return ( + + + + + + + + ); + }; + + it('should render correct trade params for Accumulators', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.ACCUMULATOR; + render(mockTradeParameters()); + + expect(screen.getByText(TRADE_PARAMS.GROWTH_RATE)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.STAKE)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.TAKE_PROFIT)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.ACCUMULATORS_INFORMATION)).toBeInTheDocument(); + expect(screen.getAllByTestId(data_test)).toHaveLength(4); + }); + + it('should render correct trade params for Vanillas', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.VANILLA.CALL; + render(mockTradeParameters()); + + expect(screen.getByText(TRADE_PARAMS.TRADE_TYPE_TABS)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.DURATION)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.STRIKE)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.STAKE)).toBeInTheDocument(); + expect(screen.getAllByTestId(data_test)).toHaveLength(4); + }); + + it('should render correct trade params for Turbos', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.TURBOS.LONG; + render(mockTradeParameters()); + + expect(screen.getByText(TRADE_PARAMS.TRADE_TYPE_TABS)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.DURATION)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.PAYOUT_PER_POINT)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.STAKE)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.TAKE_PROFIT)).toBeInTheDocument(); + expect(screen.getAllByTestId(data_test)).toHaveLength(5); + }); + + it('should render correct trade params for Multipliers', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.MULTIPLIER; + render(mockTradeParameters()); + + expect(screen.getByText(TRADE_PARAMS.MULTIPLIER)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.STAKE)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.RISK_MANAGEMENT)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.MULTIPLIERS_INFORMATION)).toBeInTheDocument(); + expect(screen.getAllByTestId(data_test)).toHaveLength(4); + }); + + it('should render correct trade params for Rise/Fall', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.RISE_FALL; + render(mockTradeParameters()); + + expect(screen.getByText(TRADE_PARAMS.DURATION)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.STAKE)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.ALLOW_EQUALS)).toBeInTheDocument(); + expect(screen.getAllByTestId(data_test)).toHaveLength(3); + }); + + it('should render correct trade params for Higher/Lower', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.HIGH_LOW; + render(mockTradeParameters()); + + expect(screen.getByText(TRADE_PARAMS.DURATION)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.BARRIER)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.STAKE)).toBeInTheDocument(); + expect(screen.getAllByTestId(data_test)).toHaveLength(3); + }); + + it('should render correct trade params for Touch/No Touch', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.TOUCH; + render(mockTradeParameters()); + + expect(screen.getByText(TRADE_PARAMS.DURATION)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.BARRIER)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.STAKE)).toBeInTheDocument(); + expect(screen.getAllByTestId(data_test)).toHaveLength(3); + }); + + it('should render correct trade params for Matches/Differs', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.MATCH_DIFF; + render(mockTradeParameters()); + + expect(screen.getByText(TRADE_PARAMS.LAST_DIGIT_PREDICTION)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.DURATION)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.STAKE)).toBeInTheDocument(); + expect(screen.getAllByTestId(data_test)).toHaveLength(3); + }); + + it('should render correct trade params for Even/Odd', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.EVEN_ODD; + render(mockTradeParameters()); + + expect(screen.getByText(TRADE_PARAMS.DURATION)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.STAKE)).toBeInTheDocument(); + expect(screen.getAllByTestId(data_test)).toHaveLength(2); + }); + + it('should render correct trade params for Over/Under', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.OVER_UNDER; + render(mockTradeParameters()); + + expect(screen.getByText(TRADE_PARAMS.LAST_DIGIT_PREDICTION)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.DURATION)).toBeInTheDocument(); + expect(screen.getByText(TRADE_PARAMS.STAKE)).toBeInTheDocument(); + expect(screen.getAllByTestId(data_test)).toHaveLength(3); + }); +}); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/index.ts b/packages/trader/src/AppV2/Components/TradeParameters/index.ts new file mode 100644 index 000000000000..6dc27d371370 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/index.ts @@ -0,0 +1,4 @@ +import './trade-parameters.scss'; + +export { default as TradeParametersContainer } from './trade-parameters-container'; +export { default as TradeParameters } from './trade-parameters'; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters-container.tsx b/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters-container.tsx new file mode 100644 index 000000000000..36991b936e83 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters-container.tsx @@ -0,0 +1,43 @@ +import React from 'react'; +import { Localize } from '@deriv/translations'; +import { CSSTransition } from 'react-transition-group'; +import { Text } from '@deriv-com/quill-ui'; +import Guide from '../Guide'; + +type TTradeParametersContainer = { + is_minimized?: boolean; + is_minimized_visible?: boolean; +}; + +const TradeParametersContainer = ({ + children, + is_minimized, + is_minimized_visible, +}: React.PropsWithChildren) => + is_minimized ? ( + + {children} + + ) : ( +
+
+ + + + +
+ {children} +
+ ); + +export default React.memo(TradeParametersContainer); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss b/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss new file mode 100644 index 000000000000..4cd690126210 --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss @@ -0,0 +1,66 @@ +.trade-params { + border-radius: var(--core-borderRadius-400); + background-color: var(--core-color-solid-slate-50); + padding: var(--core-spacing-800); + display: flex; + flex-direction: column; + justify-content: center; + gap: var(--core-spacing-800); + + &__title { + display: flex; + align-items: center; + justify-content: space-between; + } + + &__options__wrapper { + display: flex; + flex-direction: column; + justify-content: center; + gap: var(--core-spacing-400); + + &--minimized { + align-items: center; + flex-direction: row; + justify-content: unset; + flex-wrap: nowrap; + overflow-x: scroll; + white-space: nowrap; + -ms-overflow-style: none; + scrollbar-width: none; + max-height: 0px; + padding: 0px; + transition: transform 0.5s, opacity 0.5s, max-height 0.5s, padding 0.1s; + + &--enter, + &--exit { + opacity: 0; + transform: translateY(100%); + max-height: 0px; + padding: 0px; + } + &--enter-done { + opacity: 1; + transform: translateY(0); + max-height: var(--core-size-3600); + padding: var(--core-spacing-400) var(--core-spacing-400) var(--core-spacing-400) var(--core-spacing-400); + } + .quill-input__container { + width: unset; + } + } + } + + &__option { + &--minimized { + width: 16rem; + flex-shrink: 0; + } + &:not(.trade-params__option--minimized) { + height: var(--core-size-2800); + } + .input { + padding-inline-start: 0; + } + } +} diff --git a/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.tsx b/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.tsx new file mode 100644 index 000000000000..bab8ae4fedda --- /dev/null +++ b/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.tsx @@ -0,0 +1,57 @@ +import React from 'react'; +import { getTradeParams } from 'AppV2/Utils/trade-params-utils'; +import clsx from 'clsx'; +import { observer } from 'mobx-react'; +import { useTraderStore } from 'Stores/useTraderStores'; +import AllowEquals from './AllowEquals'; +import Duration from './Duration'; +import Stake from './Stake'; +import Barrier from './Barrier'; +import GrowthRate from './GrowthRate'; +import TakeProfit from './TakeProfit'; +import AccumulatorsInformation from './AccumulatorsInformation'; +import Multiplier from './Multiplier'; +import RiskManagement from './RiskManagement'; +import MultipliersInformation from './MultipliersInformation'; +import TradeTypeTabs from './TradeTypeTabs'; +import Strike from './Strike'; +import PayoutPerPoint from './PayoutPerPoint'; +import LastDigitPrediction from './LastDigitPrediction'; + +type TTradeParametersProps = { + is_minimized?: boolean; +}; + +const TradeParameters = observer(({ is_minimized }: TTradeParametersProps) => { + const { contract_type, symbol } = useTraderStore(); + const isVisible = (component_key: string) => { + return getTradeParams(symbol)[contract_type].includes(component_key); + }; + + return ( +
+ {isVisible('trade_type_tabs') && } + {isVisible('last_digit') && } + {isVisible('duration') && } + {isVisible('strike') && } + {isVisible('payout_per_point') && } + {isVisible('barrier') && } + {isVisible('growth_rate') && } + {isVisible('multiplier') && } + {isVisible('stake') && } + {isVisible('allow_equals') && } + {isVisible('take_profit') && } + {isVisible('risk_management') && } + {/* {isVisible('expiration') && } */} + {isVisible('accu_info_display') && } + {isVisible('mult_info_display') && } +
+ ); +}); + +export default TradeParameters; diff --git a/packages/trader/src/AppV2/Containers/Chart/chart-placeholder.tsx b/packages/trader/src/AppV2/Containers/Chart/chart-placeholder.tsx index e10d650d640a..d9db9a7bde70 100644 --- a/packages/trader/src/AppV2/Containers/Chart/chart-placeholder.tsx +++ b/packages/trader/src/AppV2/Containers/Chart/chart-placeholder.tsx @@ -1,5 +1,5 @@ -import { Text } from '@deriv-com/quill-ui'; import React from 'react'; +import { Text } from '@deriv-com/quill-ui'; const ChartPlaceholder = () => { return ( diff --git a/packages/trader/src/AppV2/Containers/Chart/index.ts b/packages/trader/src/AppV2/Containers/Chart/index.ts index 7871e37e34c5..505264a78386 100644 --- a/packages/trader/src/AppV2/Containers/Chart/index.ts +++ b/packages/trader/src/AppV2/Containers/Chart/index.ts @@ -1,4 +1,4 @@ -import ChartPlaceholder from './chart-placeholder'; import './chart.scss'; -export default ChartPlaceholder; +export { default as ChartPlaceholder } from './chart-placeholder'; +export { default as TradeChart } from './trade-chart'; diff --git a/packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx b/packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx new file mode 100644 index 000000000000..538abd068f47 --- /dev/null +++ b/packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx @@ -0,0 +1,193 @@ +import React from 'react'; +import { ActiveSymbols, TickSpotData } from '@deriv/api-types'; +import { useDevice } from '@deriv-com/ui'; +import { ChartBarrierStore, isAccumulatorContract } from '@deriv/shared'; +import { observer, useStore } from '@deriv/stores'; +import { useTraderStore } from 'Stores/useTraderStores'; +import { SmartChart } from 'Modules/SmartChart'; +import AccumulatorsChartElements from 'Modules/SmartChart/Components/Markers/accumulators-chart-elements'; +import ToolbarWidgets from 'Modules/SmartChart/Components/toolbar-widgets'; +import useActiveSymbols from 'AppV2/Hooks/useActiveSymbols'; + +type TBottomWidgetsParams = { + digits: number[]; + tick: TickSpotData | null; +}; +type TBottomWidgetsMobile = TBottomWidgetsParams & { + setDigitStats: (digits: number[]) => void; + setTickData: (tick: TickSpotData | null) => void; +}; + +const BottomWidgetsMobile = ({ digits, tick, setTickData, setDigitStats }: TBottomWidgetsMobile) => { + // Using bottom widgets in V2 to get tick data for all trade types and to get digit stats for Digit trade types + React.useEffect(() => { + setTickData(tick); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [tick]); + + React.useEffect(() => { + setDigitStats(digits); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [digits]); + + // render no bottom widgets on chart + return null; +}; + +const TradeChart = observer(() => { + const { ui, common, contract_trade, portfolio } = useStore(); + const { isMobile } = useDevice(); + const { + accumulator_barriers_data, + accumulator_contract_barriers_data, + chart_type, + granularity, + has_crossed_accu_barriers, + markers_array, + updateChartType, + updateGranularity, + } = contract_trade; + const ref = React.useRef<{ hasPredictionIndicators(): void; triggerPopup(arg: () => void): void }>(null); + const { all_positions } = portfolio; + const { is_chart_countdown_visible, is_chart_layout_default, is_dark_mode_on, is_positions_drawer_on } = ui; + const { current_language, is_socket_opened } = common; + const { default_symbol, activeSymbols: active_symbols } = useActiveSymbols({}); + const { + barriers_flattened: extra_barriers, + chartStateChange, + chart_layout, + contract_type, + exportLayout, + has_alternative_source, + has_barrier, + main_barrier_flattened: main_barrier, + setChartStatus, + setDigitStats, + setTickData, + show_digits_stats, + symbol: symbol_from_store, + onChange, + prev_contract_type, + wsForget, + wsForgetStream, + wsSendRequest, + wsSubscribe, + } = useTraderStore(); + + const symbol = symbol_from_store ?? default_symbol; + const is_accumulator = isAccumulatorContract(contract_type); + const settings = { + countdown: is_chart_countdown_visible, + isHighestLowestMarkerEnabled: false, // TODO: Pending UI, + language: current_language.toLowerCase(), + position: is_chart_layout_default ? 'bottom' : 'left', + theme: is_dark_mode_on ? 'dark' : 'light', + ...(is_accumulator ? { whitespace: 190, minimumLeftBars: isMobile ? 3 : undefined } : {}), + ...(has_barrier ? { whitespace: 110 } : {}), + }; + + const { current_spot, current_spot_time } = accumulator_barriers_data || {}; + + const bottomWidgets = React.useCallback(({ digits, tick }: TBottomWidgetsParams) => { + return ( + + ); + }, []); + + React.useEffect(() => { + if ((is_accumulator || show_digits_stats) && ref.current?.hasPredictionIndicators()) { + const cancelCallback = () => onChange({ target: { name: 'contract_type', value: prev_contract_type } }); + ref.current?.triggerPopup(cancelCallback); + } + }, [is_accumulator, onChange, prev_contract_type, show_digits_stats]); + + const getMarketsOrder = (active_symbols: ActiveSymbols): string[] => { + const synthetic_index = 'synthetic_index'; + const has_synthetic_index = active_symbols.some(s => s.market === synthetic_index); + return active_symbols + .slice() + .sort((a, b) => (a.display_name < b.display_name ? -1 : 1)) + .map(s => s.market) + .reduce( + (arr, market) => { + if (arr.indexOf(market) === -1) arr.push(market); + return arr; + }, + has_synthetic_index ? [synthetic_index] : [] + ); + }; + + const barriers: ChartBarrierStore[] = main_barrier ? [main_barrier, ...extra_barriers] : extra_barriers; + + // max ticks to display for mobile view for tick chart + const max_ticks = granularity === 0 ? 8 : 24; + + if (!symbol || !active_symbols.length) return null; + return ( + setChartStatus(!v, true)} + chartType={chart_type} + initialData={{ + activeSymbols: JSON.parse(JSON.stringify(active_symbols)), + }} + chartData={{ + activeSymbols: JSON.parse(JSON.stringify(active_symbols)), + }} + feedCall={{ + activeSymbols: false, + }} + enabledNavigationWidget={!isMobile} + enabledChartFooter={false} + id='trade' + isMobile={isMobile} + maxTick={isMobile ? max_ticks : undefined} + granularity={show_digits_stats || is_accumulator ? 0 : granularity} + requestAPI={wsSendRequest} + requestForget={wsForget} + requestForgetStream={wsForgetStream} + requestSubscribe={wsSubscribe} + settings={settings} + allowTickChartTypeOnly={show_digits_stats || is_accumulator} + stateChangeListener={chartStateChange} + symbol={symbol} + topWidgets={() =>
/* to hide the original chart market dropdown */} + isConnectionOpened={is_socket_opened} + clearChart={false} + toolbarWidget={() => { + return ; + }} + importedLayout={chart_layout} + onExportLayout={exportLayout} + shouldFetchTradingTimes={false} + hasAlternativeSource={has_alternative_source} + getMarketsOrder={getMarketsOrder} + should_zoom_out_on_yaxis={is_accumulator} + yAxisMargin={{ + top: isMobile ? 76 : 106, + }} + isLive + leftMargin={!isMobile && is_positions_drawer_on ? 328 : 80} + > + {is_accumulator && ( + + )} + + ); +}); +export default TradeChart; diff --git a/packages/trader/src/AppV2/Containers/ContractDetails/contract-details.tsx b/packages/trader/src/AppV2/Containers/ContractDetails/contract-details.tsx index 988076e4f653..5c773d264223 100644 --- a/packages/trader/src/AppV2/Containers/ContractDetails/contract-details.tsx +++ b/packages/trader/src/AppV2/Containers/ContractDetails/contract-details.tsx @@ -2,7 +2,7 @@ import React from 'react'; import EntryExitDetails from 'AppV2/Components/EntryExitDetails'; import TakeProfitHistory from 'AppV2/Components/TakeProfitHistory'; import PayoutInfo from 'AppV2/Components/PayoutInfo'; -import ChartPlaceholder from '../Chart'; +import { ChartPlaceholder } from '../Chart'; import CardWrapper from 'AppV2/Components/CardWrapper'; import { observer, useStore } from '@deriv/stores'; import useContractDetails from 'AppV2/Hooks/useContractDetails'; diff --git a/packages/trader/src/AppV2/Containers/Trade/__tests__/trade.spec.tsx b/packages/trader/src/AppV2/Containers/Trade/__tests__/trade.spec.tsx new file mode 100644 index 000000000000..0b6a072e777b --- /dev/null +++ b/packages/trader/src/AppV2/Containers/Trade/__tests__/trade.spec.tsx @@ -0,0 +1,131 @@ +import React from 'react'; +import { fireEvent, render, screen } from '@testing-library/react'; +import { mockStore } from '@deriv/stores'; +import { ReportsStoreProvider } from '../../../../../../reports/src/Stores/useReportsStores'; +import TraderProviders from '../../../../trader-providers'; +import ModulesProvider from 'Stores/Providers/modules-providers'; +import Trade from '../trade'; +import { TRADE_TYPES } from '@deriv/shared'; + +jest.mock('AppV2/Components/BottomNav', () => + jest.fn(({ children, onScroll }) => ( +
+ {children} +
+ )) +); +jest.mock('AppV2/Components/CurrentSpot', () => jest.fn(() =>
Current Spot
)); +jest.mock('AppV2/Components/PurchaseButton', () => jest.fn(() =>
Purchase Button
)); +jest.mock('../trade-types', () => jest.fn(() =>
Trade Types Selection
)); +jest.mock('AppV2/Components/MarketSelector', () => jest.fn(() =>
MarketSelector
)); +jest.mock('../../Chart', () => ({ + ...jest.requireActual('../../Chart'), + TradeChart: jest.fn(() =>
Chart
), +})); +jest.mock('AppV2/Components/TradeParameters', () => ({ + ...jest.requireActual('AppV2/Components/TradeParameters'), + TradeParametersContainer: jest.fn(({ children }) =>
{children}
), + TradeParameters: jest.fn(() =>
Trade Parameters
), +})); +jest.mock('AppV2/Utils/trade-types-utils', () => ({ + ...jest.requireActual('AppV2/Utils/trade-types-utils'), + getTradeTypesList: jest.fn(() => ['mock_trade_type']), +})); +jest.mock('@lottiefiles/dotlottie-react', () => ({ + DotLottieReact: jest.fn(() =>
DotLottieReact
), +})); + +describe('Trade', () => { + let default_mock_store: ReturnType; + + beforeEach(() => { + default_mock_store = mockStore({ + modules: { + trade: { + active_symbols: [ + { + allow_forward_starting: 0, + display_name: 'BTC/USD', + display_order: 0, + exchange_is_open: 1, + is_trading_suspended: 0, + market: 'cryptocurrency', + market_display_name: 'Cryptocurrencies', + pip: 0.001, + subgroup: 'none', + subgroup_display_name: 'None', + submarket: 'non_stable_coin', + submarket_display_name: 'Cryptocurrencies', + symbol: 'cryBTCUSD', + symbol_type: 'cryptocurrency', + }, + { + allow_forward_starting: 1, + display_name: 'Bear Market Index', + display_order: 10, + exchange_is_open: 1, + is_trading_suspended: 0, + market: 'synthetic_index', + market_display_name: 'Derived', + pip: 0.0001, + subgroup: 'synthetics', + subgroup_display_name: 'Synthetics', + submarket: 'random_daily', + submarket_display_name: 'Daily Reset Indices', + symbol: 'RDBEAR', + symbol_type: 'stockindex', + }, + ], + }, + }, + }); + }); + + const mockTrade = () => { + return ( + + + + + + + + ); + }; + + it('should render loader if there is no active_symbols or contract_types_list', () => { + default_mock_store = mockStore({}); + render(mockTrade()); + + expect(screen.getByTestId('dt_trade_loader')).toBeInTheDocument(); + }); + + it('should render trading page with all components', () => { + render(mockTrade()); + + expect(screen.queryByTestId('dt_trade_loader')).not.toBeInTheDocument(); + expect(screen.queryByText('Current Spot')).not.toBeInTheDocument(); + + expect(screen.getByText('Trade Types Selection')).toBeInTheDocument(); + expect(screen.getByText('MarketSelector')).toBeInTheDocument(); + expect(screen.getAllByText('Trade Parameters')).toHaveLength(2); + expect(screen.getByText('Chart')).toBeInTheDocument(); + expect(screen.getByText('Purchase Button')).toBeInTheDocument(); + }); + + it('should render Current Spot component if it is digit contract type', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.EVEN_ODD; + render(mockTrade()); + + expect(screen.getByText('Current Spot')).toBeInTheDocument(); + }); + + it('should call state setter when user scrolls BottomNav', () => { + const spySetIsMinimizedParamsVisible = jest.spyOn(React, 'useState'); + render(mockTrade()); + + fireEvent.scroll(screen.getByTestId('dt_bottom_nav')); + + expect(spySetIsMinimizedParamsVisible).toBeCalled(); + }); +}); diff --git a/packages/trader/src/AppV2/Containers/Trade/trade-types.tsx b/packages/trader/src/AppV2/Containers/Trade/trade-types.tsx new file mode 100644 index 000000000000..572b2e334ac6 --- /dev/null +++ b/packages/trader/src/AppV2/Containers/Trade/trade-types.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import { useTraderStore } from 'Stores/useTraderStores'; +import { Chip, Text } from '@deriv-com/quill-ui'; +import { getTradeTypesList } from 'AppV2/Utils/trade-types-utils'; + +type TTemporaryTradeTypesProps = { + onTradeTypeSelect: (e: React.MouseEvent) => void; + trade_types: ReturnType; +} & Pick, 'contract_type'>; + +const TemporaryTradeTypes = ({ contract_type, onTradeTypeSelect, trade_types }: TTemporaryTradeTypesProps) => { + const isTradeTypeSelected = (value: string) => + [contract_type, value].every(type => type.startsWith('vanilla')) || + [contract_type, value].every(type => type.startsWith('turbos')) || + [contract_type, value].every(type => type.startsWith('rise_fall')) || + contract_type === value; + return ( +
+ {trade_types.map(({ text, value }) => ( + + {text} + + ))} +
+ ); +}; + +export default React.memo(TemporaryTradeTypes); diff --git a/packages/trader/src/AppV2/Containers/Trade/trade.scss b/packages/trader/src/AppV2/Containers/Trade/trade.scss index e69de29bb2d1..28efc5f2d4de 100644 --- a/packages/trader/src/AppV2/Containers/Trade/trade.scss +++ b/packages/trader/src/AppV2/Containers/Trade/trade.scss @@ -0,0 +1,45 @@ +.trade { + display: flex; + flex-direction: column; + background-color: var(--core-color-solid-slate-75); + padding: 0 var(--core-spacing-400) var(--core-spacing-400); + gap: var(--core-spacing-400); + + &__trade-types { + position: relative; + width: 100vw; + inset-inline-start: calc(-1 * var(--core-spacing-400)); + padding: var(--core-spacing-400) var(--core-spacing-800); + background-color: var(--core-color-solid-slate-50); + display: flex; + gap: var(--core-spacing-400); + overflow-x: auto; + min-height: var(--core-spacing-1600); + white-space: nowrap; + scrollbar-width: none; + + button { + background-color: transparent; + } + } + &__assets { + padding: 0 var(--core-spacing-800); + + .dc-dropdown { + &__container { + width: 26rem; + } + &__display { + height: var(--core-spacing-2100); + } + } + } + &__chart { + border-radius: var(--core-borderRadius-400); + overflow: hidden; + + .smartcharts { + position: relative; + } + } +} diff --git a/packages/trader/src/AppV2/Containers/Trade/trade.tsx b/packages/trader/src/AppV2/Containers/Trade/trade.tsx index 5be8c0b360f4..442e71b4e503 100644 --- a/packages/trader/src/AppV2/Containers/Trade/trade.tsx +++ b/packages/trader/src/AppV2/Containers/Trade/trade.tsx @@ -1,13 +1,60 @@ import React from 'react'; -import BottomNav from 'AppV2/Components/BottomNav'; -import MarketSelector from 'AppV2/Components/MarketSelector'; import { observer } from 'mobx-react'; -import { useTraderStore } from 'Stores/useTraderStores'; import { Loading } from '@deriv/components'; -import Guide from 'AppV2/Components/Guide'; +import { TRADE_TYPES } from '@deriv/shared'; +import { useTraderStore } from 'Stores/useTraderStores'; +import BottomNav from 'AppV2/Components/BottomNav'; +import PurchaseButton from 'AppV2/Components/PurchaseButton'; +import { HEIGHT } from 'AppV2/Utils/layout-utils'; +import { getTradeTypesList } from 'AppV2/Utils/trade-types-utils'; +import { TradeParametersContainer, TradeParameters } from 'AppV2/Components/TradeParameters'; +import CurrentSpot from 'AppV2/Components/CurrentSpot'; +import { TradeChart } from '../Chart'; +import { isDigitTradeType } from 'Modules/Trading/Helpers/digits'; +import TemporaryTradeTypes from './trade-types'; +import LastDigitPrediction from 'AppV2/Components/TradeParameters/LastDigitPrediction'; +import MarketSelector from 'AppV2/Components/MarketSelector'; const Trade = observer(() => { - const { active_symbols, onMount, onUnmount } = useTraderStore(); + const [is_minimized_params_visible, setIsMinimizedParamsVisible] = React.useState(false); + const chart_ref = React.useRef(null); + + const { active_symbols, contract_type, contract_types_list, onMount, onChange, onUnmount } = useTraderStore(); + + const trade_types = React.useMemo(() => getTradeTypesList(contract_types_list), [contract_types_list]); + const symbols = React.useMemo( + () => + active_symbols.map(({ display_name, symbol: underlying }) => ({ + text: display_name, + value: underlying, + })), + [active_symbols] + ); + + const dynamic_chart_height = + window.innerHeight - HEIGHT.HEADER - HEIGHT.BOTTOM_NAV - HEIGHT.ADVANCED_FOOTER - HEIGHT.PADDING; + + const onTradeTypeSelect = React.useCallback( + (e: React.MouseEvent) => { + const value = trade_types.find(({ text }) => text === (e.target as HTMLButtonElement).textContent)?.value; + onChange({ + target: { + name: 'contract_type', + value, + }, + }); + }, + [trade_types, onChange] + ); + + const onScroll = React.useCallback(() => { + const current_chart_ref = chart_ref?.current; + if (current_chart_ref) { + const chart_bottom_Y = current_chart_ref.getBoundingClientRect().bottom; + const container_bottom_Y = window.innerHeight - HEIGHT.BOTTOM_NAV; + setIsMinimizedParamsVisible(chart_bottom_Y < container_bottom_Y); + } + }, []); React.useEffect(() => { onMount(); @@ -16,12 +63,29 @@ const Trade = observer(() => { }, []); return ( - - - {active_symbols.length ? ( + + {symbols.length && trade_types.length ? ( - - +
+ + + {isDigitTradeType(contract_type) && } + {contract_type === TRADE_TYPES.EVEN_ODD && } + + + +
+ +
+
+ + + +
) : ( diff --git a/packages/trader/src/AppV2/Hooks/__tests__/useActiveSymbols.spec.tsx b/packages/trader/src/AppV2/Hooks/__tests__/useActiveSymbols.spec.tsx index be8bd670c461..e84e8612f6ba 100644 --- a/packages/trader/src/AppV2/Hooks/__tests__/useActiveSymbols.spec.tsx +++ b/packages/trader/src/AppV2/Hooks/__tests__/useActiveSymbols.spec.tsx @@ -5,6 +5,7 @@ import { mockStore } from '@deriv/stores'; import TraderProviders from '../../../trader-providers'; import { waitFor } from '@testing-library/react'; import { usePrevious } from '@deriv/components'; +import { TRADE_TYPES } from '@deriv/shared'; const not_logged_in_active_symbols = [ { symbol: 'EURUSD', display_name: 'EUR/USD', exchange_is_open: 1 }, @@ -47,7 +48,10 @@ describe('useActiveSymbols', () => { modules: { trade: { active_symbols: not_logged_in_active_symbols, + has_symbols_for_v2: true, + contract_type: TRADE_TYPES.RISE_FALL, onChange: jest.fn(), + setActiveSymbolsV2: jest.fn(), symbol: '', }, }, @@ -56,8 +60,9 @@ describe('useActiveSymbols', () => { jest.clearAllMocks(); }); it('should fetch active symbols when not logged in', async () => { - (usePrevious as jest.Mock).mockReturnValue(true); //Need to return opposite value of is_logged_in for fetchActiveSymbols to trigger - const { result } = renderHook(() => useActiveSymbols({ contract_type: [], barrier_category: [] }), { + // Need the opposite return value (true) of usePrevious(is_logged_in) for fetchActiveSymbols to trigger: + (usePrevious as jest.Mock).mockReturnValueOnce(true).mockReturnValueOnce(TRADE_TYPES.RISE_FALL); + const { result } = renderHook(() => useActiveSymbols({ barrier_category: [] }), { wrapper, }); await waitFor(() => { @@ -65,17 +70,20 @@ describe('useActiveSymbols', () => { }); }); it('should fetch active symbols when logged in', async () => { - (usePrevious as jest.Mock).mockReturnValue(false); + (usePrevious as jest.Mock).mockReturnValueOnce(false).mockReturnValueOnce(TRADE_TYPES.RISE_FALL); mocked_store.client.is_logged_in = true; mocked_store.modules.trade.active_symbols = logged_in_active_symbols; - const { result } = renderHook(() => useActiveSymbols({ contract_type: [], barrier_category: [] }), { wrapper }); + mocked_store.modules.trade.has_symbols_for_v2 = true; + const { result } = renderHook(() => useActiveSymbols({ barrier_category: [] }), { + wrapper, + }); await waitFor(() => { expect(result.current.activeSymbols).toEqual(logged_in_active_symbols); }); }); it('should set correct default_symbol and call correct onChange when store symbol is not set', async () => { - (usePrevious as jest.Mock).mockReturnValue(true); - const { result } = renderHook(() => useActiveSymbols({ contract_type: [], barrier_category: [] }), { + (usePrevious as jest.Mock).mockReturnValueOnce(true).mockReturnValueOnce(TRADE_TYPES.RISE_FALL); + const { result } = renderHook(() => useActiveSymbols({ barrier_category: [] }), { wrapper, }); @@ -87,9 +95,9 @@ describe('useActiveSymbols', () => { }); }); it('should set correct default_symbol and call correct onChange when store symbol is set', async () => { - (usePrevious as jest.Mock).mockReturnValue(true); + (usePrevious as jest.Mock).mockReturnValueOnce(true).mockReturnValueOnce(TRADE_TYPES.RISE_FALL); mocked_store.modules.trade.symbol = 'test'; - const { result } = renderHook(() => useActiveSymbols({ contract_type: [], barrier_category: [] }), { + const { result } = renderHook(() => useActiveSymbols({ barrier_category: [] }), { wrapper, }); @@ -100,10 +108,13 @@ describe('useActiveSymbols', () => { }); }); }); - it('should set active symbols from store when is_logged_in is not changed', async () => { - (usePrevious as jest.Mock).mockReturnValue(false); + it('should set active symbols from store when is_logged_in and contract_type are unchanged', async () => { + (usePrevious as jest.Mock).mockReturnValueOnce(false).mockReturnValueOnce(TRADE_TYPES.RISE_FALL); mocked_store.modules.trade.active_symbols = [{ symbol: 'fromStore' }]; - const { result } = renderHook(() => useActiveSymbols({ contract_type: [], barrier_category: [] }), { wrapper }); + mocked_store.modules.trade.has_symbols_for_v2 = true; + const { result } = renderHook(() => useActiveSymbols({ barrier_category: [] }), { + wrapper, + }); await waitFor(() => { expect(result.current.activeSymbols).toEqual([{ symbol: 'fromStore' }]); diff --git a/packages/trader/src/AppV2/Hooks/useActiveSymbols.ts b/packages/trader/src/AppV2/Hooks/useActiveSymbols.ts index b61996ca2a7d..99285135e6e3 100644 --- a/packages/trader/src/AppV2/Hooks/useActiveSymbols.ts +++ b/packages/trader/src/AppV2/Hooks/useActiveSymbols.ts @@ -1,61 +1,80 @@ import { useState, useEffect, useCallback, useRef } from 'react'; -import { WS, pickDefaultSymbol } from '@deriv/shared'; +import { WS, getContractTypesConfig, pickDefaultSymbol } from '@deriv/shared'; import { useStore } from '@deriv/stores'; import { ActiveSymbols } from '@deriv/api-types'; import { useTraderStore } from 'Stores/useTraderStores'; import { usePrevious } from '@deriv/components'; type TUseActiveSymbols = { - contract_type?: string[]; barrier_category?: string[]; }; -//TODO: contract_type and barrier_category need to come from trade-store after calling contracts_for -const useActiveSymbols = ({ contract_type = [], barrier_category = [] }: TUseActiveSymbols) => { +//TODO: barrier_category needs to come from trade-store after calling contracts_for +const useActiveSymbols = ({ barrier_category = [] }: TUseActiveSymbols) => { const [activeSymbols, setActiveSymbols] = useState([]); - const { client, modules } = useStore(); + const { client } = useStore(); const { is_logged_in } = client; - - const trader = useTraderStore(); + const { + active_symbols: symbols_from_store, + contract_type, + has_symbols_for_v2, + onChange, + setActiveSymbolsV2, + symbol, + } = useTraderStore(); const default_symbol_ref = useRef(''); const previous_logged_in = usePrevious(is_logged_in); + const previous_contract_type = usePrevious(contract_type); - const fetchActiveSymbols = useCallback(async () => { - let response; - - const request = { - active_symbols: 'brief', - contract_type, - barrier_category, - }; + const fetchActiveSymbols = useCallback( + async (trade_type = '') => { + let response; - if (is_logged_in) { - response = await WS.authorized.activeSymbols(request); - } else { - response = await WS.activeSymbols(request); - } + const request = { + active_symbols: 'brief', + contract_type: getContractTypesConfig()[trade_type]?.trade_types ?? [], + barrier_category, + }; - const { active_symbols, error } = response; + if (is_logged_in) { + response = await WS.authorized.activeSymbols(request); + } else { + response = await WS.activeSymbols(request); + } - trader.active_symbols = active_symbols; + const { active_symbols, error } = response; - if (!active_symbols?.length || error) { - setActiveSymbols([]); - } else { - setActiveSymbols(active_symbols); - default_symbol_ref.current = trader.symbol || (await pickDefaultSymbol(active_symbols)) || '1HZ100V'; - modules.trade.onChange({ target: { name: 'symbol', value: default_symbol_ref.current } }); - } - }, [is_logged_in, trader, contract_type, barrier_category]); + setActiveSymbolsV2(active_symbols); + if (!active_symbols?.length || error) { + setActiveSymbols([]); + } else { + setActiveSymbols(active_symbols); + default_symbol_ref.current = symbol || (await pickDefaultSymbol(active_symbols)) || '1HZ100V'; + onChange({ target: { name: 'symbol', value: default_symbol_ref.current } }); + } + }, + // eslint-disable-next-line react-hooks/exhaustive-deps + [barrier_category, is_logged_in, symbol] + ); useEffect(() => { - const is_logged_in_changed = previous_logged_in != undefined && previous_logged_in != is_logged_in; - if (trader.active_symbols?.length && !is_logged_in_changed) { - setActiveSymbols(trader.active_symbols); + const is_logged_in_changed = previous_logged_in !== undefined && previous_logged_in !== is_logged_in; + const has_contract_type_changed = + previous_contract_type && contract_type && previous_contract_type !== contract_type; + if (!symbols_from_store.length || !has_symbols_for_v2 || is_logged_in_changed || has_contract_type_changed) { + fetchActiveSymbols(contract_type); } else { - fetchActiveSymbols(); + setActiveSymbols(symbols_from_store); } - }, [fetchActiveSymbols, is_logged_in, previous_logged_in, trader]); + }, [ + contract_type, + fetchActiveSymbols, + has_symbols_for_v2, + is_logged_in, + previous_contract_type, + previous_logged_in, + symbols_from_store, + ]); return { default_symbol: default_symbol_ref.current, activeSymbols, fetchActiveSymbols }; }; diff --git a/packages/trader/src/AppV2/Utils/__tests__/trade-param-utils.spec.tsx b/packages/trader/src/AppV2/Utils/__tests__/trade-param-utils.spec.tsx new file mode 100644 index 000000000000..3c22d1ab9b88 --- /dev/null +++ b/packages/trader/src/AppV2/Utils/__tests__/trade-param-utils.spec.tsx @@ -0,0 +1,77 @@ +import { CONTRACT_TYPES, TRADE_TYPES } from '@deriv/shared'; +import { getTradeParams, isDigitContractWinning } from '../trade-params-utils'; + +describe('getTradeParams', () => { + it('should return correct array with keys for Rise/Fall', () => { + expect(getTradeParams()[TRADE_TYPES.RISE_FALL]).toEqual(['duration', 'stake', 'allow_equals']); + }); + + it('should return correct array with keys for Multipliers if symbol does not start with "cry"', () => { + expect(getTradeParams()[TRADE_TYPES.MULTIPLIER]).toEqual([ + 'multiplier', + 'stake', + 'risk_management', + 'mult_info_display', + ]); + }); + + it('should return correct array with keys for Multipliers if symbol starts with "cry"', () => { + expect(getTradeParams('crypto')[TRADE_TYPES.MULTIPLIER]).toEqual([ + 'multiplier', + 'stake', + 'risk_management', + 'expiration', + 'mult_info_display', + ]); + }); +}); + +describe('isDigitContractWinning', () => { + it('should return false if contract_type is not defined', () => { + expect(isDigitContractWinning(undefined, null, null)).toBeFalsy(); + }); + + it('should return false if contract_type is not digit type', () => { + expect(isDigitContractWinning(CONTRACT_TYPES.TURBOS.LONG, null, null)).toBeFalsy(); + }); + + it('should return true for Matches if current_digit === selected_digit and false if they are not equal', () => { + expect(isDigitContractWinning(CONTRACT_TYPES.MATCH_DIFF.MATCH, 1, 1)).toBeTruthy(); + expect(isDigitContractWinning(CONTRACT_TYPES.MATCH_DIFF.MATCH, 1, 2)).toBeFalsy(); + }); + + it('should return true for Differs if current_digit !== selected_digit and false if they are equal', () => { + expect(isDigitContractWinning(CONTRACT_TYPES.MATCH_DIFF.DIFF, 1, 1)).toBeFalsy(); + expect(isDigitContractWinning(CONTRACT_TYPES.MATCH_DIFF.DIFF, 1, 2)).toBeTruthy(); + }); + + it('should return true for Over if current_digit and selected_digit are not null and current_digit > selected_digit. In the rest cases should return false', () => { + expect(isDigitContractWinning(CONTRACT_TYPES.OVER_UNDER.OVER, 1, 2)).toBeTruthy(); + expect(isDigitContractWinning(CONTRACT_TYPES.OVER_UNDER.OVER, null, null)).toBeFalsy(); + expect(isDigitContractWinning(CONTRACT_TYPES.OVER_UNDER.OVER, 0, 0)).toBeFalsy(); + expect(isDigitContractWinning(CONTRACT_TYPES.OVER_UNDER.OVER, 2, 1)).toBeFalsy(); + expect(isDigitContractWinning(CONTRACT_TYPES.OVER_UNDER.OVER, 2, 2)).toBeFalsy(); + }); + + it('should return true for Under if current_digit and selected_digit are not null and current_digit < selected_digit. In the rest cases should return false', () => { + expect(isDigitContractWinning(CONTRACT_TYPES.OVER_UNDER.UNDER, 2, 1)).toBeTruthy(); + expect(isDigitContractWinning(CONTRACT_TYPES.OVER_UNDER.UNDER, null, null)).toBeFalsy(); + expect(isDigitContractWinning(CONTRACT_TYPES.OVER_UNDER.UNDER, 0, 0)).toBeFalsy(); + expect(isDigitContractWinning(CONTRACT_TYPES.OVER_UNDER.UNDER, 1, 2)).toBeFalsy(); + expect(isDigitContractWinning(CONTRACT_TYPES.OVER_UNDER.UNDER, 2, 2)).toBeFalsy(); + }); + + it('should return true for Odd if current_digit is not null and it has an odd value', () => { + expect(isDigitContractWinning(CONTRACT_TYPES.EVEN_ODD.ODD, null, 1)).toBeTruthy(); + expect(isDigitContractWinning(CONTRACT_TYPES.EVEN_ODD.ODD, null, null)).toBeFalsy(); + expect(isDigitContractWinning(CONTRACT_TYPES.EVEN_ODD.ODD, null, 2)).toBeFalsy(); + expect(isDigitContractWinning(CONTRACT_TYPES.EVEN_ODD.ODD, null, 0)).toBeFalsy(); + }); + + it('should return true for Even if current_digit is not null and it has an even value or 0', () => { + expect(isDigitContractWinning(CONTRACT_TYPES.EVEN_ODD.EVEN, null, 2)).toBeTruthy(); + expect(isDigitContractWinning(CONTRACT_TYPES.EVEN_ODD.EVEN, null, 0)).toBeTruthy(); + expect(isDigitContractWinning(CONTRACT_TYPES.EVEN_ODD.EVEN, null, null)).toBeFalsy(); + expect(isDigitContractWinning(CONTRACT_TYPES.EVEN_ODD.EVEN, null, 1)).toBeFalsy(); + }); +}); diff --git a/packages/trader/src/AppV2/Utils/layout-utils.tsx b/packages/trader/src/AppV2/Utils/layout-utils.tsx new file mode 100644 index 000000000000..3802a384f4a0 --- /dev/null +++ b/packages/trader/src/AppV2/Utils/layout-utils.tsx @@ -0,0 +1,6 @@ +export const HEIGHT = { + ADVANCED_FOOTER: 136, + BOTTOM_NAV: 56, + HEADER: 48, + PADDING: 24, +}; diff --git a/packages/trader/src/AppV2/Utils/positions-utils.ts b/packages/trader/src/AppV2/Utils/positions-utils.ts index 4672a048a171..bf57c5959ed5 100644 --- a/packages/trader/src/AppV2/Utils/positions-utils.ts +++ b/packages/trader/src/AppV2/Utils/positions-utils.ts @@ -52,7 +52,7 @@ export const getProfit = ( contract_info: TPortfolioPosition['contract_info'] | TClosedPosition['contract_info'] ): string | number => { return ( - (contract_info as TClosedPosition['contract_info']).profit_loss ?? + (contract_info as TClosedPosition['contract_info']).profit_loss?.replaceAll(',', '') ?? (isMultiplierContract(contract_info.contract_type) ? getTotalProfit(contract_info as TPortfolioPosition['contract_info']) : (contract_info as TPortfolioPosition['contract_info']).profit) diff --git a/packages/trader/src/AppV2/Utils/trade-params-utils.tsx b/packages/trader/src/AppV2/Utils/trade-params-utils.tsx new file mode 100644 index 000000000000..4cfc33bc6f0b --- /dev/null +++ b/packages/trader/src/AppV2/Utils/trade-params-utils.tsx @@ -0,0 +1,44 @@ +import { CONTRACT_TYPES, shouldShowExpiration, TRADE_TYPES } from '@deriv/shared'; + +export const getTradeParams = (symbol?: string) => ({ + [TRADE_TYPES.RISE_FALL]: ['duration', 'stake', 'allow_equals'], + [TRADE_TYPES.RISE_FALL_EQUAL]: ['duration', 'stake', 'allow_equals'], + [TRADE_TYPES.HIGH_LOW]: ['duration', 'barrier', 'stake'], + [TRADE_TYPES.TOUCH]: ['duration', 'barrier', 'stake'], + [TRADE_TYPES.MATCH_DIFF]: ['last_digit', 'duration', 'stake'], + [TRADE_TYPES.EVEN_ODD]: ['duration', 'stake'], + [TRADE_TYPES.OVER_UNDER]: ['last_digit', 'duration', 'stake'], + [TRADE_TYPES.ACCUMULATOR]: ['growth_rate', 'stake', 'take_profit', 'accu_info_display'], + [TRADE_TYPES.MULTIPLIER]: [ + 'multiplier', + 'stake', + 'risk_management', + ...(shouldShowExpiration(symbol) ? ['expiration'] : []), + 'mult_info_display', + ], + [TRADE_TYPES.TURBOS.LONG]: ['trade_type_tabs', 'duration', 'payout_per_point', 'stake', 'take_profit'], + [TRADE_TYPES.TURBOS.SHORT]: ['trade_type_tabs', 'duration', 'payout_per_point', 'stake', 'take_profit'], + [TRADE_TYPES.VANILLA.CALL]: ['trade_type_tabs', 'duration', 'strike', 'stake'], + [TRADE_TYPES.VANILLA.PUT]: ['trade_type_tabs', 'duration', 'strike', 'stake'], +}); + +export const isDigitContractWinning = ( + contract_type: string | undefined, + selected_digit: number | null, + current_digit: number | null +) => { + const win_conditions = { + [CONTRACT_TYPES.MATCH_DIFF.MATCH]: current_digit === selected_digit, + [CONTRACT_TYPES.MATCH_DIFF.DIFF]: current_digit !== selected_digit, + [CONTRACT_TYPES.OVER_UNDER.OVER]: + !!((current_digit || current_digit === 0) && (selected_digit || selected_digit === 0)) && + current_digit > selected_digit, + [CONTRACT_TYPES.OVER_UNDER.UNDER]: + !!((current_digit || current_digit === 0) && (selected_digit || selected_digit === 0)) && + current_digit < selected_digit, + [CONTRACT_TYPES.EVEN_ODD.ODD]: !!current_digit && Boolean(current_digit % 2), + [CONTRACT_TYPES.EVEN_ODD.EVEN]: (!!current_digit && !(current_digit % 2)) || current_digit === 0, + } as { [key: string]: boolean }; + if (!contract_type || !win_conditions[contract_type]) return false; + return win_conditions[contract_type]; +}; diff --git a/packages/trader/src/AppV2/Utils/trade-types-utils.tsx b/packages/trader/src/AppV2/Utils/trade-types-utils.tsx index 02149004fff9..13d482e76088 100644 --- a/packages/trader/src/AppV2/Utils/trade-types-utils.tsx +++ b/packages/trader/src/AppV2/Utils/trade-types-utils.tsx @@ -1,5 +1,8 @@ import React from 'react'; import { Localize } from '@deriv/translations'; +import { getAvailableContractTypes, getCategoriesSortedByKey } from 'Modules/Trading/Helpers/contract-type'; +import { TRADE_TYPES, unsupported_contract_types_list } from '@deriv/shared'; +import { useTraderStore } from 'Stores/useTraderStores'; export const CONTRACT_LIST = { ACCUMULATORS: 'Accumulators', @@ -26,3 +29,21 @@ export const AVAILABLE_CONTRACTS = [ { tradeType: , id: CONTRACT_LIST.EVEN_ODD }, { tradeType: , id: CONTRACT_LIST.OVER_UNDER }, ]; + +export const getTradeTypesList = (contract_types_list: ReturnType['contract_types_list']) => { + const available_trade_types = getAvailableContractTypes( + contract_types_list as unknown as Parameters[0], + unsupported_contract_types_list + ); + return Object.values(getCategoriesSortedByKey(available_trade_types)) + .map(({ contract_types }) => + contract_types[0].value.startsWith('vanilla') + ? contract_types.map(type => ({ ...type, text: 'Vanillas' })) + : contract_types + ) + .flat() + .filter( + ({ value }) => + ![TRADE_TYPES.VANILLA.PUT, TRADE_TYPES.TURBOS.SHORT, TRADE_TYPES.RISE_FALL_EQUAL].includes(value) + ); +}; diff --git a/packages/trader/src/AppV2/app.tsx b/packages/trader/src/AppV2/app.tsx index 6395872f9bb9..3fffc88eb182 100644 --- a/packages/trader/src/AppV2/app.tsx +++ b/packages/trader/src/AppV2/app.tsx @@ -7,7 +7,6 @@ import TraderProviders from '../trader-providers'; import { ReportsStoreProvider } from '../../../reports/src/Stores/useReportsStores'; import { NotificationsProvider, SnackbarController, SnackbarProvider } from '@deriv-com/quill-ui'; import 'Sass/app.scss'; -import '@deriv-com/quill-tokens/dist/quill.css'; import Notifications from './Containers/Notifications'; import Router from './Routes/router'; diff --git a/packages/trader/src/Stores/Modules/Trading/__tests__/trade-store.spec.ts b/packages/trader/src/Stores/Modules/Trading/__tests__/trade-store.spec.ts index 9b0b04621e59..c09c9ce48e45 100644 --- a/packages/trader/src/Stores/Modules/Trading/__tests__/trade-store.spec.ts +++ b/packages/trader/src/Stores/Modules/Trading/__tests__/trade-store.spec.ts @@ -6,6 +6,7 @@ import TradeStore from '../trade-store'; import { configure } from 'mobx'; import { ContractType } from '../Helpers/contract-type'; import { TRootStore } from 'Types'; +import { ActiveSymbols } from '@deriv/api-types'; configure({ safeDescriptors: false }); @@ -27,7 +28,7 @@ const activeSymbols = [ symbol, symbol_type: 'stockindex', }, -]; +] as ActiveSymbols; jest.mock('@deriv/shared', () => { const commonRiseFallProperties = { @@ -310,4 +311,43 @@ describe('TradeStore', () => { await waitFor(() => expect(spyTrackEvent).not.toHaveBeenCalled()); }); }); + describe('setDigitStats', () => { + const digit_stats = [120, 86, 105, 94, 85, 86, 124, 107, 90, 103]; + it('should set digit_stats', () => { + expect(mockedTradeStore.digit_stats).toEqual([]); + + mockedTradeStore.setDigitStats(digit_stats); + + expect(mockedTradeStore.digit_stats).toEqual(digit_stats); + }); + }); + describe('setTickData', () => { + const tick_data = { + ask: 405.76, + bid: 405.56, + epoch: 1721636565, + id: 'f90a93f8-965a-28ab-a830-6253bff4cc98', + pip_size: 2, + quote: 405.66, + symbol, + }; + it('should set tick_data', () => { + expect(mockedTradeStore.tick_data).toBeNull(); + + mockedTradeStore.setTickData(tick_data); + + expect(mockedTradeStore.tick_data).toEqual(tick_data); + }); + }); + describe('setActiveSymbolsV2', () => { + it('should set active_symbols and has_symbols_for_v2', () => { + expect(mockedTradeStore.active_symbols).toEqual(activeSymbols); + expect(mockedTradeStore.has_symbols_for_v2).toEqual(false); + + mockedTradeStore.setActiveSymbolsV2([...activeSymbols, ...activeSymbols]); + + expect(mockedTradeStore.active_symbols).toEqual([...activeSymbols, ...activeSymbols]); + expect(mockedTradeStore.has_symbols_for_v2).toEqual(true); + }); + }); }); diff --git a/packages/trader/src/Stores/Modules/Trading/trade-store.ts b/packages/trader/src/Stores/Modules/Trading/trade-store.ts index 7f2aeb2d0b2d..73c7cb55e731 100644 --- a/packages/trader/src/Stores/Modules/Trading/trade-store.ts +++ b/packages/trader/src/Stores/Modules/Trading/trade-store.ts @@ -191,6 +191,7 @@ export default class TradeStore extends BaseStore { is_market_closed = false; previous_symbol = ''; active_symbols: ActiveSymbols = []; + has_symbols_for_v2 = false; form_components: string[] = []; @@ -246,8 +247,10 @@ export default class TradeStore extends BaseStore { market_close_times: string[] = []; // Last Digit + digit_stats: number[] = []; last_digit = 5; is_mobile_digit_view_selected = false; + tick_data: TickSpotData | null = null; // Purchase proposal_info: TProposalInfo = {}; @@ -378,6 +381,7 @@ export default class TradeStore extends BaseStore { contract_type: observable, contract_types_list: observable, currency: observable, + digit_stats: observable, duration_min_max: observable, duration_unit: observable, duration_units_list: observable, @@ -393,6 +397,7 @@ export default class TradeStore extends BaseStore { has_equals_only: observable, has_open_accu_contract: computed, has_stop_loss: observable, + has_symbols_for_v2: observable, has_take_profit: observable, hovered_barrier: observable, hovered_contract_type: observable, @@ -425,6 +430,8 @@ export default class TradeStore extends BaseStore { setHoveredBarrier: action.bound, sessions: observable, setDefaultGrowthRate: action.bound, + setDigitStats: action.bound, + setTickData: action.bound, short_barriers: observable, should_show_active_symbols_loading: observable, should_skip_prepost_lifecycle: observable, @@ -437,6 +444,7 @@ export default class TradeStore extends BaseStore { stop_out: observable, symbol: observable, take_profit: observable, + tick_data: observable, tick_size_barrier_percentage: observable, ticks_history_stats: observable, trade_types: observable, @@ -484,6 +492,7 @@ export default class TradeStore extends BaseStore { resetPreviousSymbol: action.bound, sendTradeParamsAnalytics: action.bound, setActiveSymbols: action.bound, + setActiveSymbolsV2: action.bound, setBarrierChoices: action.bound, setChartModeFromURL: action.bound, setChartStatus: action.bound, @@ -1251,6 +1260,14 @@ export default class TradeStore extends BaseStore { return isDigitTradeType(this.contract_type); } + setDigitStats(digit_stats: number[]) { + this.digit_stats = digit_stats; + } + + setTickData(tick: TickSpotData | null) { + this.tick_data = tick; + } + setMobileDigitView(bool: boolean) { this.is_mobile_digit_view_selected = bool; } @@ -1822,6 +1839,11 @@ export default class TradeStore extends BaseStore { if (min_stake && max_stake) this.stake_boundary[type] = { min_stake, max_stake }; } + setActiveSymbolsV2(active_symbols: ActiveSymbols) { + this.active_symbols = active_symbols; + this.has_symbols_for_v2 = !!active_symbols.length; + } + setBarrierChoices(barrier_choices: string[]) { this.barrier_choices = barrier_choices ?? []; if (this.is_turbos) { From 692fcd728f8e8f01533ba3a929e0cc0803b4e32e Mon Sep 17 00:00:00 2001 From: DerivFE <80095553+DerivFE@users.noreply.github.com> Date: Fri, 26 Jul 2024 07:17:54 +0400 Subject: [PATCH 08/40] chore: update @deriv/deriv-charts to 2.2.0 (#16204) Co-authored-by: balakrishna-deriv --- package-lock.json | 8 ++++---- packages/bot-web-ui/package.json | 2 +- packages/core/package.json | 2 +- packages/trader/package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index b323e7818a36..7262f51f2bd2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@deriv-com/utils": "^0.0.25", "@deriv/api-types": "1.0.172", "@deriv/deriv-api": "^1.0.15", - "@deriv/deriv-charts": "^2.1.25", + "@deriv/deriv-charts": "^2.2.0", "@deriv/js-interpreter": "^3.0.0", "@deriv/quill-design": "^1.3.2", "@deriv/quill-icons": "1.23.3", @@ -3199,9 +3199,9 @@ } }, "node_modules/@deriv/deriv-charts": { - "version": "2.1.25", - "resolved": "https://registry.npmjs.org/@deriv/deriv-charts/-/deriv-charts-2.1.25.tgz", - "integrity": "sha512-b0uhTCqfk6M5okl5JCuexNTs1YUAXVAgripn9sDaXrfUGcg/uhbI/g0+zmPlts+018SqaWvXYt9ysJhQN2MGbg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@deriv/deriv-charts/-/deriv-charts-2.2.0.tgz", + "integrity": "sha512-q60cKdWrSHXeSbpY3WohMkmYn+mK4jlJJS+/ytmtOxPAUOdpIkplku8Jvq6+4kGuVAND1SqvwUJpMkK+767MQg==", "dependencies": { "@types/lodash.set": "^4.3.7", "@welldone-software/why-did-you-render": "^3.3.8", diff --git a/packages/bot-web-ui/package.json b/packages/bot-web-ui/package.json index f63a173dcf16..ce9f3a5730bd 100644 --- a/packages/bot-web-ui/package.json +++ b/packages/bot-web-ui/package.json @@ -76,7 +76,7 @@ "@deriv/api-types": "1.0.172", "@deriv/bot-skeleton": "^1.0.0", "@deriv/components": "^1.0.0", - "@deriv/deriv-charts": "^2.1.25", + "@deriv/deriv-charts": "^2.2.0", "@deriv/shared": "^1.0.0", "@deriv/stores": "^1.0.0", "@deriv/translations": "^1.0.0", diff --git a/packages/core/package.json b/packages/core/package.json index 22a60b5661d8..13c1c3a7294d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -111,7 +111,7 @@ "@deriv/cfd": "^1.0.0", "@deriv/components": "^1.0.0", "@deriv/deriv-api": "^1.0.15", - "@deriv/deriv-charts": "^2.1.25", + "@deriv/deriv-charts": "^2.2.0", "@deriv/hooks": "^1.0.0", "@deriv/p2p": "^0.7.3", "@deriv/quill-design": "^1.3.2", diff --git a/packages/trader/package.json b/packages/trader/package.json index 12302e2bcfcb..bc3db2b28b1a 100644 --- a/packages/trader/package.json +++ b/packages/trader/package.json @@ -96,7 +96,7 @@ "@deriv/api-types": "1.0.172", "@deriv/components": "^1.0.0", "@deriv/deriv-api": "^1.0.15", - "@deriv/deriv-charts": "^2.1.25", + "@deriv/deriv-charts": "^2.2.0", "@deriv/hooks": "^1.0.0", "@deriv/shared": "^1.0.0", "@deriv/stores": "^1.0.0", From e25862bc948fcf534b5eef0a040a1de708c65c36 Mon Sep 17 00:00:00 2001 From: Maryia <103177211+maryia-deriv@users.noreply.github.com> Date: Fri, 26 Jul 2024 06:18:13 +0300 Subject: [PATCH 09/40] [DTRA] Maryia/OPT-862/feat: update Step Indices config and icons (#15889) * feat: add step 200, 500, update step with step 100 * chore: update shortcode pattern for STPRNG indices * fix: shortcode pattern and shortcode.spec.ts * chore: update pattern for getMarketInformation --- .../components/src/components/icon/icons.js | 2 + .../icon/underlying/ic-underlying-STPRNG.svg | 2 +- .../icon/underlying/ic-underlying-STPRNG2.svg | 1 + .../icon/underlying/ic-underlying-STPRNG5.svg | 1 + .../shared/src/utils/constants/contract.ts | 4 +- .../__tests__/market-underlying.spec.ts | 12 +++ .../src/utils/helpers/market-underlying.ts | 2 +- .../shortcode/__tests__/shortcode.spec.ts | 90 ++++++++++++++++++- .../shared/src/utils/shortcode/shortcode.ts | 2 +- 9 files changed, 111 insertions(+), 5 deletions(-) create mode 100644 packages/components/src/components/icon/underlying/ic-underlying-STPRNG2.svg create mode 100644 packages/components/src/components/icon/underlying/ic-underlying-STPRNG5.svg diff --git a/packages/components/src/components/icon/icons.js b/packages/components/src/components/icon/icons.js index 055920510c70..273db0f1d7bc 100644 --- a/packages/components/src/components/icon/icons.js +++ b/packages/components/src/components/icon/icons.js @@ -1045,6 +1045,8 @@ import './underlying/ic-underlying-RB_200.svg'; import './underlying/ic-underlying-RDBEAR.svg'; import './underlying/ic-underlying-RDBULL.svg'; import './underlying/ic-underlying-STPRNG.svg'; +import './underlying/ic-underlying-STPRNG2.svg'; +import './underlying/ic-underlying-STPRNG5.svg'; import './underlying/ic-underlying-WLDAUD.svg'; import './underlying/ic-underlying-WLDEUR.svg'; import './underlying/ic-underlying-WLDGBP.svg'; diff --git a/packages/components/src/components/icon/underlying/ic-underlying-STPRNG.svg b/packages/components/src/components/icon/underlying/ic-underlying-STPRNG.svg index f50d47677be1..e183b2a8b71c 100644 --- a/packages/components/src/components/icon/underlying/ic-underlying-STPRNG.svg +++ b/packages/components/src/components/icon/underlying/ic-underlying-STPRNG.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/underlying/ic-underlying-STPRNG2.svg b/packages/components/src/components/icon/underlying/ic-underlying-STPRNG2.svg new file mode 100644 index 000000000000..82d89e4e71c8 --- /dev/null +++ b/packages/components/src/components/icon/underlying/ic-underlying-STPRNG2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/underlying/ic-underlying-STPRNG5.svg b/packages/components/src/components/icon/underlying/ic-underlying-STPRNG5.svg new file mode 100644 index 000000000000..cf02e7f18421 --- /dev/null +++ b/packages/components/src/components/icon/underlying/ic-underlying-STPRNG5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/shared/src/utils/constants/contract.ts b/packages/shared/src/utils/constants/contract.ts index 08d5db96e81f..cf7762b53bb2 100644 --- a/packages/shared/src/utils/constants/contract.ts +++ b/packages/shared/src/utils/constants/contract.ts @@ -427,7 +427,9 @@ export const getMarketNamesMap = () => CRASH1000: localize('Crash 1000 Index'), RDBEAR: localize('Bear Market Index'), RDBULL: localize('Bull Market Index'), - STPRNG: localize('Step Index'), + STPRNG: localize('Step 100 Index'), + STPRNG2: localize('Step 200 Index'), + STPRNG5: localize('Step 500 Index'), WLDAUD: localize('AUD Basket'), WLDEUR: localize('EUR Basket'), WLDGBP: localize('GBP Basket'), diff --git a/packages/shared/src/utils/helpers/__tests__/market-underlying.spec.ts b/packages/shared/src/utils/helpers/__tests__/market-underlying.spec.ts index 792f6be8f10c..c5dabb0a7c11 100644 --- a/packages/shared/src/utils/helpers/__tests__/market-underlying.spec.ts +++ b/packages/shared/src/utils/helpers/__tests__/market-underlying.spec.ts @@ -30,6 +30,18 @@ describe('market-underlying', () => { describe('getMarketInformation', () => { it('should return an object with correct data about contract_type and symbol when shortcode is provided', () => { expect(getMarketInformation(position.shortcode)).toMatchObject({ category: 'call', underlying: '1HZ100V' }); + expect(getMarketInformation('MULTUP_CRASH1000_100.00_100_1719905471_4873564799_0_0.00_N1')).toMatchObject({ + category: 'multup', + underlying: 'CRASH1000', + }); + expect(getMarketInformation('MULTUP_STPRNG_10.00_100_1716797490_4870454399_0_0.00_N1')).toMatchObject({ + category: 'multup', + underlying: 'STPRNG', + }); + expect(getMarketInformation('MULTUP_STPRNG2_10.00_100_1716797490_4870454399_0_0.00_N1')).toMatchObject({ + category: 'multup', + underlying: 'STPRNG2', + }); }); it('should return an object with empty values when shortcode is not provided', () => { expect(getMarketInformation('')).toMatchObject({ category: '', underlying: '' }); diff --git a/packages/shared/src/utils/helpers/market-underlying.ts b/packages/shared/src/utils/helpers/market-underlying.ts index 49cd4df58873..f154065dc6ba 100644 --- a/packages/shared/src/utils/helpers/market-underlying.ts +++ b/packages/shared/src/utils/helpers/market-underlying.ts @@ -41,7 +41,7 @@ export const getMarketInformation = (shortcode: string): TMarketInfo => { }; const pattern = new RegExp( - '^([A-Z]+)_((1HZ[0-9-V]+)|((CRASH|BOOM)[0-9\\d]+[A-Z]?)|(OTC_[A-Z0-9]+)|R_[\\d]{2,3}|[A-Z]+)' + '^([A-Z]+)_((1HZ[0-9-V]+)|((CRASH|BOOM|STPRNG)[0-9\\d]+[A-Z]?)|(OTC_[A-Z0-9]+)|R_[\\d]{2,3}|[A-Z]+)' ); const extracted = pattern.exec(shortcode); if (extracted !== null) { diff --git a/packages/shared/src/utils/shortcode/__tests__/shortcode.spec.ts b/packages/shared/src/utils/shortcode/__tests__/shortcode.spec.ts index 8167f7fb5ba5..86727ca31619 100644 --- a/packages/shared/src/utils/shortcode/__tests__/shortcode.spec.ts +++ b/packages/shared/src/utils/shortcode/__tests__/shortcode.spec.ts @@ -1,4 +1,4 @@ -import { hasForwardContractStarted } from '../shortcode'; +import { extractInfoFromShortcode, hasForwardContractStarted } from '../shortcode'; describe('hasForwardContractStarted', () => { it('should return true if start_time from shortcode is less then current time', () => { @@ -9,3 +9,91 @@ describe('hasForwardContractStarted', () => { expect(hasForwardContractStarted(shortcode)).toBe(false); }); }); + +describe('extractInfoFromShortcode', () => { + it('should return an object with correct contract data extracted from shortcode', () => { + expect(extractInfoFromShortcode('CALL_1HZ10V_19.54_1710485400F_1710486300_S0P_0')).toMatchObject({ + category: 'Call', + underlying: '1HZ10V', + multiplier: '', + start_time: '1710485400F', + payout_tick: '', + growth_rate: '', + growth_frequency: '', + barrier_1: 'S0P', + }); + expect(extractInfoFromShortcode('CALL_R_10_19.54_1691443851_1691444751_S0P_0')).toMatchObject({ + category: 'Call', + underlying: 'R_10', + multiplier: '', + start_time: '1691443851', + payout_tick: '', + growth_rate: '', + growth_frequency: '', + barrier_1: 'S0P', + }); + expect(extractInfoFromShortcode('MULTUP_STPRNG_10.00_100_1716797490_4870454399_0_0.00_N1')).toMatchObject({ + category: 'Multup', + underlying: 'STPRNG', + multiplier: '100', + start_time: '1716797490', + payout_tick: '', + growth_rate: '', + growth_frequency: '', + barrier_1: '', + }); + expect(extractInfoFromShortcode('MULTUP_STPRNG2_10.00_100_1716797490_4870454399_0_0.00_N1')).toMatchObject({ + category: 'Multup', + underlying: 'STPRNG2', + multiplier: '100', + start_time: '1716797490', + payout_tick: '', + growth_rate: '', + growth_frequency: '', + barrier_1: '', + }); + expect(extractInfoFromShortcode('MULTUP_STPRNG5_10.00_100_1716797490_4870454399_0_0.00_N1')).toMatchObject({ + category: 'Multup', + underlying: 'STPRNG5', + multiplier: '100', + start_time: '1716797490', + payout_tick: '', + growth_rate: '', + growth_frequency: '', + barrier_1: '', + }); + expect(extractInfoFromShortcode('MULTUP_BOOM1000_100.00_100_1719905399_4873564799_0_0.00_N1')).toMatchObject({ + category: 'Multup', + underlying: 'BOOM1000', + multiplier: '100', + start_time: '1719905399', + payout_tick: '', + growth_rate: '', + growth_frequency: '', + barrier_1: '', + }); + expect(extractInfoFromShortcode('MULTUP_CRASH1000_100.00_100_1719905471_4873564799_0_0.00_N1')).toMatchObject({ + category: 'Multup', + underlying: 'CRASH1000', + multiplier: '100', + start_time: '1719905471', + payout_tick: '', + growth_rate: '', + growth_frequency: '', + barrier_1: '', + }); + expect(extractInfoFromShortcode('ACCU_1HZ100V_9.00_0_0.01_1_0.000433139675_1716220710')).toMatchObject({ + category: 'Accu', + underlying: '1HZ100V', + multiplier: '', + start_time: '1716220710', + payout_tick: '0', + growth_rate: '0.01', + growth_frequency: '1', + barrier_1: '', + }); + }); + it('should return an empty object if shortcode is empty', () => { + expect(extractInfoFromShortcode('')).toMatchObject({}); + }); +}); diff --git a/packages/shared/src/utils/shortcode/shortcode.ts b/packages/shared/src/utils/shortcode/shortcode.ts index 98c69b24bfb6..5cdc79cb96f9 100644 --- a/packages/shared/src/utils/shortcode/shortcode.ts +++ b/packages/shared/src/utils/shortcode/shortcode.ts @@ -23,7 +23,7 @@ type TInfoFromShortcode = Record< // category_underlying_amount const base_pattern = - '^([A-Z]+)_((?:1HZ[0-9-V]+)|(?:(?:CRASH|BOOM)[0-9\\d]+[A-Z]?)|(?:cry_[A-Z]+)|(?:JD[0-9]+)|(?:OTC_[A-Z0-9]+)|R_[\\d]{2,3}|[A-Z]+)_([\\d.]+)'; + '^([A-Z]+)_((?:1HZ[0-9-V]+)|(?:(?:CRASH|BOOM|STPRNG)[0-9\\d]+[A-Z]?)|(?:cry_[A-Z]+)|(?:JD[0-9]+)|(?:OTC_[A-Z0-9]+)|R_[\\d]{2,3}|[A-Z]+)_([\\d.]+)'; // category_underlying_amount_payouttick_growthrate_growthfrequency_ticksizebarrier_starttime const accumulators_regex = new RegExp(`${base_pattern}_(\\d+)_(\\d*\\.?\\d*)_(\\d+)_(\\d*\\.?\\d*)_(\\d+)`); From 63a0efda190d04c6c58f8c70aa4aa4d7dfdf3e9a Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:21:33 +0800 Subject: [PATCH 10/40] Niloofar/[TRAH-3826]/Bottom disclaimer on Traders Hub for EU (#16193) * feat: added disclaimer to logged out version * fix: react import issue * fix: padding bottom issue * fix: stylying issue --- package-lock.json | 293 +++++------------- packages/appstore/package.json | 1 + .../src/components/disclaimer/disclaimer.scss | 34 ++ .../src/components/disclaimer/disclaimer.tsx | 20 ++ .../src/components/disclaimer/index.ts | 3 + .../traders-hub-logged-out.scss | 3 + .../traders-hub-logged-out.tsx | 45 +-- .../src/modules/traders-hub/index.tsx | 10 +- .../src/modules/traders-hub/traders-hub.scss | 35 --- 9 files changed, 164 insertions(+), 280 deletions(-) create mode 100644 packages/appstore/src/components/disclaimer/disclaimer.scss create mode 100644 packages/appstore/src/components/disclaimer/disclaimer.tsx create mode 100644 packages/appstore/src/components/disclaimer/index.ts diff --git a/package-lock.json b/package-lock.json index 7262f51f2bd2..22c0862b23f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3159,25 +3159,6 @@ "@rollup/rollup-linux-x64-gnu": "^4.13.0" } }, - "node_modules/@deriv-com/ui/node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" - }, - "node_modules/@deriv-com/ui/node_modules/react-popper": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", - "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", - "dependencies": { - "react-fast-compare": "^3.0.1", - "warning": "^4.0.2" - }, - "peerDependencies": { - "@popperjs/core": "^2.0.0", - "react": "^16.8.0 || ^17 || ^18", - "react-dom": "^16.8.0 || ^17 || ^18" - } - }, "node_modules/@deriv-com/utils": { "version": "0.0.25", "resolved": "https://registry.npmjs.org/@deriv-com/utils/-/utils-0.0.25.tgz", @@ -3916,7 +3897,6 @@ }, "node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", - "dev": true, "license": "ISC" }, "node_modules/@istanbuljs/load-nyc-config": { @@ -7368,7 +7348,6 @@ }, "node_modules/@npmcli/arborist": { "version": "5.3.0", - "dev": true, "license": "ISC", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", @@ -7415,7 +7394,6 @@ }, "node_modules/@npmcli/arborist/node_modules/hosted-git-info": { "version": "5.2.1", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -7426,7 +7404,6 @@ }, "node_modules/@npmcli/arborist/node_modules/npm-package-arg": { "version": "9.1.2", - "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -7440,7 +7417,6 @@ }, "node_modules/@npmcli/arborist/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -7454,7 +7430,6 @@ }, "node_modules/@npmcli/arborist/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -7465,7 +7440,6 @@ }, "node_modules/@npmcli/fs": { "version": "2.1.2", - "dev": true, "license": "ISC", "dependencies": { "@gar/promisify": "^1.1.3", @@ -7477,7 +7451,6 @@ }, "node_modules/@npmcli/fs/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -7488,7 +7461,6 @@ }, "node_modules/@npmcli/fs/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -7502,7 +7474,6 @@ }, "node_modules/@npmcli/git": { "version": "3.0.2", - "dev": true, "license": "ISC", "dependencies": { "@npmcli/promise-spawn": "^3.0.0", @@ -7521,7 +7492,6 @@ }, "node_modules/@npmcli/git/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -7535,7 +7505,6 @@ }, "node_modules/@npmcli/git/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -7546,7 +7515,6 @@ }, "node_modules/@npmcli/installed-package-contents": { "version": "1.0.7", - "dev": true, "license": "ISC", "dependencies": { "npm-bundled": "^1.1.1", @@ -7561,7 +7529,6 @@ }, "node_modules/@npmcli/map-workspaces": { "version": "2.0.4", - "dev": true, "license": "ISC", "dependencies": { "@npmcli/name-from-folder": "^1.0.1", @@ -7575,7 +7542,6 @@ }, "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { "version": "2.0.1", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -7583,7 +7549,6 @@ }, "node_modules/@npmcli/map-workspaces/node_modules/glob": { "version": "8.0.3", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -7601,7 +7566,6 @@ }, "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { "version": "5.1.1", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -7612,7 +7576,6 @@ }, "node_modules/@npmcli/metavuln-calculator": { "version": "3.1.1", - "dev": true, "license": "ISC", "dependencies": { "cacache": "^16.0.0", @@ -7626,7 +7589,6 @@ }, "node_modules/@npmcli/metavuln-calculator/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -7637,7 +7599,6 @@ }, "node_modules/@npmcli/metavuln-calculator/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -7651,7 +7612,6 @@ }, "node_modules/@npmcli/move-file": { "version": "2.0.1", - "dev": true, "license": "MIT", "dependencies": { "mkdirp": "^1.0.4", @@ -7663,12 +7623,10 @@ }, "node_modules/@npmcli/name-from-folder": { "version": "1.0.1", - "dev": true, "license": "ISC" }, "node_modules/@npmcli/node-gyp": { "version": "2.0.0", - "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -7676,7 +7634,6 @@ }, "node_modules/@npmcli/package-json": { "version": "2.0.0", - "dev": true, "license": "ISC", "dependencies": { "json-parse-even-better-errors": "^2.3.1" @@ -7687,7 +7644,6 @@ }, "node_modules/@npmcli/promise-spawn": { "version": "3.0.0", - "dev": true, "license": "ISC", "dependencies": { "infer-owner": "^1.0.4" @@ -7698,7 +7654,6 @@ }, "node_modules/@npmcli/run-script": { "version": "4.2.1", - "dev": true, "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^2.0.0", @@ -10863,9 +10818,9 @@ } }, "node_modules/@semantic-release/github": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.1.1.tgz", - "integrity": "sha512-sSmsBKGpAlTtXf9rUJf/si16p+FwPEsvsJRjl3KCwFP0WywaSpynvUhlYvE18n5rzkQNbGJnObAKIoo3xFMSjA==", + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.1.3.tgz", + "integrity": "sha512-QVw7YT3J4VqyVjOnlRsFA3OCERAJHER4QbSPupbav3ER0fawrs2BAWbQFjsr24OAD4KTTKMZsVzF+GYFWCDtaQ==", "dependencies": { "@octokit/core": "^6.0.0", "@octokit/plugin-paginate-rest": "^11.0.0", @@ -13230,9 +13185,9 @@ "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==" }, "node_modules/@storybook/builder-webpack4/node_modules/@types/node": { - "version": "16.18.103", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.103.tgz", - "integrity": "sha512-gOAcUSik1nR/CRC3BsK8kr6tbmNIOTpvb1sT+v5Nmmys+Ho8YtnIHP90wEsVK4hTcHndOqPVIlehEGEA5y31bA==" + "version": "16.18.104", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.104.tgz", + "integrity": "sha512-OF3keVCbfPlkzxnnDBUZJn1RiCJzKeadjiW0xTEb0G1SUJ5gDVb3qnzZr2T4uIFvsbKJbXy1v2DN7e2zaEY7jQ==" }, "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/ast": { "version": "1.9.0", @@ -14433,9 +14388,9 @@ } }, "node_modules/@storybook/builder-webpack4/node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -14523,9 +14478,9 @@ } }, "node_modules/@storybook/builder-webpack5/node_modules/@types/node": { - "version": "16.18.103", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.103.tgz", - "integrity": "sha512-gOAcUSik1nR/CRC3BsK8kr6tbmNIOTpvb1sT+v5Nmmys+Ho8YtnIHP90wEsVK4hTcHndOqPVIlehEGEA5y31bA==" + "version": "16.18.104", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.104.tgz", + "integrity": "sha512-OF3keVCbfPlkzxnnDBUZJn1RiCJzKeadjiW0xTEb0G1SUJ5gDVb3qnzZr2T4uIFvsbKJbXy1v2DN7e2zaEY7jQ==" }, "node_modules/@storybook/builder-webpack5/node_modules/colorette": { "version": "1.4.0", @@ -14950,9 +14905,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "16.18.103", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.103.tgz", - "integrity": "sha512-gOAcUSik1nR/CRC3BsK8kr6tbmNIOTpvb1sT+v5Nmmys+Ho8YtnIHP90wEsVK4hTcHndOqPVIlehEGEA5y31bA==" + "version": "16.18.104", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.104.tgz", + "integrity": "sha512-OF3keVCbfPlkzxnnDBUZJn1RiCJzKeadjiW0xTEb0G1SUJ5gDVb3qnzZr2T4uIFvsbKJbXy1v2DN7e2zaEY7jQ==" }, "node_modules/@storybook/core-common/node_modules/@webassemblyjs/ast": { "version": "1.9.0", @@ -15552,9 +15507,9 @@ } }, "node_modules/@storybook/core-common/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -15775,9 +15730,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "16.18.103", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.103.tgz", - "integrity": "sha512-gOAcUSik1nR/CRC3BsK8kr6tbmNIOTpvb1sT+v5Nmmys+Ho8YtnIHP90wEsVK4hTcHndOqPVIlehEGEA5y31bA==" + "version": "16.18.104", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.104.tgz", + "integrity": "sha512-OF3keVCbfPlkzxnnDBUZJn1RiCJzKeadjiW0xTEb0G1SUJ5gDVb3qnzZr2T4uIFvsbKJbXy1v2DN7e2zaEY7jQ==" }, "node_modules/@storybook/core-server/node_modules/@webassemblyjs/ast": { "version": "1.9.0", @@ -16349,9 +16304,9 @@ } }, "node_modules/@storybook/core-server/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -16696,9 +16651,9 @@ "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==" }, "node_modules/@storybook/manager-webpack4/node_modules/@types/node": { - "version": "16.18.103", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.103.tgz", - "integrity": "sha512-gOAcUSik1nR/CRC3BsK8kr6tbmNIOTpvb1sT+v5Nmmys+Ho8YtnIHP90wEsVK4hTcHndOqPVIlehEGEA5y31bA==" + "version": "16.18.104", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.104.tgz", + "integrity": "sha512-OF3keVCbfPlkzxnnDBUZJn1RiCJzKeadjiW0xTEb0G1SUJ5gDVb3qnzZr2T4uIFvsbKJbXy1v2DN7e2zaEY7jQ==" }, "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/ast": { "version": "1.9.0", @@ -17893,9 +17848,9 @@ } }, "node_modules/@storybook/manager-webpack4/node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -17977,9 +17932,9 @@ } }, "node_modules/@storybook/manager-webpack5/node_modules/@types/node": { - "version": "16.18.103", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.103.tgz", - "integrity": "sha512-gOAcUSik1nR/CRC3BsK8kr6tbmNIOTpvb1sT+v5Nmmys+Ho8YtnIHP90wEsVK4hTcHndOqPVIlehEGEA5y31bA==" + "version": "16.18.104", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.104.tgz", + "integrity": "sha512-OF3keVCbfPlkzxnnDBUZJn1RiCJzKeadjiW0xTEb0G1SUJ5gDVb3qnzZr2T4uIFvsbKJbXy1v2DN7e2zaEY7jQ==" }, "node_modules/@storybook/manager-webpack5/node_modules/ansi-styles": { "version": "4.3.0", @@ -18494,9 +18449,9 @@ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" }, "node_modules/@storybook/react/node_modules/@types/node": { - "version": "16.18.103", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.103.tgz", - "integrity": "sha512-gOAcUSik1nR/CRC3BsK8kr6tbmNIOTpvb1sT+v5Nmmys+Ho8YtnIHP90wEsVK4hTcHndOqPVIlehEGEA5y31bA==" + "version": "16.18.104", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.104.tgz", + "integrity": "sha512-OF3keVCbfPlkzxnnDBUZJn1RiCJzKeadjiW0xTEb0G1SUJ5gDVb3qnzZr2T4uIFvsbKJbXy1v2DN7e2zaEY7jQ==" }, "node_modules/@storybook/react/node_modules/acorn": { "version": "7.4.1", @@ -20735,7 +20690,6 @@ }, "node_modules/abbrev": { "version": "1.1.1", - "dev": true, "license": "ISC" }, "node_modules/accepts": { @@ -20856,7 +20810,6 @@ }, "node_modules/agentkeepalive": { "version": "4.2.1", - "dev": true, "license": "MIT", "dependencies": { "debug": "^4.1.0", @@ -21076,7 +21029,6 @@ }, "node_modules/are-we-there-yet": { "version": "3.0.1", - "dev": true, "license": "ISC", "dependencies": { "delegates": "^1.0.0", @@ -22446,7 +22398,6 @@ }, "node_modules/bin-links": { "version": "3.0.3", - "dev": true, "license": "ISC", "dependencies": { "cmd-shim": "^5.0.0", @@ -22462,7 +22413,6 @@ }, "node_modules/bin-links/node_modules/npm-normalize-package-bin": { "version": "2.0.0", - "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -22470,7 +22420,6 @@ }, "node_modules/bin-links/node_modules/write-file-atomic": { "version": "4.0.2", - "dev": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", @@ -23067,7 +23016,6 @@ }, "node_modules/builtins": { "version": "5.0.1", - "dev": true, "license": "MIT", "dependencies": { "semver": "^7.0.0" @@ -23075,7 +23023,6 @@ }, "node_modules/builtins/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -23086,7 +23033,6 @@ }, "node_modules/builtins/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -23184,7 +23130,6 @@ }, "node_modules/cacache": { "version": "16.1.3", - "dev": true, "license": "ISC", "dependencies": { "@npmcli/fs": "^2.1.0", @@ -23212,7 +23157,6 @@ }, "node_modules/cacache/node_modules/brace-expansion": { "version": "2.0.1", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -23220,7 +23164,6 @@ }, "node_modules/cacache/node_modules/glob": { "version": "8.0.3", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -23238,7 +23181,6 @@ }, "node_modules/cacache/node_modules/minimatch": { "version": "5.1.1", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -23403,9 +23345,9 @@ } }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "peer": true, "dependencies": { "assertion-error": "^1.1.0", @@ -23414,12 +23356,21 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" } }, + "node_modules/chai/node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/chainsaw": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz", @@ -24008,7 +23959,6 @@ }, "node_modules/cmd-shim": { "version": "5.0.0", - "dev": true, "license": "ISC", "dependencies": { "mkdirp-infer-owner": "^2.0.0" @@ -24129,7 +24079,6 @@ }, "node_modules/common-ancestor-path": { "version": "1.0.1", - "dev": true, "license": "ISC" }, "node_modules/common-tags": { @@ -26361,7 +26310,6 @@ }, "node_modules/debuglog": { "version": "1.0.1", - "dev": true, "license": "MIT", "engines": { "node": "*" @@ -27122,7 +27070,6 @@ }, "node_modules/dezalgo": { "version": "1.0.4", - "dev": true, "license": "ISC", "dependencies": { "asap": "^2.0.0", @@ -27911,7 +27858,6 @@ }, "node_modules/err-code": { "version": "2.0.3", - "dev": true, "license": "MIT" }, "node_modules/errno": { @@ -31346,7 +31292,6 @@ }, "node_modules/gauge": { "version": "4.0.4", - "dev": true, "license": "ISC", "dependencies": { "aproba": "^1.0.3 || ^2.0.0", @@ -32532,7 +32477,6 @@ }, "node_modules/hosted-git-info": { "version": "4.1.0", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -32543,7 +32487,6 @@ }, "node_modules/hosted-git-info/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -32951,8 +32894,7 @@ "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "node_modules/http-deceiver": { "version": "1.2.7", @@ -33178,7 +33120,6 @@ }, "node_modules/humanize-ms": { "version": "1.2.1", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.0.0" @@ -33344,7 +33285,6 @@ }, "node_modules/ignore-walk": { "version": "5.0.1", - "dev": true, "license": "ISC", "dependencies": { "minimatch": "^5.0.1" @@ -33355,7 +33295,6 @@ }, "node_modules/ignore-walk/node_modules/brace-expansion": { "version": "2.0.1", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -33363,7 +33302,6 @@ }, "node_modules/ignore-walk/node_modules/minimatch": { "version": "5.1.1", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -33510,7 +33448,6 @@ }, "node_modules/init-package-json": { "version": "3.0.2", - "dev": true, "license": "ISC", "dependencies": { "npm-package-arg": "^9.0.1", @@ -33527,7 +33464,6 @@ }, "node_modules/init-package-json/node_modules/hosted-git-info": { "version": "5.2.1", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -33538,7 +33474,6 @@ }, "node_modules/init-package-json/node_modules/npm-package-arg": { "version": "9.1.2", - "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -33552,7 +33487,6 @@ }, "node_modules/init-package-json/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -33566,7 +33500,6 @@ }, "node_modules/init-package-json/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -34073,7 +34006,6 @@ }, "node_modules/is-lambda": { "version": "1.0.1", - "dev": true, "license": "MIT" }, "node_modules/is-lite": { @@ -38156,7 +38088,6 @@ }, "node_modules/json-stringify-nice": { "version": "1.1.4", - "dev": true, "license": "ISC", "funding": { "url": "https://github.com/sponsors/isaacs" @@ -38271,12 +38202,10 @@ }, "node_modules/just-diff": { "version": "5.1.1", - "dev": true, "license": "MIT" }, "node_modules/just-diff-apply": { "version": "5.4.1", - "dev": true, "license": "MIT" }, "node_modules/just-extend": { @@ -38532,7 +38461,6 @@ }, "node_modules/libnpmaccess": { "version": "6.0.4", - "dev": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", @@ -38546,7 +38474,6 @@ }, "node_modules/libnpmaccess/node_modules/hosted-git-info": { "version": "5.2.1", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -38557,7 +38484,6 @@ }, "node_modules/libnpmaccess/node_modules/npm-package-arg": { "version": "9.1.2", - "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -38571,7 +38497,6 @@ }, "node_modules/libnpmaccess/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -38585,7 +38510,6 @@ }, "node_modules/libnpmaccess/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -38596,7 +38520,6 @@ }, "node_modules/libnpmpublish": { "version": "6.0.5", - "dev": true, "license": "ISC", "dependencies": { "normalize-package-data": "^4.0.0", @@ -38611,7 +38534,6 @@ }, "node_modules/libnpmpublish/node_modules/hosted-git-info": { "version": "5.2.1", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -38622,7 +38544,6 @@ }, "node_modules/libnpmpublish/node_modules/normalize-package-data": { "version": "4.0.1", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^5.0.0", @@ -38636,7 +38557,6 @@ }, "node_modules/libnpmpublish/node_modules/npm-package-arg": { "version": "9.1.2", - "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -38650,7 +38570,6 @@ }, "node_modules/libnpmpublish/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -38664,7 +38583,6 @@ }, "node_modules/libnpmpublish/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -39301,7 +39219,6 @@ }, "node_modules/lru-cache": { "version": "7.14.1", - "dev": true, "license": "ISC", "engines": { "node": ">=12" @@ -39342,7 +39259,6 @@ }, "node_modules/make-fetch-happen": { "version": "10.2.1", - "dev": true, "license": "ISC", "dependencies": { "agentkeepalive": "^4.2.1", @@ -39942,7 +39858,6 @@ }, "node_modules/minipass-fetch": { "version": "2.1.2", - "dev": true, "license": "MIT", "dependencies": { "minipass": "^3.1.6", @@ -39968,7 +39883,6 @@ }, "node_modules/minipass-json-stream": { "version": "1.0.1", - "dev": true, "license": "MIT", "dependencies": { "jsonparse": "^1.3.1", @@ -39987,7 +39901,6 @@ }, "node_modules/minipass-sized": { "version": "1.0.3", - "dev": true, "license": "ISC", "dependencies": { "minipass": "^3.0.0" @@ -40110,7 +40023,6 @@ }, "node_modules/mkdirp-infer-owner": { "version": "2.0.0", - "dev": true, "license": "ISC", "dependencies": { "chownr": "^2.0.0", @@ -40325,7 +40237,6 @@ }, "node_modules/mute-stream": { "version": "0.0.8", - "dev": true, "license": "ISC" }, "node_modules/mz": { @@ -40580,7 +40491,6 @@ }, "node_modules/node-gyp": { "version": "9.3.0", - "dev": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", @@ -40613,7 +40523,6 @@ }, "node_modules/node-gyp/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -40624,7 +40533,6 @@ }, "node_modules/node-gyp/node_modules/nopt": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "abbrev": "^1.0.0" @@ -40638,7 +40546,6 @@ }, "node_modules/node-gyp/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -40799,7 +40706,6 @@ }, "node_modules/nopt": { "version": "5.0.0", - "dev": true, "license": "ISC", "dependencies": { "abbrev": "1" @@ -40813,7 +40719,6 @@ }, "node_modules/normalize-package-data": { "version": "3.0.3", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", @@ -40827,7 +40732,6 @@ }, "node_modules/normalize-package-data/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -40838,7 +40742,6 @@ }, "node_modules/normalize-package-data/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -41034,7 +40937,6 @@ }, "node_modules/npm-bundled": { "version": "1.1.2", - "dev": true, "license": "ISC", "dependencies": { "npm-normalize-package-bin": "^1.0.1" @@ -41042,7 +40944,6 @@ }, "node_modules/npm-install-checks": { "version": "5.0.0", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "semver": "^7.1.1" @@ -41053,7 +40954,6 @@ }, "node_modules/npm-install-checks/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -41064,7 +40964,6 @@ }, "node_modules/npm-install-checks/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -41078,12 +40977,10 @@ }, "node_modules/npm-normalize-package-bin": { "version": "1.0.1", - "dev": true, "license": "ISC" }, "node_modules/npm-package-arg": { "version": "8.1.1", - "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^3.0.6", @@ -41096,12 +40993,10 @@ }, "node_modules/npm-package-arg/node_modules/builtins": { "version": "1.0.3", - "dev": true, "license": "MIT" }, "node_modules/npm-package-arg/node_modules/hosted-git-info": { "version": "3.0.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -41112,7 +41007,6 @@ }, "node_modules/npm-package-arg/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -41123,7 +41017,6 @@ }, "node_modules/npm-package-arg/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -41137,7 +41030,6 @@ }, "node_modules/npm-package-arg/node_modules/validate-npm-package-name": { "version": "3.0.0", - "dev": true, "license": "ISC", "dependencies": { "builtins": "^1.0.3" @@ -41145,7 +41037,6 @@ }, "node_modules/npm-packlist": { "version": "5.1.3", - "dev": true, "license": "ISC", "dependencies": { "glob": "^8.0.1", @@ -41162,7 +41053,6 @@ }, "node_modules/npm-packlist/node_modules/brace-expansion": { "version": "2.0.1", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -41170,7 +41060,6 @@ }, "node_modules/npm-packlist/node_modules/glob": { "version": "8.0.3", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -41188,7 +41077,6 @@ }, "node_modules/npm-packlist/node_modules/minimatch": { "version": "5.1.1", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -41199,7 +41087,6 @@ }, "node_modules/npm-packlist/node_modules/npm-bundled": { "version": "2.0.1", - "dev": true, "license": "ISC", "dependencies": { "npm-normalize-package-bin": "^2.0.0" @@ -41210,7 +41097,6 @@ }, "node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { "version": "2.0.0", - "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -41218,7 +41104,6 @@ }, "node_modules/npm-pick-manifest": { "version": "7.0.2", - "dev": true, "license": "ISC", "dependencies": { "npm-install-checks": "^5.0.0", @@ -41232,7 +41117,6 @@ }, "node_modules/npm-pick-manifest/node_modules/hosted-git-info": { "version": "5.2.1", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -41243,7 +41127,6 @@ }, "node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { "version": "2.0.0", - "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -41251,7 +41134,6 @@ }, "node_modules/npm-pick-manifest/node_modules/npm-package-arg": { "version": "9.1.2", - "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -41265,7 +41147,6 @@ }, "node_modules/npm-pick-manifest/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -41279,7 +41160,6 @@ }, "node_modules/npm-pick-manifest/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -41290,7 +41170,6 @@ }, "node_modules/npm-registry-fetch": { "version": "13.3.1", - "dev": true, "license": "ISC", "dependencies": { "make-fetch-happen": "^10.0.6", @@ -41307,7 +41186,6 @@ }, "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { "version": "5.2.1", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -41318,7 +41196,6 @@ }, "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { "version": "9.1.2", - "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -41332,7 +41209,6 @@ }, "node_modules/npm-registry-fetch/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -41346,7 +41222,6 @@ }, "node_modules/npm-registry-fetch/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -43565,7 +43440,6 @@ }, "node_modules/npmlog": { "version": "6.0.2", - "dev": true, "license": "ISC", "dependencies": { "are-we-there-yet": "^3.0.0", @@ -44553,7 +44427,6 @@ }, "node_modules/pacote": { "version": "13.6.2", - "dev": true, "license": "ISC", "dependencies": { "@npmcli/git": "^3.0.0", @@ -44587,7 +44460,6 @@ }, "node_modules/pacote/node_modules/hosted-git-info": { "version": "5.2.1", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -44598,7 +44470,6 @@ }, "node_modules/pacote/node_modules/npm-package-arg": { "version": "9.1.2", - "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -44612,7 +44483,6 @@ }, "node_modules/pacote/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -44626,7 +44496,6 @@ }, "node_modules/pacote/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -44719,7 +44588,6 @@ }, "node_modules/parse-conflict-json": { "version": "2.0.2", - "dev": true, "license": "ISC", "dependencies": { "json-parse-even-better-errors": "^2.3.1", @@ -46845,9 +46713,9 @@ } }, "node_modules/pretty-ms": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.0.0.tgz", - "integrity": "sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.1.0.tgz", + "integrity": "sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==", "dependencies": { "parse-ms": "^4.0.0" }, @@ -46876,7 +46744,6 @@ }, "node_modules/proc-log": { "version": "2.0.1", - "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -46912,7 +46779,6 @@ }, "node_modules/promise-all-reject-late": { "version": "1.0.1", - "dev": true, "license": "ISC", "funding": { "url": "https://github.com/sponsors/isaacs" @@ -46920,7 +46786,6 @@ }, "node_modules/promise-call-limit": { "version": "1.0.1", - "dev": true, "license": "ISC", "funding": { "url": "https://github.com/sponsors/isaacs" @@ -46937,7 +46802,6 @@ }, "node_modules/promise-retry": { "version": "2.0.1", - "dev": true, "license": "MIT", "dependencies": { "err-code": "^2.0.2", @@ -46997,7 +46861,6 @@ }, "node_modules/promzard": { "version": "0.3.0", - "dev": true, "license": "ISC", "dependencies": { "read": "1" @@ -47894,6 +47757,25 @@ "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", + "dependencies": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + }, + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/react-popper/node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, "node_modules/react-qrcode": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/react-qrcode/-/react-qrcode-0.3.6.tgz", @@ -48348,7 +48230,6 @@ }, "node_modules/read": { "version": "1.0.7", - "dev": true, "license": "ISC", "dependencies": { "mute-stream": "~0.0.4" @@ -48359,7 +48240,6 @@ }, "node_modules/read-cmd-shim": { "version": "3.0.1", - "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -48367,7 +48247,6 @@ }, "node_modules/read-package-json": { "version": "5.0.2", - "dev": true, "license": "ISC", "dependencies": { "glob": "^8.0.1", @@ -48381,7 +48260,6 @@ }, "node_modules/read-package-json-fast": { "version": "2.0.3", - "dev": true, "license": "ISC", "dependencies": { "json-parse-even-better-errors": "^2.3.0", @@ -48393,7 +48271,6 @@ }, "node_modules/read-package-json/node_modules/brace-expansion": { "version": "2.0.1", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -48401,7 +48278,6 @@ }, "node_modules/read-package-json/node_modules/glob": { "version": "8.0.3", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -48419,7 +48295,6 @@ }, "node_modules/read-package-json/node_modules/hosted-git-info": { "version": "5.2.1", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -48430,7 +48305,6 @@ }, "node_modules/read-package-json/node_modules/minimatch": { "version": "5.1.1", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -48441,7 +48315,6 @@ }, "node_modules/read-package-json/node_modules/normalize-package-data": { "version": "4.0.1", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^5.0.0", @@ -48455,7 +48328,6 @@ }, "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { "version": "2.0.0", - "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -48463,7 +48335,6 @@ }, "node_modules/read-package-json/node_modules/semver": { "version": "7.3.8", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -48477,7 +48348,6 @@ }, "node_modules/read-package-json/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -48806,7 +48676,6 @@ }, "node_modules/readdir-scoped-modules": { "version": "1.1.0", - "dev": true, "license": "ISC", "dependencies": { "debuglog": "^1.0.1", @@ -51544,7 +51413,6 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 6.0.0", @@ -51768,7 +51636,6 @@ }, "node_modules/socks": { "version": "2.7.1", - "dev": true, "license": "MIT", "dependencies": { "ip": "^2.0.0", @@ -51781,7 +51648,6 @@ }, "node_modules/socks-proxy-agent": { "version": "7.0.0", - "dev": true, "license": "MIT", "dependencies": { "agent-base": "^6.0.2", @@ -52030,7 +51896,6 @@ }, "node_modules/ssri": { "version": "9.0.1", - "dev": true, "license": "ISC", "dependencies": { "minipass": "^3.1.1" @@ -53979,8 +53844,7 @@ }, "node_modules/text-table": { "version": "0.2.0", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", @@ -54228,7 +54092,6 @@ }, "node_modules/treeverse": { "version": "2.0.0", - "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -54673,9 +54536,9 @@ } }, "node_modules/typescript-plugin-css-modules/node_modules/postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "version": "8.4.40", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz", + "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==", "funding": [ { "type": "opencollective", @@ -54891,7 +54754,6 @@ }, "node_modules/unique-filename": { "version": "2.0.1", - "dev": true, "license": "ISC", "dependencies": { "unique-slug": "^3.0.0" @@ -54902,7 +54764,6 @@ }, "node_modules/unique-slug": { "version": "3.0.0", - "dev": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" @@ -55421,7 +55282,6 @@ }, "node_modules/validate-npm-package-name": { "version": "4.0.0", - "dev": true, "license": "ISC", "dependencies": { "builtins": "^5.0.0" @@ -55530,7 +55390,6 @@ }, "node_modules/walk-up-path": { "version": "1.0.0", - "dev": true, "license": "ISC" }, "node_modules/walker": { diff --git a/packages/appstore/package.json b/packages/appstore/package.json index 2ce8b953d891..0b12cbe24b8c 100644 --- a/packages/appstore/package.json +++ b/packages/appstore/package.json @@ -28,6 +28,7 @@ "dependencies": { "@deriv-com/analytics": "1.10.0", "@deriv-com/translations": "1.3.4", + "@deriv-com/ui": "1.29.9", "@deriv/account": "^1.0.0", "@deriv/cashier": "^1.0.0", "@deriv/cfd": "^1.0.0", diff --git a/packages/appstore/src/components/disclaimer/disclaimer.scss b/packages/appstore/src/components/disclaimer/disclaimer.scss new file mode 100644 index 000000000000..c77eb5faa099 --- /dev/null +++ b/packages/appstore/src/components/disclaimer/disclaimer.scss @@ -0,0 +1,34 @@ +.disclaimer { + position: fixed; + bottom: 3.6rem; + width: 100%; + min-height: 5rem; + z-index: 3; + display: flex; + align-items: center; + backface-visibility: hidden; + background: var(--icon-grey-background); + + @include mobile-or-tablet-screen { + min-height: 8rem; + border: 1px solid var(--icon-grey-background); + } + + &-text { + padding: 0 3rem; + + @include mobile-or-tablet-screen { + padding: 0 1.5rem; + } + } + + &__bottom-plug { + position: fixed; + bottom: 0; + width: 100%; + height: 3.6rem; + z-index: 3; + backface-visibility: hidden; + background: var(--general-main-1); + } +} diff --git a/packages/appstore/src/components/disclaimer/disclaimer.tsx b/packages/appstore/src/components/disclaimer/disclaimer.tsx new file mode 100644 index 000000000000..e8895bdcba95 --- /dev/null +++ b/packages/appstore/src/components/disclaimer/disclaimer.tsx @@ -0,0 +1,20 @@ +import React from 'react'; +import { Text } from '@deriv/components'; +import { Localize } from '@deriv/translations'; +import { useDevice } from '@deriv-com/ui'; +import './disclaimer.scss'; + +const Disclaimer = () => { + const { isDesktop } = useDevice(); + + return ( +
+ + + +
+
+ ); +}; + +export default Disclaimer; diff --git a/packages/appstore/src/components/disclaimer/index.ts b/packages/appstore/src/components/disclaimer/index.ts new file mode 100644 index 000000000000..0dad3625befa --- /dev/null +++ b/packages/appstore/src/components/disclaimer/index.ts @@ -0,0 +1,3 @@ +import Disclaimer from './disclaimer'; + +export default Disclaimer; diff --git a/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.scss b/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.scss index 5c827c5c38b2..63430e807a10 100644 --- a/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.scss +++ b/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.scss @@ -13,8 +13,11 @@ } &__eu-user { + padding-bottom: 7rem; + @include mobile-or-tablet-screen { min-height: 650px; + padding-bottom: 11rem; } } diff --git a/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.tsx b/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.tsx index 80ef46397e5a..47ddc5944c4d 100644 --- a/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.tsx +++ b/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.tsx @@ -5,6 +5,7 @@ import { observer, useStore } from '@deriv/stores'; import { Div100vhContainer, Loading, Text } from '@deriv/components'; import { isEuCountry } from '@deriv/shared'; import { Localize } from '@deriv/translations'; +import Disclaimer from 'Components/disclaimer'; import OrderedPlatformSections from 'Components/ordered-platform-sections'; import GetStartedTradingBanner from 'Components/get-started-trading-banner'; import TabsOrTitle from 'Components/tabs-or-title'; @@ -30,26 +31,30 @@ const TradersHubLoggedOut = observer(() => { if (!clients_country) return ; return ( - -
- - - - - {isDesktop ? ( - - ) : ( - - - - - )} -
-
+ + +
+ + + + + {isDesktop ? ( + + ) : ( + + + + + )} +
+
+ + {is_eu_user && } +
); }); diff --git a/packages/appstore/src/modules/traders-hub/index.tsx b/packages/appstore/src/modules/traders-hub/index.tsx index 6f1d1ec74ddc..7760afb753c7 100644 --- a/packages/appstore/src/modules/traders-hub/index.tsx +++ b/packages/appstore/src/modules/traders-hub/index.tsx @@ -10,6 +10,7 @@ import MainTitleBar from 'Components/main-title-bar'; import OptionsAndMultipliersListing from 'Components/options-multipliers-listing'; import ButtonToggleLoader from 'Components/pre-loader/button-toggle-loader'; import AfterSignupFlow from 'Components/after-signup-flow'; +import Disclaimer from 'Components/disclaimer'; import { useContentFlag, useGrowthbookGetFeatureValue } from '@deriv/hooks'; import classNames from 'classnames'; import './traders-hub.scss'; @@ -172,14 +173,7 @@ const TradersHub = observer(() => {
- {is_eu_user && ( -
- - - -
-
- )} + {is_eu_user && } ); }); diff --git a/packages/appstore/src/modules/traders-hub/traders-hub.scss b/packages/appstore/src/modules/traders-hub/traders-hub.scss index fc5f88a7f71e..38017e3140eb 100644 --- a/packages/appstore/src/modules/traders-hub/traders-hub.scss +++ b/packages/appstore/src/modules/traders-hub/traders-hub.scss @@ -52,41 +52,6 @@ } } -.disclaimer { - position: fixed; - bottom: 3.6rem; - width: 100%; - min-height: 5rem; - z-index: 3; - display: flex; - align-items: center; - backface-visibility: hidden; - background: var(--icon-grey-background); - - @include mobile-or-tablet-screen { - min-height: 8rem; - border: 1px solid var(--icon-grey-background); - } - - &-text { - padding: 0 3rem; - - @include mobile-or-tablet-screen { - padding: 0 1.5rem; - } - } - - &__bottom-plug { - position: fixed; - bottom: 0; - width: 100%; - height: 3.6rem; - z-index: 3; - backface-visibility: hidden; - background: var(--general-main-1); - } -} - .dc-button-menu__toggle { background-color: transparent; border-bottom: 1px solid var(--general-section-1); From 3fe82cf3f90be5b4a68788c91f811edfe6b5ee34 Mon Sep 17 00:00:00 2001 From: Hasan Mobarak <126637868+hasan-deriv@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:21:45 +0800 Subject: [PATCH 11/40] [CFDS]/Hasan/CFDS-4165/Update STN abbreviation to STD on Trader's Hub & Wallets (#16029) * fix: update standard icon * fix: update standard icon in appstore branding * fix: update standard icon in cashier * fix: update svg standard icon migration flow * fix: update standard icon migration flow * fix: removed console * fix: updated standard icon in wallets * Revert "fix: update standard icon migration flow" This reverts commit 95e03fc2e689f33ddd1519c6563d88e86d3f8e4e. * Revert "fix: update standard icon in cashier" This reverts commit e83561d2cac51787d9712492dd861f5cb90fbbd6. * Revert "fix: update standard icon in appstore branding" This reverts commit 707ea56294f4a0a286bf231e8618165b33c18249. * Revert "fix: update standard icon" This reverts commit 2a6f5d62c72502220f25cccc09a6289775867715. * Revert "fix: update svg standard icon migration flow" This reverts commit bfcb213c1c48d9d7bbd620df6129b374bd313ed6. * Reapply "fix: update svg standard icon migration flow" This reverts commit c1b76fcd0b396d6979818b099e0d23eb2bb9b7aa. * Reapply "fix: update standard icon" This reverts commit 9f51a0ba51f1835c337f430473aae575f98946e9. * Reapply "fix: update standard icon in appstore branding" This reverts commit d3d364dffd43d0e63b4b9c480433ff07da7ce6e4. * Reapply "fix: update standard icon in cashier" This reverts commit 6911e39631fd6bdd2a6bf017cd434e29e3f1542f. * Reapply "fix: update standard icon migration flow" This reverts commit 82206923533e09c62026cd65680489da45c9250b. * fix: optimized icons * feat: updated migration banner * feat: optimized migration banner * feat: updated migration success icons * feat: hightlighted stocks and etfs for wallets compare accounts * feat: updated modal banner svg * feat: updated dark banner and appstore std icon * feat: updated banner modal to original * feat: updated unoptimized banner modal (it's working) * feat: updated optimized banner modal --- .../branding/ic-branding-standard-dashboard.svg | 2 +- .../src/assets/svgs/trading-platform/ic-appstore-standard.svg | 2 +- packages/cfd/src/Assets/banner/migrate-card-dark.svg | 2 +- packages/cfd/src/Assets/banner/migrate-card.svg | 2 +- .../src/Assets/svgs/trading-platform/ic-appstore-standard.svg | 2 +- .../cfd/src/Containers/migration-banner/migration-banner.scss | 1 + .../cfd/src/Containers/migration-banner/migration-banner.tsx | 3 ++- .../src/components/icon/mt5/ic-mt5-bvi-standard.svg | 2 +- .../src/components/icon/mt5/ic-mt5-standard-financial-bvi.svg | 2 +- .../components/icon/mt5/ic-mt5-standard-financial-vanuatu.svg | 2 +- .../src/components/icon/mt5/ic-mt5-svg-standard.svg | 2 +- .../src/components/icon/mt5/ic-mt5-vanuatu-standard.svg | 2 +- packages/wallets/src/constants/icons.ts | 4 ++-- .../cfd/screens/CompareAccounts/compareAccountsConfig.ts | 4 ++-- 14 files changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/appstore/src/assets/svgs/trading-platform/branding/ic-branding-standard-dashboard.svg b/packages/appstore/src/assets/svgs/trading-platform/branding/ic-branding-standard-dashboard.svg index 624a94855937..1533387545e2 100644 --- a/packages/appstore/src/assets/svgs/trading-platform/branding/ic-branding-standard-dashboard.svg +++ b/packages/appstore/src/assets/svgs/trading-platform/branding/ic-branding-standard-dashboard.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/cashier/src/assets/svgs/trading-platform/ic-appstore-standard.svg b/packages/cashier/src/assets/svgs/trading-platform/ic-appstore-standard.svg index 624a94855937..cf15d415d903 100644 --- a/packages/cashier/src/assets/svgs/trading-platform/ic-appstore-standard.svg +++ b/packages/cashier/src/assets/svgs/trading-platform/ic-appstore-standard.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/cfd/src/Assets/banner/migrate-card-dark.svg b/packages/cfd/src/Assets/banner/migrate-card-dark.svg index 6cc49db4360d..222cf7847223 100644 --- a/packages/cfd/src/Assets/banner/migrate-card-dark.svg +++ b/packages/cfd/src/Assets/banner/migrate-card-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/cfd/src/Assets/banner/migrate-card.svg b/packages/cfd/src/Assets/banner/migrate-card.svg index 8566374107b3..0d680175ead6 100644 --- a/packages/cfd/src/Assets/banner/migrate-card.svg +++ b/packages/cfd/src/Assets/banner/migrate-card.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/cfd/src/Assets/svgs/trading-platform/ic-appstore-standard.svg b/packages/cfd/src/Assets/svgs/trading-platform/ic-appstore-standard.svg index 624a94855937..a331d303ec4d 100644 --- a/packages/cfd/src/Assets/svgs/trading-platform/ic-appstore-standard.svg +++ b/packages/cfd/src/Assets/svgs/trading-platform/ic-appstore-standard.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/cfd/src/Containers/migration-banner/migration-banner.scss b/packages/cfd/src/Containers/migration-banner/migration-banner.scss index 7a0ad1f9735f..7f01adc885bc 100644 --- a/packages/cfd/src/Containers/migration-banner/migration-banner.scss +++ b/packages/cfd/src/Containers/migration-banner/migration-banner.scss @@ -35,6 +35,7 @@ z-index: 0; left: 0; top: 0; + height: 100%; @include mobile { right: -0.1rem; diff --git a/packages/cfd/src/Containers/migration-banner/migration-banner.tsx b/packages/cfd/src/Containers/migration-banner/migration-banner.tsx index fc99af0c8f64..afaf4b0f7cc4 100644 --- a/packages/cfd/src/Containers/migration-banner/migration-banner.tsx +++ b/packages/cfd/src/Containers/migration-banner/migration-banner.tsx @@ -32,6 +32,7 @@ const MigrationBanner = observer(({ is_trade_modal = false }: TMigrationBannerPr toggleMT5MigrationModal(true); }; const is_desktop_trade_modal = is_trade_modal && !is_mobile; + const banner_img = is_dark_mode_on ? 'migrate_card_dark' : 'migrate_card'; return (
- +
); }); diff --git a/packages/components/src/components/icon/mt5/ic-mt5-bvi-standard.svg b/packages/components/src/components/icon/mt5/ic-mt5-bvi-standard.svg index 59fea76b8445..6adf4a125f03 100644 --- a/packages/components/src/components/icon/mt5/ic-mt5-bvi-standard.svg +++ b/packages/components/src/components/icon/mt5/ic-mt5-bvi-standard.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/mt5/ic-mt5-standard-financial-bvi.svg b/packages/components/src/components/icon/mt5/ic-mt5-standard-financial-bvi.svg index f2d2336a1ee2..ac555f4354a0 100644 --- a/packages/components/src/components/icon/mt5/ic-mt5-standard-financial-bvi.svg +++ b/packages/components/src/components/icon/mt5/ic-mt5-standard-financial-bvi.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/mt5/ic-mt5-standard-financial-vanuatu.svg b/packages/components/src/components/icon/mt5/ic-mt5-standard-financial-vanuatu.svg index 65e447dca7db..6db327a1ddcb 100644 --- a/packages/components/src/components/icon/mt5/ic-mt5-standard-financial-vanuatu.svg +++ b/packages/components/src/components/icon/mt5/ic-mt5-standard-financial-vanuatu.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/mt5/ic-mt5-svg-standard.svg b/packages/components/src/components/icon/mt5/ic-mt5-svg-standard.svg index efaf3b4360f0..dfefa6e4bb54 100644 --- a/packages/components/src/components/icon/mt5/ic-mt5-svg-standard.svg +++ b/packages/components/src/components/icon/mt5/ic-mt5-svg-standard.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/mt5/ic-mt5-vanuatu-standard.svg b/packages/components/src/components/icon/mt5/ic-mt5-vanuatu-standard.svg index 643638a0c056..18b441729423 100644 --- a/packages/components/src/components/icon/mt5/ic-mt5-vanuatu-standard.svg +++ b/packages/components/src/components/icon/mt5/ic-mt5-vanuatu-standard.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/wallets/src/constants/icons.ts b/packages/wallets/src/constants/icons.ts index 2642929ee752..0534c79de4bb 100644 --- a/packages/wallets/src/constants/icons.ts +++ b/packages/wallets/src/constants/icons.ts @@ -3,8 +3,8 @@ import { AccountsDerivCtraderIcon, AccountsDerivXIcon, AccountsDmt5CfdsIcon, - AccountsDmt5DerivedIcon, AccountsDmt5FinancialIcon, + AccountsDmt5StandardIcon, AccountsDmt5SwfIcon, CurrencyAudIcon, CurrencyBtcIcon, @@ -46,7 +46,7 @@ export const MT5MarketIcons: TIconTypes = { all: AccountsDmt5SwfIcon, cfds: AccountsDmt5CfdsIcon, financial: AccountsDmt5FinancialIcon, - synthetic: AccountsDmt5DerivedIcon, + synthetic: AccountsDmt5StandardIcon, }; export const PlatformIcons: TIconTypes = { diff --git a/packages/wallets/src/features/cfd/screens/CompareAccounts/compareAccountsConfig.ts b/packages/wallets/src/features/cfd/screens/CompareAccounts/compareAccountsConfig.ts index 46a7f20d2f6a..a2297715ad53 100644 --- a/packages/wallets/src/features/cfd/screens/CompareAccounts/compareAccountsConfig.ts +++ b/packages/wallets/src/features/cfd/screens/CompareAccounts/compareAccountsConfig.ts @@ -41,11 +41,11 @@ const getHighlightedIconLabel = ( case MARKET_TYPE.SYNTHETIC: return [ { highlighted: true, icon: 'Forex', text: forexLabel }, - { highlighted: false, icon: 'Stocks', text: 'Stocks' }, + { highlighted: true, icon: 'Stocks', text: 'Stocks' }, { highlighted: true, icon: 'StockIndices', text: 'Stock indices' }, { highlighted: true, icon: 'Commodities', text: 'Commodities' }, { highlighted: true, icon: 'Cryptocurrencies', text: 'Cryptocurrencies' }, - { highlighted: false, icon: 'ETF', text: 'ETFs' }, + { highlighted: true, icon: 'ETF', text: 'ETFs' }, { highlighted: true, icon: 'Synthetics', text: 'Synthetic indices' }, { highlighted: true, icon: 'Baskets', text: 'Basket indices' }, { highlighted: true, icon: 'DerivedFX', text: 'Derived FX' }, From 456b4a1512bb0edc2ee32e871537e17fac7ae3aa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 08:47:20 +0400 Subject: [PATCH 12/40] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20tra?= =?UTF-8?q?nslations=20with=20crowdin=20(#16209)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE --- packages/translations/crowdin/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/translations/crowdin/messages.json b/packages/translations/crowdin/messages.json index 29a1b5031efa..ba92567abb71 100644 --- a/packages/translations/crowdin/messages.json +++ b/packages/translations/crowdin/messages.json @@ -1 +1 @@ -{"0":"","1485191":"1:1000","2082741":"additional document number","2091451":"Deriv Bot - your automated trading partner","3125515":"Your Deriv MT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","3215342":"Last 30 days","3420069":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your identity document.","4547840":"<0>Verify your account to transfer funds. <1>Verify now","5149403":"Learn more about trade types","7100308":"Hour must be between 0 and 23.","9488203":"Deriv Bot is a web-based strategy builder for trading digital options. It’s a platform where you can build your own automated trading bot using drag-and-drop 'blocks'.","9757544":"Please submit your proof of address","11533428":"Trade bigger positions with less capital on a wide range of global markets. <0>Learn more","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11706633":"Loss threshold: The bot will stop trading if your total loss exceeds this amount.","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","23745193":"Take me to demo","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582393":"Example :","27582767":"{{amount}} {{currency}}","27731356":"Your account is temporarily disabled. Please contact us via <0>live chat to enable deposits and withdrawals again.","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","40632954":"Why is my card/e-wallet not working?","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45821474":"Proof of income","46523711":"Your proof of identity is verified","49404821":"If you buy a \"<0>{{trade_type}}\" option, you receive a payout at expiry if the final price is {{payout_status}} the strike price. Otherwise, your “<0>{{trade_type}}” option will expire worthless.","53801223":"Hong Kong 50","53964766":"5. Hit Save to download your bot. You can choose to download your bot to your device or your Google Drive.","54185751":"Less than $100,000","55340304":"Keep your current contract?","55916349":"All","57362642":"Closed","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","62910715":"You already have an open position for this contract type, retrying in {{ delay }}s","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","66610627":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there’s enough light where you are and that your entire face is in the frame.","67923436":"No, Deriv Bot will stop running when your web browser is closed.","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71232823":"Manage funds","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74963864":"Under","76635112":"To proceed, resubmit these documents","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","76925355":"Check your bot’s performance","77982950":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a \"Call\" or a \"Put\".","81009535":"Potential profit/loss","81091424":"To complete the upgrade, please log out and log in again to add more accounts and make transactions with your Wallets.","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","84402478":"Where do I find the blocks I need?","84924586":"To trade options and multipliers, get a Deriv Apps account first.","85343079":"Financial assessment","85359122":"40 or more","85389154":"Steps required to continue verification on your mobile","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","93154671":"1. Hit Reset at the bottom of stats panel.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","105871033":"Your age in the document you provided appears to be below 18 years. We’re only allowed to offer our services to clients above 18 years old, so we’ll need to close your account. If you have a balance in your account, contact us via live chat and we’ll help to withdraw your funds before your account is closed.","107537692":"These limits apply to your options trades only. For example, <0>maximum total loss refers to the losses on all your trades on options trading platforms.","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113378532":"ETH/USD","115032488":"Buy price and P/L","116005488":"Indicators","117056711":"We’re updating our site","117318539":"Password should have lower and uppercase English letters with numbers.","117366356":"Turbo options allow you to predict the direction of the underlying asset’s movements.","118727646":"{{new_account_title}}","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","122617359":"View tutorial","122993457":"This is to confirm that it's you making the withdrawal request.","123454801":"{{withdraw_amount}} {{currency_symbol}}","124723298":"Upload a proof of address to verify your address","125354367":"An example of D’Alembert's Grind strategy","125443840":"6. Restart last trade on error","125842960":"{{name}} is required.","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","129005644":"The idea is that successful trades may recoup previous losses. However, it is crucial to exercise caution as the risk can quickly increase with this strategy. With Deriv Bot, you can minimise your risk by setting a maximum stake. This is an optional risk management feature. Let’s say a maximum stake of 3 USD. If your stake for the next trade is set to exceed 3 USD, your stake will reset to the initial stake of 1 USD. If you didn't set a maximum stake, it would have increased beyond 3 USD.","129137937":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or resume trading after a 24-hour cooling-off period. If you don’t want to set a specific limit, leave the field empty.","129729742":"Tax Identification Number*","130567238":"THEN","132596476":"In providing our services to you, we are required to ask you for some information to assess if a given product or service is appropriate for you and whether you have the experience and knowledge to understand the risks involved.<0/><0/>","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","133655768":"Note: If you wish to learn more about the Bot Builder, you can proceed to the <0>Tutorials tab.","134126193":"Try searching for markets or keywords","136790425":"Try changing or removing filters to view available positions.","137589354":"To assess your trading experience and if our products are suitable for you. Please provide accurate and complete answers, as they may affect the outcome of this assessment.","138055021":"Synthetic indices","139454343":"Confirm my limits","141265840":"Funds transfer information","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145511192":"s is the initial stake.","145633981":"Unavailable as your documents are still under review","145736466":"Take a selfie","147327552":"No favourites","150156106":"Save changes","150486954":"Token name","151279367":"2. Set the Purchase conditions. In this example, your bot will purchase a Rise contract when it starts and after a contract closes.","151646545":"Unable to read file {{name}}","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","153485708":"Zero Spread - BVI","154274415":"The payout at expiry is equal to the payout per point multiplied by the distance between the final price and the barrier.","157593038":"random integer from {{ start_number }} to {{ end_number }}","157871994":"Link expired","158355408":"Some services may be temporarily unavailable.","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","167094229":"• Current stake: Use this variable to store the stake amount. You can assign any amount you want, but it must be a positive number.","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","174793462":"Strike","176078831":"Added","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","177467242":"Define your trade options such as accumulator and stake. This block can only be used with the accumulator trade type. If you select another trade type, this block will be replaced with the Trade options block.","179083332":"Date","181107754":"Your new <0>{{platform}} {{eligible_account_to_migrate}} account(s) are ready for trading.","181346014":"Notes ","181881956":"Contract Type: {{ contract_type }}","182630355":"Thank you for submitting your information.","184024288":"lower case","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","190834737":"Guide","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195136585":"Trading View Chart","195972178":"Get character","196810983":"If the duration is more than 24 hours, the Cut-off time and Expiry date will apply instead.","196998347":"We hold customer funds in bank accounts separate from our operational accounts which would not, in the event of insolvency, form part of the company's assets. This meets the <0>Gambling Commission's requirements for the segregation of customer funds at the level: <1>medium protection.","197190401":"Expiry date","201016731":"<0>View more","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","203297887":"The Quick Strategy you just created will be loaded to the workspace.","203924654":"Hit the <0>Start button to begin and follow the tutorial.","204797764":"Transfer to client","204863103":"Exit time","207521645":"Reset Time","207824122":"Please withdraw your funds from the following Deriv account(s):","209533725":"You’ve transferred {{amount}} {{currency}}","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","210872733":"The verification status is not available, provider says: Malformed JSON.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211487193":"Document number (e.g. identity card, passport, driver's license)","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216114973":"Stocks & indices","216650710":"You are using a demo account","217377529":"5. If the next trades are profitable, the stake for the following trade will be reduced by 2 USD. This can be shown above where the stake of 3 USD is reduced to 1 USD. See A3.","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","221261209":"A Deriv account will allow you to fund (and withdraw from) your CFDs account(s).","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","233500222":"- High: the highest price","235244966":"Return to Trader's Hub","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","235994721":"Forex (standard/exotic) and cryptocurrencies","236642001":"Journal","238496287":"Leverage trading is high-risk, so it's a good idea to use risk management features such as stop loss. Stop loss allows you to","242028165":"Pay a small fee to prioritise your withdrawal, this fee will be deducted from the withdrawal amount.","243537306":"1. Under the Blocks menu, go to Utility > Variables.","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","246428134":"Step-by-step guides","248153700":"Reset your password","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","251134918":"Account Information","251445658":"Dark theme","251882697":"Thank you! Your response has been recorded into our system.<0/><0/>Please click ‘OK’ to continue.","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258448370":"MT5","258912192":"Trading assessment","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","260393332":"You cannot make further deposits as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","261074187":"4. Once the blocks are loaded onto the workspace, tweak the parameters if you want, or hit Run to start trading.","261250441":"Drag the <0>Trade again block and add it into the <0>do part of the <0>Repeat until block.","262095250":"If you select <0>\"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","266455247":"Standard Vanuatu","267992618":"The platforms lack key features or functionality.","268254263":"Open a real account now","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269322978":"Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270396691":"<0>Your Wallets are ready!","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","271637055":"Download is unavailable while your bot is running.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","276770377":"New MT5 account(s) under the {{to_account}} jurisdiction will be created for new trades.","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","280021988":"Use these shortcuts","281110034":"Effective trading with the D'Alembert system requires careful consideration of its stake progression and risk management. Traders can automate this approach using Deriv Bot, setting profit and loss thresholds to ensure balanced and controlled trading. However, it is crucial for traders to assess their risk appetite, test strategies on a demo account, and align with their own trading style before transitioning to real money trading. This optimization process helps strike a balance between potential gains and losses while managing risk prudently.","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283830551":"Your address doesn’t match your profile","284527272":"antimode","284772879":"Contract","284809500":"Financial Demo","287934290":"Are you sure you want to cancel this transaction?","289731075":"Get Started","291344459":"The table illustrates this principle in the second session. After a trade resulting in loss in round 4 followed by a successful trade in round 5, the stake will increase to 2 USD for round 6. This is in line with the strategy's rule of raising the stake only after a loss is followed by a successful trade.","291744889":"<0>1. Trade parameters:<0>","291817757":"Go to our Deriv community and learn about APIs, API tokens, ways to use Deriv APIs, and more.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","293250845":"Are you sure you want to continue?","294043810":"I confirm that my tax information is accurate and complete.","294305803":"Manage account settings","294335229":"Sell at market price","296017162":"Back to Bot","301441673":"Select your citizenship/nationality as it appears on your passport or other government-issued ID.","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","304506198":"Total balance:","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","316694303":"Is candle black?","318705408":"Demo Zero Spread","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","321457615":"Oops, something went wrong!","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","323360883":"Baskets","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329353047":"Malta Financial Services Authority (MFSA) (licence no. IS/70156)","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","330384187":"Enable trading with your first transfer.","333456603":"Withdrawal limits","333807745":"Click on the block you want to remove and press Delete on your keyboard.","334942497":"Buy time","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345320063":"Invalid timestamp","345818851":"Sorry, an internal error occurred. Hit the above checkbox to try again.","346070861":"Zero Spread","346843343":"CFDs on financial and derived instruments with copy trading.","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","349110642":"<0>{{payment_agent}}<1>'s contact details","350602311":"Stats show the history of consecutive tick counts, i.e. the number of ticks the price remained within range continuously.","351744408":"Tests if a given text string is empty","353731490":"Job done","354945172":"Submit document","357477280":"No face found","357672069":"Income verification failed","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","360773403":"Bot Builder","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","367801124":"Total assets in your Deriv accounts.","368160866":"in list","369035361":"<0>•Your account number","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","372805409":"You should enter 9-35 characters.","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","377225569":"<0>Do not honour: Please contact your bank for further assistance.","377538732":"Key parameters","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","380606668":"tick","380694312":"Maximum consecutive trades","381972464":"Your document has expired.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","384707870":"CRS confirmation","386278304":"Install the {{platform_name_trader}} web app","386502387":"Bot is not running","389923099":"Zoom in","390890891":"Last quarter","391685252":"Revoke","391915203":"Hedging","392582370":"Fall Equals","393789743":"Letters, spaces, periods, hyphens, apostrophes only.","396418990":"Offline","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","401345454":"Head to the Tutorials tab to do so.","403456289":"The formula for SMA is:","403936913":"An introduction to Deriv Bot","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","417864079":"You’ll not be able to change currency once you have made a deposit.","419485005":"Spot","419496000":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the multipliers trade type.","420072489":"CFD trading frequency","422055502":"From","423682863":"When your loss reaches or exceeds the set amount, your trade will be closed automatically.","424101652":"Quick strategy guides >","424272085":"We take your financial well-being seriously and want to ensure you are fully aware of the risks before trading.<0/><0/>","424897068":"Do you understand that you could potentially lose 100% of the money you use to trade?","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428380816":"If you select “<0>Matches”, you will win the payout if the last digit of the last tick is the same as your prediction.","429505586":"If you select \"<0>Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","429970999":"To avoid delays, enter your <0>name exactly as it appears on your {{document_name}}.","431267979":"Here’s a quick guide on how to use Deriv Bot on the go.","432273174":"1:100","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433237511":"Notify Telegram %1 Access Token: %2 Chat ID: %3 Message: %4","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","436534334":"<0>We've sent you an email.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","439398769":"This strategy is currently not compatible with Deriv Bot.","442281706":"You’ve just deleted a block.","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","445419365":"1 - 2 years","447548846":"SSNIT number","447907000":"If you select \"<0>Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","452949978":"The 1-3-2-6 strategy is designed to capitalise on consecutive successful trades while minimising losses during losing streaks. The rationale behind this strategy lies in statistical probabilities, with adjustments to stake sizes based on the perceived likelihood of success. There is a higher likelihood of success in the second trade after one successful trade. Hence the stake adjusts to 3 in the second trade. In the third trade, the stake adjusts to 2 units due to a lower probability of a successful trade. If the third trade is also successful, the strategy then allocates all the previous gains (a total of 6 units of initial stake) into the fourth trade with the aim of doubling the potential profits. If the fourth trade results in a positive outcome, the strategy helps achieve a total gain of 12 units. However, it is crucial to exercise caution, as the risk can escalate quickly with this strategy, and any loss in the fourth trade forfeits all previous gains.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","454196938":"Regulation:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459612953":"Select account","459817765":"Pending","460070238":"Congratulations","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","463361726":"Select an item","465993338":"Oscar's Grind","466424460":"Oscar’s Grind","466837068":"Yes, increase my limits","467839232":"I trade forex CFDs and other complex financial instruments regularly on other platforms.","471402292":"Your bot uses a single trade type for each run.","471667879":"Cut off time:","473154195":"Settings","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","478827886":"We calculate this based on the barrier you’ve selected.","479420576":"Tertiary","480356486":"*Boom 300 and Crash 300 Index","481276888":"Goes Outside","481564514":"If you select “<0>Up”, you’ll earn a payout if the spot price never drops below the barrier.","483279638":"Assessment Completed<0/><0/>","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","490053735":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your loss reaches or exceeds the stop loss amount. Your loss may be more than the amount you entered depending on the market price at closing.","491603904":"Unsupported browser","492198410":"Make sure everything is clear","492566838":"Taxpayer identification number","497518317":"Function that returns a value","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501284861":"
Watch this video to learn how to build a trading bot on Deriv Bot. Also, check out this blog post on building a trading bot.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502007051":"Demo Swap-Free SVG","502041595":"This block gives you a specific candle from within the selected time interval.","505793554":"last letter","508390614":"Demo Financial STP","511679687":"Accumulators allow you to express a view on the range of movement of an index and grow your stake exponentially at a fixed <0>growth rate.","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","517631043":"We’ve sent your e-book. Check your email to download it.","517833647":"Volatility 50 (1s) Index","518955798":"7. Run Once at Start","519205761":"You can no longer open new positions with this account.","520136698":"Boom 500 Index","520458365":"Last used: ","521872670":"item","522703281":"divisible by","523123321":"- 10 to the power of a given number","524459540":"How do I create variables?","527329988":"This is a top-100 common password","529056539":"Options","531114081":"3. Contract Type","531675669":"Euro","532724086":"Employment contract","533403953":"Your existing <0>{{platform}} {{type}} {{from_account}} account(s) will remain accessible.","535041346":"Max. total stake per day","536277802":"TP & SL history","537788407":"Other CFDs Platform","538017420":"0.5 pips","538042340":"Principle 2: The stake only increases when a loss trade is followed by a successful trade","538228086":"Close-Low","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","545323805":"Filter by trade types","547029855":"If you select this feature, you can cancel your trade within a chosen time frame if the asset price moves against your favour. You will get your stake back without profit/loss. We charge a small fee for this. Take profit and stop loss are disabled when deal cancellation is active.","549479175":"Deriv Multipliers","549799607":"Go to LiveChat","551569133":"Learn more about trading limits","551958626":"Excellent","554135844":"Edit","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","555881991":"National Identity Number Slip","558866810":"Run your bot","559224320":"Our classic “drag-and-drop” tool for creating trading bots, featuring pop-up trading charts, for advanced users.","560759471":"You'll see these details once the contract starts.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565356380":"Added to favorites","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","571921777":"Funds protection level","572576218":"Languages","573173477":"Is candle {{ input_candle }} black?","575668969":"3. For trades that result in a profit, the stake for the next trade will be increased by 2 USD. Deriv Bot will continue to add 2 USD for every successful trade. See A1.","575702000":"Remember, selfies, pictures of houses, or non-related images will be rejected.","575968081":"Account created. Select payment method for deposit.","576355707":"Select your country and citizenship:","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","587577347":"Take Profit (Accumulator)","587577425":"Secure my account","587856857":"Want to know more about APIs?","592087722":"Employment status is required.","592964176":"Join over 2.5 million traders","593459109":"Try a different currency","595080994":"Example: CR123456789","596165833":"Your withdrawal will be processed internally in one business day. After that, for debit/credit cards, it takes 1-15 working days, and for e-wallets, it's 1-3 working days. If there's a delay beyond these periods, please contact us via live chat.","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","602278674":"Verify identity","603849445":"Strike price","603849863":"Look for the <0>Repeat While/Until, and click the + icon to add the block to the workspace area.","603899222":"Distance to current spot","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","613418320":"<0>Setup unsuccessful","613877038":"Chart","615156635":"Your selfie does not match your document.","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","619407328":"Are you sure you want to unlink from {{identifier_title}}?","621829484":"{{days_passed}}d ago","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623316736":"{{ message }}, retrying in {{ delay }}s","623542160":"Exponential Moving Average Array (EMAA)","625571750":"Entry spot:","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","628193133":"Account ID","629003252":"If your current password doesn't match these requirements, you'll need to create a new one in the next step.","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","629395043":"All growth rates","632398049":"This block assigns a null value to an item or statement.","632897893":"If any of the above applies to you, select <0>Yes. Otherwise, select <0>No.","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","634274250":"How long each trade takes to expire.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","636427296":"Need help with tax info? Let us know via <0>live chat.","636579615":"Number of unit(s) to be added to the next trade after a losing trade. One unit is equivalent to the amount of initial stake.","639382772":"Please upload supported file type.","640249298":"Normal","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642393128":"Enter amount","642546661":"Upload back of license from your computer","644150241":"The number of contracts you have won since you last cleared your stats.","645902266":"EUR/NZD","646773081":"Profit threshold: The bot will stop trading if your total profit exceeds this amount.","647039329":"Proof of address required","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","650836587":"This article explores the Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","651284052":"Low Tick","651684094":"Notify","652298946":"Date of birth","654422099":"CRS confirmation is required.","654507872":"True-False","654924603":"Martingale","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","656893085":"Timestamp","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","658745169":"You may sell the contract up to 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","661759508":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><0/>","662953503":"Your contract will be closed when the <0>stop out level is reached.","664779910":"3. If the first trade results in profit, the stake for the following trade will not reduce but remain at the initial stake. The strategy minimally trades at the initial stake of 1 USD. See A1.","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","666158951":"Your contract will be closed when the <0>stop out level is reached.","666724936":"Please enter a valid ID number.","669494711":"1.4 pips","671630762":"We accept only these types of documents as proof of your address. The document must be recent (issued within last {{expiry_in_months}} months) and include your name and address:","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","676675313":"Authy","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678031950":"Candles List with interval here 2: {{ candle_interval_type }}","679199080":"Why passkeys?","680334348":"This block was required to correctly convert your old strategy.","681108680":"Additional information required for {{platform}} account(s)","681808253":"Previous spot price","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","686387939":"How do I clear my transaction log?","687193018":"Slippage risk","687212287":"Amount is a required field.","688510664":"You've {{two_fa_status}} 2FA on this device. You'll be logged out of your account on other devices (if any). Use your password and a 2FA code to log back in.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","692354762":"Please enter your {{document_name}}. {{example_format}}","693396140":"Deal cancellation (expired)","693933036":"Exploring the Oscar’s Grind strategy in Deriv Bot","694035561":"Trade options multipliers","696157141":"Low spot","696735942":"Enter your National Identification Number (NIN)","696870196":"- Open time: the opening time stamp","698037001":"National Identity Number","699159918":"1. Filing complaints","699646180":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, the funds will be lost and cannot be recovered.","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","702451070":"National ID (No Photo)","702561961":"Change theme","705262734":"Your Wallets are ready","705299518":"Next, upload the page of your passport that contains your photo.","705697927":"2. Set your preferred unit. In this example, it is 2 units or 2 USD.","705821926":"Learn about this trade type","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","706960383":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 60 seconds.","707189572":"Your email address has changed.<0/>Now, log in with your new email address.","707662672":"{{unblock_date}} at {{unblock_time}}","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711580196":"Why can't I use a payment agent to withdraw my funds?","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","718509613":"Maximum duration: {{ value }}","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724526379":"Learn more with our tutorials","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","729251105":"Range: {{min}} - {{max}} {{duration_unit_text}} ","729651741":"Choose a photo","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","732828463":"Standing instructions to transfer funds to an account maintained in the United States, or directions regularly received from a US address","734298230":"Just a reminder","734390964":"Insufficient balance","734881840":"false","735907651":"A US residence address or a US correspondence address (including a US PO box)","737751617":"<0>Explore our website to see what’s available.","739126643":"Indicative high spot","742469109":"Reset Balance","743623600":"Reference","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","749336930":"Secure alternative to passwords.","750886728":"Switch to your real account to submit your documents","751468800":"Start now","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755138488":"We’re unable to verify the document you provided because it contains markings or text that should not be on your document. Please provide a clear photo or a scan of your original identity document.","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","758492962":"210+","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762926186":"A quick strategy is a ready-made strategy that you can use in Deriv Bot. There are 3 quick strategies you can choose from: Martingale, D'Alembert, and Oscar's Grind.","764366329":"Trading limits","766317539":"Language","768301339":"Delete Blocks","772520934":"You may sell the contract up to 24 hours before expiry. If you do, we’ll pay you the <0>contract value.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","775706054":"Do you sell trading bots?","776085955":"Strategies","776432808":"Select the country where you currently live.","778172770":"Deriv CFDs","780009485":"About D'Alembert","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787727156":"Barrier","788005234":"NA","789013690":"This is the corresponding price level based on the payout per point you’ve selected. If this barrier is ever breached, your contract would be terminated.","792164271":"This is when your contract will expire based on the Duration or End time you’ve selected.","792622364":"Negative balance protection","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794682658":"Copy the link to your phone","795859446":"Password saved","795992899":"The amount you choose to receive at expiry for every point of change between the final price and the barrier. ","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","806165583":"Australia 200","807499069":"Financial commission complaints procedure","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","812430133":"Spot price on the previous tick.","815925952":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open Deriv Bot.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820877027":"Please verify your proof of identity","821163626":"Server maintenance occurs every first Saturday of the month from 7 to 10 GMT time. You may experience service disruption during this time.","823186089":"A block that can contain text.","823279888":"The {{block_type}} block is missing.","824797920":"Is list empty?","825042307":"Let’s try again","825179913":"This document number was already submitted for a different account. It seems you have an account with us that doesn't need further verification. Please contact us via <0>live chat if you need help.","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","829970143":"If you've hit the deposit limit, please wait 1-2 hours before trying again. Check that your browser is up to date and use incognito mode. If you still have problems, please contact us via <0>live chat.","830164967":"Last name","830703311":"My profile","830993327":"No current transactions available","831344594":"If you select “<0>Lower”, you win the payout if the exit spot is strictly lower than the barrier.","832053636":"Document submission","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835336137":"View Detail","835350845":"Add another word or two. Uncommon words are better.","836097457":"I am interested in trading but have very little experience.","837063385":"Do not send other currencies to this address.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839158849":"4. If the second trade results in a loss, the Deriv Bot will automatically increase your stake for the next trade by 2 USD. Deriv Bot will continue to add 2 USD to the previous round’s stake after every losing trade. See A2.","839805709":"To smoothly verify you, we need a better photo","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845304111":"Slow EMA Period {{ input_number }}","848083350":"Your payout is equal to the <0>payout per point multiplied by the difference between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852527030":"Step 2","852583045":"Tick List String","852627184":"document number","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","858663703":"For new trades, please transfer your funds into the new <0>{{platform}} {{eligible_account_to_migrate}} account(s).","860319618":"Tourism","862283602":"Phone number*","863023016":"For instance, if a trader has a loss threshold (B) of 100 USD, with an initial stake (s) of 1 USD and 2 units of increment (f), the calculation would be as follows:","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864655280":"You can continue to hold your current open positions in your existing MT5 account(s).","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869068127":"The cashier is temporarily down due to maintenance. It will be available as soon as the maintenance is complete.","869823595":"Function","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872721776":"2. Select your XML file and hit Select.","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","873387641":"If you have open positions","874461655":"Scan the QR code with your phone","874472715":"Your funds will remain in your existing MT5 account(s).","874484887":"Take profit must be a positive number.","875101277":"If I close my web browser, will Deriv Bot continue to run?","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","879014472":"Reached maximum number of decimals","879647892":"You may sell the contract up until 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","881963105":"(XAUUSD, XAGUSD)","882423592":"The amount that you stake for the first trade. Note that this is the minimum stake amount.","885065431":"Get a Deriv account","888274063":"Town/City","888924866":"We don’t accept the following inputs for:","890299833":"Go to Reports","891337947":"Select country","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","896790627":"A US birthplace","897597439":"Changes saved.","898457777":"You have added a Deriv Financial account.","898904393":"Barrier:","899342595":"NIN","900646972":"page.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","904696726":"API token","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","906789729":"Your verification documents were already used for another account.","907680782":"Proof of ownership verification failed","909272635":"Financial - SVG","910888293":"Too many attempts","911048905":"(BTCUSD, ETHUSD)","912257733":"The workspace will be reset to the default strategy and any unsaved changes will be lost. <0>Note: This will not affect your running bot.","912406629":"Follow these steps:","912967164":"Import from your computer","915735109":"Back to {{platform_name}}","918447723":"Real","920125517":"Add demo account","921857297":"Enter a value from 0 to {{ value }}.","921901739":"- your account details of the bank linked to your account","922313275":"You're back online","924046954":"Upload a document showing your name and bank account number or account details.","924912760":"Your document appears to be a digital document.","929608744":"You are unable to make withdrawals","930255747":"Please enter your {{document_name}}. ","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","936393760":"You receive a <0>payout at <1>expiry if the spot price never touches or breaches the <2>barrier during the contract period. If it does, your contract will be terminated early.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938500877":"{{ text }}. <0>You can view the summary of this transaction in your email.","938947787":"Withdrawal {{currency}}","938988777":"High barrier","944499219":"Max. open positions","945532698":"Contract sold","945753712":"Back to Trader’s Hub","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947602200":"Save this strategy as an XML file from Deriv Bot for faster re-imports.","947704973":"Reverse D’Alembert","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","949859957":"Submit","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","958503488":"Search markets on ","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961266215":"140+","961327418":"My computer","961692401":"Bot","962251615":"If you want to adjust your self-exclusion limits, <0>contact us via live chat.","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","968576099":"Up/Down","969858761":"Principle 1: Strategy aims to potentially make one unit of profit per session","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975608902":"To trade CFDs, get a Deriv Apps account first.","975668699":"I confirm and accept {{company}} 's <0>Terms and Conditions","975747761":"Ongoing","975950139":"Country of Residence","977929335":"Go to my account settings","979713491":"Zero Spread BVI","980050614":"Update now","981138557":"Redirect","981568830":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via <0>live chat.","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982146443":"WhatsApp","982402892":"First line of address","982829181":"Barriers","983295075":"Why can't I see the funds on my card/e-wallet balance after I've made a withdrawal?","983451828":"2. Select the asset and trade type.","984175243":"Expand Blocks","986565137":"We've received your proof of income","987053672":"You can continue with the open positions on your current <0>{{platform}} {{existing_account}} account(s).","987224688":"How many trades have you placed with other financial instruments in the past 12 months?","988064913":"4. Come back to Deriv Bot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","989840364":"You’re under legal age.","990739582":"170+","992294492":"Your postal code is invalid","992677950":"Logging out on other devices","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","997276809":"I confirm that the name and date of birth above match my chosen identity document","997311089":"Change my password","999008199":"text","1001160515":"Sell","1002989598":"iOS: iCloud keychain.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006069082":"The objective of Martingale strategy is to take advantage of consecutive successful trades and maximise potential profits from them. This strategy is beneficial only if there are consecutive successful trades. Therefore, it is important to set a maximum stake to secure all the potential profits gained from a number of consecutive successful trades, or you could lose all the profits you have accumulated, including your initial stake. For example, if your goal is to maximise profits within 2 consecutive successful trades, you set a maximum stake of 2 USD, given your initial stake is 1 USD. Similarly, if your goal is to maximise profits within 3 consecutive successful trades, you set a maximum stake of 4 USD, given your initial stake is 1 USD.","1006458411":"Errors","1006664890":"Silent","1008151470":"Unit: The number of units that are added in the event of successful trades or the number of units removed in the event of losing trades. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1010337648":"We were unable to verify your proof of ownership.","1011424042":"{{text}}. stake<0/>","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1017081936":"If you select “<0>Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1021090237":"Upgrade your <0>{{account_1}} <1/>and <0>{{account_2}} {{platform}} account(s)","1021679446":"Multipliers only","1022934784":"1 minute","1022971288":"Payout per pip","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1026289179":"Trade on the go","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1029641567":"{{label}} must be less than 30 characters.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1033253221":"Confirm your identity to make a withdrawal.","1035893169":"Delete","1036116144":"Speculate on the price movement of an asset without actually owning it.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039428638":"EU regulation","1039476188":"The size used to multiply the stake after a losing trade for the next trade.","1039755542":"Use a few words, avoid common phrases","1040472990":"1. Go to Bot Builder.","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1047644783":"Enable screen lock on your device.","1047881477":"Unfortunately, your browser does not support the video.","1048687543":"Labuan Financial Services Authority","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050063303":"Videos on Deriv Bot","1050128247":"I confirm that I have verified the payment agent’s transfer information.","1050844889":"Reports","1052779010":"You are on your demo account","1052921318":"{{currency}} Wallet","1053153674":"Jump 50 Index","1053159279":"Level of education","1053556481":"Once you submit your complaint, we will send you an acknowledgement email to confirm that we have received it.","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057519018":"4. If a trade ends in a profit, the stake for the following trade will be reset to the initial stake amount of 1 USD.","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1058804653":"Expiry","1058905535":"Tutorial","1060231263":"When are you required to pay an initial margin?","1061308507":"Purchase {{ contract_type }}","1062423382":"Explore the video guides and FAQs to build your bot in the tutorials tab.","1062536855":"Equals","1062569830":"The <0>name on your identity document doesn't match your profile.","1065498209":"Iterate (1)","1065766135":"You have {{remaining_transfers}} {{transfer_text}} remaining for today.","1066235879":"Transferring funds will require you to create a second account.","1066459293":"4.3. Acknowledging your complaint","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1070323991":"6. If consecutive successful trades were to happen, the stake would follow a sequence of adjustment from 1 to 3, then 2, and 6 units of initial stake. After 4 consecutive successful trades, it completes one cycle and then the strategy will repeat itself for another cycle. If any trade results in a loss, your stake will reset back to the initial stake for the next trade.","1070624871":"Check proof of address document verification status","1073261747":"Verifications","1073611269":"A copy of your identity document (e.g. identity card, passport, driver's license)","1073711308":"Trade closed","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1078189922":"You can make a new deposit once the verification of your account is complete.","1078221772":"Leverage prevents you from opening large positions.","1078303105":"Stop out","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1087112394":"You must select the strike price before entering the contract.","1088031284":"Strike:","1088138125":"Tick {{current_tick}} - ","1089085289":"Mobile number","1089436811":"Tutorials","1089687322":"Stop your current bot?","1090041864":"The {{block_type}} block is mandatory and cannot be deleted/disabled.","1090802140":"Additional Information","1095295626":"<0>•The Arbiter for Financial Services will determine whether the complaint can be accepted and is in accordance with the law.","1096078516":"We’ll review your documents and notify you of its status within 3 days.","1096175323":"You’ll need a Deriv account","1098147569":"Purchase commodities or shares of a company.","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100133959":"National ID","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109217274":"Success!","1110102997":"Statement","1111743543":"Stop loss (Multiplier)","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113227831":"Yes, you can. However, there are limits on your account, such as maximum number of open positions and maximum aggregate payouts on open positions. So, just keep these limits in mind when opening multiple positions. You can find more info about these limits at Settings > Account limits.","1113292761":"Less than 8MB","1113390200":"Your open trades will appear here.","1114679006":"You have successfully created your bot using a simple strategy.","1117281935":"Sell conditions (optional)","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1121050010":"Transaction fee: {{amount}} {{currency}}","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1124382808":"Please enter the expiry time in the format \"HH:MM\".","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127224297":"Sorry for the interruption","1127884488":"cTrader MacOS app","1128139358":"How many CFD trades have you placed in the past 12 months?","1128321947":"Clear All","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129842439":"Please enter a take profit amount.","1133651559":"Live chat","1134879544":"Example of a document with glare","1134883120":"Use your Deriv account email and password to log in to cTrader.","1138126442":"Forex: standard","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1150637063":"*Volatility 150 Index and Volatility 250 Index","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1155143434":"By clicking on <0>Next you agree to move your {{platform}} {{type}} {{from_account}} account(s) under <2/>Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","1155626418":"below","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163771266":"The third block is <0>optional. You may use this block if you want to sell your contract before it expires. For now, leave the block as it is. ","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166023941":"New password","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1166916934":"Demo Standard SVG","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1171765024":"Step 3","1171961126":"trade parameters","1172230903":"• Stop loss threshold: Use this variable to store your loss limit. You can assign any amount you want. Your bot will stop when your losses hits or exceeds this amount.","1172524677":"CFDs Demo","1173957529":"Go to ‘Account Settings’ on Deriv.","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174689133":"3. Set your trade parameters and hit Run.","1174748431":"Payment channel","1175183064":"Vanuatu","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1183448523":"<0>We're setting up your Wallets","1184968647":"Close your contract now or keep it running. If you decide to keep it running, you can check and close it later on the ","1186687280":"Question {{ current }} of {{ total }}","1188316409":"To receive your funds, contact the payment agent with the details below","1188980408":"5 minutes","1189249001":"4.1. What is considered a complaint?","1189368976":"Please complete your personal details before you verify your identity.","1190226567":"Standard - Vanuatu","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197649109":"No results for {{searchTerm}}","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1203380736":"The D’Alembert strategy is less risky than Martingale, but you can still determine how long your funds will last with this strategy before trading. Simply use this formula.","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1204459171":"Your existing <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s) will remain accessible.","1206227936":"How to mask your card?","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1211912982":"Bot is starting","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217159705":"Bank account number","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1223993374":"For entry spot, we use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers.","1225874865":"The stake adjustment: target session profit (1 USD) - current session profit (0 USD) = 1 USD","1227074958":"random fraction","1227132397":"4. For trades that result in a loss, there are two outcomes. If it was traded at the initial stake, the next trade will remain at the same amount as the strategy trades minimally at the initial stake, see A2. If it was traded with a higher amount, the stake for the next trade would be reduced by 2 USD, see A3.","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233178579":"Our customers say","1233300532":"Payout","1233910495":"If you select \"<0>Down\", your total profit/loss will be the percentage decrease in the underlying asset price, times the multiplier and stake, minus commissions.","1234292259":"Source of wealth","1234764730":"Upload a screenshot of your name and email address from the personal details section.","1236527126":"(Transaction fee: {{transaction_fee}} {{currency_symbol}})","1237330017":"Pensioner","1238311538":"Admin","1239752061":"In your cryptocurrency wallet, make sure to select the <0>{{network_name}} network when you transfer funds to Deriv.","1239760289":"Complete your trading assessment","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1240688917":"Glossary","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1242288838":"Hit the checkbox above to choose your document.","1242994921":"Click here to start building your Deriv Bot.","1243064300":"Local","1243287470":"Transaction status","1246207976":"Enter the authentication code generated by your 2FA app:","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250113042":"This device doesn't support passkeys.","1250495155":"Token copied!","1252669321":"Import from your Google Drive","1253531007":"Confirmed","1253636052":"MetaTrader5 web terminal","1254565203":"set {{ variable }} to create list with","1255827200":"You can also import or build your bot using any of these shortcuts.","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259145708":"Let’s try again. Choose another document and enter the corresponding details.","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1264096613":"Search for a given string","1265317149":"A recent utility bill (e.g. electricity, water or gas) or recent bank statement or government-issued letter with your name and address.","1265704976":"","1266728508":"Proof of income verification passed","1269296089":"Let's build a Bot!","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274380814":"Your payout is equal to the <0>payout per pip multiplied by the difference, <1>in pips, between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","1274819385":"3. Complaints and Disputes","1276660852":"Submit your proof of identity","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1283418744":"Additional features are available to manage your positions: “<0>Take profit”, “<1>Stop loss” and “<2>Deal cancellation” allow you to adjust your level of risk aversion.","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1286094280":"Withdraw","1286384690":"If you select “<0>Even”, you will win the payout if the last digit of the last tick is an even number (i.e. 2, 4, 6, 8, or 0).","1286507651":"Close identity verification screen","1288965214":"Passport","1289146554":"British Virgin Islands Financial Services Commission","1289650867":"The Oscar’s Grind strategy is designed to potentially gain a modest yet steady profit in each trading session. This strategy splits trades into sessions and has three principles.","1290525720":"Example: ","1291997417":"Contracts will expire at exactly 23:59:59 GMT on your selected expiry date.","1292179259":"No open trades","1292188546":"Reset Deriv MT5 investor password","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294553728":"We’re unable to verify the document you provided because it appears to be a blank image. Please try again or upload another document.","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1298254025":"Standard - BVI","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1305217290":"Upload the back of your identity card.","1306976251":"Standard SVG","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1314572331":"Your document failed our verification checks.","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320715220":"<0>Account closed","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324922837":"2. The new variable will appear as a block under Set variable.","1325514262":"(licence no. MB/18/0024)","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1339613797":"Regulator/External dispute resolution","1340286510":"The bot has stopped, but your trade may still be running. You can check it on the Reports page.","1341840346":"View in Journal","1341921544":"Trading accounts and funds","1344696151":"Forex, stocks, stock indices, commodities, cryptocurrencies and synthetic indices.","1346038489":"Should be less than 70.","1346204508":"Take profit","1346339408":"Managers","1346947293":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there's enough light where you are and that your entire face is in the frame.","1347071802":"{{minutePast}}m ago","1349133669":"Try changing your search criteria.","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351906264":"This feature is not available for payment agents.","1352234202":"Last {{positionsCount}} contracts:","1352413406":"Define your trade options, such as accumulator and stake.","1353197182":"Please select","1354288636":"Based on your answers, it looks like you have insufficient knowledge and experience in trading CFDs. CFD trading is risky and you could potentially lose all of your capital.<0/><0/>","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357213116":"Identity card","1358543466":"Not available","1358543748":"enabled","1360929368":"Add a Deriv account","1362029761":"Exploring the Reverse Martingale strategy in Deriv Bot","1362578283":"High","1363645836":"Derived FX","1363675688":"Duration is a required field.","1364879837":"The verification is passed but the personal info is not available to compare.","1364958515":"Stocks","1366244749":"Limits","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1370647009":"Enjoy higher daily limits","1371193412":"Cancel","1371555192":"Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1373949314":"The Reverse Martingale strategy involves increasing your stake after each successful trade and resets to the initial stake for every losing trade as it aims to secure potential profits from consecutive wins.","1374627690":"Max. account balance","1374902304":"Your document appears to be damaged or cropped.","1375884086":"Financial, legal, or government document: recent bank statement, affidavit, or government-issued letter.","1376329801":"Last 60 days","1378419333":"Ether","1380349261":"Range","1383017005":"You have switched accounts.","1384127719":"You should enter {{min}}-{{max}} numbers.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1388770399":"Proof of identity required","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396217283":"{{transaction_amount}} {{currency_symbol}}","1396417530":"Bear Market Index","1397628594":"Insufficient funds","1400341216":"We’ll review your documents and notify you of its status within 1 to 3 days.","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1402224124":"Hit the button below, and we'll email you a verification link.","1402300547":"Lets get your address verified","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1407191858":"DTrader","1408844944":"Click the plus icon to extend the functionality of this block.","1411373212":"Strong passwords contain at least 8 characters. combine uppercase and lowercase letters, numbers, and symbols.","1411419173":"Growth Rate: {{ accumulator }}","1412405902":"See important notes","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1414366321":"An uppercase letter","1414918420":"We'll review your proof of identity again and will give you an update as soon as possible.","1415006332":"get sub-list from first","1415513655":"Download cTrader on your phone to trade with the Deriv cTrader account","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1416521695":"Positions","1417558007":"Max. total loss over 7 days","1417907460":"No problem! Your passkey still works.","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1419330165":"Forex, stocks, stock indices, commodities, cryptocurrencies, ETFs and synthetic indices","1421046084":"Setup your account","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1423296980":"Enter your SSNIT number","1424741507":"See more","1424763981":"1-3-2-6","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1428657171":"You can only make deposits. Please contact us via <0>live chat for more information.","1430221139":"Verify now","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434767075":"Get started on Deriv Bot","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1437529196":"Payslip","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1444066971":"It seems you’ve submitted this document before. Upload a new document.","1444843056":"Corporate Affairs Commission","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1447698999":"Withdrawals can be cancelled if they're still in the 'Requested' status (you can check your status under Pending payout). Once the status changes to 'Authorised', in 'Progress', or 'Processed', cancellation isn't possible.","1449462402":"In review","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1454406889":"Choose <0>until as the repeat option.","1454648764":"deal reference id","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1458160370":"Enter your {{platform}} password to add a {{platform_name}} {{account}} {{jurisdiction_shortcode}} account.","1459761348":"Submit proof of identity","1461323093":"Display messages in the developer’s console.","1462238858":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465084972":"How much experience do you have with other financial instruments?","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467880277":"3. General queries","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468508098":"Slippage happens when the asset price changes by the time it reaches our servers.","1469133110":"cTrader Windows app","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1470565177":"Article of association","1471008053":"Deriv Bot isn't quite ready for real accounts","1471070549":"Can contract be sold?","1471741480":"Severe error","1473369747":"Synthetics only","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1480915523":"Skip","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1488548367":"Upload again","1490509675":"Options accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499080621":"Tried to perform an invalid operation.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503419760":"Swap-free CFDs on selected financial and derived instruments.","1503618738":"- Deal reference ID: the reference ID of the contract","1505420815":"No payment agents found for your search","1505927599":"Our servers hit a bump. Let’s refresh to move on.","1507554225":"Submit your proof of address","1509559328":"cTrader","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1513771077":"We're processing your withdrawal.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1520332426":"Net annual income","1521546070":"Download Block","1524636363":"Authentication failed","1526012495":"This could be because:","1526483456":"2. Enter a name for your variable, and hit Create. New blocks containing your new variable will appear below.","1527251898":"Unsuccessful","1527664853":"Your payout is equal to the payout per point multiplied by the difference between the final price and the strike price.","1527906715":"This block adds the given number to the selected variable.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534796105":"Gets variable value","1537192641":"Unable to process your request","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1540585098":"Decline","1541508606":"Looking for CFDs? Go to Trader's Hub","1541770236":"The 1-3-2-6 strategy aims to maximise potential profits with four consecutive successful trades. One unit is equal to the amount of the initial stake. The stake will adjust from 1 unit to 3 units after the first successful trade, then to 2 units after your second successful trade, and to 6 units after the third successful trade. The stake for the next trade will reset to the initial stake if there is a losing trade or a completion of the trade cycle.","1541969455":"Both","1542742708":"Synthetics, Forex, Stocks, Stock indices, Commodities, and Cryptocurrencies","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1547148381":"That file is too big (only up to 8MB allowed). Please upload another file.","1549098835":"Total withdrawn","1551172020":"AUD Basket","1551689907":"Enhance your trading experience by upgrading your <0/><1>{{platform}} {{type}} {{from_account}} account(s).","1555345325":"User Guide","1556391770":"You cannot make a withdrawal as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1562374116":"Students","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1566717687":"We also provide a guide on the Tutorial tab to show you how you can build and execute a simple strategy.","1567745852":"Bot name","1569527365":"Verification failed. Resubmit your details.","1569624004":"Dismiss alert","1570484627":"Ticks list","1570495551":"For exit spot, the latest asset price when the trade closure is processed by our servers.","1571575776":"Accepted formats: pdf, jpeg, jpg, and png. Max file size: 8MB","1572504270":"Rounding operation","1572982976":"Server","1573429525":"Call/Put","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1580498808":"Multiple faces found","1584109614":"Ticks String List","1584936297":"XML file contains unsupported elements. Please check or modify file.","1587046102":"Documents from that country are not currently supported — try another document type","1589148299":"Start","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1589863913":"These are the trade parameters used for D’Alembert strategy in Deriv Bot.","1590400723":"Total assets in all your accounts","1591933071":"Resubmit document","1593010588":"Login now","1594147169":"Please come back in","1594322503":"Sell is available","1595295238":"3. Use a logic block to check if Total profit/loss is more than the Stop loss threshold amount. You can find the Total profit/loss variable under Analysis > Stats on the Blocks menu on the left. Your bot will continue to purchase new contracts until the Total profit/loss amount exceeds the Stop loss threshold amount.","1597672660":"Deriv MT5 Password","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1598789539":"Here are some common card/e-wallet errors and their solutions:","1599743312":"An example of Reverse Martingale strategy","1602894348":"Create a password","1604916224":"Absolute","1605222432":"I have no knowledge and experience in trading at all.","1605292429":"Max. total loss","1612105450":"Get substring","1612638396":"Cancel your trade at any time within a specified timeframe.","1615897837":"Signal EMA Period {{ input_number }}","1618652381":"For instance, if a trader has a loss threshold (B) is 1000 USD, with an initial stake (s) is 1 USD, and the Martingale multiplier (m) is 2, the calculation would be as follows:","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1622944161":"Now, go to the <0>Restart trading conditions block.","1623706874":"Use this block when you want to use multipliers as your trade type.","1628981793":"Can I trade cryptocurrencies on Deriv Bot?","1630317389":"If you select “<0>No Touch”, you win the payout if the market never touches the barrier at any time during the contract period.","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1633661992":"Tick {{current_tick}}/{{tick_count}}","1634016345":"2. If the trade is successful, this strategy will automatically adjust your stake to 3 units of your initial stake for the next trade. In this case, the stake adjustment is 3 units and the initial stake is 1 USD, hence the next trade will start at 3 USD.","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1635628424":"An envelope with your name and address.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644636153":"Transaction hash: <0>{{value}}","1644703962":"Looking for CFD accounts? Go to Trader's Hub","1644864436":"You’ll need to authenticate your account before requesting to become a professional client. <0>Authenticate my account","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1648938920":"Netherlands 25","1649239667":"2. Under the Blocks menu, you'll see a list of categories. Blocks are grouped within these categories. Choose the block you want and drag them to the workspace.","1650963565":"Introducing Wallets","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653136377":"copied!","1653180917":"We cannot verify you without using your camera","1653999225":"Forex: major/minor","1654365787":"Unknown","1654529197":"Purchase condition","1654721858":"Upload anyway","1655372864":"Your contract will expire on this date (in GMT), based on the end time you’ve selected.","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1659327870":"How do I cancel my withdrawal?","1659352235":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited, regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","1661126218":"Expiry date:","1665272539":"Remember: You cannot log in to your account until the selected date.","1665718170":"The document must contain a letterhead.","1665738338":"Balance","1665756261":"Go to live chat","1668138872":"Modify account settings","1669062316":"The payout at expiry is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1676549796":"Dynamic Leverage","1677027187":"Forex","1679743486":"1. Go to Quick strategy and select the strategy you want.","1680666439":"Upload your bank statement showing your name, account number, and transaction history.","1681765749":"Martingale formula 2","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683383299":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the accumulator trade type.","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1690746575":"Enhance your trading experience by upgrading your <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s).","1691335819":"To continue trading with us, please confirm who you are.","1691536201":"If you choose your duration in number of ticks, you won’t be able to terminate your contract early.","1691765860":"- Negation","1692912479":"Deriv MT5, Deriv X","1693614409":"Start time","1694517345":"Enter a new email address","1696190747":"Trading inherently involves risks, and actual profits can fluctuate due to various factors, including market volatility and other unforeseen variables. As such, exercise caution and conduct thorough research before engaging in any trading activities.","1698624570":"2. Hit Ok to confirm.","1699606318":"You've reached the limit of uploading your documents.","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1701447705":"Please update your address","1702339739":"Common mistakes","1703091957":"We collect information about your employment as part of our due diligence obligations, as required by anti-money laundering legislation.","1703712522":"Your payout is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1704656659":"How much experience do you have in CFD trading?","1707264798":"Why can't I see deposited funds in my Deriv account?","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1711013665":"Anticipated account turnover","1711016273":"<0>This may take up to 2 minutes. During this time, some services may be unavailable.","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1713633297":"3. If the second trade is also successful, your stake will adjust to 2 USD or 2 units of the initial stake for the next trade.","1714255392":"To enable withdrawals, please complete your financial assessment.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1715680813":"Your contract will expire at exactly 23:59:59 GMT +0 on your selected expiry date.","1717023554":"Resubmit documents","1717474982":"CFDs on financial and derived instruments via a customisable platform.","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1721295446":"Favorites","1722056905":"The document you provided is not supported for your country. Please provide a supported document for your country.","1722888575":"{{mt5_migration_error}}","1723390945":"Your demo {{deriv}} {{type}} account is ready.","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724367774":"You can make a funds transfer once the verification of your account is complete.","1724696797":"You are limited to one fiat account only.","1725958461":"Account number","1726472773":"Function with no return value","1726565314":"Close my account","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732891201":"Sell price","1733711201":"Regulators/external dispute resolution","1734185104":"Balance: %1","1734264460":"Disclaimer","1734521537":"The document you provided appears to be two different types. Please try again or provide another document.","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738094481":"<0>Duration: Ticks 1","1738611950":"About Reverse Martingale","1738681493":"Remove your glasses, if necessary","1739086943":"Wall Street 30","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1741006997":"Yesterday","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743679873":"If you select <0>\"Call\", you’ll earn a <1>payout if the <1>final price is above the <1>strike price at <1>expiry. Otherwise, you won’t receive a payout.","1743902050":"Complete your financial assessment","1744509610":"Just drag the XML file from your computer onto the workspace, and your bot will be loaded accordingly. Alternatively, you can hit Import in Bot Builder, and choose to import your bot from your computer or from your Google Drive.","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747652849":"If you select the take profit feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount throughout the contract duration. Your profit may be more than the amount you entered depending on the market price at closing. You may change your take profit amount up to 15 seconds before expiry.","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1753082252":"This article explores the strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as Forex, Commodities, and Derived Indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","1753183432":"We take all complaints seriously and aim to resolve them as quickly and fairly as possible. If you are unhappy with any aspect of our service, please let us know by submitting a complaint using the guidance below:","1753226544":"remove","1753975551":"Upload passport photo page","1754256229":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_ctrader }} transfers between your Deriv and {{platform_name_ctrader}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1756678453":"break out","1761038852":"Let’s continue with providing proofs of address and identity.","1761254001":"A number","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1768293340":"Contract value","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1770041368":"Experience safer logins","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772396880":"The date of birth on your document doesn’t match your profile.","1777847421":"This is a very common password","1778893716":"Click here","1779144409":"Account verification required","1779519903":"Should be a valid number.","1779801832":"Please update your password accordingly.","1779872677":"Download e-book","1780442963":"Scan the QR code to download {{ platform }}.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783526986":"How do I build a trading bot?","1783740125":"Upload your selfie","1785298924":"D’Alembert formula 1","1786644593":"Supported formats: JPEG, JPG, PNG, PDF, and GIF only","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788515547":"<0/>For more information on submitting a complaint with the Office of the Arbiter for Financial Services, please <1>see their guidance.","1788966083":"01-07-1999","1789273878":"Payout per point","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1791432284":"Search for country","1791926890":"If you select “<0>Higher”, you win the payout if the exit spot is strictly higher than the barrier.","1791971912":"Recent","1792037169":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your {{document_name}}.","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1796787905":"Please upload the following document(s).","1798943788":"You can only make deposits.","1801093206":"Get candle list","1801270786":"Ready to automate your trading strategy without writing any code? You’ve come to the right place.","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806017862":"Max. ticks","1808058682":"Blocks are loaded successfully","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811138041":"Enter a value from {{ value }} to 9.","1811343027":"2. Select your Martingale multiplier. In this example, it is 2.","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812006199":"Identity verification","1812582011":"Connecting to server","1813700208":"Boom 300 Index","1815034361":"alphabetic","1815905959":"DTrader, DBot, SmartTrader, and Binary Bot","1815995250":"Buying contract","1817006592":"All trade types","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1821818748":"Enter Driver License Reference number","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1824292864":"Call","1827607208":"File not uploaded.","1828370654":"Onboarding","1828856382":"If you select “<0>Differs”, you will win the payout if the last digit of the last tick is not the same as your prediction.","1830520348":"{{platform_name_dxtrade}} Password","1831847842":"I confirm that the name and date of birth above match my chosen identity document (see below)","1833499833":"Proof of identity documents upload failed","1836767074":"Search payment agent name","1837533589":"Stop Loss","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1839021527":"Please enter a valid account number. Example: CR123456789","1840721160":"Deriv MT5 latest password requirements","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1843336754":"Select document","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845598565":"The second session concludes upon reaching the aim of one unit of potential profit per session, equivalent to 1 USD. If trading continues, a new session will commence again.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846588117":"Your contract will be closed automatically when your loss reaches {{stop_out_percentage}}% of your stake.","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1851052337":"Place of birth is required.","1851776924":"upper","1854480511":"Cashier is locked","1854874899":"Back to list","1854909245":"Multiplier:","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1856755117":"Pending action required","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1863731653":"To receive your funds, contact the payment agent","1865525612":"No recent transactions.","1866244589":"The entry spot is the first tick for High/Low Ticks.","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869315006":"See how we protect your funds to unlock the cashier.","1869486036":"You receive a <0>payout at <0>expiry if the spot price never touches or breaches the <0>barrier during the contract period. If it does, your contract will be terminated early.","1869787212":"Even","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871377550":"Do you offer pre-built trading bots on Deriv Bot?","1871664426":"Note","1873376454":"This is a price level that you choose. If this barrier is ever crossed, your contract would be terminated.","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874737957":"To trade multipliers, get a Deriv Apps account first.","1874756442":"BVI","1875090343":"Choose a date range","1875702561":"Load or build your bot","1876015808":"Social Security and National Insurance Trust","1876325183":"Minutes","1876333357":"Tax Identification Number is invalid.","1877225775":"Your proof of address is verified","1877832150":"# from end","1878172674":"No, we don't. However, you'll find quick strategies on Deriv Bot that'll help you build your own trading bot for free.","1878189977":"The Martingale strategy involves increasing your stake after each loss to recoup prior losses with a single successful trade.","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1879651964":"<0>Pending verification","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880227067":"Submit passport photo pages","1880377568":"An example of D’Alembert strategy","1880875522":"Create \"get %1\"","1881018702":"hour","1881380263":"Total assets in your account.","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887257727":"R is the number of rounds a trader can sustain given a specific loss threshold.","1887925280":"The document must be recent and include your name and address:","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1893869876":"(lots)","1894667135":"Please verify your proof of address","1896269665":"CFDs on derived and financial instruments.","1899898605":"Maximum size: 8MB","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1904665809":"The Reverse Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","1905032541":"We're now ready to verify your identity","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906213000":"Our system will finish any Deriv Bot trades that are running, and Deriv Bot will not place any new trades.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907423697":"Earn more with Deriv API","1907499654":"Deriv App","1907899646":"Take profit can't be adjusted for ongoing accumulator contracts.","1908023954":"Sorry, an error occurred while processing your request.","1908239019":"Make sure all of the document is in the photo","1908686066":"Appropriateness Test Warning","1909647105":"TRX/USD","1909769048":"median","1910533633":"Get a real account to deposit money and start trading.","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1916129921":"Reverse Martingale","1917178459":"Bank Verification Number","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1918796823":"Please enter a stop loss amount.","1918832194":"No experience","1919030163":"Tips to take a good selfie","1919296368":"2. Select your unit. In this example, it is 2 units or 2 USD.","1919594496":"{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.","1919694313":"To start trading, transfer funds from your Deriv account into this account.","1920217537":"Compare","1920468180":"How to use the SMA block","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1924365090":"Maybe later","1924765698":"Place of birth*","1928930389":"GBP/NOK","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1934450653":"For <0>Contract type, set it to Both.","1938327673":"Deriv {{platform}} <0>{{is_demo}}","1939014728":"How do I remove blocks from the workspace?","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1955219734":"Town/City*","1957759876":"Upload identity document","1958788790":"This is the amount you’ll receive at expiry for every point of change in the underlying price, if the spot price never touches or breaches the barrier throughout the contract duration.","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960240336":"first letter","1964165648":"Connection lost","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1966855430":"Account already exists","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1970060713":"You’ve successfully deleted a bot.","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973910243":"Manage your accounts","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1978218112":"Google Authenticator","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982790875":"Upgrade your <0/><1>{{account_title}} {{platform}} account(s)","1982796981":"Declarations","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983358602":"This policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","1983387308":"Preview","1983480826":"Sign in","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986322868":"When your loss reaches or exceeds this amount, your trade will be closed automatically.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1990331072":"Proof of ownership","1990735316":"Rise Equals","1991055223":"View the market price of your favourite assets.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1997313835":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <0>previous spot price. Otherwise, you lose your stake and the trade is terminated.","1999213036":"Enhanced security is just a tap away.","1999346412":"For faster verification, input the same address here as in your proof of address document (see section below)","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2001361785":"1. Start with the initial stake. Let’s say 1 USD.","2001717886":"Demo Standard","2004052487":"Estimating the lifespan of your trades","2007028410":"market, trade type, contract type","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2012139674":"Android: Google password manager.","2014536501":"Card number","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2017672013":"Please select the country of document issuance.","2018044371":"Multipliers let you trade with leverage and limit your risk to your stake. <0>Learn more","2019596693":"The document was rejected by the Provider.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023546580":"Your account will be available for trading once the verification of your account is complete.","2023659183":"Student","2023762268":"I prefer another trading website.","2025339348":"Move away from direct light — no glare","2027441253":"Why do we collect this?","2027625329":"Simple Moving Average Array (SMAA)","2027638150":"Upgrade","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037906477":"get sub-list from #","2038562422":"TIN is required.","2039198937":"Maximum stake: The maximum amount you are willing to pay to enter a single trade. The stake for your next trade will reset to the initial stake if it exceeds this value. This is an optional risk management parameter.","2042023623":"We’re reviewing your documents. This should take about 5 minutes.","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042115724":"Upload a screenshot of your account and personal details page with your name, account number, phone number, and email address.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2046273837":"Last tick","2046577663":"Import or choose your bot","2048110615":"Email address*","2048134463":"File size exceeded.","2049386104":"We need you to submit these in order to get this account:","2050170533":"Tick list","2051558666":"View transaction history","2051596653":"Demo Zero Spread BVI","2052022586":"To enhance your MT5 account security we have upgraded our password policy.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2056369950":"<0>To complete your Wallet setup, log out and then log in again.","2056526458":"Get real account","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2059365224":"Yes, you can get started with a pre-built bot using the Quick strategy feature. You’ll find some of the most popular trading strategies here: Martingale, D'Alembert, and Oscar's Grind. Just select the strategy, enter your trade parameters, and your bot will be created for you. You can always tweak the parameters later.","2059753381":"Why did my verification fail?","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063812316":"Text Statement","2063890788":"Cancelled","2066978677":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0 /> {{opening_date}}.","2067903936":"Driving licence","2070002739":"Don’t accept","2070345146":"When opening a leveraged CFD trade.","2070518923":"Import your bot or tap Quick Strategies to choose from the ready-to-use bot templates.","2070752475":"Regulatory Information","2070858497":"Your document appears to be a screenshot.","2071043849":"Browse","2074207096":"How to create a passkey?","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2074713563":"4.2. Submission of a complaint","2079925695":"Unit: The number of units that are added in the event of a trade resulting in loss or the number of units removed in the event of a trade resulting in profit. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2081622549":"Must be a number higher than {{ min }}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086048243":"Certificate of incorporation","2086792088":"Both barriers should be relative or absolute","2088344208":"Forex (standard), stock indices, commodities, cryptocurrencies, stocks, ETFs, synthetic indices, basket indices and derived FX","2088735355":"Your session and login limits","2089087110":"Basket indices","2089395053":"Unit","2089581483":"Expires on","2090650973":"The spot price may change by the time your order reaches our servers. When this happens, your payout may be affected.","2091671594":"Status","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2097815211":"Number of rounds (R) = 10","2097932389":"Upload 2 separate screenshots from the personal details page and the account page via <0>https://app.astropay.com/profile","2100713124":"account","2100912278":"4. If a trade ends in a loss, the stake for the following trade will be reset to the initial stake amount of 1 USD.","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104364680":"Please switch to your demo account to run your Deriv Bot.","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2107882050":"The back of your document appears to be missing. Please include both sides of your identity document.","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2113321581":"Add a Deriv Gaming account","2114766645":"Some trade types are unavailable for {{symbol}}.","2115223095":"Loss","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117489390":"Auto update in {{ remaining }} seconds","2118292085":"<0>Note: You’ll receive an email when your deposit starts being processed.","2119449126":"Example output of the below example will be:","2119710534":"FAQ","2121227568":"NEO/USD","2122152120":"Assets","2127564856":"Withdrawals are locked","2128919448":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price. We won’t offer a contract value if the remaining duration is below 15 seconds or if the contract duration is in ticks.","2129807378":"Update profile","2133075559":"This means after 10 rounds of consecutive losses, this trader will lose 100 USD. This reaches the loss threshold of 100 USD, stopping the bot.","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2136480755":"Some details in your document appear to be invalid, missing, or unclear.","2137645254":"If you select “<0>Call”, you’ll earn a <1>payout if the <2>final price is above the <3>strike price at <4>expiry. Otherwise, you won’t receive a payout.","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146698770":"Pro tip: You can also click and drag out the desired block","2146751355":"We use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers for Volatility Index, Basket Indices, Jump Indices and Crash/Boom Indices.","2146892766":"Binary options trading experience","2147244655":"How do I import my own trading bot into Deriv Bot?","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-826420669":"Make sure","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-1120954663":"First name*","-1659980292":"First name","-962979523":"Your {{ field_name }} as in your identity document","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-32386760":"Name","-766265812":"first name","-1857534296":"John","-1282749116":"last name","-1485480657":"Other details","-1784741577":"date of birth","-1702919018":"Second line of address (optional)","-1315410953":"State/Province","-2040322967":"Citizenship","-344715612":"Employment status*","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-946282997":"Additional information","-1315571766":"Place of birth","-789291456":"Tax residence*","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1387062433":"Account opening reason","-222283483":"Account opening reason*","-307865807":"Risk Tolerance Warning","-690100729":"Yes, I understand the risk.","-2010628430":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, you must confirm that you understand your capital is at risk.","-863770104":"Please note that by clicking ‘OK’, you may be exposing yourself to risks. You may not have the knowledge or experience to properly assess or mitigate these risks, which may be significant, including the risk of losing the entire sum you have invested.","-684271315":"OK","-1292808093":"Trading Experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-816263501":"Only letters, numbers, space and hyphen are allowed.","-755626951":"Complete your address details","-1024240099":"Address","-1534917661":"Select your preferred currency","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-1030759620":"Government Officers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-654781670":"Primary","-1717373258":"Secondary","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-477761028":"Voter ID","-1466346630":"CPF","-1161338910":"First name is required.","-1629185446":"Enter no more than 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-212167954":"Tax Identification Number is not properly formatted.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-204765990":"Terms of use","-739367071":"Employed","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-1116008222":"You should enter 9-35 numbers.","-1995979930":"First line of address is required.","-703454156":"Please enter a Postal/ZIP code under 20 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-1103497546":"Tax return","-700600899":"Business proof of address","-1073862586":"Memorandum","-1823328095":"Authorization letter","-397487797":"Enter your full card number","-1376950117":"That file format isn't supported. Please upload .pdf, .png, .jpg, or .jpeg files only.","-612752984":"These are default limits that we apply to your accounts.","-1498206510":"Account limits","-1411635770":"Learn more about account limits","-1340125291":"Done","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-976258774":"Not set","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-173346300":"Maximum daily turnover","-138380129":"Total withdrawal allowed","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-506122621":"Please take a moment to update your information now.","-252665911":"Place of birth{{required}}","-859814496":"Tax residence{{required}}","-237940902":"Tax Identification number{{required}}","-919191810":"Please fill in tax residence.","-270569590":"Intended use of account{{required}}","-2120290581":"Intended use of account is required.","-594456225":"Second line of address","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-1076138910":"Trade","-1666909852":"Payments","-488597603":"Trading information","-605778668":"Never","-1628008897":"Token","-1238499897":"Last Used","-2087317410":"Oops, something went wrong.","-184202848":"Upload file","-863586176":"Drag and drop a file or click to browse your files.","-370334393":"Click here to browse your files.","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-509054266":"Anticipated annual turnover","-1117345066":"Choose the document type","-1634507018":"Enter your {{document_name}}","-1237846864":"Verify again","-39187636":"{{index}}.","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1113902570":"Details","-2142540205":"It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.","-1451334536":"Continue trading","-251603364":"Your document for proof of address is expired. <0/>Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-329713179":"Ok","-2145244263":"This field is required","-1500958859":"Verify","-839094775":"Back","-1813671961":"Your identity verification failed because:","-2097808873":"We were unable to verify your ID with the details you provided. ","-1652371224":"Your profile is updated","-504784172":"Your document has been submitted","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1044962593":"Upload Document","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-155705811":"A clear colour photo or scanned image","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-1949501500":"First, enter your {{label}}.","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-841187054":"Try Again","-856213726":"You must also submit a proof of address.","-552371330":"We were unable to verify your income. <0 /> Please check the email we've sent you for further information.","-978467455":"Limit reached","-361316523":"You have reached the maximum number of allowed attempts for submitting proof of income. <0 /> Please check the email we've sent you for further information.","-1785967427":"We'll review your documents and notify you of its status within 7 working days.","-987011273":"Your proof of ownership isn't required.","-808299796":"You are not required to submit proof of ownership at this time. We will inform you if proof of ownership is required in the future.","-179726573":"We’ve received your proof of ownership.","-813779897":"Proof of ownership verification passed.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-47815161":"Please include at least 1 special character such as ( _ @ ? ! / # ) in your password.","-1313806160":"Please request a new password and check your email for the new token.","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-507633532":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character such as ( _ @ ? ! / # ).","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-2005211699":"Create","-1597186502":"Reset {{platform}} password","-638756912":"Black out digits 7 to 12 of the card number that’s shown on the front of your debit/credit card.⁤","-996691262":"We’ve introduced these limits to encourage <0>responsible trading. They are optional, and you can adjust them anytime.","-2079276011":"These limits apply to your multipliers trades only. For example, <0>maximum total loss refers to the losses on your multipliers trades.","-2116570030":"If you want to adjust your limits, <0>contact us via live chat. We’ll make the adjustments within 24 hours.","-1389915983":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or log in to resume trading. If you don’t want to set a specific limit, leave the field empty.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-1088698009":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-142444667":"Please click on the link in the email to change your Deriv MT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-474419287":"FATCA declaration","-1101737402":"Please select*","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1035494182":"You acknowledge that, subject to the Company's discretion, applicable regulations, and internal checks being fulfilled, we will open an account for you and allow you to deposit funds during the client acceptance procedure. However, until the verification of your account is completed, you will not be able to trade, withdraw or make further deposits. If you do not provide relevant documents within 30-days, we will refund the deposited amount through the same payment method you used to deposit.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-1209644365":"I hereby confirm that my request for opening an account with Deriv Investments (Europe) Ltd is made on my own initiative.","-740157281":"Trading Experience Assessment","-1720468017":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you.","-1685104463":"* This is required","-186841084":"Change your login email","-907403572":"To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.","-1850792730":"Unlink from {{identifier_title}}","-428335668":"You will need to set a password to complete the process.","-1232613003":"<0>Verification failed. <1>Why?","-805775852":"<0>Needs verification.<1>Verify now","-1983989074":"<0>No new positions","-1196936955":"Upload a screenshot of your name and email address from the personal information section.","-1286823855":"Upload your mobile bill statement showing your name and phone number.","-1309548471":"Upload your bank statement showing your name and account details.","-1410396115":"Upload a photo showing your name and the first six and last four digits of your card number. If the card does not display your name, upload the bank statement showing your name and card number in the transaction history.","-3805155":"Upload a screenshot of either of the following to process the transaction:","-1523487566":"- your account profile section on the website","-613062596":"- the Account Information page on the app","-1718304498":"User ID","-609424336":"Upload a screenshot of your name, account number, and email address from the personal details section of the app or profile section of your account on the website.","-1954436643":"Upload a screenshot of your username on the General Information page at <0>https://onlinenaira.com/members/index.htm","-79853954":"Upload a screenshot of your account number and phone number on the Bank Account/Mobile wallet page at <0>https://onlinenaira.com/members/bank.htm","-1192882870":"Upload a screenshot of your name and account number from the personal details section.","-818898181":"Name in document doesn’t match your Deriv profile.","-310316375":"Address in document doesn’t match address you entered above.","-485368404":"Document issued more than 6-months ago.","-91160765":"Document issued more than 12-months ago.","-367016488":"Blurry document. All information must be clear and visible.","-1957076143":"Cropped document. All information must be clear and visible.","-1576856758":"An account with these details already exists. Please make sure the details you entered are correct as only one real account is allowed per client. If this is a mistake, contact us via <0>live chat.","-1792723131":"To avoid delays, enter your <0>date of birth exactly as it appears on your {{document_name}}.","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-1231402474":"Connected apps are authorised applications associated with your account through your API token or the OAuth authorisation process. They can act on your behalf within the limitations that you have set.","-506083843":"As a user, you are responsible for sharing access and for actions that occur in your account (even if they were initiated by a third-party app on your behalf).","-831752682":"Please note that only third-party apps will be displayed on this page. Official Deriv apps will not appear here.","-915844096":"US citizenship or lawful permanent resident (green card) status","-208714573":"An “in care of” address or a “hold mail” address that is the sole address with respect to the client","-1082633433":"A power of attorney or signatory authority granted to a person with a US address.","-231863107":"No","-1858215754":"The document must be up-to-date and signed by the issuance authority.","-718917527":"Invalid or incomplete documents shall be rejected.","-1526404112":"Utility bill: electricity, water, gas, or landline phone bill.","-537552700":"Home rental agreement: valid and current agreement.","-506510414":"Date and time","-1708927037":"IP address","-189310067":"Account closed","-849320995":"Assessments","-773766766":"Email and passwords","-1144318594":"Passkeys","-1466827732":"Self exclusion","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-526636259":"Error 404","-870902742":"How much knowledge and experience do you have in relation to online trading?","-1929477717":"I have an academic degree, professional certification, and/or work experience related to financial services.","-1540148863":"I have attended seminars, training, and/or workshops related to trading.","-922751756":"Less than a year","-542986255":"None","-1337206552":"In your understanding, CFD trading allows you to","-456863190":"Place a position on the price movement of an asset where the outcome is a fixed return or nothing at all.","-1314683258":"Make a long-term investment for a guaranteed profit.","-1546090184":"How does leverage affect CFD trading?","-1636427115":"Leverage helps to mitigate risk.","-800221491":"Leverage guarantees profits.","-811839563":"Leverage lets you open large positions for a fraction of trade value, which may result in increased profit or loss.","-1185193552":"Close your trade automatically when the loss is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1046354":"Close your trade automatically when the profit is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1842858448":"Make a guaranteed profit on your trade.","-860053164":"When trading multipliers.","-1250327770":"When buying shares of a company.","-1222388581":"All of the above.","-1592318047":"See example","-1694758788":"Enter your document number","-1176889260":"Please select a document type.","-274764613":"Driver License Reference number","-1265050949":"identity document","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-254792921":"You can only make deposits at the moment. To enable withdrawals, please complete your financial assessment.","-1437017790":"Financial information","-70342544":"We’re legally obliged to ask for your financial information.","-39038029":"Trading experience","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-136976514":"Country of residence*","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2068064150":"Get updates about Deriv products, services and events.","-1558679249":"Please make sure your information is correct or it may affect your trading experience.","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-807767876":"Note:","-1117963487":"Name your token and click on 'Create' to generate your token.","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-2125635811":"Please withdraw your funds from the following {{platform_name}} account(s):","-577445413":"Please close your positions in the following {{platform_name}} account(s):","-1219849101":"Please select at least one reason","-9323953":"Remaining characters: {{remaining_characters}}","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-937707753":"Go Back","-771109503":"Use our powerful, flexible, and free API to build a custom trading platform for yourself or for your business.","-1815044949":"You currently don't have any third-party authorised apps associated with your account.","-1699100421":"What are connected apps?","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-1468863262":"{{action}}","-727433417":"{{status}}","-1814836151":"What are passkeys?","-1275937234":"Unlock your account like your phone - with biometrics, face scan or PIN.","-587750445":"Extra security layer.","-642452561":"Shields against unauthorised access and phishing.","-1654043401":"You can create one passkey per device.","-1411242065":"Where are passkeys saved?","-258752017":"What happens if my Deriv account email is changed?","-634268263":"Sign in to Deriv with your existing passkey.","-1700177761":"Create passkey","-1405679241":"Stored on: ","-567193224":"Rename","-1140319320":"Your account is now secured with a passkey.<0/>Manage your passkey through your<0/>Deriv account settings.","-592543249":"Add more passkeys","-331060101":"Passkey setup failed","-1036903080":"We’re experiencing a temporary issue in processing your request. Please try again later.","-713875531":"Enable bluetooth.","-1729774899":"Sign in to your Google or iCloud account.","-684009726":"Edit passkey","-1004529240":"Passkey name","-1728732301":"Effortless login with passkeys","-1708254107":"Enable Bluetooth.","-613368504":"Tips:","-1897886029":"Before using passkey:","-1893497054":"Only 3-30 characters allowed.","-80717068":"Apps you have linked to your <0>Deriv password:","-340060402":"Your Deriv X password is for logging in to your Deriv X accounts on the web and mobile apps.","-619126443":"Use the <0>Deriv password to log in to {{brand_website_name}} and {{platform_name_trader}}.","-623760979":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_trader}} and {{platform_name_go}}.","-459147994":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, {{platform_name_dbot}} and {{platform_name_ctrader}}.","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-2131200819":"Disable","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-2067796458":"Authentication code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-1043340733":"Proof of address documents upload failed","-890084320":"Save and submit","-30772747":"Your personal details have been saved successfully.","-2021135479":"This field is required.","-1002044401":"Select your document*","-1272489896":"Please complete this field.","-721346138":"The options and multipliers trading platform.","-1874136267":"The ultimate bot trading platform.","-415943890":"The legacy options trading platform.","-673722343":"The legacy bot trading platform.","-2018495421":"The mobile app for trading multipliers and accumulators.","-897826065":"The multipliers trading platform.","-2115275974":"CFDs","-1585707873":"Financial Commission","-199154602":"Vanuatu Financial Services Commission","-191165775":"Malta Financial Services Authority","-194969520":"Counterparty company","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1131400885":"Deriv Investments (Europe) Limited","-1471207907":"All assets","-781132577":"Leverage","-1591882610":"Synthetics","-543177967":"Stock indices","-362324454":"Commodities","-1959484303":"Cryptocurrencies","-1071336803":"Platform","-1879666853":"Deriv MT5","-820028470":"Options & Multipliers","-1210359945":"Transfer funds to your accounts","-1926387364":"We’ve sent your e-book to your email. You can also download it here.","-1057002564":"<0>We’re unable to upgrade you to Wallets at this time and are working to get this fixed as soon as we can. Please <1>try again<0>.","-1424352390":"<0>Wallets<1> — A smarter way to manage your funds","-1749409935":"Let's go","-145462920":"Deriv cTrader","-982095728":"Get","-1790089996":"NEW!","-1473281803":"Predict the market, profit if you’re right, risk only what you put in. <0>Learn more","-2134770229":"Total assets in your Deriv Apps and Deriv MT5 CFDs demo account.","-1277942366":"Total assets","-1255879419":"Trader's Hub","-493788773":"Non-EU","-673837884":"EU","-230566990":"The following documents you submitted did not pass our checks:","-846812148":"Proof of address.","-1146027991":"If you’d like to get the {{from_account}} account, resubmit these documents.","-710685402":"No new positions","-1445744852":"You can no longer open new positions with your {{from_account}} account. Please use your {{to_account}} account to open new positions.","-1699909965":"or ","-2127865736":"Your {{from_account}} account will be archived after 30 days of inactivity. You can still access your trade history until the account is archived.","-2055865877":"Non-EU regulation","-643108528":"Non-EU and EU regulation","-1815067117":"Start your trading journey","-1807332199":"Set up your real account","-1002556560":"We’re unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-90090878":"Use Wallets to manage your funds across different currencies effortlessly.","-280236366":"Enable now","-1186807402":"Transfer","-744999940":"Deriv account","-766186087":"{{trustScore}} out of 5 based on {{numberOfReviews}} reviews","-1265635180":"The products offered on our website are complex derivative products that carry a significant risk of potential loss. CFDs are complex instruments with a high risk of losing money rapidly due to leverage. 67.28% of retail investor accounts lose money when trading CFDs with this provider. You should consider whether you understand how these products work and whether you can afford to take the high risk of losing your money.","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1975494965":"Cashier","-42592103":"Deposit cryptocurrencies","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-520142572":"Cashier is currently down for maintenance","-1552080215":"Please check back in a few minutes.<0>Thank you for your patience.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-954082208":"Your cashier is currently locked. Please contact us via <0>live chat to find out how to unlock it.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-2027907316":"You can make a withdrawal once the verification of your account is complete.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-599998434":"You cannot make a fund transfer as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-1443721737":"Your cashier is locked. See <0>how we protect your funds before you proceed.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-1923809087":"Unfortunately, you can only make deposits. Please contact us via <0>live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-1272778997":"We've sent you an email.","-89973258":"Resend email in {{seconds}}s","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1294455996":"Deriv P2P unavailable","-1838982691":"UNKNOWN","-532693866":"Something went wrong. Please refresh the page and try again.","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-203002433":"Deposit now","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-379487596":"{{selected_percentage}}% of available balance ({{format_amount}} {{currency__display_code}})","-1957498244":"more","-1059419768":"Notes","-646217148":"We process your deposits internally within 24 hours (depending on internal checks and your payment method). If you don't see your funds reflected after this time, please contact us via <0>live chat with proof of your transaction, including the amount, date, and time.","-1901728198":"What do I do if I have reached my deposit limit?","-631829734":"<0>Insufficient balance: Please ensure you have sufficient funds in your card/e-wallet. If the problem persists, please contact your bank for help.","-1072505739":"<0>3D secure invalid/redirected: Please contact your bank for an OTP.","-180339757":"<0>Restricted card: Please use a locally issued card. ","-645281699":"<0>Customer cancelled payment: Please try again after 1 hour.","-102611677":"Can I use someone else's payment method?","-951380652":"No, you cannot use someone else's payment method to deposit into Deriv. If you use another person's payment method, your account will be suspended (if they are on Deriv, their account will also be suspended). If you suspect that someone has used your payment method, let us know through <0>live chat with your proof of ownership.","-819152742":"If you have used a different payment method to make your deposit, you cannot withdraw via a payment agent. However, if you have used both a payment agent and another payment method (for example, an e-wallet) to deposit, you have to withdraw via the e-wallet first up to your original deposited amount. After that, you can use a payment agent to make a withdrawal. If your original payment method is not available for withdrawals, please let us know through <0>live chat for assistance.","-820131811":"Can I withdraw using a different method?","-1656533423":"No, withdrawals must be made using the same method you used for your deposit.","-190084602":"Transaction","-1995606668":"Amount","-2024290965":"Confirmations","-811190405":"Time","-728508487":"{{currency}} recent transactions","-1984478597":"The details of this transaction is available on CoinsPaid.","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-1787304306":"Deriv P2P","-174976899":"P2P verification","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-922143389":"Deriv P2P is currently unavailable in this currency.","-1310327711":"Deriv P2P is currently unavailable in your country.","-1463156905":"Learn more about payment methods","-685073712":"This is your <0>{{currency}} account {{loginid}}.","-1547606079":"We accept the following cryptocurrencies:","-1517325716":"Deposit via the following payment methods:","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-917092420":"To change your account currency, contact us via <0>live chat.","-515809216":"Send only {{currency_name}} ({{currency_code}}) to this address.","-748636591":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, a fee is applied.","-1589407981":"To avoid loss of funds:","-1042704302":"Make sure to copy your Deriv account address correctly into your crypto wallet.","-2108344100":"Looking for a way to buy cryptocurrencies? <0>Try Fiat onramp.","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-91824739":"Deposit {{currency}}","-523804269":"{{amount}} {{currency}} on {{date}}","-494847428":"Address: <0>{{value}}","-1117977576":"Confirmations: <0>{{value}}","-1935946851":"View more","-1744490898":"Unfortunately, we cannot retrieve the information at this time. ","-338505133":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, between your Deriv fiat and {{platform_name_ctrader}} accounts, and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1339063554":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_ctrader}}, and {{platform_name_dxtrade}} accounts.","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-855721928":"Needs verification","-908402700":"Verification failed","-1866405488":"Deriv cTrader accounts","-1344870129":"Deriv accounts","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-1155970854":"You have reached the maximum daily transfers. Please try again tomorrow.","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1949883551":"You only have one account","-1149845849":"Back to Trader's Hub","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1254233806":"You've transferred","-953082600":"Some payment methods may not be listed here but payment agents may still offer them. If you can’t find your favourite method, contact the payment agents directly to check further.","-1491457729":"All payment methods","-142563298":"Contact your preferred payment agent for payment instructions and make your deposit.","-352134412":"Transfer limit","-1023961762":"Commission on deposits","-552873274":"Commission on withdrawal","-880645086":"Withdrawal amount","-118683067":"Withdrawal limits: <0 />-<1 />","-1125090734":"Important notice to receive your funds","-1924707324":"View transaction","-1474202916":"Make a new withdrawal","-511423158":"Enter the payment agent account number","-2059278156":"Note: {{website_name}} does not charge any transfer fees.","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-873886836":"Do not enter an address linked to an initial coin offering (ICO) purchase or crowdsale. If you do, the initial coin offering (ICO) tokens will not be credited into your account.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-1430080977":"Priority withdrawal","-1046088265":"Withdrawal amount:","-694919384":"Transaction fee","-1358465817":"Fee calculated at {{ time_stamp }}","-1744540779":"Amount received:","-38063175":"{{account_text}} wallet","-652125858":"Amount received","-705272444":"Upload a proof of identity to verify your identity","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-2067572496":"You’ve just stopped the bot. Any open contracts can be viewed on the Reports page.","-992003496":"Changes you make will not affect your running bot.","-1778025545":"You’ve successfully imported a bot.","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-179005984":"Save","-610059687":"Exploring the D’Alembert strategy in Deriv Bot","-1226666341":"The D'Alembert strategy involves increasing your stake after a losing trade and reducing it after a successful trade by a predetermined number of units.","-312844882":"Initial stake: The amount that you are willing to place as a stake to enter a trade. This is the starting point for any changes in stake depending on the dynamic of the strategy being used.","-1173302981":"1. Start with the initial stake. In this example, we’ll use 1 USD.","-1540106116":"Profit and loss thresholds","-894905768":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss thresholds are reached. It's a form of risk management that can potentially enhance returns. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1946134465":"Where:","-248283982":"B is the loss threshold.","-1148521416":"f is the unit increment.","-211800490":"D’Alembert formula 2","-1772692202":"This formula helps you plan your trades by considering the amount of money you have and your comfort level with risk. It involves determining your loss threshold and the initial stake you want to trade with. Then, you use this formula to calculate the number of rounds you can trade. This process provides insight into stake sizing and expectations.","-2107238266":"The D'Alembert system offers more balanced trading through controlled stake progression. With prudent risk management like stake limits, it can be effectively automated in Deriv Bot. However, traders should thoroughly assess their risk appetite, test strategies on a demo account to align with their trading style before trading with real money. This allows optimising the approach and striking a balance between potential gains and losses whilst managing risk.","-500873566":"Disclaimer:","-344769349":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-818800551":"Exploring the Martingale strategy in Deriv Bot","-533490374":"These are the trade parameters used in Deriv Bot with Martingale strategy.","-1507161059":"Multiplier: The multiplier used to increase your stake if you're losing a trade. The value must be greater than 1.","-1333404686":"An example of Martingale strategy","-1755877136":"3. If the first trade ends in a loss, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every losing trade.","-1297651002":"If you're about to start trading and haven't established a Maximum Stake as part of your risk management strategy, you can determine how long your funds will last by employing the Martingale strategy. Simply use this formula.","-46865201":"Martingale formula 1","-116397598":"m is the Martingale multiplier.","-658161609":"Number of rounds, R ≈ 9.965","-288082521":"This means that after 10 rounds of consecutive losses, this trader will lose 1023 USD which exceeds the loss threshold of 1000 USD, stopping the bot.","-770387160":"The Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","-1901073152":"These are the trade parameters used for Oscar’s Grind strategy in Deriv Bot.","-1575153036":"An example of Oscar’s Grind strategy","-732418614":"The table above demonstrates this principle by showing that when a successful trade occurs and meets the target of one unit of potential profit which is 1 USD in this example, the session ends. If trading continues, a new session will begin.","-106266344":"Principle 3: The stake adjusts to the gap size between current loss and the target profit for the session","-492908094":"In round 7, the stake is adjusted downwards from 2 USD to 1 USD, to meet the target profit of 1 USD.","-90079299":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss threshold is reached. This is a form of risk management that can potentially boost successful trades whilst limiting the impact of loss. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1549673884":"The Oscar's Grind strategy provides a disciplined approach for incremental gains through systematic stake progression. When integrated into Deriv Bot with proper risk management like profit or loss thresholds, it offers traders a potentially powerful automated trading technique. However, traders should first thoroughly assess their risk tolerance and first try trading on a demo account in order to familiarise with the strategy before trading with real funds.","-655650222":"Exploring the Reverse D’Alembert strategy in Deriv Bot","-1864807973":"The Reverse D'Alembert strategy involves increasing your stake after a successful trade and reducing it after a losing trade by a predetermined number of units.","-809681645":"These are the trade parameters used in Deriv Bot with Reverse D’Alembert strategy.","-1239374257":"An example of Reverse D’Alembert strategy","-309821442":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-1576691912":"This article explores the Reverse Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","-1934849823":"These are the trade parameters used in Deriv Bot with Reverse Martingale strategy.","-1021919630":"Multiplier: The multiplier used to increase your stake if your trade is successful. The value must be greater than 1.","-760516362":"3. If the first trade is a successful trade, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every successful trade.","-1410950365":"Exploring the 1-3-2-6 strategy in Deriv Bot","-1175255072":"These are the trade parameters used in Deriv Bot with 1-3-2-6 strategy.","-183884527":"An example of 1-3-2-6 strategy","-275617819":"4. However, if any trade results in a loss, your stake will reset back to the initial stake of 1 USD for the next trade. The third trade results in a loss hence the stake resets to the initial stake of 1 USD for the next trade.","-719846465":"5. Upon reaching the initial stake, if the next trade still results in a loss, your stake will remain at the initial stake of 1 USD. This strategy will minimally trade at the initial stake. Refer to the fourth and fifth trade.","-1452746011":"The 1-3-2-6 strategy in trading may offer substantial gains but also comes with significant risks. Each stake is independent, and the strategy does not increase your chances of successful trades in the long run. If you encounter a series of losses, the strategy can lead to significant losses. Therefore, it is crucial for traders to assess their risk tolerance, practice in a demo account, utilise profit and loss thresholds, and fully comprehend the strategy before engaging in real-money trading.","-1016171176":"Asset","-138833194":"The underlying market your bot will trade with this strategy.","-621128676":"Trade type","-399349239":"Your bot will use this trade type for every run","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-447853970":"Loss threshold","-33106112":"The size used to multiply the stake after a successful trade for the next trade.","-1503301801":"The value must be equal or greater than {{ min }}","-1596504046":"Number of unit(s) to be added to the next trade after a successful trade. One unit is equivalent to the amount of initial stake.","-1521098535":"Max stake","-1448426542":"The stake for your next trade will reset to the initial stake if it exceeds this value.","-993953307":"Your prediction of the last digit of the asset price.","-1305281529":"D’Alembert","-1842451303":"Welcome to Deriv Bot!","-1391310674":"Check out these guides and FAQs to learn more about building your bot:","-2066779239":"FAQs","-280324365":"What is Deriv Bot?","-155173714":"Let’s build a bot!","-2093569327":"How to build a basic trading bot with Deriv Bot","-2072114761":"How to use Martingale strategy on Deriv Bot","-1919212468":"3. You can also search for the blocks you want using the search bar above the categories.","-1800386057":"For more info, check out this blog post on the basics of building a trading bot.","-980360663":"3. Choose the block you want and drag it to the workspace.","-1493168314":"What is a quick strategy?","-1680391945":"Using a quick strategy","-1177914473":"How do I save my strategy?","-271986909":"In Bot Builder, hit Save on the toolbar at the top to download your bot. Give your bot a name, and choose to download your bot to your device or Google Drive. Your bot will be downloaded as an XML file.","-1149045595":"1. After hitting Import, select Local and click Continue.","-288041546":"2. Select your XML file and hit Open.","-2127548288":"3. Your bot will be loaded accordingly.","-1311297611":"1. After hitting Import, select Google Drive and click Continue.","-1549564044":"How do I reset the workspace?","-1127331928":"In Bot Builder, hit Reset on the toolbar at the top. This will clear the workspace. Please note that any unsaved changes will be lost.","-1720444288":"How do I control my losses with Deriv Bot?","-1142295124":"There are several ways to control your losses with Deriv Bot. Here’s a simple example of how you can implement loss control in your strategy:","-2129119462":"1. Create the following variables and place them under Run once at start:","-1918487001":"Example:","-468926787":"This is how your trade parameters, variables, and trade options should look like:","-1565344891":"Can I run Deriv Bot on multiple tabs in my web browser?","-213872712":"No, we don't offer cryptocurrencies on Deriv Bot.","-2147346223":"In which countries is Deriv Bot available?","-792737139":"We offer our services in all countries, except for the ones mentioned in our terms and conditions.","-352345777":"What are the most popular strategies for automated trading?","-552392096":"Three of the most commonly used strategies in automated trading are Martingale, D'Alembert, and Oscar's Grind — you can find them all ready-made and waiting for you in Deriv Bot.","-1630262763":"About Martingale","-413928457":"About Oscar's Grind","-1497015866":"About Reverse D’Alembert","-437005403":"About 1-3-2-6","-590765322":"Unfortunately, this trading platform is not available for EU Deriv account. Please switch to a non-EU account to continue trading.","-2110207996":"Deriv Bot is unavailable for this account","-971295844":"Switch to another account","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-1223145005":"Loss amount: {{profit}}","-1206212388":"Welcome back! Your messages have been restored. You are using your {{current_currency}} account.","-1724342053":"You are using your {{current_currency}} account.","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-555886064":"Won","-529060972":"Lost","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-224804428":"Transactions","-287223248":"No transaction or activity yet.","-418247251":"Download your journal.","-2123571162":"Download","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-558594655":"The bot is not running","-478946875":"The stats are cleared","-999254545":"All messages are filtered out","-934909826":"Load strategy","-2005347537":"Importing XML files from Binary Bot and other third-party platforms may take longer.","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-24780060":"When you’re ready to trade, hit ","-2147110353":". You’ll be able to track your bot’s performance here.","-1442034178":"Contract bought","-2020280751":"Bot is stopping","-1436403979":"Contract closed","-411060180":"TradingView Chart","-627895223":"Exit spot","-2140412463":"Buy price","-1299484872":"Account","-2004386410":"Win","-266502731":"Transactions detailed summary","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-596238067":"Entry/Exit spot","-1823621139":"Quick Strategy","-1782602933":"Choose a template below and set your trade parameters.","-315611205":"Strategy","-1524489375":"(optional)","-150224710":"Yes, continue","-475765963":"Edit the amount","-1349897832":"Do not show this message again.","-984512425":"Minimum duration: {{ value }}","-2084091453":"The value must be equal or greater than {{ value }}","-657364297":"The value must be equal or less than {{ value }}","-1696412885":"Import","-320197558":"Sort blocks","-939764287":"Charts","-1566369363":"Zoom out","-1285759343":"Search","-1291088318":"Purchase conditions","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1692205739":"Import a bot from your computer or Google Drive, build it from scratch, or start with a quick strategy.","-1150390589":"Last modified","-1393876942":"Your bots:","-1545070554":"Delete bot","-1972599670":"Your bot will be permanently deleted when you hit ","-1692956623":"Yes, delete.","-573479616":"Are you sure you want to delete it?","-786915692":"You are connected to Google Drive","-1256971627":"To import your bot from your Google Drive, you'll need to sign in to your Google account.","-1233084347":"To know how Google Drive handles your data, please review Deriv’s <0>Privacy policy.","-1150107517":"Connect","-767342552":"Enter your bot name, choose to save on your computer or Google Drive, and hit ","-1372891985":"Save.","-1003476709":"Save as collection","-636521735":"Save strategy","-1953880747":"Stop my bot","-1899230001":"Stopping the current bot will load the Quick Strategy you just created to the workspace.","-2131847097":"Any open contracts can be viewed on the ","-563774117":"Dashboard","-683790172":"Now, <0>run the bot to test out the strategy.","-1127164953":"Hi! Hit <0>Start for a quick tour.","-358288026":"Note: You can also find this tutorial in the <0>Tutorials tab.","-129587613":"Got it, thanks!","-1793577405":"Build from scratch","-358753028":"Create your bot using our drag-and-drop blocks or click Quick Strategy to choose from the ready-to-use bot templates.","-1212601535":"Monitor the market","-21136101":"See how your bot is doing in real-time.","-631097919":"Click <0>Run when you want to start trading, and click <0>Stop when you want to stop.","-1999747212":"Want to retake the tour?","-782992165":"Step 1 :","-1207872534":"First, set the <0>Trade parameters block.","-1656388044":"First, set <0>Market to Derived > Continuous Indices > Volatility 100 (1s) Index.","-1706298865":"Then, set <0>Trade type to Up/Down > Rise/Fall.","-1834358537":"For <0>Default candle interval, set it to 1 minute","-1940971254":"For <0>Trade options, set it as below:","-512839354":"<0>Stake: USD 10 (min: 0.35 - max: 50000)","-753745278":"Step 2 :","-1056713679":"Then, set the <0>Purchase conditions block.","-245497823":"<0>2. Purchase conditions:","-916770284":"<0>Purchase: Rise","-758077259":"Step 3 :","-677396944":"Step 4 :","-295975118":"Next, go to <0>Utility tab under the Blocks menu. Tap the drop-down arrow and hit <0>Loops.","-698493945":"Step 5 :","-1992994687":"Now, tap the <0>Analysis drop-down arrow and hit <0>Contract.","-1844492873":"Go to the <0>Last trade result block and click + icon to add the <0>Result is Win block to the workspace.","-1547091772":"Then, drag the <0>Result is win into the empty slot next to <0>repeat until block.","-736400802":"Step 6 :","-732067680":"Finally, drag and add the whole <0>Repeat block to the <0>Restart trading conditions block.","-1411787252":"Step 1","-1109392787":"Learn how to build your bot from scratch using a simple strategy.","-1263822623":"You can import a bot from your mobile device or from Google drive, see a preview in the bot builder, and start trading by running the bot.","-563921656":"Bot Builder guide","-1596172043":"Quick strategy guides","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-1717650468":"Online","-1309011360":"Open positions","-1597214874":"Trade table","-1929724703":"Compare CFD accounts","-883103549":"Account deactivated","-45873457":"NEW","-1837059346":"Buy / Sell","-1845037007":"Advertiser's page","-494667560":"Orders","-679691613":"My ads","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-377375279":"Standard","-1582979384":"Standard Demo","-1212531781":"Standard BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-291535132":"Swap-Free Demo","-499019612":"Zero Spread Demo","-1472945832":"Swap-Free SVG","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-2063700253":"disabled","-1585069798":"Please click the following link to complete your Appropriateness Test.","-1287141934":"Find out more","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1601813176":"Would you like to increase your daily limits to {{max_daily_buy}} {{currency}} (buy) and {{max_daily_sell}} {{currency}} (sell)?","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1744163489":"Please verify your proof of income","-382676325":"To continue trading with us, please submit your proof of income.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-493564794":"Please complete your financial assessment.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-1728185398":"Resubmit proof of address","-612396514":"Please resubmit your proof of address.","-1519764694":"Your proof of address is verified.","-1629185222":"Submit now","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-1392958585":"Please check your email.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-2136953532":"Scheduled cashier maintenance","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-949074612":"Please contact us via live chat.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1706642239":"<0>Proof of ownership <1>required","-553262593":"<0><1>Your account is currently locked <2><3>Please upload your proof of <4>ownership to unlock your account. <5>","-1834929362":"Upload my document","-1043638404":"<0>Proof of ownership <1>verification failed","-1766760306":"<0><1>Please upload your document <2>with the correct details. <3>","-8892474":"Start assessment","-1330929685":"Please submit your proof of identity and proof of address to verify your account and continue trading.","-99461057":"Please submit your proof of address to verify your account and continue trading.","-577279362":"Please submit your proof of identity to verify your account and continue trading.","-197134911":"Your proof of identity is expired","-152823394":"Your proof of identity has expired. Please submit a new proof of identity to verify your account and continue trading.","-822813736":"We're unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-978414767":"We require additional information for your Deriv MT5 account(s). Please take a moment to update your information now.","-482715448":"Go to Personal details","-2072411961":"Your proof of address has been verified","-384887227":"Update the address in your profile.","-1470677931":"CFDs on financial instruments.","-1595662064":"Zero spread CFDs on financial and derived instruments","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-1591792668":"Account Limits","-34495732":"Regulatory information","-1323441180":"I hereby confirm that my request for opening an account with Deriv to trade OTC products issued and offered exclusively outside Brazil was initiated by me. I fully understand that Deriv is not regulated by CVM and by approaching Deriv I intend to set up a relation with a foreign company.","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-288996254":"Unavailable","-1308346982":"Derived","-1019903756":"Synthetic","-735306327":"Manage accounts","-1813972756":"Account creation paused for 24 hours","-366030582":"Sorry, you're unable to create an account at this time. As you declined our previous risk warnings, we need you to wait for 24 hours after your first account creation attempt before you can proceed.<0/><0/>","-534047566":"Thank you for your understanding. You can create your account on {{real_account_unblock_date}} or later.","-399816343":"Trading Experience Assessment<0/>","-1822498621":"As per our regulatory obligations, we are required to assess your trading knowledge and experience.<0/><0/>Please click ‘OK’ to continue","-71049153":"Keep your account secure with a password","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1146960797":"Fiat currencies","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1740162250":"Manage account","-1016775979":"Choose an account","-1362081438":"Adding more real accounts has been restricted for your country.","-1602122812":"24-hour Cool Down Warning","-1519791480":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the risk of losing your money. <0/><0/>\n As you have declined our previous warning, you would need to wait 24 hours before you can proceed further.","-1010875436":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, kindly note that you would need to wait 24 hours before you can proceed further.","-1725418054":"By clicking ‘Accept’ and proceeding with the account opening, you should note that you may be exposing yourself to risks. These risks, which may be significant, include the risk of losing the entire sum invested, and you may not have the knowledge and experience to properly assess or mitigate them.","-730377053":"You can’t add another real account","-2100785339":"Invalid inputs","-2061807537":"Something’s not right","-272953725":"Your details match an existing account. If you need help, contact us via <0>live chat.","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-437918412":"No currency assigned to your account","-1193651304":"Country of residence","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1976089791":"Your Deriv account has been unlinked from your {{social_identity_provider}} account. You can now log in to Deriv using your new email address and password.","-505449293":"Enter a new password for your Deriv account.","-243732824":"Take me to Demo account","-1269078299":"I will setup my real account later.","-1342699195":"Total profit/loss:","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-813256361":"We are committed to treating our clients fairly and providing them with excellent service.<0/><1/>We would love to hear from you on how we can improve our services to you. Any information you provide will be treated in the strictest confidence. Rest assured that you will be heard, valued, and always treated fairly.","-1622847732":"If you have an inquiry regarding your trading account with {{legal_entity_name}}, you can contact us through our <0>Help centre or by chatting with a representative via <1>Live Chat.<2/><3/>We are committed to resolving your query in the quickest time possible and appreciate your patience in allowing us time to resolve the matter.<4/><5/>We strive to provide the best possible service and support to our customers. However, in the event that we are unable to resolve your query or if you feel that our response is unsatisfactory, we want to hear from you. We welcome and encourage you to submit an official complaint to us so that we can review your concerns and work towards a resolution.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-1280998762":"4. Complaints","-1886635232":"A complaint is any expression of dissatisfaction by a client regarding our products or services that requires a formal response.<0/><1/>If what you submit does not fall within the scope of a complaint, we may reclassify it as a query and forward it to the relevant department for handling. However, if you believe that your query should be classified as a complaint due to its relevance to the investment services provided by {{legal_entity_name}}, you may request that we reclassify it accordingly.","-1771496016":"To submit a complaint, please send an email to <0>complaints@deriv.com, providing as much detail as possible. To help us investigate and resolve your complaint more efficiently, please include the following information:","-1197243525":"<0>•A clear and detailed description of your complaint, including any relevant dates, times, and transactions","-1795134892":"<0>•Any relevant screenshots or supporting documentation that will assist us in understanding the issue","-2053887036":"4.4. Handling your complaint","-717170429":"Once we have received the details of your complaint, we shall review it carefully and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","-1841922393":"4.5. Resolving your complaint","-1327119795":"4.6. Your decision","-2019654103":"If we are unable to resolve your complaint or you are not satisfied with the outcome, you can escalate your complaint to the Office of the Arbiter for Financial Services.<0/><1/><2>Filing complaints with the Office of the Arbiter for Financial Services","-687172857":"<0>•You may file a complaint with the Arbiter for Financial Services only if you are not satisfied with our decision or the decision wasn’t made within 15 business days.","-262934706":"<0>•If the complaint is accepted by the Arbiter, you will receive another email with further details relating to the payment of the €25 complaint fee and the processes that follow.","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-583559763":"Menu","-673424733":"Demo account","-162753510":"Add real account","-1685795001":"Demo Wallet","-319395348":"Looking for CFDs? Go to Trader’s Hub","-554054753":"Get started","-1364763296":"No need to remember a password","-1274467503":"Sync across devices","-2036288743":"Enhanced security with biometrics or screen lock ","-143216768":"Learn more about passkeys <0> here.","-778309978":"The link you clicked has expired. Ensure to click the link in the latest email in your inbox. Alternatively, enter your email below and click <0>Resend email for a new link.","-2007055538":"Information updated","-941870889":"The cashier is for real accounts only","-352838513":"It looks like you don’t have a real {{regulation}} account. To use the cashier, switch to your {{active_real_regulation}} real account, or get an {{regulation}} real account.","-1858915164":"Ready to deposit and trade for real?","-1208519001":"You need a real Deriv account to access the cashier.","-715867914":"Successfully deposited","-1271218821":"Account added","-197631101":"Your funds will be available for trading once the verification of your account is complete.","-835056719":"We’ve received your documents","-55435892":"We’ll need 1 - 3 days to review your documents and notify you by email. You can practice with demo accounts in the meantime.","-1916578937":"<0>Explore the exciting new features that your Wallet offers.","-1724438599":"<0>You're almost there!","-1089300025":"We don’t charge deposit fees! Once your account is verified, you will be able to trade, make additional deposits, or withdraw funds.","-476018343":"Live Chat","-310434518":"The email input should not be empty.","-1471705969":"<0>{{title}}: {{trade_type_name}} on {{symbol}}","-1771117965":"Trade opened","-1856112961":"The URL you requested isn’t available","-304807228":"<0>You’re not logged in, or<0>Our services are unavailable in your country.","-1567989247":"Submit your proof of identity and address","-523602297":"Forex majors","-1303090739":"Up to 1:1500","-19213603":"Metals","-1264604378":"Up to 1:1000","-1728334460":"Up to 1:300","-646902589":"(US_30, US_100, US_500)","-705682181":"Malta","-1835174654":"1:30","-1647612934":"Spreads from","-1912437030":"about required verifications.","-466784048":"Regulator/EDR","-2098459063":"British Virgin Islands","-1326848138":"British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","-1711743223":"Forex (standard/micro), stocks, stock indices, commodities, cryptocurrencies and ETFs","-1372141447":"Straight-through processing","-1969608084":"Forex and Cryptocurrencies","-800771713":"Labuan Financial Services Authority (licence no. MB/18/0024)","-1497128311":"80+","-1689815930":"You will need to submit proof of identity and address once you reach certain thresholds.","-1175785439":"Deriv (SVG) LLC (company no. 273 LLC 2020)","-1344709651":"40+","-139026353":"A selfie of yourself.","-1228847561":"Verification in review.","-618322245":"Verification successful.","-149461870":"Forex: standard/exotic","-1995163270":"ETFs","-1220727671":"Standard - SVG","-865172869":"Financial - BVI","-1851765767":"Financial - Vanuatu","-558597854":"Financial - Labuan","-2052425142":"Swap-Free - SVG","-1192904361":"Deriv X Demo","-283929334":"Deriv cTrader Demo","-1269597956":"MT5 Platform","-1302404116":"Maximum leverage","-239789243":"(License no. SIBA/L/18/1114)","-941636117":"MetaTrader 5 Linux app","-1434036215":"Demo Financial","-659955365":"Swap-Free","-1416247163":"Financial STP","-1637969571":"Demo Swap-Free","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-860609405":"Password","-742647506":"Fund transfer","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-790488576":"Forgot password?","-476558960":"If you don’t have open positions","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-12535938":"*Volatility 250 Index, Volatility 150 Index, Boom 300 and Crash 300 Index","-2104148631":"Commissions apply","-201485855":"Up to","-700260448":"demo","-1769158315":"real","-1922462747":"Trader's hub","-16858060":"You have a new Deriv MT5 password to log in to your Deriv MT5 accounts on the web and mobile apps.","-1868608634":"Current password","-2092058806":"8 to 16 characters","-2051033705":"A special character such as ( _ @ ? ! / # )","-1762249687":"A lowercase letter","-1123437857":"You are adding your {{platform}} {{product}} account under {{company}}, regulated by the British Virgin\n Islands Financial Services Commission (licence no. SIBA/L/18/1114).","-535365199":"Enter your {{platform}} password to add a {{platform_name}} {{account}} account.","-184453418":"Enter your {{platform}} password","-393388362":"We’re reviewing your documents. This should take about 1 to 3 days.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-267598687":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. To start trading, <1 />transfer funds <2 />from your Deriv account into this account.","-1475660820":"Your Deriv MT5 {{type}} account is ready. ","-1184248732":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. ","-1928229820":"Reset Deriv X investor password","-1969916895":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character ( _ @ ? ! / # ).","-1087845020":"main","-1950683866":"investor","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-1615126227":"Manage up to {{max_count}} Deriv cTrader accounts. While you can convert any of your Deriv cTrader accounts into a strategy account, please take note of the following:","-1547739386":"To ensure you can always create and manage strategies with fees, <0>keep at least one account free from being a strategy provider. This way, you’ll always have an account ready for collecting fees, allowing you to have up to four strategies where you may impose fees.","-2145356061":"Download Deriv X on your phone to trade with the Deriv X account","-1547458328":"Run cTrader on your browser","-747382643":"Get another cTrader account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-499504077":"Choose a cTrader account to transfer","-251202291":"Broker","-678964540":"to","-206829624":"(1:x)","-616293830":"Enjoy dynamic leverage of <0>up to 1:1500 when trading selected instruments in the forex, commodities, cryptocurrencies, and stock indices markets. Our dynamic leverage adjusts automatically to your trading position, based on asset type and trading volume.","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-21438174":"Add your Deriv cTrader account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-271828350":"Get more out of Deriv MT5 Financial","-2125860351":"Choose a jurisdiction for your Deriv MT5 CFDs account","-1460321521":"Choose a jurisdiction for your {{account_type}} account","-637537305":"Download {{ platform }} on your phone to trade with the {{ platform }} {{ account }} account","-964130856":"{{existing_account_title}}","-879259635":"Enter your Deriv MT5 password to upgrade your account(s).","-1504907646":"Deriv MT5 password","-361998267":"We've introduced additional password requirements to increase your account security. Your password should:","-996995493":"Be between 8 to 16 characters.","-219163415":"Contain at least one special character.","-1446636186":"By clicking on <0>Next you agree to move your {{platform}} {{type_1}} and {{type_2}} {{from_account}} account(s) under Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","-1766387013":"Upgrade your MT5 account(s)","-990927225":"Enter your Deriv MT5 password","-1486399361":"Trade with MT5 mobile app","-301350824":"Note: Don't have the MT5 app? Tap the <0>Trade with MT5 mobile app button to download. Once you have\n installed the app, return to this screen and hit the same button to log in.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-601303096":"Scan the QR code to download Deriv {{ platform }}.","-1357917360":"Web terminal","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-1386326276":"Barrier is a required field.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-256210543":"Trading is unavailable at this time.","-1150099396":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a Deriv MT5 Financial.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-1013917510":"The reset time is {{ reset_time }}","-925402280":"Indicative low spot","-1075414250":"High spot","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1371082433":"Reset barrier","-1402197933":"Reset time","-2035315547":"Low barrier","-1745835713":"Selected tick","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-104603605":"You cannot trade as your documents are still under review. We will notify you by email once your verification is approved.","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-347156282":"Submit Proof","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-1043795232":"Recent positions","-153220091":"{{display_value}} Tick","-802374032":"Hour","-1700010072":"This feature is unavailable for tick intervals. Switch to minutes, hours, or days.","-663862998":"Markets","-1341681145":"When this is active, you can cancel your trade within the chosen time frame. Your stake will be returned without loss.","-2069438609":"No matches found","-97673874":"No closed trades","-1727419550":"Your closed trades will be shown here.","-225500551":"Entry & exit details","-1022682526":"Your favourite markets will appear here.","-315741954":"{{amount}} trade types","-232254547":"Custom","-1251526905":"Last 7 days","-1539223392":"Last 90 days","-1123299427":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <1>previous spot price. Otherwise, you lose your stake and the trade is terminated.","-1052279158":"Your <0>payout is the sum of your initial stake and profit.","-274058583":"<0>Take profit is an additional feature that lets you manage your risk by automatically closing the trade when your profit reaches the target amount. This feature is unavailable for ongoing accumulator contracts.","-1819891401":"You can close your trade anytime. However, be aware of <0>slippage risk.","-859589563":"If you select “<0>Odd”, you will win the payout if the last digit of the last tick is an odd number (i.e. 1, 3, 5, 7, or 9).","-1911850849":"If the exit spot is equal to the barrier, you don’t win the payout.","-618782785":"Use multipliers to leverage your potential returns. Predict if the asset price will move upward (bullish) or downward (bearish). We’ll charge a commission when you open a multipliers trade.","-565391674":"If you select \"<0>Up\", your total profit/loss will be the percentage increase in the underlying asset price, times the multiplier and stake, minus commissions.","-1158764468":"If you select “<0>Over”, you will win the payout if the last digit of the last tick is greater than your prediction.","-1268105691":"If you select “<0>Under”, you will win the payout if the last digit of the last tick is less than your prediction.","-444119935":"If you select \"<0>Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-521457890":"If you select “<0>Touch”, you win the payout if the market touches the barrier at any time during the contract period.","-1020271578":"If you select “<0>Down”, you’ll earn a payout if the spot price never rises above the barrier.","-403573339":"Your payout is equal to the <0>payout per point multiplied by the difference between the <1>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","-1307465836":"You may sell the contract up to 15 seconds before expiry. If you do, we’ll pay you the <0>contract value.","-1121315439":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a “Call” or a “Put”.","-1763848396":"Put","-1119872505":"How to trade ","-586636553":"Watch this video to learn about this trade type.","-2017825013":"Got it","-1117111580":"Removed from favorites","-197162398":"CLOSED","-1913695340":"Order Details","-1882287418":"How do I earn a payout?","-725670935":"Take profit and stop loss are unavailable while deal cancellation is enabled.","-1331298683":"Take profit can’t be adjusted for ongoing accumulator contracts.","-509210647":"Try searching for something else.","-99964540":"When your profit reaches or exceeds the set amount, your trade will be closed automatically.","-1221049974":"Final price","-2131851017":"Growth rate","-843831637":"Stop loss","-583023237":"This is the resale value of your contract, based on the prevailing market conditions (e.g, the current spot), including additional commissions if any.","-1476381873":"The latest asset price when the trade closure is processed by our servers.","-584445859":"This is when your contract will expire based on the duration or end time you’ve selected. If the duration is more than 24 hours, the cut-off time and expiry date will apply instead.","-1247327943":"This is the spot price of the last tick at expiry.","-1422269966":"You can choose a growth rate with values of 1%, 2%, 3%, 4%, and 5%.","-1186791513":"Payout is the sum of your initial stake and profit.","-1482134885":"We calculate this based on the strike price and duration you’ve selected.","-1682624802":"It is a percentage of the previous spot price. The percentage rate is based on your choice of the index and the growth rate.","-1545819495":"Your trade will be closed automatically at the nearest available asset price when your loss reaches a certain percentage of your stake, but your loss never exceeds your stake. This percentage depends on the chosen underlying asset and the Multiplier.","-1293590531":"If you select “Call”, you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1432332852":"If you select ‘Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-468501352":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount. Your profit may be more than the amount you entered depending on the market price at closing.","-993480898":"Accumulators","-123659792":"Vanillas","-1226595254":"Turbos","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-1691868913":"Touch/No Touch","-330437517":"Matches/Differs","-657360193":"Over/Under","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-93996528":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1722190480":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1113825265":"Additional features are available to manage your positions: “<0>Take profit” and “<0>Stop loss” allow you to adjust your level of risk aversion.","-1104397398":"Additional features are available to manage your positions: “<0>Take profit”, “<0>Stop loss” and “<0>Deal cancellation” allow you to adjust your level of risk aversion.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1565216130":"If you select <0>\"Up\", you’ll earn a payout if the spot price never drops below the barrier.","-1336860323":"If you select <0>\"Down\", you’ll earn a payout if the spot price never rises above the barrier.","-1547935605":"Your payout is equal to the <0>payout per point multiplied by the difference between the <0>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","-351875097":"Number of ticks","-729830082":"View less","-1649593758":"Trade info","-1382749084":"Go back to trading","-1239477911":"second","-1585766960":"min","-1652791614":"mins","-1977959027":"hours","-442488432":"day","-337314714":"days","-1435392215":"About deal cancellation","-1192773792":"Don't show this again","-471757681":"Risk management","-771725194":"Deal Cancellation","-1669741470":"The payout at expiry is equal to the payout per point multiplied by the difference between the final price and the strike price.","-1186082278":"Your payout is equal to the payout per point multiplied by the difference between the final price and barrier.","-1890561510":"Cut-off time","-878534036":"If you select \"Call\", you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1587076792":"If you select \"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-565990678":"Your contract will expire on this date (in GMT), based on the End time you’ve selected.","-477936848":"We use next-tick-execution mechanism, which is the next asset price when the trade opening is processed by our servers.","-148680560":"Spot price of the last tick upon reaching expiry.","-1123926839":"Contracts will expire at exactly 14:00:00 GMT on your selected expiry date.","-1904828224":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 24 hours.","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-8998663":"Digit: {{last_digit}} ","-718750246":"Your stake will grow at {{growth_rate}}% per tick as long as the current spot price remains within ±{{tick_size_barrier_percentage}} from the previous spot price.","-1358367903":"Stake","-542594338":"Max. payout","-690963898":"Your contract will be automatically closed when your payout reaches this amount.","-511541916":"Your contract will be automatically closed upon reaching this number of ticks.","-438655760":"<0>Note: You can close your trade anytime. Be aware of slippage risk.","-774638412":"Stake must be between {{min_stake}} {{currency}} and {{max_stake}} {{currency}}","-434270664":"Current Price","-1956787775":"Barrier Price:","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-1231210510":"Tick","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-1804019534":"Expiry: {{date}}","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-732683018":"When your profit reaches or exceeds this amount, your trade will be closed automatically.","-989393637":"Take profit can't be adjusted after your contract starts.","-339236213":"Multiplier","-194424366":"above","-857660728":"Strike Prices","-1346404690":"You receive a payout at expiry if the spot price never touches or breaches the barrier throughout the contract duration. Otherwise, your contract will be terminated early.","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-420223912":"Clean up Blocks","-301596978":"Collapse Blocks","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-985351204":"Trade again","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-1738427539":"Purchase","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1374685318":"Your contract is closed automatically when your loss is more than or equals to this amount. This block can only be used with the multipliers trade type.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-1626615625":"Take Profit (Multiplier)","-1871944173":"Accumulator trade options","-625636913":"Amount must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1631669591":"string","-1768939692":"number","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1750478127":"New variable name","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-260939264":"Collapsed","-894560707":"function","-1867119688":"Duplicate","-1710107207":"Add Comment","-1549535410":"Remove Comment","-918450098":"Blocks","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-339973827":"The market is closed","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1919680487":"workspace","-1703118772":"The {{block_type}} block is misplaced from {{missing_space}}.","-1785726890":"purchase conditions","-1993203952":"Trade options accumulators","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-1072292603":"No Change","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-137444201":"Buy","-841561409":"Put Spread","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-462715374":"Untitled Bot","-280147477":"All transactions","-130601012":"Please select duration","-1577570698":"Start date","-1904030160":"Transaction performed by (App ID: {{app_id}})","-1876891031":"Currency","-513103225":"Transaction time","-2066666313":"Credit/Debit","-1981004241":"Sell time","-1196431745":"Contract cost","-3423966":"Take profit<0 />Stop loss","-1131753095":"The {{trade_type_name}} contract details aren't currently available. We're working on making them available soon.","-360975483":"You've made no transactions of this type during this period.","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-558031309":"High Tick/Low Tick","-447037544":"Buy price:","-737348236":"Contract cost:","-1694314813":"Contract value:","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-155989831":"Decrement value","-338379841":"Indicative price:","-2027409966":"Initial stake:","-1769852749":"N/A","-726626679":"Potential profit/loss:","-1511825574":"Profit/Loss:","-499175967":"Strike Price","-2082644096":"Current stake","-706219815":"Indicative price","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-853582174":"France 40","-1096386695":"UK 100","-617646862":"Germany 40","-2077690248":"Japan 225","-512194910":"US Tech 100","-381746202":"US 500","-1935463381":"Swiss 20","-1941767726":"Euro 50","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-390528194":"Step Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-82971929":"Volatility 25 (1s) Index","-433962508":"Volatility 75 (1s) Index","-764111252":"Volatility 100 (1s) Index","-816110209":"Volatility 150 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1288044380":"Volatility 250 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-132112961":"Sharkfin","-1715390759":"I want to do this later","-56163366":"I don't have any of these","-175164838":"{{seconds_passed}}s ago","-514136557":"{{minutes_passed}}m ago","-1420737287":"{{hours_passed}}h ago","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-1603581277":"minutes","-886317740":"The <0>date of birth on your identity document doesn't match your profile.","-1606307809":"We were unable to verify the identity document with the details provided.","-475787720":"The verification status was empty, rejected for lack of information.","-1627868670":"Your identity document has expired.","-1302288704":"The document’s owner is deceased.","-895884696":"The <0>name and <0>date of birth on your identity document don't match your profile.","-1231856133":"The verification status is not available, provider says: Needs Technical Investigation.","-433687715":"For enhanced security, we need to reverify your identity. Kindly resubmit your proof of identity to unlock your account.","-1637538521":"Your document appears to be invalid.","-876579004":"The name on your document doesn’t match your profile.","-746520172":"Some details on your document appear to be invalid, missing, or unclear.","-2146200521":"The serial number of your document couldn’t be verified.","-1945323197":"Your document appears to be in black and white. Please upload a colour photo of your document.","-631393256":"Your document contains markings or text that should not be on your document.","-609103016":"The image quality of your document is too low. Please provide a hi-res photo of your identity document.","-530935718":"We’re unable to verify the document you provided because some details appear to be missing. Please try again or provide another document.","-1027031626":"We’re unable to verify the document you provided because it appears to be damaged. Please try again or upload another document.","-1671621833":"The front of your document appears to be missing. Please provide both sides of your identity document.","-727588232":"Your document appears to be a scanned copy that contains markings or text that shouldn’t be on your document.","-1435064387":"Your document appears to be a printed copy.","-624316211":"Your document appears to be a photo of a device screen.","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled"} \ No newline at end of file +{"0":"","1485191":"1:1000","2082741":"additional document number","2091451":"Deriv Bot - your automated trading partner","3125515":"Your Deriv MT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","3215342":"Last 30 days","3420069":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your identity document.","4547840":"<0>Verify your account to transfer funds. <1>Verify now","5149403":"Learn more about trade types","7100308":"Hour must be between 0 and 23.","9488203":"Deriv Bot is a web-based strategy builder for trading digital options. It’s a platform where you can build your own automated trading bot using drag-and-drop 'blocks'.","9757544":"Please submit your proof of address","11533428":"Trade bigger positions with less capital on a wide range of global markets. <0>Learn more","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11706633":"Loss threshold: The bot will stop trading if your total loss exceeds this amount.","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","23745193":"Take me to demo","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582393":"Example :","27582767":"{{amount}} {{currency}}","27731356":"Your account is temporarily disabled. Please contact us via <0>live chat to enable deposits and withdrawals again.","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","40632954":"Why is my card/e-wallet not working?","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45821474":"Proof of income","46523711":"Your proof of identity is verified","49404821":"If you buy a \"<0>{{trade_type}}\" option, you receive a payout at expiry if the final price is {{payout_status}} the strike price. Otherwise, your “<0>{{trade_type}}” option will expire worthless.","53801223":"Hong Kong 50","53964766":"5. Hit Save to download your bot. You can choose to download your bot to your device or your Google Drive.","54185751":"Less than $100,000","55340304":"Keep your current contract?","55916349":"All","57362642":"Closed","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","62910715":"You already have an open position for this contract type, retrying in {{ delay }}s","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","66610627":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there’s enough light where you are and that your entire face is in the frame.","67923436":"No, Deriv Bot will stop running when your web browser is closed.","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71232823":"Manage funds","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74963864":"Under","76635112":"To proceed, resubmit these documents","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","76925355":"Check your bot’s performance","77982950":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a \"Call\" or a \"Put\".","81009535":"Potential profit/loss","81091424":"To complete the upgrade, please log out and log in again to add more accounts and make transactions with your Wallets.","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","84402478":"Where do I find the blocks I need?","84924586":"To trade options and multipliers, get a Deriv Apps account first.","85343079":"Financial assessment","85359122":"40 or more","85389154":"Steps required to continue verification on your mobile","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","93154671":"1. Hit Reset at the bottom of stats panel.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","105871033":"Your age in the document you provided appears to be below 18 years. We’re only allowed to offer our services to clients above 18 years old, so we’ll need to close your account. If you have a balance in your account, contact us via live chat and we’ll help to withdraw your funds before your account is closed.","107537692":"These limits apply to your options trades only. For example, <0>maximum total loss refers to the losses on all your trades on options trading platforms.","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113378532":"ETH/USD","115032488":"Buy price and P/L","116005488":"Indicators","117056711":"We’re updating our site","117318539":"Password should have lower and uppercase English letters with numbers.","117366356":"Turbo options allow you to predict the direction of the underlying asset’s movements.","118727646":"{{new_account_title}}","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","122617359":"View tutorial","122993457":"This is to confirm that it's you making the withdrawal request.","123454801":"{{withdraw_amount}} {{currency_symbol}}","124723298":"Upload a proof of address to verify your address","125354367":"An example of D’Alembert's Grind strategy","125443840":"6. Restart last trade on error","125842960":"{{name}} is required.","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","129005644":"The idea is that successful trades may recoup previous losses. However, it is crucial to exercise caution as the risk can quickly increase with this strategy. With Deriv Bot, you can minimise your risk by setting a maximum stake. This is an optional risk management feature. Let’s say a maximum stake of 3 USD. If your stake for the next trade is set to exceed 3 USD, your stake will reset to the initial stake of 1 USD. If you didn't set a maximum stake, it would have increased beyond 3 USD.","129137937":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or resume trading after a 24-hour cooling-off period. If you don’t want to set a specific limit, leave the field empty.","129729742":"Tax Identification Number*","130567238":"THEN","132596476":"In providing our services to you, we are required to ask you for some information to assess if a given product or service is appropriate for you and whether you have the experience and knowledge to understand the risks involved.<0/><0/>","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","133655768":"Note: If you wish to learn more about the Bot Builder, you can proceed to the <0>Tutorials tab.","134126193":"Try searching for markets or keywords","136790425":"Try changing or removing filters to view available positions.","137589354":"To assess your trading experience and if our products are suitable for you. Please provide accurate and complete answers, as they may affect the outcome of this assessment.","138055021":"Synthetic indices","139454343":"Confirm my limits","141265840":"Funds transfer information","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145511192":"s is the initial stake.","145633981":"Unavailable as your documents are still under review","145736466":"Take a selfie","147327552":"No favourites","150156106":"Save changes","150486954":"Token name","151279367":"2. Set the Purchase conditions. In this example, your bot will purchase a Rise contract when it starts and after a contract closes.","151646545":"Unable to read file {{name}}","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","153485708":"Zero Spread - BVI","154274415":"The payout at expiry is equal to the payout per point multiplied by the distance between the final price and the barrier.","157593038":"random integer from {{ start_number }} to {{ end_number }}","157871994":"Link expired","158355408":"Some services may be temporarily unavailable.","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","167094229":"• Current stake: Use this variable to store the stake amount. You can assign any amount you want, but it must be a positive number.","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","174793462":"Strike","176078831":"Added","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","177467242":"Define your trade options such as accumulator and stake. This block can only be used with the accumulator trade type. If you select another trade type, this block will be replaced with the Trade options block.","179083332":"Date","181107754":"Your new <0>{{platform}} {{eligible_account_to_migrate}} account(s) are ready for trading.","181346014":"Notes ","181881956":"Contract Type: {{ contract_type }}","182630355":"Thank you for submitting your information.","184024288":"lower case","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","190834737":"Guide","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195136585":"Trading View Chart","195972178":"Get character","196810983":"If the duration is more than 24 hours, the Cut-off time and Expiry date will apply instead.","196998347":"We hold customer funds in bank accounts separate from our operational accounts which would not, in the event of insolvency, form part of the company's assets. This meets the <0>Gambling Commission's requirements for the segregation of customer funds at the level: <1>medium protection.","197190401":"Expiry date","201016731":"<0>View more","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","203297887":"The Quick Strategy you just created will be loaded to the workspace.","203924654":"Hit the <0>Start button to begin and follow the tutorial.","204797764":"Transfer to client","204863103":"Exit time","207521645":"Reset Time","207824122":"Please withdraw your funds from the following Deriv account(s):","209533725":"You’ve transferred {{amount}} {{currency}}","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","210872733":"The verification status is not available, provider says: Malformed JSON.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211487193":"Document number (e.g. identity card, passport, driver's license)","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216114973":"Stocks & indices","216650710":"You are using a demo account","217377529":"5. If the next trades are profitable, the stake for the following trade will be reduced by 2 USD. This can be shown above where the stake of 3 USD is reduced to 1 USD. See A3.","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","221261209":"A Deriv account will allow you to fund (and withdraw from) your CFDs account(s).","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","233500222":"- High: the highest price","235244966":"Return to Trader's Hub","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","235994721":"Forex (standard/exotic) and cryptocurrencies","236642001":"Journal","238496287":"Leverage trading is high-risk, so it's a good idea to use risk management features such as stop loss. Stop loss allows you to","242028165":"Pay a small fee to prioritise your withdrawal, this fee will be deducted from the withdrawal amount.","243537306":"1. Under the Blocks menu, go to Utility > Variables.","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","246428134":"Step-by-step guides","248153700":"Reset your password","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","251134918":"Account Information","251445658":"Dark theme","251882697":"Thank you! Your response has been recorded into our system.<0/><0/>Please click ‘OK’ to continue.","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258448370":"MT5","258912192":"Trading assessment","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","260393332":"You cannot make further deposits as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","261074187":"4. Once the blocks are loaded onto the workspace, tweak the parameters if you want, or hit Run to start trading.","261250441":"Drag the <0>Trade again block and add it into the <0>do part of the <0>Repeat until block.","262095250":"If you select <0>\"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","266455247":"Standard Vanuatu","267992618":"The platforms lack key features or functionality.","268254263":"Open a real account now","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269322978":"Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270396691":"<0>Your Wallets are ready!","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","271637055":"Download is unavailable while your bot is running.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","276770377":"New MT5 account(s) under the {{to_account}} jurisdiction will be created for new trades.","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","280021988":"Use these shortcuts","281110034":"Effective trading with the D'Alembert system requires careful consideration of its stake progression and risk management. Traders can automate this approach using Deriv Bot, setting profit and loss thresholds to ensure balanced and controlled trading. However, it is crucial for traders to assess their risk appetite, test strategies on a demo account, and align with their own trading style before transitioning to real money trading. This optimization process helps strike a balance between potential gains and losses while managing risk prudently.","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283830551":"Your address doesn’t match your profile","284527272":"antimode","284772879":"Contract","284809500":"Financial Demo","287934290":"Are you sure you want to cancel this transaction?","289731075":"Get Started","291344459":"The table illustrates this principle in the second session. After a trade resulting in loss in round 4 followed by a successful trade in round 5, the stake will increase to 2 USD for round 6. This is in line with the strategy's rule of raising the stake only after a loss is followed by a successful trade.","291744889":"<0>1. Trade parameters:<0>","291817757":"Go to our Deriv community and learn about APIs, API tokens, ways to use Deriv APIs, and more.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","293250845":"Are you sure you want to continue?","294043810":"I confirm that my tax information is accurate and complete.","294305803":"Manage account settings","294335229":"Sell at market price","296017162":"Back to Bot","301441673":"Select your citizenship/nationality as it appears on your passport or other government-issued ID.","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","304506198":"Total balance:","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","316694303":"Is candle black?","318705408":"Demo Zero Spread","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","321457615":"Oops, something went wrong!","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","323360883":"Baskets","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329353047":"Malta Financial Services Authority (MFSA) (licence no. IS/70156)","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","330384187":"Enable trading with your first transfer.","333456603":"Withdrawal limits","333807745":"Click on the block you want to remove and press Delete on your keyboard.","334942497":"Buy time","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345320063":"Invalid timestamp","345818851":"Sorry, an internal error occurred. Hit the above checkbox to try again.","346070861":"Zero Spread","346843343":"CFDs on financial and derived instruments with copy trading.","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","349110642":"<0>{{payment_agent}}<1>'s contact details","350602311":"Stats show the history of consecutive tick counts, i.e. the number of ticks the price remained within range continuously.","351744408":"Tests if a given text string is empty","353731490":"Job done","354945172":"Submit document","357477280":"No face found","357672069":"Income verification failed","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","360773403":"Bot Builder","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","367801124":"Total assets in your Deriv accounts.","368160866":"in list","369035361":"<0>•Your account number","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","372805409":"You should enter 9-35 characters.","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","377225569":"<0>Do not honour: Please contact your bank for further assistance.","377538732":"Key parameters","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","380606668":"tick","380694312":"Maximum consecutive trades","381972464":"Your document has expired.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","384707870":"CRS confirmation","386278304":"Install the {{platform_name_trader}} web app","386502387":"Bot is not running","389923099":"Zoom in","390890891":"Last quarter","391685252":"Revoke","391915203":"Hedging","392582370":"Fall Equals","393789743":"Letters, spaces, periods, hyphens, apostrophes only.","396418990":"Offline","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","401345454":"Head to the Tutorials tab to do so.","403456289":"The formula for SMA is:","403936913":"An introduction to Deriv Bot","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","417864079":"You’ll not be able to change currency once you have made a deposit.","419485005":"Spot","419496000":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the multipliers trade type.","420072489":"CFD trading frequency","422055502":"From","423682863":"When your loss reaches or exceeds the set amount, your trade will be closed automatically.","424101652":"Quick strategy guides >","424272085":"We take your financial well-being seriously and want to ensure you are fully aware of the risks before trading.<0/><0/>","424897068":"Do you understand that you could potentially lose 100% of the money you use to trade?","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428380816":"If you select “<0>Matches”, you will win the payout if the last digit of the last tick is the same as your prediction.","429505586":"If you select \"<0>Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","429970999":"To avoid delays, enter your <0>name exactly as it appears on your {{document_name}}.","431267979":"Here’s a quick guide on how to use Deriv Bot on the go.","432273174":"1:100","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433237511":"Notify Telegram %1 Access Token: %2 Chat ID: %3 Message: %4","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","436534334":"<0>We've sent you an email.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","439398769":"This strategy is currently not compatible with Deriv Bot.","442281706":"You’ve just deleted a block.","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","445419365":"1 - 2 years","447548846":"SSNIT number","447907000":"If you select \"<0>Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","452949978":"The 1-3-2-6 strategy is designed to capitalise on consecutive successful trades while minimising losses during losing streaks. The rationale behind this strategy lies in statistical probabilities, with adjustments to stake sizes based on the perceived likelihood of success. There is a higher likelihood of success in the second trade after one successful trade. Hence the stake adjusts to 3 in the second trade. In the third trade, the stake adjusts to 2 units due to a lower probability of a successful trade. If the third trade is also successful, the strategy then allocates all the previous gains (a total of 6 units of initial stake) into the fourth trade with the aim of doubling the potential profits. If the fourth trade results in a positive outcome, the strategy helps achieve a total gain of 12 units. However, it is crucial to exercise caution, as the risk can escalate quickly with this strategy, and any loss in the fourth trade forfeits all previous gains.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","454196938":"Regulation:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459612953":"Select account","459817765":"Pending","460070238":"Congratulations","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","463361726":"Select an item","465993338":"Oscar's Grind","466424460":"Oscar’s Grind","466837068":"Yes, increase my limits","467839232":"I trade forex CFDs and other complex financial instruments regularly on other platforms.","471402292":"Your bot uses a single trade type for each run.","471667879":"Cut off time:","473154195":"Settings","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","478827886":"We calculate this based on the barrier you’ve selected.","479420576":"Tertiary","480356486":"*Boom 300 and Crash 300 Index","481276888":"Goes Outside","481564514":"If you select “<0>Up”, you’ll earn a payout if the spot price never drops below the barrier.","483279638":"Assessment Completed<0/><0/>","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","490053735":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your loss reaches or exceeds the stop loss amount. Your loss may be more than the amount you entered depending on the market price at closing.","491603904":"Unsupported browser","492198410":"Make sure everything is clear","492566838":"Taxpayer identification number","497518317":"Function that returns a value","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501284861":"Watch this video to learn how to build a trading bot on Deriv Bot. Also, check out this blog post on building a trading bot.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502007051":"Demo Swap-Free SVG","502041595":"This block gives you a specific candle from within the selected time interval.","505793554":"last letter","508390614":"Demo Financial STP","511679687":"Accumulators allow you to express a view on the range of movement of an index and grow your stake exponentially at a fixed <0>growth rate.","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","517631043":"We’ve sent your e-book. Check your email to download it.","517833647":"Volatility 50 (1s) Index","518955798":"7. Run Once at Start","519205761":"You can no longer open new positions with this account.","520136698":"Boom 500 Index","520458365":"Last used: ","521872670":"item","522703281":"divisible by","523123321":"- 10 to the power of a given number","524459540":"How do I create variables?","527329988":"This is a top-100 common password","529056539":"Options","531114081":"3. Contract Type","531675669":"Euro","532724086":"Employment contract","533403953":"Your existing <0>{{platform}} {{type}} {{from_account}} account(s) will remain accessible.","535041346":"Max. total stake per day","536277802":"TP & SL history","537788407":"Other CFDs Platform","538017420":"0.5 pips","538042340":"Principle 2: The stake only increases when a loss trade is followed by a successful trade","538228086":"Close-Low","539352212":"Tick {{current_tick}}","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","545323805":"Filter by trade types","547029855":"If you select this feature, you can cancel your trade within a chosen time frame if the asset price moves against your favour. You will get your stake back without profit/loss. We charge a small fee for this. Take profit and stop loss are disabled when deal cancellation is active.","549479175":"Deriv Multipliers","549799607":"Go to LiveChat","551569133":"Learn more about trading limits","551958626":"Excellent","554135844":"Edit","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","555881991":"National Identity Number Slip","558866810":"Run your bot","559224320":"Our classic “drag-and-drop” tool for creating trading bots, featuring pop-up trading charts, for advanced users.","560759471":"You'll see these details once the contract starts.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565356380":"Added to favorites","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","571921777":"Funds protection level","572576218":"Languages","573173477":"Is candle {{ input_candle }} black?","575668969":"3. For trades that result in a profit, the stake for the next trade will be increased by 2 USD. Deriv Bot will continue to add 2 USD for every successful trade. See A1.","575702000":"Remember, selfies, pictures of houses, or non-related images will be rejected.","575968081":"Account created. Select payment method for deposit.","576355707":"Select your country and citizenship:","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","587577347":"Take Profit (Accumulator)","587577425":"Secure my account","587856857":"Want to know more about APIs?","592087722":"Employment status is required.","592964176":"Join over 2.5 million traders","593459109":"Try a different currency","595080994":"Example: CR123456789","596165833":"Your withdrawal will be processed internally in one business day. After that, for debit/credit cards, it takes 1-15 working days, and for e-wallets, it's 1-3 working days. If there's a delay beyond these periods, please contact us via live chat.","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","602278674":"Verify identity","603849445":"Strike price","603849863":"Look for the <0>Repeat While/Until, and click the + icon to add the block to the workspace area.","603899222":"Distance to current spot","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","613418320":"<0>Setup unsuccessful","613877038":"Chart","615156635":"Your selfie does not match your document.","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","619407328":"Are you sure you want to unlink from {{identifier_title}}?","621829484":"{{days_passed}}d ago","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623316736":"{{ message }}, retrying in {{ delay }}s","623542160":"Exponential Moving Average Array (EMAA)","625571750":"Entry spot:","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","628193133":"Account ID","629003252":"If your current password doesn't match these requirements, you'll need to create a new one in the next step.","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","629395043":"All growth rates","632398049":"This block assigns a null value to an item or statement.","632897893":"If any of the above applies to you, select <0>Yes. Otherwise, select <0>No.","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","634274250":"How long each trade takes to expire.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","636427296":"Need help with tax info? Let us know via <0>live chat.","636579615":"Number of unit(s) to be added to the next trade after a losing trade. One unit is equivalent to the amount of initial stake.","639382772":"Please upload supported file type.","640249298":"Normal","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642393128":"Enter amount","642546661":"Upload back of license from your computer","644150241":"The number of contracts you have won since you last cleared your stats.","645902266":"EUR/NZD","646773081":"Profit threshold: The bot will stop trading if your total profit exceeds this amount.","647039329":"Proof of address required","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","650836587":"This article explores the Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","651284052":"Low Tick","651684094":"Notify","652298946":"Date of birth","654422099":"CRS confirmation is required.","654507872":"True-False","654924603":"Martingale","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","656893085":"Timestamp","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","658745169":"You may sell the contract up to 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","661759508":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><0/>","662953503":"Your contract will be closed when the <0>stop out level is reached.","664779910":"3. If the first trade results in profit, the stake for the following trade will not reduce but remain at the initial stake. The strategy minimally trades at the initial stake of 1 USD. See A1.","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","666158951":"Your contract will be closed when the <0>stop out level is reached.","666724936":"Please enter a valid ID number.","669494711":"1.4 pips","671630762":"We accept only these types of documents as proof of your address. The document must be recent (issued within last {{expiry_in_months}} months) and include your name and address:","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","676675313":"Authy","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678031950":"Candles List with interval here 2: {{ candle_interval_type }}","679199080":"Why passkeys?","680334348":"This block was required to correctly convert your old strategy.","681108680":"Additional information required for {{platform}} account(s)","681808253":"Previous spot price","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","686387939":"How do I clear my transaction log?","687193018":"Slippage risk","687212287":"Amount is a required field.","688510664":"You've {{two_fa_status}} 2FA on this device. You'll be logged out of your account on other devices (if any). Use your password and a 2FA code to log back in.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","692354762":"Please enter your {{document_name}}. {{example_format}}","693396140":"Deal cancellation (expired)","693933036":"Exploring the Oscar’s Grind strategy in Deriv Bot","694035561":"Trade options multipliers","696157141":"Low spot","696735942":"Enter your National Identification Number (NIN)","696870196":"- Open time: the opening time stamp","698037001":"National Identity Number","699159918":"1. Filing complaints","699646180":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, the funds will be lost and cannot be recovered.","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","702451070":"National ID (No Photo)","702561961":"Change theme","705262734":"Your Wallets are ready","705299518":"Next, upload the page of your passport that contains your photo.","705697927":"2. Set your preferred unit. In this example, it is 2 units or 2 USD.","705821926":"Learn about this trade type","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","706960383":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 60 seconds.","707189572":"Your email address has changed.<0/>Now, log in with your new email address.","707662672":"{{unblock_date}} at {{unblock_time}}","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711580196":"Why can't I use a payment agent to withdraw my funds?","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","718509613":"Maximum duration: {{ value }}","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724526379":"Learn more with our tutorials","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","729251105":"Range: {{min}} - {{max}} {{duration_unit_text}} ","729651741":"Choose a photo","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","732828463":"Standing instructions to transfer funds to an account maintained in the United States, or directions regularly received from a US address","734298230":"Just a reminder","734390964":"Insufficient balance","734881840":"false","735907651":"A US residence address or a US correspondence address (including a US PO box)","737751617":"<0>Explore our website to see what’s available.","739126643":"Indicative high spot","742469109":"Reset Balance","743623600":"Reference","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","749336930":"Secure alternative to passwords.","750886728":"Switch to your real account to submit your documents","751468800":"Start now","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755138488":"We’re unable to verify the document you provided because it contains markings or text that should not be on your document. Please provide a clear photo or a scan of your original identity document.","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","758492962":"210+","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762926186":"A quick strategy is a ready-made strategy that you can use in Deriv Bot. There are 3 quick strategies you can choose from: Martingale, D'Alembert, and Oscar's Grind.","764366329":"Trading limits","766317539":"Language","768301339":"Delete Blocks","772520934":"You may sell the contract up to 24 hours before expiry. If you do, we’ll pay you the <0>contract value.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","775706054":"Do you sell trading bots?","776085955":"Strategies","776432808":"Select the country where you currently live.","778172770":"Deriv CFDs","780009485":"About D'Alembert","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787727156":"Barrier","788005234":"NA","789013690":"This is the corresponding price level based on the payout per point you’ve selected. If this barrier is ever breached, your contract would be terminated.","792164271":"This is when your contract will expire based on the Duration or End time you’ve selected.","792622364":"Negative balance protection","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794682658":"Copy the link to your phone","795859446":"Password saved","795992899":"The amount you choose to receive at expiry for every point of change between the final price and the barrier. ","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","806165583":"Australia 200","807499069":"Financial commission complaints procedure","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","812430133":"Spot price on the previous tick.","815925952":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open Deriv Bot.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820877027":"Please verify your proof of identity","821163626":"Server maintenance occurs every first Saturday of the month from 7 to 10 GMT time. You may experience service disruption during this time.","823186089":"A block that can contain text.","823279888":"The {{block_type}} block is missing.","824797920":"Is list empty?","825042307":"Let’s try again","825179913":"This document number was already submitted for a different account. It seems you have an account with us that doesn't need further verification. Please contact us via <0>live chat if you need help.","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","829970143":"If you've hit the deposit limit, please wait 1-2 hours before trying again. Check that your browser is up to date and use incognito mode. If you still have problems, please contact us via <0>live chat.","830164967":"Last name","830703311":"My profile","830993327":"No current transactions available","831344594":"If you select “<0>Lower”, you win the payout if the exit spot is strictly lower than the barrier.","832053636":"Document submission","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835336137":"View Detail","835350845":"Add another word or two. Uncommon words are better.","836097457":"I am interested in trading but have very little experience.","837063385":"Do not send other currencies to this address.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839158849":"4. If the second trade results in a loss, the Deriv Bot will automatically increase your stake for the next trade by 2 USD. Deriv Bot will continue to add 2 USD to the previous round’s stake after every losing trade. See A2.","839805709":"To smoothly verify you, we need a better photo","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845106422":"Last digit prediction","845304111":"Slow EMA Period {{ input_number }}","848083350":"Your payout is equal to the <0>payout per point multiplied by the difference between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852527030":"Step 2","852583045":"Tick List String","852627184":"document number","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","858663703":"For new trades, please transfer your funds into the new <0>{{platform}} {{eligible_account_to_migrate}} account(s).","860319618":"Tourism","862283602":"Phone number*","863023016":"For instance, if a trader has a loss threshold (B) of 100 USD, with an initial stake (s) of 1 USD and 2 units of increment (f), the calculation would be as follows:","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864655280":"You can continue to hold your current open positions in your existing MT5 account(s).","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869068127":"The cashier is temporarily down due to maintenance. It will be available as soon as the maintenance is complete.","869823595":"Function","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872721776":"2. Select your XML file and hit Select.","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","873387641":"If you have open positions","874461655":"Scan the QR code with your phone","874472715":"Your funds will remain in your existing MT5 account(s).","874484887":"Take profit must be a positive number.","875101277":"If I close my web browser, will Deriv Bot continue to run?","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","879014472":"Reached maximum number of decimals","879647892":"You may sell the contract up until 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","881963105":"(XAUUSD, XAGUSD)","882423592":"The amount that you stake for the first trade. Note that this is the minimum stake amount.","885065431":"Get a Deriv account","888274063":"Town/City","888924866":"We don’t accept the following inputs for:","890299833":"Go to Reports","891337947":"Select country","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","896790627":"A US birthplace","897597439":"Changes saved.","898457777":"You have added a Deriv Financial account.","898904393":"Barrier:","899342595":"NIN","900646972":"page.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","904696726":"API token","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","906789729":"Your verification documents were already used for another account.","907680782":"Proof of ownership verification failed","909272635":"Financial - SVG","910888293":"Too many attempts","911048905":"(BTCUSD, ETHUSD)","912257733":"The workspace will be reset to the default strategy and any unsaved changes will be lost. <0>Note: This will not affect your running bot.","912406629":"Follow these steps:","912967164":"Import from your computer","915735109":"Back to {{platform_name}}","918447723":"Real","920125517":"Add demo account","921857297":"Enter a value from 0 to {{ value }}.","921901739":"- your account details of the bank linked to your account","922313275":"You're back online","924046954":"Upload a document showing your name and bank account number or account details.","924912760":"Your document appears to be a digital document.","929608744":"You are unable to make withdrawals","930255747":"Please enter your {{document_name}}. ","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","936393760":"You receive a <0>payout at <1>expiry if the spot price never touches or breaches the <2>barrier during the contract period. If it does, your contract will be terminated early.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938500877":"{{ text }}. <0>You can view the summary of this transaction in your email.","938947787":"Withdrawal {{currency}}","938988777":"High barrier","942015028":"Step 500 Index","944499219":"Max. open positions","945532698":"Contract sold","945753712":"Back to Trader’s Hub","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947602200":"Save this strategy as an XML file from Deriv Bot for faster re-imports.","947704973":"Reverse D’Alembert","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","949859957":"Submit","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","958503488":"Search markets on ","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961266215":"140+","961327418":"My computer","961692401":"Bot","962251615":"If you want to adjust your self-exclusion limits, <0>contact us via live chat.","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","968576099":"Up/Down","969858761":"Principle 1: Strategy aims to potentially make one unit of profit per session","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975608902":"To trade CFDs, get a Deriv Apps account first.","975668699":"I confirm and accept {{company}} 's <0>Terms and Conditions","975747761":"Ongoing","975950139":"Country of Residence","977929335":"Go to my account settings","979713491":"Zero Spread BVI","980050614":"Update now","981138557":"Redirect","981568830":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via <0>live chat.","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982146443":"WhatsApp","982402892":"First line of address","982829181":"Barriers","983295075":"Why can't I see the funds on my card/e-wallet balance after I've made a withdrawal?","983451828":"2. Select the asset and trade type.","984175243":"Expand Blocks","986565137":"We've received your proof of income","987053672":"You can continue with the open positions on your current <0>{{platform}} {{existing_account}} account(s).","987224688":"How many trades have you placed with other financial instruments in the past 12 months?","988064913":"4. Come back to Deriv Bot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","989840364":"You’re under legal age.","990739582":"170+","992294492":"Your postal code is invalid","992677950":"Logging out on other devices","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","997276809":"I confirm that the name and date of birth above match my chosen identity document","997311089":"Change my password","999008199":"text","1001160515":"Sell","1002989598":"iOS: iCloud keychain.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006069082":"The objective of Martingale strategy is to take advantage of consecutive successful trades and maximise potential profits from them. This strategy is beneficial only if there are consecutive successful trades. Therefore, it is important to set a maximum stake to secure all the potential profits gained from a number of consecutive successful trades, or you could lose all the profits you have accumulated, including your initial stake. For example, if your goal is to maximise profits within 2 consecutive successful trades, you set a maximum stake of 2 USD, given your initial stake is 1 USD. Similarly, if your goal is to maximise profits within 3 consecutive successful trades, you set a maximum stake of 4 USD, given your initial stake is 1 USD.","1006458411":"Errors","1006664890":"Silent","1008151470":"Unit: The number of units that are added in the event of successful trades or the number of units removed in the event of losing trades. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1010337648":"We were unable to verify your proof of ownership.","1011424042":"{{text}}. stake<0/>","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1017081936":"If you select “<0>Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1021090237":"Upgrade your <0>{{account_1}} <1/>and <0>{{account_2}} {{platform}} account(s)","1021679446":"Multipliers only","1022934784":"1 minute","1022971288":"Payout per pip","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1026289179":"Trade on the go","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1029641567":"{{label}} must be less than 30 characters.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1033253221":"Confirm your identity to make a withdrawal.","1035893169":"Delete","1036116144":"Speculate on the price movement of an asset without actually owning it.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039428638":"EU regulation","1039476188":"The size used to multiply the stake after a losing trade for the next trade.","1039755542":"Use a few words, avoid common phrases","1040472990":"1. Go to Bot Builder.","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1047644783":"Enable screen lock on your device.","1047881477":"Unfortunately, your browser does not support the video.","1048687543":"Labuan Financial Services Authority","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050063303":"Videos on Deriv Bot","1050128247":"I confirm that I have verified the payment agent’s transfer information.","1050844889":"Reports","1052779010":"You are on your demo account","1052921318":"{{currency}} Wallet","1053153674":"Jump 50 Index","1053159279":"Level of education","1053556481":"Once you submit your complaint, we will send you an acknowledgement email to confirm that we have received it.","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057519018":"4. If a trade ends in a profit, the stake for the following trade will be reset to the initial stake amount of 1 USD.","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1058804653":"Expiry","1058905535":"Tutorial","1060231263":"When are you required to pay an initial margin?","1061308507":"Purchase {{ contract_type }}","1062423382":"Explore the video guides and FAQs to build your bot in the tutorials tab.","1062536855":"Equals","1062569830":"The <0>name on your identity document doesn't match your profile.","1065498209":"Iterate (1)","1065766135":"You have {{remaining_transfers}} {{transfer_text}} remaining for today.","1066235879":"Transferring funds will require you to create a second account.","1066459293":"4.3. Acknowledging your complaint","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1070323991":"6. If consecutive successful trades were to happen, the stake would follow a sequence of adjustment from 1 to 3, then 2, and 6 units of initial stake. After 4 consecutive successful trades, it completes one cycle and then the strategy will repeat itself for another cycle. If any trade results in a loss, your stake will reset back to the initial stake for the next trade.","1070624871":"Check proof of address document verification status","1073261747":"Verifications","1073611269":"A copy of your identity document (e.g. identity card, passport, driver's license)","1073711308":"Trade closed","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1078189922":"You can make a new deposit once the verification of your account is complete.","1078221772":"Leverage prevents you from opening large positions.","1078303105":"Stop out","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1087112394":"You must select the strike price before entering the contract.","1088031284":"Strike:","1088138125":"Tick {{current_tick}} - ","1089085289":"Mobile number","1089436811":"Tutorials","1089687322":"Stop your current bot?","1090041864":"The {{block_type}} block is mandatory and cannot be deleted/disabled.","1090802140":"Additional Information","1095295626":"<0>•The Arbiter for Financial Services will determine whether the complaint can be accepted and is in accordance with the law.","1096078516":"We’ll review your documents and notify you of its status within 3 days.","1096175323":"You’ll need a Deriv account","1098147569":"Purchase commodities or shares of a company.","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100133959":"National ID","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109182113":"Note: Deal cancellation is only available for Volatility Indices on Multipliers.","1109217274":"Success!","1110102997":"Statement","1111743543":"Stop loss (Multiplier)","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113227831":"Yes, you can. However, there are limits on your account, such as maximum number of open positions and maximum aggregate payouts on open positions. So, just keep these limits in mind when opening multiple positions. You can find more info about these limits at Settings > Account limits.","1113292761":"Less than 8MB","1113390200":"Your open trades will appear here.","1114679006":"You have successfully created your bot using a simple strategy.","1117281935":"Sell conditions (optional)","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1121050010":"Transaction fee: {{amount}} {{currency}}","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1124382808":"Please enter the expiry time in the format \"HH:MM\".","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127224297":"Sorry for the interruption","1127884488":"cTrader MacOS app","1128139358":"How many CFD trades have you placed in the past 12 months?","1128321947":"Clear All","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129842439":"Please enter a take profit amount.","1133651559":"Live chat","1134879544":"Example of a document with glare","1134883120":"Use your Deriv account email and password to log in to cTrader.","1138126442":"Forex: standard","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1150637063":"*Volatility 150 Index and Volatility 250 Index","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1155143434":"By clicking on <0>Next you agree to move your {{platform}} {{type}} {{from_account}} account(s) under <2/>Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","1155626418":"below","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163771266":"The third block is <0>optional. You may use this block if you want to sell your contract before it expires. For now, leave the block as it is. ","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166023941":"New password","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1166916934":"Demo Standard SVG","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1171765024":"Step 3","1171961126":"trade parameters","1172230903":"• Stop loss threshold: Use this variable to store your loss limit. You can assign any amount you want. Your bot will stop when your losses hits or exceeds this amount.","1172524677":"CFDs Demo","1173957529":"Go to ‘Account Settings’ on Deriv.","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174689133":"3. Set your trade parameters and hit Run.","1174748431":"Payment channel","1175183064":"Vanuatu","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1183448523":"<0>We're setting up your Wallets","1184968647":"Close your contract now or keep it running. If you decide to keep it running, you can check and close it later on the ","1186687280":"Question {{ current }} of {{ total }}","1188316409":"To receive your funds, contact the payment agent with the details below","1188980408":"5 minutes","1189249001":"4.1. What is considered a complaint?","1189368976":"Please complete your personal details before you verify your identity.","1190226567":"Standard - Vanuatu","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197649109":"No results for {{searchTerm}}","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1203380736":"The D’Alembert strategy is less risky than Martingale, but you can still determine how long your funds will last with this strategy before trading. Simply use this formula.","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1204459171":"Your existing <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s) will remain accessible.","1206227936":"How to mask your card?","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1211912982":"Bot is starting","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217159705":"Bank account number","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1223993374":"For entry spot, we use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers.","1225874865":"The stake adjustment: target session profit (1 USD) - current session profit (0 USD) = 1 USD","1227074958":"random fraction","1227132397":"4. For trades that result in a loss, there are two outcomes. If it was traded at the initial stake, the next trade will remain at the same amount as the strategy trades minimally at the initial stake, see A2. If it was traded with a higher amount, the stake for the next trade would be reduced by 2 USD, see A3.","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233178579":"Our customers say","1233300532":"Payout","1233910495":"If you select \"<0>Down\", your total profit/loss will be the percentage decrease in the underlying asset price, times the multiplier and stake, minus commissions.","1234292259":"Source of wealth","1234764730":"Upload a screenshot of your name and email address from the personal details section.","1236527126":"(Transaction fee: {{transaction_fee}} {{currency_symbol}})","1237330017":"Pensioner","1238311538":"Admin","1239752061":"In your cryptocurrency wallet, make sure to select the <0>{{network_name}} network when you transfer funds to Deriv.","1239760289":"Complete your trading assessment","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1240688917":"Glossary","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1242288838":"Hit the checkbox above to choose your document.","1242994921":"Click here to start building your Deriv Bot.","1243064300":"Local","1243287470":"Transaction status","1246207976":"Enter the authentication code generated by your 2FA app:","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250113042":"This device doesn't support passkeys.","1250495155":"Token copied!","1252669321":"Import from your Google Drive","1253531007":"Confirmed","1253636052":"MetaTrader5 web terminal","1254565203":"set {{ variable }} to create list with","1255827200":"You can also import or build your bot using any of these shortcuts.","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259145708":"Let’s try again. Choose another document and enter the corresponding details.","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1264096613":"Search for a given string","1265317149":"A recent utility bill (e.g. electricity, water or gas) or recent bank statement or government-issued letter with your name and address.","1265704976":"","1266728508":"Proof of income verification passed","1269296089":"Let's build a Bot!","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274380814":"Your payout is equal to the <0>payout per pip multiplied by the difference, <1>in pips, between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","1274819385":"3. Complaints and Disputes","1276660852":"Submit your proof of identity","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1283418744":"Additional features are available to manage your positions: “<0>Take profit”, “<1>Stop loss” and “<2>Deal cancellation” allow you to adjust your level of risk aversion.","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1286094280":"Withdraw","1286384690":"If you select “<0>Even”, you will win the payout if the last digit of the last tick is an even number (i.e. 2, 4, 6, 8, or 0).","1286507651":"Close identity verification screen","1288965214":"Passport","1289146554":"British Virgin Islands Financial Services Commission","1289650867":"The Oscar’s Grind strategy is designed to potentially gain a modest yet steady profit in each trading session. This strategy splits trades into sessions and has three principles.","1290525720":"Example: ","1291997417":"Contracts will expire at exactly 23:59:59 GMT on your selected expiry date.","1292179259":"No open trades","1292188546":"Reset Deriv MT5 investor password","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294553728":"We’re unable to verify the document you provided because it appears to be a blank image. Please try again or upload another document.","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1298254025":"Standard - BVI","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1305217290":"Upload the back of your identity card.","1306976251":"Standard SVG","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1314572331":"Your document failed our verification checks.","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320715220":"<0>Account closed","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324922837":"2. The new variable will appear as a block under Set variable.","1325514262":"(licence no. MB/18/0024)","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1339613797":"Regulator/External dispute resolution","1340286510":"The bot has stopped, but your trade may still be running. You can check it on the Reports page.","1341840346":"View in Journal","1341921544":"Trading accounts and funds","1344696151":"Forex, stocks, stock indices, commodities, cryptocurrencies and synthetic indices.","1346038489":"Should be less than 70.","1346204508":"Take profit","1346339408":"Managers","1346947293":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there's enough light where you are and that your entire face is in the frame.","1347071802":"{{minutePast}}m ago","1349133669":"Try changing your search criteria.","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351906264":"This feature is not available for payment agents.","1352234202":"Last {{positionsCount}} contracts:","1352413406":"Define your trade options, such as accumulator and stake.","1353197182":"Please select","1354288636":"Based on your answers, it looks like you have insufficient knowledge and experience in trading CFDs. CFD trading is risky and you could potentially lose all of your capital.<0/><0/>","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357213116":"Identity card","1358543466":"Not available","1358543748":"enabled","1360929368":"Add a Deriv account","1362029761":"Exploring the Reverse Martingale strategy in Deriv Bot","1362578283":"High","1363645836":"Derived FX","1363675688":"Duration is a required field.","1364879837":"The verification is passed but the personal info is not available to compare.","1364958515":"Stocks","1366244749":"Limits","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1370647009":"Enjoy higher daily limits","1371193412":"Cancel","1371555192":"Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1373949314":"The Reverse Martingale strategy involves increasing your stake after each successful trade and resets to the initial stake for every losing trade as it aims to secure potential profits from consecutive wins.","1374627690":"Max. account balance","1374902304":"Your document appears to be damaged or cropped.","1375884086":"Financial, legal, or government document: recent bank statement, affidavit, or government-issued letter.","1376329801":"Last 60 days","1378419333":"Ether","1380349261":"Range","1383017005":"You have switched accounts.","1384127719":"You should enter {{min}}-{{max}} numbers.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1388770399":"Proof of identity required","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396217283":"{{transaction_amount}} {{currency_symbol}}","1396417530":"Bear Market Index","1397628594":"Insufficient funds","1400341216":"We’ll review your documents and notify you of its status within 1 to 3 days.","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1402224124":"Hit the button below, and we'll email you a verification link.","1402300547":"Lets get your address verified","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1407191858":"DTrader","1408844944":"Click the plus icon to extend the functionality of this block.","1411373212":"Strong passwords contain at least 8 characters. combine uppercase and lowercase letters, numbers, and symbols.","1411419173":"Growth Rate: {{ accumulator }}","1412405902":"See important notes","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1414366321":"An uppercase letter","1414918420":"We'll review your proof of identity again and will give you an update as soon as possible.","1415006332":"get sub-list from first","1415513655":"Download cTrader on your phone to trade with the Deriv cTrader account","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1416521695":"Positions","1417558007":"Max. total loss over 7 days","1417907460":"No problem! Your passkey still works.","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1419330165":"Forex, stocks, stock indices, commodities, cryptocurrencies, ETFs and synthetic indices","1421046084":"Setup your account","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1423296980":"Enter your SSNIT number","1424741507":"See more","1424763981":"1-3-2-6","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1428657171":"You can only make deposits. Please contact us via <0>live chat for more information.","1430221139":"Verify now","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434767075":"Get started on Deriv Bot","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1437529196":"Payslip","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1444066971":"It seems you’ve submitted this document before. Upload a new document.","1444843056":"Corporate Affairs Commission","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1447698999":"Withdrawals can be cancelled if they're still in the 'Requested' status (you can check your status under Pending payout). Once the status changes to 'Authorised', in 'Progress', or 'Processed', cancellation isn't possible.","1449462402":"In review","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1454406889":"Choose <0>until as the repeat option.","1454648764":"deal reference id","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1458160370":"Enter your {{platform}} password to add a {{platform_name}} {{account}} {{jurisdiction_shortcode}} account.","1459761348":"Submit proof of identity","1461323093":"Display messages in the developer’s console.","1462238858":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465084972":"How much experience do you have with other financial instruments?","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467880277":"3. General queries","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468508098":"Slippage happens when the asset price changes by the time it reaches our servers.","1469133110":"cTrader Windows app","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1470565177":"Article of association","1471008053":"Deriv Bot isn't quite ready for real accounts","1471070549":"Can contract be sold?","1471741480":"Severe error","1473369747":"Synthetics only","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1480915523":"Skip","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1488548367":"Upload again","1490509675":"Options accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499080621":"Tried to perform an invalid operation.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503419760":"Swap-free CFDs on selected financial and derived instruments.","1503618738":"- Deal reference ID: the reference ID of the contract","1505420815":"No payment agents found for your search","1505927599":"Our servers hit a bump. Let’s refresh to move on.","1507554225":"Submit your proof of address","1509559328":"cTrader","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1513771077":"We're processing your withdrawal.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1520332426":"Net annual income","1521546070":"Download Block","1524636363":"Authentication failed","1526012495":"This could be because:","1526483456":"2. Enter a name for your variable, and hit Create. New blocks containing your new variable will appear below.","1527251898":"Unsuccessful","1527664853":"Your payout is equal to the payout per point multiplied by the difference between the final price and the strike price.","1527906715":"This block adds the given number to the selected variable.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534796105":"Gets variable value","1537192641":"Unable to process your request","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1540585098":"Decline","1541508606":"Looking for CFDs? Go to Trader's Hub","1541770236":"The 1-3-2-6 strategy aims to maximise potential profits with four consecutive successful trades. One unit is equal to the amount of the initial stake. The stake will adjust from 1 unit to 3 units after the first successful trade, then to 2 units after your second successful trade, and to 6 units after the third successful trade. The stake for the next trade will reset to the initial stake if there is a losing trade or a completion of the trade cycle.","1541969455":"Both","1542742708":"Synthetics, Forex, Stocks, Stock indices, Commodities, and Cryptocurrencies","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1547148381":"That file is too big (only up to 8MB allowed). Please upload another file.","1548185597":"Step 200 Index","1549098835":"Total withdrawn","1551172020":"AUD Basket","1551689907":"Enhance your trading experience by upgrading your <0/><1>{{platform}} {{type}} {{from_account}} account(s).","1555345325":"User Guide","1556391770":"You cannot make a withdrawal as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1562374116":"Students","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1566717687":"We also provide a guide on the Tutorial tab to show you how you can build and execute a simple strategy.","1567745852":"Bot name","1569527365":"Verification failed. Resubmit your details.","1569624004":"Dismiss alert","1570484627":"Ticks list","1570495551":"For exit spot, the latest asset price when the trade closure is processed by our servers.","1571575776":"Accepted formats: pdf, jpeg, jpg, and png. Max file size: 8MB","1572504270":"Rounding operation","1572982976":"Server","1573429525":"Call/Put","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1580498808":"Multiple faces found","1584109614":"Ticks String List","1584936297":"XML file contains unsupported elements. Please check or modify file.","1587046102":"Documents from that country are not currently supported — try another document type","1589148299":"Start","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1589863913":"These are the trade parameters used for D’Alembert strategy in Deriv Bot.","1590400723":"Total assets in all your accounts","1591933071":"Resubmit document","1593010588":"Login now","1594147169":"Please come back in","1594322503":"Sell is available","1595295238":"3. Use a logic block to check if Total profit/loss is more than the Stop loss threshold amount. You can find the Total profit/loss variable under Analysis > Stats on the Blocks menu on the left. Your bot will continue to purchase new contracts until the Total profit/loss amount exceeds the Stop loss threshold amount.","1597672660":"Deriv MT5 Password","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1598789539":"Here are some common card/e-wallet errors and their solutions:","1599743312":"An example of Reverse Martingale strategy","1602894348":"Create a password","1604916224":"Absolute","1605222432":"I have no knowledge and experience in trading at all.","1605292429":"Max. total loss","1612105450":"Get substring","1612638396":"Cancel your trade at any time within a specified timeframe.","1615897837":"Signal EMA Period {{ input_number }}","1618652381":"For instance, if a trader has a loss threshold (B) is 1000 USD, with an initial stake (s) is 1 USD, and the Martingale multiplier (m) is 2, the calculation would be as follows:","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1622944161":"Now, go to the <0>Restart trading conditions block.","1623706874":"Use this block when you want to use multipliers as your trade type.","1628981793":"Can I trade cryptocurrencies on Deriv Bot?","1630317389":"If you select “<0>No Touch”, you win the payout if the market never touches the barrier at any time during the contract period.","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1633661992":"Tick {{current_tick}}/{{tick_count}}","1634016345":"2. If the trade is successful, this strategy will automatically adjust your stake to 3 units of your initial stake for the next trade. In this case, the stake adjustment is 3 units and the initial stake is 1 USD, hence the next trade will start at 3 USD.","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1635628424":"An envelope with your name and address.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644636153":"Transaction hash: <0>{{value}}","1644703962":"Looking for CFD accounts? Go to Trader's Hub","1644864436":"You’ll need to authenticate your account before requesting to become a professional client. <0>Authenticate my account","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1648938920":"Netherlands 25","1649239667":"2. Under the Blocks menu, you'll see a list of categories. Blocks are grouped within these categories. Choose the block you want and drag them to the workspace.","1650963565":"Introducing Wallets","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653136377":"copied!","1653180917":"We cannot verify you without using your camera","1653999225":"Forex: major/minor","1654365787":"Unknown","1654529197":"Purchase condition","1654721858":"Upload anyway","1655372864":"Your contract will expire on this date (in GMT), based on the end time you’ve selected.","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1659327870":"How do I cancel my withdrawal?","1659352235":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited, regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","1661126218":"Expiry date:","1665272539":"Remember: You cannot log in to your account until the selected date.","1665718170":"The document must contain a letterhead.","1665738338":"Balance","1665756261":"Go to live chat","1668138872":"Modify account settings","1669062316":"The payout at expiry is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1676549796":"Dynamic Leverage","1677027187":"Forex","1679743486":"1. Go to Quick strategy and select the strategy you want.","1680666439":"Upload your bank statement showing your name, account number, and transaction history.","1681765749":"Martingale formula 2","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683383299":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the accumulator trade type.","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1690746575":"Enhance your trading experience by upgrading your <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s).","1691335819":"To continue trading with us, please confirm who you are.","1691536201":"If you choose your duration in number of ticks, you won’t be able to terminate your contract early.","1691765860":"- Negation","1692912479":"Deriv MT5, Deriv X","1693614409":"Start time","1694517345":"Enter a new email address","1694888104":"The products offered on our website are complex derivative products that carry a significant risk of potential loss. CFDs are complex instruments with a high risk of losing money rapidly due to leverage. 70.78% of retail investor accounts lose money when trading CFDs with this provider. You should consider whether you understand how these products work and whether you can afford to take the high risk of losing your money.","1696190747":"Trading inherently involves risks, and actual profits can fluctuate due to various factors, including market volatility and other unforeseen variables. As such, exercise caution and conduct thorough research before engaging in any trading activities.","1698624570":"2. Hit Ok to confirm.","1699606318":"You've reached the limit of uploading your documents.","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1701447705":"Please update your address","1702339739":"Common mistakes","1703091957":"We collect information about your employment as part of our due diligence obligations, as required by anti-money laundering legislation.","1703712522":"Your payout is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1704656659":"How much experience do you have in CFD trading?","1707264798":"Why can't I see deposited funds in my Deriv account?","1707758392":"Step 100 Index","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1711013665":"Anticipated account turnover","1711016273":"<0>This may take up to 2 minutes. During this time, some services may be unavailable.","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1713633297":"3. If the second trade is also successful, your stake will adjust to 2 USD or 2 units of the initial stake for the next trade.","1714255392":"To enable withdrawals, please complete your financial assessment.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1715680813":"Your contract will expire at exactly 23:59:59 GMT +0 on your selected expiry date.","1717023554":"Resubmit documents","1717474982":"CFDs on financial and derived instruments via a customisable platform.","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1721295446":"Favorites","1722056905":"The document you provided is not supported for your country. Please provide a supported document for your country.","1722888575":"{{mt5_migration_error}}","1723390945":"Your demo {{deriv}} {{type}} account is ready.","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724367774":"You can make a funds transfer once the verification of your account is complete.","1724696797":"You are limited to one fiat account only.","1725958461":"Account number","1726472773":"Function with no return value","1726565314":"Close my account","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732891201":"Sell price","1733711201":"Regulators/external dispute resolution","1734185104":"Balance: %1","1734264460":"Disclaimer","1734521537":"The document you provided appears to be two different types. Please try again or provide another document.","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738094481":"<0>Duration: Ticks 1","1738611950":"About Reverse Martingale","1738681493":"Remove your glasses, if necessary","1739086943":"Wall Street 30","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1741006997":"Yesterday","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743679873":"If you select <0>\"Call\", you’ll earn a <1>payout if the <1>final price is above the <1>strike price at <1>expiry. Otherwise, you won’t receive a payout.","1743902050":"Complete your financial assessment","1744509610":"Just drag the XML file from your computer onto the workspace, and your bot will be loaded accordingly. Alternatively, you can hit Import in Bot Builder, and choose to import your bot from your computer or from your Google Drive.","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747652849":"If you select the take profit feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount throughout the contract duration. Your profit may be more than the amount you entered depending on the market price at closing. You may change your take profit amount up to 15 seconds before expiry.","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1753082252":"This article explores the strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as Forex, Commodities, and Derived Indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","1753183432":"We take all complaints seriously and aim to resolve them as quickly and fairly as possible. If you are unhappy with any aspect of our service, please let us know by submitting a complaint using the guidance below:","1753226544":"remove","1753975551":"Upload passport photo page","1754256229":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_ctrader }} transfers between your Deriv and {{platform_name_ctrader}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1756678453":"break out","1761038852":"Let’s continue with providing proofs of address and identity.","1761254001":"A number","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1768293340":"Contract value","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1770041368":"Experience safer logins","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772396880":"The date of birth on your document doesn’t match your profile.","1777847421":"This is a very common password","1778893716":"Click here","1779144409":"Account verification required","1779519903":"Should be a valid number.","1779801832":"Please update your password accordingly.","1779872677":"Download e-book","1780442963":"Scan the QR code to download {{ platform }}.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783526986":"How do I build a trading bot?","1783740125":"Upload your selfie","1785298924":"D’Alembert formula 1","1786644593":"Supported formats: JPEG, JPG, PNG, PDF, and GIF only","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788515547":"<0/>For more information on submitting a complaint with the Office of the Arbiter for Financial Services, please <1>see their guidance.","1788966083":"01-07-1999","1789273878":"Payout per point","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1791432284":"Search for country","1791926890":"If you select “<0>Higher”, you win the payout if the exit spot is strictly higher than the barrier.","1791971912":"Recent","1792037169":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your {{document_name}}.","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1796787905":"Please upload the following document(s).","1798943788":"You can only make deposits.","1801093206":"Get candle list","1801270786":"Ready to automate your trading strategy without writing any code? You’ve come to the right place.","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806017862":"Max. ticks","1808058682":"Blocks are loaded successfully","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811138041":"Enter a value from {{ value }} to 9.","1811343027":"2. Select your Martingale multiplier. In this example, it is 2.","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812006199":"Identity verification","1812582011":"Connecting to server","1813700208":"Boom 300 Index","1815034361":"alphabetic","1815905959":"DTrader, DBot, SmartTrader, and Binary Bot","1815995250":"Buying contract","1817006592":"All trade types","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1821818748":"Enter Driver License Reference number","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1824292864":"Call","1827607208":"File not uploaded.","1828370654":"Onboarding","1828856382":"If you select “<0>Differs”, you will win the payout if the last digit of the last tick is not the same as your prediction.","1830520348":"{{platform_name_dxtrade}} Password","1831847842":"I confirm that the name and date of birth above match my chosen identity document (see below)","1833499833":"Proof of identity documents upload failed","1836767074":"Search payment agent name","1837533589":"Stop Loss","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1839021527":"Please enter a valid account number. Example: CR123456789","1840721160":"Deriv MT5 latest password requirements","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1843336754":"Select document","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845598565":"The second session concludes upon reaching the aim of one unit of potential profit per session, equivalent to 1 USD. If trading continues, a new session will commence again.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846588117":"Your contract will be closed automatically when your loss reaches {{stop_out_percentage}}% of your stake.","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1851052337":"Place of birth is required.","1851776924":"upper","1854480511":"Cashier is locked","1854874899":"Back to list","1854909245":"Multiplier:","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1856755117":"Pending action required","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1863731653":"To receive your funds, contact the payment agent","1865525612":"No recent transactions.","1866244589":"The entry spot is the first tick for High/Low Ticks.","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869315006":"See how we protect your funds to unlock the cashier.","1869486036":"You receive a <0>payout at <0>expiry if the spot price never touches or breaches the <0>barrier during the contract period. If it does, your contract will be terminated early.","1869787212":"Even","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871377550":"Do you offer pre-built trading bots on Deriv Bot?","1871664426":"Note","1873376454":"This is a price level that you choose. If this barrier is ever crossed, your contract would be terminated.","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874737957":"To trade multipliers, get a Deriv Apps account first.","1874756442":"BVI","1875090343":"Choose a date range","1875702561":"Load or build your bot","1876015808":"Social Security and National Insurance Trust","1876325183":"Minutes","1876333357":"Tax Identification Number is invalid.","1877225775":"Your proof of address is verified","1877832150":"# from end","1878172674":"No, we don't. However, you'll find quick strategies on Deriv Bot that'll help you build your own trading bot for free.","1878189977":"The Martingale strategy involves increasing your stake after each loss to recoup prior losses with a single successful trade.","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1879651964":"<0>Pending verification","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880227067":"Submit passport photo pages","1880377568":"An example of D’Alembert strategy","1880875522":"Create \"get %1\"","1881018702":"hour","1881380263":"Total assets in your account.","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887257727":"R is the number of rounds a trader can sustain given a specific loss threshold.","1887925280":"The document must be recent and include your name and address:","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1893869876":"(lots)","1894667135":"Please verify your proof of address","1896269665":"CFDs on derived and financial instruments.","1899898605":"Maximum size: 8MB","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1904665809":"The Reverse Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","1905032541":"We're now ready to verify your identity","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906213000":"Our system will finish any Deriv Bot trades that are running, and Deriv Bot will not place any new trades.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907423697":"Earn more with Deriv API","1907499654":"Deriv App","1907899646":"Take profit can't be adjusted for ongoing accumulator contracts.","1908023954":"Sorry, an error occurred while processing your request.","1908239019":"Make sure all of the document is in the photo","1908686066":"Appropriateness Test Warning","1909647105":"TRX/USD","1909769048":"median","1910533633":"Get a real account to deposit money and start trading.","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1916129921":"Reverse Martingale","1917178459":"Bank Verification Number","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1918796823":"Please enter a stop loss amount.","1918832194":"No experience","1919030163":"Tips to take a good selfie","1919296368":"2. Select your unit. In this example, it is 2 units or 2 USD.","1919594496":"{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.","1919694313":"To start trading, transfer funds from your Deriv account into this account.","1920217537":"Compare","1920468180":"How to use the SMA block","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1924365090":"Maybe later","1924765698":"Place of birth*","1928930389":"GBP/NOK","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1934450653":"For <0>Contract type, set it to Both.","1938327673":"Deriv {{platform}} <0>{{is_demo}}","1939014728":"How do I remove blocks from the workspace?","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1955219734":"Town/City*","1957759876":"Upload identity document","1958788790":"This is the amount you’ll receive at expiry for every point of change in the underlying price, if the spot price never touches or breaches the barrier throughout the contract duration.","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960240336":"first letter","1964165648":"Connection lost","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1966855430":"Account already exists","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1970060713":"You’ve successfully deleted a bot.","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973910243":"Manage your accounts","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1978218112":"Google Authenticator","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982790875":"Upgrade your <0/><1>{{account_title}} {{platform}} account(s)","1982796981":"Declarations","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983358602":"This policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","1983387308":"Preview","1983480826":"Sign in","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986322868":"When your loss reaches or exceeds this amount, your trade will be closed automatically.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1990331072":"Proof of ownership","1990735316":"Rise Equals","1991055223":"View the market price of your favourite assets.","1991448657":"Don't know your tax identification number? Click <0>here to learn more.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1997313835":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <0>previous spot price. Otherwise, you lose your stake and the trade is terminated.","1999213036":"Enhanced security is just a tap away.","1999346412":"For faster verification, input the same address here as in your proof of address document (see section below)","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2001361785":"1. Start with the initial stake. Let’s say 1 USD.","2001717886":"Demo Standard","2004052487":"Estimating the lifespan of your trades","2007028410":"market, trade type, contract type","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2012139674":"Android: Google password manager.","2014536501":"Card number","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2017672013":"Please select the country of document issuance.","2018044371":"Multipliers let you trade with leverage and limit your risk to your stake. <0>Learn more","2019596693":"The document was rejected by the Provider.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023546580":"Your account will be available for trading once the verification of your account is complete.","2023659183":"Student","2023762268":"I prefer another trading website.","2025339348":"Move away from direct light — no glare","2027441253":"Why do we collect this?","2027625329":"Simple Moving Average Array (SMAA)","2027638150":"Upgrade","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037906477":"get sub-list from #","2038562422":"TIN is required.","2039198937":"Maximum stake: The maximum amount you are willing to pay to enter a single trade. The stake for your next trade will reset to the initial stake if it exceeds this value. This is an optional risk management parameter.","2042023623":"We’re reviewing your documents. This should take about 5 minutes.","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042115724":"Upload a screenshot of your account and personal details page with your name, account number, phone number, and email address.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2046273837":"Last tick","2046577663":"Import or choose your bot","2048110615":"Email address*","2048134463":"File size exceeded.","2049386104":"We need you to submit these in order to get this account:","2050170533":"Tick list","2051558666":"View transaction history","2051596653":"Demo Zero Spread BVI","2052022586":"To enhance your MT5 account security we have upgraded our password policy.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2056369950":"<0>To complete your Wallet setup, log out and then log in again.","2056526458":"Get real account","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2059365224":"Yes, you can get started with a pre-built bot using the Quick strategy feature. You’ll find some of the most popular trading strategies here: Martingale, D'Alembert, and Oscar's Grind. Just select the strategy, enter your trade parameters, and your bot will be created for you. You can always tweak the parameters later.","2059753381":"Why did my verification fail?","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063812316":"Text Statement","2063890788":"Cancelled","2066978677":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0 /> {{opening_date}}.","2067903936":"Driving licence","2070002739":"Don’t accept","2070345146":"When opening a leveraged CFD trade.","2070518923":"Import your bot or tap Quick Strategies to choose from the ready-to-use bot templates.","2070752475":"Regulatory Information","2070858497":"Your document appears to be a screenshot.","2071043849":"Browse","2074207096":"How to create a passkey?","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2074713563":"4.2. Submission of a complaint","2079925695":"Unit: The number of units that are added in the event of a trade resulting in loss or the number of units removed in the event of a trade resulting in profit. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2081622549":"Must be a number higher than {{ min }}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086048243":"Certificate of incorporation","2086792088":"Both barriers should be relative or absolute","2088344208":"Forex (standard), stock indices, commodities, cryptocurrencies, stocks, ETFs, synthetic indices, basket indices and derived FX","2088735355":"Your session and login limits","2089087110":"Basket indices","2089395053":"Unit","2089581483":"Expires on","2090650973":"The spot price may change by the time your order reaches our servers. When this happens, your payout may be affected.","2091671594":"Status","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2097815211":"Number of rounds (R) = 10","2097932389":"Upload 2 separate screenshots from the personal details page and the account page via <0>https://app.astropay.com/profile","2100713124":"account","2100912278":"4. If a trade ends in a loss, the stake for the following trade will be reset to the initial stake amount of 1 USD.","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104364680":"Please switch to your demo account to run your Deriv Bot.","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2107882050":"The back of your document appears to be missing. Please include both sides of your identity document.","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2113321581":"Add a Deriv Gaming account","2114766645":"Some trade types are unavailable for {{symbol}}.","2115223095":"Loss","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117489390":"Auto update in {{ remaining }} seconds","2118292085":"<0>Note: You’ll receive an email when your deposit starts being processed.","2119449126":"Example output of the below example will be:","2119710534":"FAQ","2121227568":"NEO/USD","2122152120":"Assets","2127564856":"Withdrawals are locked","2128919448":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price. We won’t offer a contract value if the remaining duration is below 15 seconds or if the contract duration is in ticks.","2129807378":"Update profile","2133075559":"This means after 10 rounds of consecutive losses, this trader will lose 100 USD. This reaches the loss threshold of 100 USD, stopping the bot.","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2136480755":"Some details in your document appear to be invalid, missing, or unclear.","2137645254":"If you select “<0>Call”, you’ll earn a <1>payout if the <2>final price is above the <3>strike price at <4>expiry. Otherwise, you won’t receive a payout.","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146698770":"Pro tip: You can also click and drag out the desired block","2146751355":"We use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers for Volatility Index, Basket Indices, Jump Indices and Crash/Boom Indices.","2146892766":"Binary options trading experience","2147244655":"How do I import my own trading bot into Deriv Bot?","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-826420669":"Make sure","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-1120954663":"First name*","-1659980292":"First name","-962979523":"Your {{ field_name }} as in your identity document","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-32386760":"Name","-766265812":"first name","-1857534296":"John","-1282749116":"last name","-1485480657":"Other details","-1784741577":"date of birth","-1702919018":"Second line of address (optional)","-1315410953":"State/Province","-2040322967":"Citizenship","-344715612":"Employment status*","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-946282997":"Additional information","-1315571766":"Place of birth","-789291456":"Tax residence*","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1387062433":"Account opening reason","-222283483":"Account opening reason*","-307865807":"Risk Tolerance Warning","-690100729":"Yes, I understand the risk.","-2010628430":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, you must confirm that you understand your capital is at risk.","-863770104":"Please note that by clicking ‘OK’, you may be exposing yourself to risks. You may not have the knowledge or experience to properly assess or mitigate these risks, which may be significant, including the risk of losing the entire sum you have invested.","-684271315":"OK","-1292808093":"Trading Experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-816263501":"Only letters, numbers, space and hyphen are allowed.","-755626951":"Complete your address details","-1024240099":"Address","-1534917661":"Select your preferred currency","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-1030759620":"Government Officers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-654781670":"Primary","-1717373258":"Secondary","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-477761028":"Voter ID","-1466346630":"CPF","-1161338910":"First name is required.","-1629185446":"Enter no more than 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-212167954":"Tax Identification Number is not properly formatted.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-204765990":"Terms of use","-739367071":"Employed","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-1116008222":"You should enter 9-35 numbers.","-1995979930":"First line of address is required.","-703454156":"Please enter a Postal/ZIP code under 20 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-1103497546":"Tax return","-700600899":"Business proof of address","-1073862586":"Memorandum","-1823328095":"Authorization letter","-397487797":"Enter your full card number","-1376950117":"That file format isn't supported. Please upload .pdf, .png, .jpg, or .jpeg files only.","-612752984":"These are default limits that we apply to your accounts.","-1498206510":"Account limits","-1411635770":"Learn more about account limits","-1340125291":"Done","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-976258774":"Not set","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-173346300":"Maximum daily turnover","-138380129":"Total withdrawal allowed","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-506122621":"Please take a moment to update your information now.","-1106259572":"Don't know your tax identification number? <1 />Click <0>here to learn more.","-252665911":"Place of birth{{required}}","-859814496":"Tax residence{{required}}","-237940902":"Tax Identification number{{required}}","-919191810":"Please fill in tax residence.","-270569590":"Intended use of account{{required}}","-2120290581":"Intended use of account is required.","-594456225":"Second line of address","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-1076138910":"Trade","-1666909852":"Payments","-488597603":"Trading information","-605778668":"Never","-1628008897":"Token","-1238499897":"Last Used","-2087317410":"Oops, something went wrong.","-184202848":"Upload file","-863586176":"Drag and drop a file or click to browse your files.","-370334393":"Click here to browse your files.","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-509054266":"Anticipated annual turnover","-1117345066":"Choose the document type","-1634507018":"Enter your {{document_name}}","-1237846864":"Verify again","-39187636":"{{index}}.","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1113902570":"Details","-2142540205":"It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.","-1451334536":"Continue trading","-251603364":"Your document for proof of address is expired. <0/>Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-329713179":"Ok","-2145244263":"This field is required","-1500958859":"Verify","-839094775":"Back","-1813671961":"Your identity verification failed because:","-2097808873":"We were unable to verify your ID with the details you provided. ","-1652371224":"Your profile is updated","-504784172":"Your document has been submitted","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1044962593":"Upload Document","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-155705811":"A clear colour photo or scanned image","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-1949501500":"First, enter your {{label}}.","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-841187054":"Try Again","-856213726":"You must also submit a proof of address.","-552371330":"We were unable to verify your income. <0 /> Please check the email we've sent you for further information.","-978467455":"Limit reached","-361316523":"You have reached the maximum number of allowed attempts for submitting proof of income. <0 /> Please check the email we've sent you for further information.","-1785967427":"We'll review your documents and notify you of its status within 7 working days.","-987011273":"Your proof of ownership isn't required.","-808299796":"You are not required to submit proof of ownership at this time. We will inform you if proof of ownership is required in the future.","-179726573":"We’ve received your proof of ownership.","-813779897":"Proof of ownership verification passed.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-47815161":"Please include at least 1 special character such as ( _ @ ? ! / # ) in your password.","-1313806160":"Please request a new password and check your email for the new token.","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-507633532":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character such as ( _ @ ? ! / # ).","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-2005211699":"Create","-1597186502":"Reset {{platform}} password","-638756912":"Black out digits 7 to 12 of the card number that’s shown on the front of your debit/credit card.⁤","-996691262":"We’ve introduced these limits to encourage <0>responsible trading. They are optional, and you can adjust them anytime.","-2079276011":"These limits apply to your multipliers trades only. For example, <0>maximum total loss refers to the losses on your multipliers trades.","-2116570030":"If you want to adjust your limits, <0>contact us via live chat. We’ll make the adjustments within 24 hours.","-1389915983":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or log in to resume trading. If you don’t want to set a specific limit, leave the field empty.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-1088698009":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-142444667":"Please click on the link in the email to change your Deriv MT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-474419287":"FATCA declaration","-1101737402":"Please select*","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1035494182":"You acknowledge that, subject to the Company's discretion, applicable regulations, and internal checks being fulfilled, we will open an account for you and allow you to deposit funds during the client acceptance procedure. However, until the verification of your account is completed, you will not be able to trade, withdraw or make further deposits. If you do not provide relevant documents within 30-days, we will refund the deposited amount through the same payment method you used to deposit.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-1209644365":"I hereby confirm that my request for opening an account with Deriv Investments (Europe) Ltd is made on my own initiative.","-740157281":"Trading Experience Assessment","-1720468017":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you.","-1685104463":"* This is required","-186841084":"Change your login email","-907403572":"To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.","-1850792730":"Unlink from {{identifier_title}}","-428335668":"You will need to set a password to complete the process.","-1232613003":"<0>Verification failed. <1>Why?","-805775852":"<0>Needs verification.<1>Verify now","-1983989074":"<0>No new positions","-1196936955":"Upload a screenshot of your name and email address from the personal information section.","-1286823855":"Upload your mobile bill statement showing your name and phone number.","-1309548471":"Upload your bank statement showing your name and account details.","-1410396115":"Upload a photo showing your name and the first six and last four digits of your card number. If the card does not display your name, upload the bank statement showing your name and card number in the transaction history.","-3805155":"Upload a screenshot of either of the following to process the transaction:","-1523487566":"- your account profile section on the website","-613062596":"- the Account Information page on the app","-1718304498":"User ID","-609424336":"Upload a screenshot of your name, account number, and email address from the personal details section of the app or profile section of your account on the website.","-1954436643":"Upload a screenshot of your username on the General Information page at <0>https://onlinenaira.com/members/index.htm","-79853954":"Upload a screenshot of your account number and phone number on the Bank Account/Mobile wallet page at <0>https://onlinenaira.com/members/bank.htm","-1192882870":"Upload a screenshot of your name and account number from the personal details section.","-818898181":"Name in document doesn’t match your Deriv profile.","-310316375":"Address in document doesn’t match address you entered above.","-485368404":"Document issued more than 6-months ago.","-91160765":"Document issued more than 12-months ago.","-367016488":"Blurry document. All information must be clear and visible.","-1957076143":"Cropped document. All information must be clear and visible.","-1576856758":"An account with these details already exists. Please make sure the details you entered are correct as only one real account is allowed per client. If this is a mistake, contact us via <0>live chat.","-1792723131":"To avoid delays, enter your <0>date of birth exactly as it appears on your {{document_name}}.","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-1231402474":"Connected apps are authorised applications associated with your account through your API token or the OAuth authorisation process. They can act on your behalf within the limitations that you have set.","-506083843":"As a user, you are responsible for sharing access and for actions that occur in your account (even if they were initiated by a third-party app on your behalf).","-831752682":"Please note that only third-party apps will be displayed on this page. Official Deriv apps will not appear here.","-915844096":"US citizenship or lawful permanent resident (green card) status","-208714573":"An “in care of” address or a “hold mail” address that is the sole address with respect to the client","-1082633433":"A power of attorney or signatory authority granted to a person with a US address.","-231863107":"No","-1858215754":"The document must be up-to-date and signed by the issuance authority.","-718917527":"Invalid or incomplete documents shall be rejected.","-1526404112":"Utility bill: electricity, water, gas, or landline phone bill.","-537552700":"Home rental agreement: valid and current agreement.","-506510414":"Date and time","-1708927037":"IP address","-189310067":"Account closed","-849320995":"Assessments","-773766766":"Email and passwords","-1144318594":"Passkeys","-1466827732":"Self exclusion","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-526636259":"Error 404","-870902742":"How much knowledge and experience do you have in relation to online trading?","-1929477717":"I have an academic degree, professional certification, and/or work experience related to financial services.","-1540148863":"I have attended seminars, training, and/or workshops related to trading.","-922751756":"Less than a year","-542986255":"None","-1337206552":"In your understanding, CFD trading allows you to","-456863190":"Place a position on the price movement of an asset where the outcome is a fixed return or nothing at all.","-1314683258":"Make a long-term investment for a guaranteed profit.","-1546090184":"How does leverage affect CFD trading?","-1636427115":"Leverage helps to mitigate risk.","-800221491":"Leverage guarantees profits.","-811839563":"Leverage lets you open large positions for a fraction of trade value, which may result in increased profit or loss.","-1185193552":"Close your trade automatically when the loss is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1046354":"Close your trade automatically when the profit is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1842858448":"Make a guaranteed profit on your trade.","-860053164":"When trading multipliers.","-1250327770":"When buying shares of a company.","-1222388581":"All of the above.","-1592318047":"See example","-1694758788":"Enter your document number","-1176889260":"Please select a document type.","-274764613":"Driver License Reference number","-1265050949":"identity document","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-254792921":"You can only make deposits at the moment. To enable withdrawals, please complete your financial assessment.","-1437017790":"Financial information","-70342544":"We’re legally obliged to ask for your financial information.","-39038029":"Trading experience","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-136976514":"Country of residence*","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2068064150":"Get updates about Deriv products, services and events.","-1558679249":"Please make sure your information is correct or it may affect your trading experience.","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-807767876":"Note:","-1117963487":"Name your token and click on 'Create' to generate your token.","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-2125635811":"Please withdraw your funds from the following {{platform_name}} account(s):","-577445413":"Please close your positions in the following {{platform_name}} account(s):","-1219849101":"Please select at least one reason","-9323953":"Remaining characters: {{remaining_characters}}","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-937707753":"Go Back","-771109503":"Use our powerful, flexible, and free API to build a custom trading platform for yourself or for your business.","-1815044949":"You currently don't have any third-party authorised apps associated with your account.","-1699100421":"What are connected apps?","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-1468863262":"{{action}}","-727433417":"{{status}}","-1814836151":"What are passkeys?","-1275937234":"Unlock your account like your phone - with biometrics, face scan or PIN.","-587750445":"Extra security layer.","-642452561":"Shields against unauthorised access and phishing.","-1654043401":"You can create one passkey per device.","-1411242065":"Where are passkeys saved?","-258752017":"What happens if my Deriv account email is changed?","-634268263":"Sign in to Deriv with your existing passkey.","-1700177761":"Create passkey","-1405679241":"Stored on: ","-567193224":"Rename","-1140319320":"Your account is now secured with a passkey.<0/>Manage your passkey through your<0/>Deriv account settings.","-592543249":"Add more passkeys","-331060101":"Passkey setup failed","-1036903080":"We’re experiencing a temporary issue in processing your request. Please try again later.","-713875531":"Enable bluetooth.","-1729774899":"Sign in to your Google or iCloud account.","-684009726":"Edit passkey","-1004529240":"Passkey name","-1728732301":"Effortless login with passkeys","-1708254107":"Enable Bluetooth.","-613368504":"Tips:","-1897886029":"Before using passkey:","-1893497054":"Only 3-30 characters allowed.","-80717068":"Apps you have linked to your <0>Deriv password:","-340060402":"Your Deriv X password is for logging in to your Deriv X accounts on the web and mobile apps.","-619126443":"Use the <0>Deriv password to log in to {{brand_website_name}} and {{platform_name_trader}}.","-623760979":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_trader}} and {{platform_name_go}}.","-459147994":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, {{platform_name_dbot}} and {{platform_name_ctrader}}.","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-2131200819":"Disable","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-2067796458":"Authentication code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-1043340733":"Proof of address documents upload failed","-890084320":"Save and submit","-30772747":"Your personal details have been saved successfully.","-2021135479":"This field is required.","-1002044401":"Select your document*","-1272489896":"Please complete this field.","-721346138":"The options and multipliers trading platform.","-1874136267":"The ultimate bot trading platform.","-415943890":"The legacy options trading platform.","-673722343":"The legacy bot trading platform.","-2018495421":"The mobile app for trading multipliers and accumulators.","-897826065":"The multipliers trading platform.","-2115275974":"CFDs","-1585707873":"Financial Commission","-199154602":"Vanuatu Financial Services Commission","-191165775":"Malta Financial Services Authority","-194969520":"Counterparty company","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1131400885":"Deriv Investments (Europe) Limited","-1471207907":"All assets","-781132577":"Leverage","-1591882610":"Synthetics","-543177967":"Stock indices","-362324454":"Commodities","-1959484303":"Cryptocurrencies","-1071336803":"Platform","-1879666853":"Deriv MT5","-820028470":"Options & Multipliers","-1210359945":"Transfer funds to your accounts","-1926387364":"We’ve sent your e-book to your email. You can also download it here.","-1057002564":"<0>We’re unable to upgrade you to Wallets at this time and are working to get this fixed as soon as we can. Please <1>try again<0>.","-1424352390":"<0>Wallets<1> — A smarter way to manage your funds","-1749409935":"Let's go","-145462920":"Deriv cTrader","-982095728":"Get","-1790089996":"NEW!","-1473281803":"Predict the market, profit if you’re right, risk only what you put in. <0>Learn more","-2134770229":"Total assets in your Deriv Apps and Deriv MT5 CFDs demo account.","-1277942366":"Total assets","-1255879419":"Trader's Hub","-493788773":"Non-EU","-673837884":"EU","-230566990":"The following documents you submitted did not pass our checks:","-846812148":"Proof of address.","-1146027991":"If you’d like to get the {{from_account}} account, resubmit these documents.","-710685402":"No new positions","-1445744852":"You can no longer open new positions with your {{from_account}} account. Please use your {{to_account}} account to open new positions.","-1699909965":"or ","-2127865736":"Your {{from_account}} account will be archived after 30 days of inactivity. You can still access your trade history until the account is archived.","-2055865877":"Non-EU regulation","-643108528":"Non-EU and EU regulation","-1815067117":"Start your trading journey","-1807332199":"Set up your real account","-1002556560":"We’re unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-90090878":"Use Wallets to manage your funds across different currencies effortlessly.","-280236366":"Enable now","-1186807402":"Transfer","-744999940":"Deriv account","-766186087":"{{trustScore}} out of 5 based on {{numberOfReviews}} reviews","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1975494965":"Cashier","-42592103":"Deposit cryptocurrencies","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-520142572":"Cashier is currently down for maintenance","-1552080215":"Please check back in a few minutes.<0>Thank you for your patience.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-954082208":"Your cashier is currently locked. Please contact us via <0>live chat to find out how to unlock it.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-2027907316":"You can make a withdrawal once the verification of your account is complete.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-599998434":"You cannot make a fund transfer as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-1443721737":"Your cashier is locked. See <0>how we protect your funds before you proceed.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-1923809087":"Unfortunately, you can only make deposits. Please contact us via <0>live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-1272778997":"We've sent you an email.","-89973258":"Resend email in {{seconds}}s","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1294455996":"Deriv P2P unavailable","-1838982691":"UNKNOWN","-532693866":"Something went wrong. Please refresh the page and try again.","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-203002433":"Deposit now","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-379487596":"{{selected_percentage}}% of available balance ({{format_amount}} {{currency__display_code}})","-1957498244":"more","-1059419768":"Notes","-646217148":"We process your deposits internally within 24 hours (depending on internal checks and your payment method). If you don't see your funds reflected after this time, please contact us via <0>live chat with proof of your transaction, including the amount, date, and time.","-1901728198":"What do I do if I have reached my deposit limit?","-631829734":"<0>Insufficient balance: Please ensure you have sufficient funds in your card/e-wallet. If the problem persists, please contact your bank for help.","-1072505739":"<0>3D secure invalid/redirected: Please contact your bank for an OTP.","-180339757":"<0>Restricted card: Please use a locally issued card. ","-645281699":"<0>Customer cancelled payment: Please try again after 1 hour.","-102611677":"Can I use someone else's payment method?","-951380652":"No, you cannot use someone else's payment method to deposit into Deriv. If you use another person's payment method, your account will be suspended (if they are on Deriv, their account will also be suspended). If you suspect that someone has used your payment method, let us know through <0>live chat with your proof of ownership.","-819152742":"If you have used a different payment method to make your deposit, you cannot withdraw via a payment agent. However, if you have used both a payment agent and another payment method (for example, an e-wallet) to deposit, you have to withdraw via the e-wallet first up to your original deposited amount. After that, you can use a payment agent to make a withdrawal. If your original payment method is not available for withdrawals, please let us know through <0>live chat for assistance.","-820131811":"Can I withdraw using a different method?","-1656533423":"No, withdrawals must be made using the same method you used for your deposit.","-190084602":"Transaction","-1995606668":"Amount","-2024290965":"Confirmations","-811190405":"Time","-728508487":"{{currency}} recent transactions","-1984478597":"The details of this transaction is available on CoinsPaid.","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-1787304306":"Deriv P2P","-174976899":"P2P verification","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-922143389":"Deriv P2P is currently unavailable in this currency.","-1310327711":"Deriv P2P is currently unavailable in your country.","-1463156905":"Learn more about payment methods","-685073712":"This is your <0>{{currency}} account {{loginid}}.","-1547606079":"We accept the following cryptocurrencies:","-1517325716":"Deposit via the following payment methods:","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-917092420":"To change your account currency, contact us via <0>live chat.","-515809216":"Send only {{currency_name}} ({{currency_code}}) to this address.","-748636591":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, a fee is applied.","-1589407981":"To avoid loss of funds:","-1042704302":"Make sure to copy your Deriv account address correctly into your crypto wallet.","-2108344100":"Looking for a way to buy cryptocurrencies? <0>Try Fiat onramp.","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-91824739":"Deposit {{currency}}","-523804269":"{{amount}} {{currency}} on {{date}}","-494847428":"Address: <0>{{value}}","-1117977576":"Confirmations: <0>{{value}}","-1935946851":"View more","-1744490898":"Unfortunately, we cannot retrieve the information at this time. ","-338505133":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, between your Deriv fiat and {{platform_name_ctrader}} accounts, and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1339063554":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_ctrader}}, and {{platform_name_dxtrade}} accounts.","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-855721928":"Needs verification","-908402700":"Verification failed","-1866405488":"Deriv cTrader accounts","-1344870129":"Deriv accounts","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-1155970854":"You have reached the maximum daily transfers. Please try again tomorrow.","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1949883551":"You only have one account","-1149845849":"Back to Trader's Hub","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1254233806":"You've transferred","-953082600":"Some payment methods may not be listed here but payment agents may still offer them. If you can’t find your favourite method, contact the payment agents directly to check further.","-1491457729":"All payment methods","-142563298":"Contact your preferred payment agent for payment instructions and make your deposit.","-352134412":"Transfer limit","-1023961762":"Commission on deposits","-552873274":"Commission on withdrawal","-880645086":"Withdrawal amount","-118683067":"Withdrawal limits: <0 />-<1 />","-1125090734":"Important notice to receive your funds","-1924707324":"View transaction","-1474202916":"Make a new withdrawal","-511423158":"Enter the payment agent account number","-2059278156":"Note: {{website_name}} does not charge any transfer fees.","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-873886836":"Do not enter an address linked to an initial coin offering (ICO) purchase or crowdsale. If you do, the initial coin offering (ICO) tokens will not be credited into your account.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-1430080977":"Priority withdrawal","-1046088265":"Withdrawal amount:","-694919384":"Transaction fee","-1358465817":"Fee calculated at {{ time_stamp }}","-1744540779":"Amount received:","-38063175":"{{account_text}} wallet","-652125858":"Amount received","-705272444":"Upload a proof of identity to verify your identity","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-2067572496":"You’ve just stopped the bot. Any open contracts can be viewed on the Reports page.","-992003496":"Changes you make will not affect your running bot.","-1778025545":"You’ve successfully imported a bot.","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-179005984":"Save","-610059687":"Exploring the D’Alembert strategy in Deriv Bot","-1226666341":"The D'Alembert strategy involves increasing your stake after a losing trade and reducing it after a successful trade by a predetermined number of units.","-312844882":"Initial stake: The amount that you are willing to place as a stake to enter a trade. This is the starting point for any changes in stake depending on the dynamic of the strategy being used.","-1173302981":"1. Start with the initial stake. In this example, we’ll use 1 USD.","-1540106116":"Profit and loss thresholds","-894905768":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss thresholds are reached. It's a form of risk management that can potentially enhance returns. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1946134465":"Where:","-248283982":"B is the loss threshold.","-1148521416":"f is the unit increment.","-211800490":"D’Alembert formula 2","-1772692202":"This formula helps you plan your trades by considering the amount of money you have and your comfort level with risk. It involves determining your loss threshold and the initial stake you want to trade with. Then, you use this formula to calculate the number of rounds you can trade. This process provides insight into stake sizing and expectations.","-2107238266":"The D'Alembert system offers more balanced trading through controlled stake progression. With prudent risk management like stake limits, it can be effectively automated in Deriv Bot. However, traders should thoroughly assess their risk appetite, test strategies on a demo account to align with their trading style before trading with real money. This allows optimising the approach and striking a balance between potential gains and losses whilst managing risk.","-500873566":"Disclaimer:","-344769349":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-818800551":"Exploring the Martingale strategy in Deriv Bot","-533490374":"These are the trade parameters used in Deriv Bot with Martingale strategy.","-1507161059":"Multiplier: The multiplier used to increase your stake if you're losing a trade. The value must be greater than 1.","-1333404686":"An example of Martingale strategy","-1755877136":"3. If the first trade ends in a loss, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every losing trade.","-1297651002":"If you're about to start trading and haven't established a Maximum Stake as part of your risk management strategy, you can determine how long your funds will last by employing the Martingale strategy. Simply use this formula.","-46865201":"Martingale formula 1","-116397598":"m is the Martingale multiplier.","-658161609":"Number of rounds, R ≈ 9.965","-288082521":"This means that after 10 rounds of consecutive losses, this trader will lose 1023 USD which exceeds the loss threshold of 1000 USD, stopping the bot.","-770387160":"The Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","-1901073152":"These are the trade parameters used for Oscar’s Grind strategy in Deriv Bot.","-1575153036":"An example of Oscar’s Grind strategy","-732418614":"The table above demonstrates this principle by showing that when a successful trade occurs and meets the target of one unit of potential profit which is 1 USD in this example, the session ends. If trading continues, a new session will begin.","-106266344":"Principle 3: The stake adjusts to the gap size between current loss and the target profit for the session","-492908094":"In round 7, the stake is adjusted downwards from 2 USD to 1 USD, to meet the target profit of 1 USD.","-90079299":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss threshold is reached. This is a form of risk management that can potentially boost successful trades whilst limiting the impact of loss. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1549673884":"The Oscar's Grind strategy provides a disciplined approach for incremental gains through systematic stake progression. When integrated into Deriv Bot with proper risk management like profit or loss thresholds, it offers traders a potentially powerful automated trading technique. However, traders should first thoroughly assess their risk tolerance and first try trading on a demo account in order to familiarise with the strategy before trading with real funds.","-655650222":"Exploring the Reverse D’Alembert strategy in Deriv Bot","-1864807973":"The Reverse D'Alembert strategy involves increasing your stake after a successful trade and reducing it after a losing trade by a predetermined number of units.","-809681645":"These are the trade parameters used in Deriv Bot with Reverse D’Alembert strategy.","-1239374257":"An example of Reverse D’Alembert strategy","-309821442":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-1576691912":"This article explores the Reverse Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","-1934849823":"These are the trade parameters used in Deriv Bot with Reverse Martingale strategy.","-1021919630":"Multiplier: The multiplier used to increase your stake if your trade is successful. The value must be greater than 1.","-760516362":"3. If the first trade is a successful trade, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every successful trade.","-1410950365":"Exploring the 1-3-2-6 strategy in Deriv Bot","-1175255072":"These are the trade parameters used in Deriv Bot with 1-3-2-6 strategy.","-183884527":"An example of 1-3-2-6 strategy","-275617819":"4. However, if any trade results in a loss, your stake will reset back to the initial stake of 1 USD for the next trade. The third trade results in a loss hence the stake resets to the initial stake of 1 USD for the next trade.","-719846465":"5. Upon reaching the initial stake, if the next trade still results in a loss, your stake will remain at the initial stake of 1 USD. This strategy will minimally trade at the initial stake. Refer to the fourth and fifth trade.","-1452746011":"The 1-3-2-6 strategy in trading may offer substantial gains but also comes with significant risks. Each stake is independent, and the strategy does not increase your chances of successful trades in the long run. If you encounter a series of losses, the strategy can lead to significant losses. Therefore, it is crucial for traders to assess their risk tolerance, practice in a demo account, utilise profit and loss thresholds, and fully comprehend the strategy before engaging in real-money trading.","-1016171176":"Asset","-138833194":"The underlying market your bot will trade with this strategy.","-621128676":"Trade type","-399349239":"Your bot will use this trade type for every run","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-447853970":"Loss threshold","-33106112":"The size used to multiply the stake after a successful trade for the next trade.","-1503301801":"The value must be equal or greater than {{ min }}","-1596504046":"Number of unit(s) to be added to the next trade after a successful trade. One unit is equivalent to the amount of initial stake.","-1521098535":"Max stake","-1448426542":"The stake for your next trade will reset to the initial stake if it exceeds this value.","-993953307":"Your prediction of the last digit of the asset price.","-1305281529":"D’Alembert","-1842451303":"Welcome to Deriv Bot!","-1391310674":"Check out these guides and FAQs to learn more about building your bot:","-2066779239":"FAQs","-280324365":"What is Deriv Bot?","-155173714":"Let’s build a bot!","-2093569327":"How to build a basic trading bot with Deriv Bot","-2072114761":"How to use Martingale strategy on Deriv Bot","-1919212468":"3. You can also search for the blocks you want using the search bar above the categories.","-1800386057":"For more info, check out this blog post on the basics of building a trading bot.","-980360663":"3. Choose the block you want and drag it to the workspace.","-1493168314":"What is a quick strategy?","-1680391945":"Using a quick strategy","-1177914473":"How do I save my strategy?","-271986909":"In Bot Builder, hit Save on the toolbar at the top to download your bot. Give your bot a name, and choose to download your bot to your device or Google Drive. Your bot will be downloaded as an XML file.","-1149045595":"1. After hitting Import, select Local and click Continue.","-288041546":"2. Select your XML file and hit Open.","-2127548288":"3. Your bot will be loaded accordingly.","-1311297611":"1. After hitting Import, select Google Drive and click Continue.","-1549564044":"How do I reset the workspace?","-1127331928":"In Bot Builder, hit Reset on the toolbar at the top. This will clear the workspace. Please note that any unsaved changes will be lost.","-1720444288":"How do I control my losses with Deriv Bot?","-1142295124":"There are several ways to control your losses with Deriv Bot. Here’s a simple example of how you can implement loss control in your strategy:","-2129119462":"1. Create the following variables and place them under Run once at start:","-1918487001":"Example:","-468926787":"This is how your trade parameters, variables, and trade options should look like:","-1565344891":"Can I run Deriv Bot on multiple tabs in my web browser?","-213872712":"No, we don't offer cryptocurrencies on Deriv Bot.","-2147346223":"In which countries is Deriv Bot available?","-792737139":"We offer our services in all countries, except for the ones mentioned in our terms and conditions.","-352345777":"What are the most popular strategies for automated trading?","-552392096":"Three of the most commonly used strategies in automated trading are Martingale, D'Alembert, and Oscar's Grind — you can find them all ready-made and waiting for you in Deriv Bot.","-1630262763":"About Martingale","-413928457":"About Oscar's Grind","-1497015866":"About Reverse D’Alembert","-437005403":"About 1-3-2-6","-590765322":"Unfortunately, this trading platform is not available for EU Deriv account. Please switch to a non-EU account to continue trading.","-2110207996":"Deriv Bot is unavailable for this account","-971295844":"Switch to another account","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-1223145005":"Loss amount: {{profit}}","-1206212388":"Welcome back! Your messages have been restored. You are using your {{current_currency}} account.","-1724342053":"You are using your {{current_currency}} account.","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-555886064":"Won","-529060972":"Lost","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-224804428":"Transactions","-287223248":"No transaction or activity yet.","-418247251":"Download your journal.","-2123571162":"Download","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-558594655":"The bot is not running","-478946875":"The stats are cleared","-999254545":"All messages are filtered out","-934909826":"Load strategy","-2005347537":"Importing XML files from Binary Bot and other third-party platforms may take longer.","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-24780060":"When you’re ready to trade, hit ","-2147110353":". You’ll be able to track your bot’s performance here.","-1442034178":"Contract bought","-2020280751":"Bot is stopping","-1436403979":"Contract closed","-411060180":"TradingView Chart","-627895223":"Exit spot","-2140412463":"Buy price","-1299484872":"Account","-2004386410":"Win","-266502731":"Transactions detailed summary","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-596238067":"Entry/Exit spot","-1823621139":"Quick Strategy","-1782602933":"Choose a template below and set your trade parameters.","-315611205":"Strategy","-1524489375":"(optional)","-150224710":"Yes, continue","-475765963":"Edit the amount","-1349897832":"Do not show this message again.","-984512425":"Minimum duration: {{ value }}","-2084091453":"The value must be equal or greater than {{ value }}","-657364297":"The value must be equal or less than {{ value }}","-1696412885":"Import","-320197558":"Sort blocks","-939764287":"Charts","-1566369363":"Zoom out","-1285759343":"Search","-1291088318":"Purchase conditions","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1692205739":"Import a bot from your computer or Google Drive, build it from scratch, or start with a quick strategy.","-1150390589":"Last modified","-1393876942":"Your bots:","-1545070554":"Delete bot","-1972599670":"Your bot will be permanently deleted when you hit ","-1692956623":"Yes, delete.","-573479616":"Are you sure you want to delete it?","-786915692":"You are connected to Google Drive","-1256971627":"To import your bot from your Google Drive, you'll need to sign in to your Google account.","-1233084347":"To know how Google Drive handles your data, please review Deriv’s <0>Privacy policy.","-1150107517":"Connect","-767342552":"Enter your bot name, choose to save on your computer or Google Drive, and hit ","-1372891985":"Save.","-1003476709":"Save as collection","-636521735":"Save strategy","-1953880747":"Stop my bot","-1899230001":"Stopping the current bot will load the Quick Strategy you just created to the workspace.","-2131847097":"Any open contracts can be viewed on the ","-563774117":"Dashboard","-683790172":"Now, <0>run the bot to test out the strategy.","-1127164953":"Hi! Hit <0>Start for a quick tour.","-358288026":"Note: You can also find this tutorial in the <0>Tutorials tab.","-129587613":"Got it, thanks!","-1793577405":"Build from scratch","-358753028":"Create your bot using our drag-and-drop blocks or click Quick Strategy to choose from the ready-to-use bot templates.","-1212601535":"Monitor the market","-21136101":"See how your bot is doing in real-time.","-631097919":"Click <0>Run when you want to start trading, and click <0>Stop when you want to stop.","-1999747212":"Want to retake the tour?","-782992165":"Step 1 :","-1207872534":"First, set the <0>Trade parameters block.","-1656388044":"First, set <0>Market to Derived > Continuous Indices > Volatility 100 (1s) Index.","-1706298865":"Then, set <0>Trade type to Up/Down > Rise/Fall.","-1834358537":"For <0>Default candle interval, set it to 1 minute","-1940971254":"For <0>Trade options, set it as below:","-512839354":"<0>Stake: USD 10 (min: 0.35 - max: 50000)","-753745278":"Step 2 :","-1056713679":"Then, set the <0>Purchase conditions block.","-245497823":"<0>2. Purchase conditions:","-916770284":"<0>Purchase: Rise","-758077259":"Step 3 :","-677396944":"Step 4 :","-295975118":"Next, go to <0>Utility tab under the Blocks menu. Tap the drop-down arrow and hit <0>Loops.","-698493945":"Step 5 :","-1992994687":"Now, tap the <0>Analysis drop-down arrow and hit <0>Contract.","-1844492873":"Go to the <0>Last trade result block and click + icon to add the <0>Result is Win block to the workspace.","-1547091772":"Then, drag the <0>Result is win into the empty slot next to <0>repeat until block.","-736400802":"Step 6 :","-732067680":"Finally, drag and add the whole <0>Repeat block to the <0>Restart trading conditions block.","-1411787252":"Step 1","-1109392787":"Learn how to build your bot from scratch using a simple strategy.","-1263822623":"You can import a bot from your mobile device or from Google drive, see a preview in the bot builder, and start trading by running the bot.","-563921656":"Bot Builder guide","-1596172043":"Quick strategy guides","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-1717650468":"Online","-1309011360":"Open positions","-1597214874":"Trade table","-1929724703":"Compare CFD accounts","-883103549":"Account deactivated","-45873457":"NEW","-1837059346":"Buy / Sell","-1845037007":"Advertiser's page","-494667560":"Orders","-679691613":"My ads","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-377375279":"Standard","-1582979384":"Standard Demo","-1212531781":"Standard BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-291535132":"Swap-Free Demo","-499019612":"Zero Spread Demo","-1472945832":"Swap-Free SVG","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-2063700253":"disabled","-1585069798":"Please click the following link to complete your Appropriateness Test.","-1287141934":"Find out more","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1601813176":"Would you like to increase your daily limits to {{max_daily_buy}} {{currency}} (buy) and {{max_daily_sell}} {{currency}} (sell)?","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1744163489":"Please verify your proof of income","-382676325":"To continue trading with us, please submit your proof of income.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-493564794":"Please complete your financial assessment.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-1728185398":"Resubmit proof of address","-612396514":"Please resubmit your proof of address.","-1519764694":"Your proof of address is verified.","-1629185222":"Submit now","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-1392958585":"Please check your email.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-2136953532":"Scheduled cashier maintenance","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-949074612":"Please contact us via live chat.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1706642239":"<0>Proof of ownership <1>required","-553262593":"<0><1>Your account is currently locked <2><3>Please upload your proof of <4>ownership to unlock your account. <5>","-1834929362":"Upload my document","-1043638404":"<0>Proof of ownership <1>verification failed","-1766760306":"<0><1>Please upload your document <2>with the correct details. <3>","-8892474":"Start assessment","-1330929685":"Please submit your proof of identity and proof of address to verify your account and continue trading.","-99461057":"Please submit your proof of address to verify your account and continue trading.","-577279362":"Please submit your proof of identity to verify your account and continue trading.","-197134911":"Your proof of identity is expired","-152823394":"Your proof of identity has expired. Please submit a new proof of identity to verify your account and continue trading.","-822813736":"We're unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-978414767":"We require additional information for your Deriv MT5 account(s). Please take a moment to update your information now.","-482715448":"Go to Personal details","-2072411961":"Your proof of address has been verified","-384887227":"Update the address in your profile.","-1470677931":"CFDs on financial instruments.","-1595662064":"Zero spread CFDs on financial and derived instruments","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-1591792668":"Account Limits","-34495732":"Regulatory information","-1323441180":"I hereby confirm that my request for opening an account with Deriv to trade OTC products issued and offered exclusively outside Brazil was initiated by me. I fully understand that Deriv is not regulated by CVM and by approaching Deriv I intend to set up a relation with a foreign company.","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-288996254":"Unavailable","-1308346982":"Derived","-1019903756":"Synthetic","-735306327":"Manage accounts","-1813972756":"Account creation paused for 24 hours","-366030582":"Sorry, you're unable to create an account at this time. As you declined our previous risk warnings, we need you to wait for 24 hours after your first account creation attempt before you can proceed.<0/><0/>","-534047566":"Thank you for your understanding. You can create your account on {{real_account_unblock_date}} or later.","-399816343":"Trading Experience Assessment<0/>","-1822498621":"As per our regulatory obligations, we are required to assess your trading knowledge and experience.<0/><0/>Please click ‘OK’ to continue","-71049153":"Keep your account secure with a password","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1146960797":"Fiat currencies","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1740162250":"Manage account","-1016775979":"Choose an account","-1362081438":"Adding more real accounts has been restricted for your country.","-1602122812":"24-hour Cool Down Warning","-1519791480":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the risk of losing your money. <0/><0/>\n As you have declined our previous warning, you would need to wait 24 hours before you can proceed further.","-1010875436":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, kindly note that you would need to wait 24 hours before you can proceed further.","-1725418054":"By clicking ‘Accept’ and proceeding with the account opening, you should note that you may be exposing yourself to risks. These risks, which may be significant, include the risk of losing the entire sum invested, and you may not have the knowledge and experience to properly assess or mitigate them.","-730377053":"You can’t add another real account","-2100785339":"Invalid inputs","-2061807537":"Something’s not right","-272953725":"Your details match an existing account. If you need help, contact us via <0>live chat.","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-437918412":"No currency assigned to your account","-1193651304":"Country of residence","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1976089791":"Your Deriv account has been unlinked from your {{social_identity_provider}} account. You can now log in to Deriv using your new email address and password.","-505449293":"Enter a new password for your Deriv account.","-243732824":"Take me to Demo account","-1269078299":"I will setup my real account later.","-1342699195":"Total profit/loss:","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-813256361":"We are committed to treating our clients fairly and providing them with excellent service.<0/><1/>We would love to hear from you on how we can improve our services to you. Any information you provide will be treated in the strictest confidence. Rest assured that you will be heard, valued, and always treated fairly.","-1622847732":"If you have an inquiry regarding your trading account with {{legal_entity_name}}, you can contact us through our <0>Help centre or by chatting with a representative via <1>Live Chat.<2/><3/>We are committed to resolving your query in the quickest time possible and appreciate your patience in allowing us time to resolve the matter.<4/><5/>We strive to provide the best possible service and support to our customers. However, in the event that we are unable to resolve your query or if you feel that our response is unsatisfactory, we want to hear from you. We welcome and encourage you to submit an official complaint to us so that we can review your concerns and work towards a resolution.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-1280998762":"4. Complaints","-1886635232":"A complaint is any expression of dissatisfaction by a client regarding our products or services that requires a formal response.<0/><1/>If what you submit does not fall within the scope of a complaint, we may reclassify it as a query and forward it to the relevant department for handling. However, if you believe that your query should be classified as a complaint due to its relevance to the investment services provided by {{legal_entity_name}}, you may request that we reclassify it accordingly.","-1771496016":"To submit a complaint, please send an email to <0>complaints@deriv.com, providing as much detail as possible. To help us investigate and resolve your complaint more efficiently, please include the following information:","-1197243525":"<0>•A clear and detailed description of your complaint, including any relevant dates, times, and transactions","-1795134892":"<0>•Any relevant screenshots or supporting documentation that will assist us in understanding the issue","-2053887036":"4.4. Handling your complaint","-717170429":"Once we have received the details of your complaint, we shall review it carefully and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","-1841922393":"4.5. Resolving your complaint","-1327119795":"4.6. Your decision","-2019654103":"If we are unable to resolve your complaint or you are not satisfied with the outcome, you can escalate your complaint to the Office of the Arbiter for Financial Services.<0/><1/><2>Filing complaints with the Office of the Arbiter for Financial Services","-687172857":"<0>•You may file a complaint with the Arbiter for Financial Services only if you are not satisfied with our decision or the decision wasn’t made within 15 business days.","-262934706":"<0>•If the complaint is accepted by the Arbiter, you will receive another email with further details relating to the payment of the €25 complaint fee and the processes that follow.","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-583559763":"Menu","-673424733":"Demo account","-162753510":"Add real account","-1685795001":"Demo Wallet","-319395348":"Looking for CFDs? Go to Trader’s Hub","-554054753":"Get started","-1364763296":"No need to remember a password","-1274467503":"Sync across devices","-2036288743":"Enhanced security with biometrics or screen lock ","-143216768":"Learn more about passkeys <0> here.","-778309978":"The link you clicked has expired. Ensure to click the link in the latest email in your inbox. Alternatively, enter your email below and click <0>Resend email for a new link.","-2007055538":"Information updated","-941870889":"The cashier is for real accounts only","-352838513":"It looks like you don’t have a real {{regulation}} account. To use the cashier, switch to your {{active_real_regulation}} real account, or get an {{regulation}} real account.","-1858915164":"Ready to deposit and trade for real?","-1208519001":"You need a real Deriv account to access the cashier.","-715867914":"Successfully deposited","-1271218821":"Account added","-197631101":"Your funds will be available for trading once the verification of your account is complete.","-835056719":"We’ve received your documents","-55435892":"We’ll need 1 - 3 days to review your documents and notify you by email. You can practice with demo accounts in the meantime.","-1916578937":"<0>Explore the exciting new features that your Wallet offers.","-1724438599":"<0>You're almost there!","-1089300025":"We don’t charge deposit fees! Once your account is verified, you will be able to trade, make additional deposits, or withdraw funds.","-476018343":"Live Chat","-310434518":"The email input should not be empty.","-1471705969":"<0>{{title}}: {{trade_type_name}} on {{symbol}}","-1771117965":"Trade opened","-1856112961":"The URL you requested isn’t available","-304807228":"<0>You’re not logged in, or<0>Our services are unavailable in your country.","-1567989247":"Submit your proof of identity and address","-523602297":"Forex majors","-1303090739":"Up to 1:1500","-19213603":"Metals","-1264604378":"Up to 1:1000","-1728334460":"Up to 1:300","-646902589":"(US_30, US_100, US_500)","-705682181":"Malta","-1835174654":"1:30","-1647612934":"Spreads from","-1912437030":"about required verifications.","-466784048":"Regulator/EDR","-2098459063":"British Virgin Islands","-1326848138":"British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","-1711743223":"Forex (standard/micro), stocks, stock indices, commodities, cryptocurrencies and ETFs","-1372141447":"Straight-through processing","-1969608084":"Forex and Cryptocurrencies","-800771713":"Labuan Financial Services Authority (licence no. MB/18/0024)","-1497128311":"80+","-1689815930":"You will need to submit proof of identity and address once you reach certain thresholds.","-1175785439":"Deriv (SVG) LLC (company no. 273 LLC 2020)","-1344709651":"40+","-139026353":"A selfie of yourself.","-1228847561":"Verification in review.","-618322245":"Verification successful.","-149461870":"Forex: standard/exotic","-1995163270":"ETFs","-1220727671":"Standard - SVG","-865172869":"Financial - BVI","-1851765767":"Financial - Vanuatu","-558597854":"Financial - Labuan","-2052425142":"Swap-Free - SVG","-1192904361":"Deriv X Demo","-283929334":"Deriv cTrader Demo","-1269597956":"MT5 Platform","-1302404116":"Maximum leverage","-239789243":"(License no. SIBA/L/18/1114)","-941636117":"MetaTrader 5 Linux app","-1434036215":"Demo Financial","-659955365":"Swap-Free","-1416247163":"Financial STP","-1637969571":"Demo Swap-Free","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-860609405":"Password","-742647506":"Fund transfer","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-790488576":"Forgot password?","-476558960":"If you don’t have open positions","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-12535938":"*Volatility 250 Index, Volatility 150 Index, Boom 300 and Crash 300 Index","-2104148631":"Commissions apply","-201485855":"Up to","-700260448":"demo","-1769158315":"real","-1922462747":"Trader's hub","-16858060":"You have a new Deriv MT5 password to log in to your Deriv MT5 accounts on the web and mobile apps.","-1868608634":"Current password","-2092058806":"8 to 16 characters","-2051033705":"A special character such as ( _ @ ? ! / # )","-1762249687":"A lowercase letter","-1123437857":"You are adding your {{platform}} {{product}} account under {{company}}, regulated by the British Virgin\n Islands Financial Services Commission (licence no. SIBA/L/18/1114).","-535365199":"Enter your {{platform}} password to add a {{platform_name}} {{account}} account.","-184453418":"Enter your {{platform}} password","-393388362":"We’re reviewing your documents. This should take about 1 to 3 days.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-267598687":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. To start trading, <1 />transfer funds <2 />from your Deriv account into this account.","-1475660820":"Your Deriv MT5 {{type}} account is ready. ","-1184248732":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. ","-1928229820":"Reset Deriv X investor password","-1969916895":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character ( _ @ ? ! / # ).","-1087845020":"main","-1950683866":"investor","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-1615126227":"Manage up to {{max_count}} Deriv cTrader accounts. While you can convert any of your Deriv cTrader accounts into a strategy account, please take note of the following:","-1547739386":"To ensure you can always create and manage strategies with fees, <0>keep at least one account free from being a strategy provider. This way, you’ll always have an account ready for collecting fees, allowing you to have up to four strategies where you may impose fees.","-2145356061":"Download Deriv X on your phone to trade with the Deriv X account","-1547458328":"Run cTrader on your browser","-747382643":"Get another cTrader account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-499504077":"Choose a cTrader account to transfer","-251202291":"Broker","-678964540":"to","-206829624":"(1:x)","-616293830":"Enjoy dynamic leverage of <0>up to 1:1500 when trading selected instruments in the forex, commodities, cryptocurrencies, and stock indices markets. Our dynamic leverage adjusts automatically to your trading position, based on asset type and trading volume.","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-21438174":"Add your Deriv cTrader account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-271828350":"Get more out of Deriv MT5 Financial","-2125860351":"Choose a jurisdiction for your Deriv MT5 CFDs account","-1460321521":"Choose a jurisdiction for your {{account_type}} account","-637537305":"Download {{ platform }} on your phone to trade with the {{ platform }} {{ account }} account","-964130856":"{{existing_account_title}}","-879259635":"Enter your Deriv MT5 password to upgrade your account(s).","-1504907646":"Deriv MT5 password","-361998267":"We've introduced additional password requirements to increase your account security. Your password should:","-996995493":"Be between 8 to 16 characters.","-219163415":"Contain at least one special character.","-1446636186":"By clicking on <0>Next you agree to move your {{platform}} {{type_1}} and {{type_2}} {{from_account}} account(s) under Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","-1766387013":"Upgrade your MT5 account(s)","-990927225":"Enter your Deriv MT5 password","-1486399361":"Trade with MT5 mobile app","-301350824":"Note: Don't have the MT5 app? Tap the <0>Trade with MT5 mobile app button to download. Once you have\n installed the app, return to this screen and hit the same button to log in.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-601303096":"Scan the QR code to download Deriv {{ platform }}.","-1357917360":"Web terminal","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-1386326276":"Barrier is a required field.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-256210543":"Trading is unavailable at this time.","-1150099396":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a Deriv MT5 Financial.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-1013917510":"The reset time is {{ reset_time }}","-925402280":"Indicative low spot","-1075414250":"High spot","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1371082433":"Reset barrier","-1402197933":"Reset time","-2035315547":"Low barrier","-1745835713":"Selected tick","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-104603605":"You cannot trade as your documents are still under review. We will notify you by email once your verification is approved.","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-347156282":"Submit Proof","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-1043795232":"Recent positions","-153220091":"{{display_value}} Tick","-802374032":"Hour","-1700010072":"This feature is unavailable for tick intervals. Switch to minutes, hours, or days.","-663862998":"Markets","-1341681145":"When this is active, you can cancel your trade within the chosen time frame. Your stake will be returned without loss.","-2069438609":"No matches found","-97673874":"No closed trades","-1727419550":"Your closed trades will be shown here.","-225500551":"Entry & exit details","-1022682526":"Your favourite markets will appear here.","-315741954":"{{amount}} trade types","-232254547":"Custom","-1251526905":"Last 7 days","-1539223392":"Last 90 days","-1123299427":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <1>previous spot price. Otherwise, you lose your stake and the trade is terminated.","-1052279158":"Your <0>payout is the sum of your initial stake and profit.","-274058583":"<0>Take profit is an additional feature that lets you manage your risk by automatically closing the trade when your profit reaches the target amount. This feature is unavailable for ongoing accumulator contracts.","-1819891401":"You can close your trade anytime. However, be aware of <0>slippage risk.","-859589563":"If you select “<0>Odd”, you will win the payout if the last digit of the last tick is an odd number (i.e. 1, 3, 5, 7, or 9).","-1911850849":"If the exit spot is equal to the barrier, you don’t win the payout.","-618782785":"Use multipliers to leverage your potential returns. Predict if the asset price will move upward (bullish) or downward (bearish). We’ll charge a commission when you open a multipliers trade.","-565391674":"If you select \"<0>Up\", your total profit/loss will be the percentage increase in the underlying asset price, times the multiplier and stake, minus commissions.","-1158764468":"If you select “<0>Over”, you will win the payout if the last digit of the last tick is greater than your prediction.","-1268105691":"If you select “<0>Under”, you will win the payout if the last digit of the last tick is less than your prediction.","-444119935":"If you select \"<0>Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-521457890":"If you select “<0>Touch”, you win the payout if the market touches the barrier at any time during the contract period.","-1020271578":"If you select “<0>Down”, you’ll earn a payout if the spot price never rises above the barrier.","-403573339":"Your payout is equal to the <0>payout per point multiplied by the difference between the <1>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","-1307465836":"You may sell the contract up to 15 seconds before expiry. If you do, we’ll pay you the <0>contract value.","-1121315439":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a “Call” or a “Put”.","-1763848396":"Put","-1119872505":"How to trade ","-586636553":"Watch this video to learn about this trade type.","-2017825013":"Got it","-1117111580":"Removed from favorites","-197162398":"CLOSED","-1913695340":"Order Details","-1882287418":"How do I earn a payout?","-725670935":"Take profit and stop loss are unavailable while deal cancellation is enabled.","-1331298683":"Take profit can’t be adjusted for ongoing accumulator contracts.","-509210647":"Try searching for something else.","-99964540":"When your profit reaches or exceeds the set amount, your trade will be closed automatically.","-542594338":"Max. payout","-1622900200":"Enabled","-2131851017":"Growth rate","-339236213":"Multiplier","-1396928673":"Risk Management","-1358367903":"Stake","-1853307892":"Set your trade","-1221049974":"Final price","-843831637":"Stop loss","-583023237":"This is the resale value of your contract, based on the prevailing market conditions (e.g, the current spot), including additional commissions if any.","-1476381873":"The latest asset price when the trade closure is processed by our servers.","-584445859":"This is when your contract will expire based on the duration or end time you’ve selected. If the duration is more than 24 hours, the cut-off time and expiry date will apply instead.","-1247327943":"This is the spot price of the last tick at expiry.","-1422269966":"You can choose a growth rate with values of 1%, 2%, 3%, 4%, and 5%.","-1186791513":"Payout is the sum of your initial stake and profit.","-1482134885":"We calculate this based on the strike price and duration you’ve selected.","-1682624802":"It is a percentage of the previous spot price. The percentage rate is based on your choice of the index and the growth rate.","-1545819495":"Your trade will be closed automatically at the nearest available asset price when your loss reaches a certain percentage of your stake, but your loss never exceeds your stake. This percentage depends on the chosen underlying asset and the Multiplier.","-1293590531":"If you select “Call”, you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1432332852":"If you select ‘Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-468501352":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount. Your profit may be more than the amount you entered depending on the market price at closing.","-993480898":"Accumulators","-123659792":"Vanillas","-1226595254":"Turbos","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-1691868913":"Touch/No Touch","-330437517":"Matches/Differs","-657360193":"Over/Under","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-93996528":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1722190480":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1113825265":"Additional features are available to manage your positions: “<0>Take profit” and “<0>Stop loss” allow you to adjust your level of risk aversion.","-1104397398":"Additional features are available to manage your positions: “<0>Take profit”, “<0>Stop loss” and “<0>Deal cancellation” allow you to adjust your level of risk aversion.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1565216130":"If you select <0>\"Up\", you’ll earn a payout if the spot price never drops below the barrier.","-1336860323":"If you select <0>\"Down\", you’ll earn a payout if the spot price never rises above the barrier.","-1547935605":"Your payout is equal to the <0>payout per point multiplied by the difference between the <0>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","-351875097":"Number of ticks","-729830082":"View less","-1649593758":"Trade info","-1382749084":"Go back to trading","-1239477911":"second","-1585766960":"min","-1652791614":"mins","-1977959027":"hours","-442488432":"day","-337314714":"days","-1435392215":"About deal cancellation","-1192773792":"Don't show this again","-471757681":"Risk management","-771725194":"Deal Cancellation","-1669741470":"The payout at expiry is equal to the payout per point multiplied by the difference between the final price and the strike price.","-1186082278":"Your payout is equal to the payout per point multiplied by the difference between the final price and barrier.","-1890561510":"Cut-off time","-878534036":"If you select \"Call\", you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1587076792":"If you select \"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-565990678":"Your contract will expire on this date (in GMT), based on the End time you’ve selected.","-477936848":"We use next-tick-execution mechanism, which is the next asset price when the trade opening is processed by our servers.","-148680560":"Spot price of the last tick upon reaching expiry.","-1123926839":"Contracts will expire at exactly 14:00:00 GMT on your selected expiry date.","-1904828224":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 24 hours.","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-8998663":"Digit: {{last_digit}} ","-718750246":"Your stake will grow at {{growth_rate}}% per tick as long as the current spot price remains within ±{{tick_size_barrier_percentage}} from the previous spot price.","-690963898":"Your contract will be automatically closed when your payout reaches this amount.","-511541916":"Your contract will be automatically closed upon reaching this number of ticks.","-438655760":"<0>Note: You can close your trade anytime. Be aware of slippage risk.","-774638412":"Stake must be between {{min_stake}} {{currency}} and {{max_stake}} {{currency}}","-434270664":"Current Price","-1956787775":"Barrier Price:","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-1231210510":"Tick","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-1804019534":"Expiry: {{date}}","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-732683018":"When your profit reaches or exceeds this amount, your trade will be closed automatically.","-989393637":"Take profit can't be adjusted after your contract starts.","-194424366":"above","-857660728":"Strike Prices","-1346404690":"You receive a payout at expiry if the spot price never touches or breaches the barrier throughout the contract duration. Otherwise, your contract will be terminated early.","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-420223912":"Clean up Blocks","-301596978":"Collapse Blocks","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-985351204":"Trade again","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-1738427539":"Purchase","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1374685318":"Your contract is closed automatically when your loss is more than or equals to this amount. This block can only be used with the multipliers trade type.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-1626615625":"Take Profit (Multiplier)","-1871944173":"Accumulator trade options","-625636913":"Amount must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1631669591":"string","-1768939692":"number","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1750478127":"New variable name","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-260939264":"Collapsed","-894560707":"function","-1867119688":"Duplicate","-1710107207":"Add Comment","-1549535410":"Remove Comment","-918450098":"Blocks","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-339973827":"The market is closed","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1919680487":"workspace","-1703118772":"The {{block_type}} block is misplaced from {{missing_space}}.","-1785726890":"purchase conditions","-1993203952":"Trade options accumulators","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-1072292603":"No Change","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-137444201":"Buy","-841561409":"Put Spread","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-462715374":"Untitled Bot","-280147477":"All transactions","-130601012":"Please select duration","-1577570698":"Start date","-1904030160":"Transaction performed by (App ID: {{app_id}})","-1876891031":"Currency","-513103225":"Transaction time","-2066666313":"Credit/Debit","-1981004241":"Sell time","-1196431745":"Contract cost","-3423966":"Take profit<0 />Stop loss","-1131753095":"The {{trade_type_name}} contract details aren't currently available. We're working on making them available soon.","-360975483":"You've made no transactions of this type during this period.","-2082644096":"Current stake","-1942828391":"Max payout","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-558031309":"High Tick/Low Tick","-447037544":"Buy price:","-737348236":"Contract cost:","-1694314813":"Contract value:","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-155989831":"Decrement value","-338379841":"Indicative price:","-2027409966":"Initial stake:","-1769852749":"N/A","-726626679":"Potential profit/loss:","-1511825574":"Profit/Loss:","-499175967":"Strike Price","-706219815":"Indicative price","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-853582174":"France 40","-1096386695":"UK 100","-617646862":"Germany 40","-2077690248":"Japan 225","-512194910":"US Tech 100","-381746202":"US 500","-1935463381":"Swiss 20","-1941767726":"Euro 50","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-82971929":"Volatility 25 (1s) Index","-433962508":"Volatility 75 (1s) Index","-764111252":"Volatility 100 (1s) Index","-816110209":"Volatility 150 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1288044380":"Volatility 250 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-132112961":"Sharkfin","-1715390759":"I want to do this later","-56163366":"I don't have any of these","-175164838":"{{seconds_passed}}s ago","-514136557":"{{minutes_passed}}m ago","-1420737287":"{{hours_passed}}h ago","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-1603581277":"minutes","-886317740":"The <0>date of birth on your identity document doesn't match your profile.","-1606307809":"We were unable to verify the identity document with the details provided.","-475787720":"The verification status was empty, rejected for lack of information.","-1627868670":"Your identity document has expired.","-1302288704":"The document’s owner is deceased.","-895884696":"The <0>name and <0>date of birth on your identity document don't match your profile.","-1231856133":"The verification status is not available, provider says: Needs Technical Investigation.","-433687715":"For enhanced security, we need to reverify your identity. Kindly resubmit your proof of identity to unlock your account.","-1637538521":"Your document appears to be invalid.","-876579004":"The name on your document doesn’t match your profile.","-746520172":"Some details on your document appear to be invalid, missing, or unclear.","-2146200521":"The serial number of your document couldn’t be verified.","-1945323197":"Your document appears to be in black and white. Please upload a colour photo of your document.","-631393256":"Your document contains markings or text that should not be on your document.","-609103016":"The image quality of your document is too low. Please provide a hi-res photo of your identity document.","-530935718":"We’re unable to verify the document you provided because some details appear to be missing. Please try again or provide another document.","-1027031626":"We’re unable to verify the document you provided because it appears to be damaged. Please try again or upload another document.","-1671621833":"The front of your document appears to be missing. Please provide both sides of your identity document.","-727588232":"Your document appears to be a scanned copy that contains markings or text that shouldn’t be on your document.","-1435064387":"Your document appears to be a printed copy.","-624316211":"Your document appears to be a photo of a device screen.","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled"} \ No newline at end of file From a1b3680edce62f040760e3a53c0547e9cf452f4a Mon Sep 17 00:00:00 2001 From: hirad-deriv Date: Fri, 26 Jul 2024 13:07:02 +0800 Subject: [PATCH 13/40] Hirad/CFDs-4392/Fixed the tablet view CFD modal issues (#16145) * chore: fixed the tablet view CFD modal issues * chore: fixed the issue of ctrader dropdown * chore: fixed the issue of cTrader expansion panel * chore: changed the width of jurisdiction cards * chore: fixed the next button of COJ modal * chore: did improvements to the cfd-password-manager * chore: removed the deprecated isDesktop and replaced with a new one * chore: did improvement to the form submit button for responsive view * chore: removed isMobile * chore: fixed the overlapping issue --- .../components/cfds-listing/cfds-listing.scss | 14 ++++++-- .../Containers/cfd-password-manager-modal.tsx | 32 +++++++++---------- .../cfd/src/Containers/cfd-password-modal.tsx | 4 +-- .../jurisdiction-modal-foot-note.tsx | 1 + .../form-submit-button.scss | 2 ++ 5 files changed, 32 insertions(+), 21 deletions(-) diff --git a/packages/appstore/src/components/cfds-listing/cfds-listing.scss b/packages/appstore/src/components/cfds-listing/cfds-listing.scss index 702398b81fcd..74adf423407e 100644 --- a/packages/appstore/src/components/cfds-listing/cfds-listing.scss +++ b/packages/appstore/src/components/cfds-listing/cfds-listing.scss @@ -41,11 +41,13 @@ height: 4rem; @include mobile-or-tablet-screen { width: 100%; + max-width: 60rem; } } @include mobile-or-tablet-screen { - position: sticky; bottom: 0; + position: sticky; + justify-content: center; } } &__wrapper { @@ -230,6 +232,11 @@ padding: 1.6rem 0.8rem; box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.08); } + &--text { + @include mobile-or-tablet-screen { + max-width: 60rem; + } + } &--pending { color: $color-yellow; } @@ -286,6 +293,7 @@ perspective: 100rem; @include mobile-or-tablet-screen { width: 100%; + max-width: 60rem; } } &-container { @@ -460,6 +468,7 @@ padding: 1.6rem 2.4rem; border-radius: $BORDER_RADIUS * 2; margin-top: 0.8rem; + max-width: 65rem; &--ordered-list { list-style-type: decimal; @@ -927,6 +936,7 @@ @include mobile-or-tablet-screen { padding: 0 1.6rem; margin-top: 2.4rem; + max-width: 60rem; &__scroll-wrapper { overflow-y: auto; @@ -1556,7 +1566,7 @@ &-footer { @include mobile-or-tablet-screen { position: absolute; - bottom: 3.6rem; + bottom: 1rem; width: 100%; .dc-btn { diff --git a/packages/cfd/src/Containers/cfd-password-manager-modal.tsx b/packages/cfd/src/Containers/cfd-password-manager-modal.tsx index 54ff8af1bb1c..41276c3d41d4 100644 --- a/packages/cfd/src/Containers/cfd-password-manager-modal.tsx +++ b/packages/cfd/src/Containers/cfd-password-manager-modal.tsx @@ -4,17 +4,16 @@ import { Modal, Tabs, Button, - DesktopWrapper, Div100vhContainer, - MobileWrapper, MultiStep, PageOverlay, ThemedScrollbars, UILoader, Text, } from '@deriv/components'; +import { useDevice } from '@deriv-com/ui'; import { localize, Localize } from '@deriv/translations'; -import { isMobile, getCFDPlatformLabel } from '@deriv/shared'; +import { getCFDPlatformLabel } from '@deriv/shared'; import { FormikErrors } from 'formik'; import CFDStore from '../Stores/Modules/CFD/cfd-store'; import TradingPasswordManager from './trading-password-manager'; @@ -153,6 +152,7 @@ const CFDPasswordManagerTabContent = ({ onChangeActiveTabIndex, account_group, }: TCFDPasswordManagerTabContent) => { + const { isDesktop } = useDevice(); const [active_tab_index, setActiveTabIndex] = React.useState(0); const [error_message_investor, setErrorMessageInvestor] = React.useState(''); const [is_submit_success_investor, setSubmitSuccessInvestor] = React.useState(false); @@ -207,8 +207,8 @@ const CFDPasswordManagerTabContent = ({ const trading_password_manager = ( - - + {isDesktop ? ( + - - + ) : ( - + )} ); @@ -242,7 +241,7 @@ const CFDPasswordManagerTabContent = ({ {trading_password_manager}
- + {isDesktop ? ( - - + ) : ( - + )}
); @@ -284,6 +282,7 @@ const CFDPasswordManagerModal = observer( selected_server, }: TCFDPasswordManagerModal) => { const { client, ui } = useStore(); + const { isDesktop } = useDevice(); const { email } = client; const { enableApp, disableApp } = ui; @@ -346,7 +345,7 @@ const CFDPasswordManagerModal = observer( return ( }> - + {isDesktop ? ( - - + ) : ( - + )} ); } diff --git a/packages/cfd/src/Containers/cfd-password-modal.tsx b/packages/cfd/src/Containers/cfd-password-modal.tsx index 8cb90ae95e93..425ee55ae34b 100644 --- a/packages/cfd/src/Containers/cfd-password-modal.tsx +++ b/packages/cfd/src/Containers/cfd-password-modal.tsx @@ -969,7 +969,7 @@ const CFDPasswordModal = observer(({ form_error, platform }: TCFDPasswordModalPr onUnmount={() => getAccountStatus(platform)} onExited={() => setPasswordModalExited(true)} onEntered={() => setPasswordModalExited(false)} - width={!isDesktop ? '32.8rem' : 'auto'} + width='auto' > {cfd_password_form} @@ -1076,7 +1076,7 @@ const CFDPasswordModal = observer(({ form_error, platform }: TCFDPasswordModalPr : account_type.category === CATEGORY.REAL } has_close_icon={false} - width={!isDesktop ? '32.8rem' : 'auto'} + width='auto' is_medium_button={!isDesktop} /> diff --git a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx index a02741fb4375..e3a81f3e5c15 100644 --- a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx +++ b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx @@ -88,6 +88,7 @@ const JurisdictionModalFootNote = (props: TJurisdictionModalFootNoteProps) => { size={isMobile() ? 'xxs' : 'xs'} weight='bold' line_height='xs' + className={`${props.card_classname}__footnote--text`} > diff --git a/packages/components/src/components/form-submit-button/form-submit-button.scss b/packages/components/src/components/form-submit-button/form-submit-button.scss index c5a91c62e065..cfacff0dfeb2 100644 --- a/packages/components/src/components/form-submit-button/form-submit-button.scss +++ b/packages/components/src/components/form-submit-button/form-submit-button.scss @@ -49,10 +49,12 @@ border-top: 2px solid var(--general-disabled); max-height: 70px; width: 100%; + justify-content: center; .dc-btn { height: 40px; width: 100%; + max-width: 30rem; } } } From 210a5bb4bfaef1d1acb482d36ec200bd2ea3cbac Mon Sep 17 00:00:00 2001 From: "Ali(Ako) Hosseini" Date: Fri, 26 Jul 2024 14:29:43 +0800 Subject: [PATCH 14/40] Likhith-Ako / FEQ-2485 / implement dr solution for deriv app (#16213) * feat: create a workflow to publish pages to vercel * chore: added clarity on failure step * chore: unify slack message * chore: unify slack message * fix: updated ALIAS_DOMAIN_URL * fix: removed DR for test deployment * fix: incorporated review comment * fix: incorporated review comment * ci: add the Vercel action along with the current docker setup * ci: rename the domain name --------- Co-authored-by: Likhith Kolayari --- .github/workflows/release_production.yml | 21 +++++++++++++++++++-- .github/workflows/release_staging.yml | 19 +++++++++---------- vercel.dr.json | 6 ++++++ 3 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 vercel.dr.json diff --git a/.github/workflows/release_production.yml b/.github/workflows/release_production.yml index becaf68f3502..a86de0a7ecde 100644 --- a/.github/workflows/release_production.yml +++ b/.github/workflows/release_production.yml @@ -48,7 +48,7 @@ jobs: - name: Versioning uses: "./.github/actions/versioning" with: - RELEASE_TYPE: $RELEASE_TYPE + RELEASE_TYPE: ${{ env.RELEASE_TYPE }} - name: Extract version id: extract_version run: echo "RELEASE_VERSION=${version}" >> $GITHUB_OUTPUT @@ -90,7 +90,7 @@ jobs: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} MESSAGE: "${{ env.RELEASE_TYPE }} Release succeeded for app.deriv.com with version ${{ needs.build_test_and_publish.outputs.RELEASE_VERSION }}" - build_and_publish_to_docker_k8s: + build_and_publish_to_DR_solution: name: Build Docker image and push to Docker hub and K8S runs-on: Runner_8cores_Deriv-app environment: Production @@ -121,3 +121,20 @@ jobs: with: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} MESSAGE: "${{ env.RELEASE_TYPE }} Docker Publish and Kubernetes Deployment for app.deriv.com with version ${{ needs.build_test_and_publish.outputs.RELEASE_VERSION }} has Failed" + - name: Upload to vercel + id: vercel-upload + uses: 'deriv-com/shared-actions/.github/actions/vercel_DR_publish@master' + with: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + VERCEL_TOKEN: ${{ secrets.VERCEL_API_TOKEN }} + ENVIRONMENT: Production + VERCEL_SCOPE: deriv + ALIAS_DOMAIN_URL: 'app-dr.binary.sx' + + - name: Send DR Slack Notification + uses: "deriv-com/shared-actions/.github/actions/send_slack_notification@master" + if: ${{ steps.vercel-upload.outcome != 'success' }} + with: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + MESSAGE: Disaster Recovery Release to vercel failed for app.deriv.com with version ${{ needs.build_test_and_publish.outputs.RELEASE_VERSION }} \ No newline at end of file diff --git a/.github/workflows/release_staging.yml b/.github/workflows/release_staging.yml index d179d8b4d3b8..4623ae0bd255 100644 --- a/.github/workflows/release_staging.yml +++ b/.github/workflows/release_staging.yml @@ -53,14 +53,13 @@ jobs: CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - - name: Build Docker image and push to Docker hub and K8S - uses: "./.github/actions/build_and_push_docker_image" + - name: Upload to vercel + id: vercel-upload + uses: 'deriv-com/shared-actions/.github/actions/vercel_DR_publish@master' with: - DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} - DOCKERHUB_ORGANISATION: ${{ secrets.DOCKERHUB_ORGANISATION }} - K8S_NAMESPACE: ${{ secrets.K8S_NAMESPACE }} - KUBE_SERVER: ${{ secrets.KUBE_SERVER }} - SERVICEACCOUNT_TOKEN: ${{ secrets.SERVICEACCOUNT_TOKEN }} - CA_CRT: ${{ secrets.CA_CRT }} - APP_VERSION: latest-staging + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + VERCEL_TOKEN: ${{ secrets.VERCEL_API_TOKEN }} + ENVIRONMENT: Production + VERCEL_SCOPE: deriv + ALIAS_DOMAIN_URL: 'staging-app-dr.binary.sx' diff --git a/vercel.dr.json b/vercel.dr.json new file mode 100644 index 000000000000..32f9ca94fffc --- /dev/null +++ b/vercel.dr.json @@ -0,0 +1,6 @@ +{ + "cleanUrls": true, + "outputDirectory": "packages/core/dist", + "buildCommand": "echo ✅ Skipping build to use existing built files", + "routes": [{ "handle": "filesystem" }, { "src": "/(.*)", "dest": "/index.html" }] +} From 65ee6ecd49535c165ab548ad0a39edece9a4694a Mon Sep 17 00:00:00 2001 From: nada-deriv <122768621+nada-deriv@users.noreply.github.com> Date: Fri, 26 Jul 2024 11:55:24 +0400 Subject: [PATCH 15/40] [P2PS] - Nada/P2PS-2639/fix: order completion list to be taken from BE (#15710) * fix: order completion list to be taken from BE * fix: coveralls failing * fix: include the option if not in the list for edit ad * fix: make order payment period default value * fix: null check --- .../p2p/src/pages/my-ads/create-ad-form.jsx | 10 ++++- .../__tests__/order-time-selection.spec.tsx | 9 ++++ .../order-time-selection.tsx | 43 +++++++++++-------- .../stores/src/stores/P2PSettingsContext.tsx | 1 + 4 files changed, 43 insertions(+), 20 deletions(-) diff --git a/packages/p2p/src/pages/my-ads/create-ad-form.jsx b/packages/p2p/src/pages/my-ads/create-ad-form.jsx index 9591fd9bdbe3..dab296ecedaa 100644 --- a/packages/p2p/src/pages/my-ads/create-ad-form.jsx +++ b/packages/p2p/src/pages/my-ads/create-ad-form.jsx @@ -25,6 +25,7 @@ const CreateAdForm = ({ country_list }) => { p2p_settings: { adverts_archive_period, float_rate_offset_limit_string, + order_expiry_options, order_payment_period_string, rate_type, }, @@ -70,6 +71,13 @@ const CreateAdForm = ({ country_list }) => { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + const getOrderExpiryOption = () => { + if (order_expiry_options?.includes(Number(order_payment_period_string))) { + return order_payment_period_string; + } + return `${Math.max(...order_expiry_options)}`; + }; + return ( { max_transaction: '', min_transaction: '', offer_amount: '', - order_completion_time: order_payment_period_string, + order_completion_time: getOrderExpiryOption(), payment_info: my_ads_store.payment_info, rate_type_string: rate_type, rate_type: rate_type === ad_type.FLOAT ? '-0.01' : '', diff --git a/packages/p2p/src/pages/my-ads/order-time-selection/__tests__/order-time-selection.spec.tsx b/packages/p2p/src/pages/my-ads/order-time-selection/__tests__/order-time-selection.spec.tsx index b41fbe1a1ae0..6cb5cb0bfab2 100644 --- a/packages/p2p/src/pages/my-ads/order-time-selection/__tests__/order-time-selection.spec.tsx +++ b/packages/p2p/src/pages/my-ads/order-time-selection/__tests__/order-time-selection.spec.tsx @@ -29,6 +29,15 @@ const mock_props = { }, }; +jest.mock('@deriv/hooks', () => ({ + ...jest.requireActual('@deriv/hooks'), + useP2PSettings: jest.fn(() => ({ + p2p_settings: { + order_expiry_options: [30, 60, 90, 120], + }, + })), +})); + describe('', () => { beforeEach(() => { mockUseFormikContext.mockReturnValue({ diff --git a/packages/p2p/src/pages/my-ads/order-time-selection/order-time-selection.tsx b/packages/p2p/src/pages/my-ads/order-time-selection/order-time-selection.tsx index d5c53c95fcf3..449b5a95330e 100644 --- a/packages/p2p/src/pages/my-ads/order-time-selection/order-time-selection.tsx +++ b/packages/p2p/src/pages/my-ads/order-time-selection/order-time-selection.tsx @@ -4,6 +4,8 @@ import { Dropdown, Icon, Popover, Text } from '@deriv/components'; import { Localize, localize } from 'Components/i18next'; import { useModalManagerContext } from 'Components/modal-manager/modal-manager-context'; import { useStore } from '@deriv/stores'; +import { useP2PSettings } from '@deriv/hooks'; +import { formatTime } from 'Utils/orders'; type TFormikContext = { handleChange: FormikHandlers['handleChange']; @@ -23,28 +25,31 @@ const OrderTimeSelection = ({ ...field }: TOrderTimeSelectionProps) => { const { values, handleChange }: TFormikContext = useFormikContext(); + const { order_completion_time } = values; const { showModal } = useModalManagerContext(); + const { p2p_settings } = useP2PSettings(); + const { order_expiry_options } = p2p_settings ?? {}; const { ui } = useStore(); const { is_mobile } = ui; const order_time_info_message = localize('Orders will expire if they aren’t completed within this time.'); - const order_completion_time_list = [ - { - text: localize('1 hour'), - value: '3600', - }, - { - text: localize('45 minutes'), - value: '2700', - }, - { - text: localize('30 minutes'), - value: '1800', - }, - { - text: localize('15 minutes'), - value: '900', - }, - ]; + + const getOrderExpiryOptions = ( + order_expiry_options: NonNullable< + NonNullable>['p2p_settings'] + >['order_expiry_options'] + ) => { + const options = order_expiry_options?.map(option => ({ + text: formatTime(option / 60), + value: `${option}`, + })); + if (options?.some(option => option.value === order_completion_time)) return options; + return ( + options?.concat({ + text: formatTime(Number(order_completion_time) / 60), + value: order_completion_time, + }) ?? [] + ); + }; return (
@@ -75,7 +80,7 @@ const OrderTimeSelection = ({ classNameDisplay={classNameDisplay} classNameIcon={classNameIcon} is_align_text_left - list={order_completion_time_list} + list={getOrderExpiryOptions(order_expiry_options)} onChange={handleChange} value={values.order_completion_time} /> diff --git a/packages/stores/src/stores/P2PSettingsContext.tsx b/packages/stores/src/stores/P2PSettingsContext.tsx index c64073033634..a62a504e408f 100644 --- a/packages/stores/src/stores/P2PSettingsContext.tsx +++ b/packages/stores/src/stores/P2PSettingsContext.tsx @@ -17,6 +17,7 @@ export type TP2PSettings = text: string; value: string; }[]; + order_expiry_options?: number[]; order_payment_period_string: string; }) | undefined; From a10f85ced2d3ac9f29137bb1f1a72c5309074651 Mon Sep 17 00:00:00 2001 From: George Usynin <103181646+heorhi-deriv@users.noreply.github.com> Date: Fri, 26 Jul 2024 11:45:36 +0300 Subject: [PATCH 16/40] [WALL] george / WALL-4522 / Add ce_cashier_deposit_onboarding_form analytics event (#16089) * feat(cashier): :zap: add ce_cashier_deposit_onboarding_form analytics event * feat(p2p): setup analytics in p2p * fix(cashier): :ambulance: fix remounting of vertical tab routes/pages * chore: align package-lock with master * chore(cashier): :recycle: minor improvement, fix test * chore: deriv analytics version update * fix(cashier): :bug: content remounting, p2p remounting --- packages/cashier/package.json | 1 + ...posit-sub-page-analytics-event-tracker.tsx | 24 +++++ .../deposit-sub-page-event-tracker/index.ts | 1 + .../cashier/__tests__/cashier.spec.tsx | 50 +++++---- .../src/containers/cashier/cashier.tsx | 34 ++++-- .../cashier-onboarding/cashier-onboarding.tsx | 14 ++- .../__test__/cashier-onboarding-card.test.tsx | 1 + .../cashier-onboarding-card.tsx | 20 +++- .../cashier-onboarding-crypto-card.tsx | 1 + .../cashier-onboarding-fiat-card.tsx | 19 ++-- .../cashier-onboarding-onramp-card.tsx | 1 + .../cashier-onboarding-p2p-card.tsx | 18 ++-- .../cashier-onboarding-payment-agent-card.tsx | 1 + .../deposit-crypto-wallet-address.tsx | 14 ++- .../modules/deposit-crypto/deposit-crypto.tsx | 2 + .../src/modules/deposit-fiat/deposit-fiat.tsx | 2 + .../cashier/src/pages/on-ramp/on-ramp.tsx | 100 +++++++++--------- .../payment-agent-list/payment-agent-list.tsx | 2 + .../src/components/clipboard/clipboard.tsx | 3 + .../vertical-tab-content-container.tsx | 54 ++++++---- .../components/vertical-tab/vertical-tab.tsx | 11 +- packages/p2p/package.json | 1 + packages/p2p/src/pages/app.jsx | 15 ++- packages/p2p/webpack.config.js | 1 + 24 files changed, 268 insertions(+), 122 deletions(-) create mode 100644 packages/cashier/src/components/deposit-sub-page-event-tracker/deposit-sub-page-analytics-event-tracker.tsx create mode 100644 packages/cashier/src/components/deposit-sub-page-event-tracker/index.ts diff --git a/packages/cashier/package.json b/packages/cashier/package.json index 12402ee5f6fa..563c0a06d70a 100644 --- a/packages/cashier/package.json +++ b/packages/cashier/package.json @@ -37,6 +37,7 @@ "url": "https://github.com/binary-com/deriv-app/issues" }, "dependencies": { + "@deriv-com/analytics": "1.10.0", "@deriv/api": "^1.0.0", "@deriv/api-types": "1.0.172", "@deriv/components": "^1.0.0", diff --git a/packages/cashier/src/components/deposit-sub-page-event-tracker/deposit-sub-page-analytics-event-tracker.tsx b/packages/cashier/src/components/deposit-sub-page-event-tracker/deposit-sub-page-analytics-event-tracker.tsx new file mode 100644 index 000000000000..15c7eb4387a1 --- /dev/null +++ b/packages/cashier/src/components/deposit-sub-page-event-tracker/deposit-sub-page-analytics-event-tracker.tsx @@ -0,0 +1,24 @@ +import React, { useEffect } from 'react'; +import { Analytics } from '@deriv-com/analytics'; +import { useStore } from '@deriv/stores'; + +type TProps = { deposit_category: 'crypto' | 'fiat' | 'fiat_onramp' | 'payment_agent' | 'p2p' }; + +const DepositSubPageAnalyticsEventTracker: React.FC = ({ deposit_category }) => { + const { client } = useStore(); + const { currency, loginid } = client; + + useEffect(() => { + Analytics.trackEvent('ce_cashier_deposit_onboarding_form', { + action: 'open_deposit_subpage', + form_name: 'ce_cashier_deposit_onboarding_form', + currency, + deposit_category, + login_id: loginid, + }); + }, [currency, deposit_category, loginid]); + + return null; +}; + +export default DepositSubPageAnalyticsEventTracker; diff --git a/packages/cashier/src/components/deposit-sub-page-event-tracker/index.ts b/packages/cashier/src/components/deposit-sub-page-event-tracker/index.ts new file mode 100644 index 000000000000..b914207bb670 --- /dev/null +++ b/packages/cashier/src/components/deposit-sub-page-event-tracker/index.ts @@ -0,0 +1 @@ +export { default as DepositSubPageAnalyticsEventTracker } from './deposit-sub-page-analytics-event-tracker'; diff --git a/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx b/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx index 50f42334797d..8e5a79468870 100644 --- a/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx +++ b/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx @@ -11,6 +11,38 @@ import CashierProviders from '../../../cashier-providers'; jest.mock('@deriv/hooks', () => { return { ...jest.requireActual('@deriv/hooks'), + usePaymentAgentList: jest.fn(() => ({ + data: [ + { + currencies: 'USD', + email: 'pa-test@email.com', + further_information: 'Further information', + max_withdrawal: '2000', + min_withdrawal: '10', + name: 'PA', + paymentagent_loginid: 'CR9999999', + phone_numbers: [ + { + phone_number: '+987654321', + }, + ], + summary: '', + supported_payment_methods: [ + { + payment_method: 'Visa', + }, + ], + urls: [ + { + url: 'https://test.test', + }, + ], + withdrawal_commission: '0', + }, + ], + isLoading: false, + isSuccess: true, + })), usePaymentAgentTransferVisible: jest.fn(() => ({ data: true, isLoading: false, @@ -103,9 +135,6 @@ describe('', () => { transaction_history: { is_transactions_crypto_visible: false, }, - payment_agent: { - is_payment_agent_visible: false, - }, }, }, }); @@ -153,9 +182,6 @@ describe('', () => { transaction_history: { is_transactions_crypto_visible: true, }, - payment_agent: { - is_payment_agent_visible: true, - }, }, }, }); @@ -206,9 +232,6 @@ describe('', () => { // transaction_history: { // is_transactions_crypto_visible: false, // }, - // payment_agent: { - // is_payment_agent_visible: true, - // }, // }, // }, // }); @@ -259,9 +282,6 @@ describe('', () => { transaction_history: { is_transactions_crypto_visible: true, }, - payment_agent: { - is_payment_agent_visible: true, - }, }, }, }); @@ -311,9 +331,6 @@ describe('', () => { transaction_history: { is_transactions_crypto_visible: true, }, - payment_agent: { - is_payment_agent_visible: true, - }, }, }, }); @@ -364,9 +381,6 @@ describe('', () => { transaction_history: { is_transactions_crypto_visible: true, }, - payment_agent: { - is_payment_agent_visible: true, - }, }, }, }); diff --git a/packages/cashier/src/containers/cashier/cashier.tsx b/packages/cashier/src/containers/cashier/cashier.tsx index 7cbf588b6ce5..99f4330b1800 100644 --- a/packages/cashier/src/containers/cashier/cashier.tsx +++ b/packages/cashier/src/containers/cashier/cashier.tsx @@ -16,11 +16,12 @@ import { useOnrampVisible, useAccountTransferVisible, useIsP2PEnabled, + usePaymentAgentList, usePaymentAgentTransferVisible, useP2PNotificationCount, useP2PSettings, } from '@deriv/hooks'; -import { getSelectedRoute, getStaticUrl, routes, setPerformanceValue, WS } from '@deriv/shared'; +import { getSelectedRoute, getStaticUrl, routes, setPerformanceValue, WS, matchRoute } from '@deriv/shared'; import ErrorDialog from '../../components/error-dialog'; import { TRoute } from '../../types'; import { localize } from '@deriv/translations'; @@ -52,7 +53,7 @@ type TCashierOptions = { const Cashier = observer(({ history, location, routes: routes_config }: TCashierProps) => { const { common, ui, client } = useStore(); - const { withdraw, general_store, payment_agent } = useCashierStore(); + const { withdraw, general_store } = useCashierStore(); const { error } = withdraw; const { is_cashier_onboarding, @@ -65,13 +66,18 @@ const Cashier = observer(({ history, location, routes: routes_config }: TCashier } = general_store; const { data: is_payment_agent_transfer_visible, - isLoading: is_payment_agent_checking, + isLoading: is_payment_agent_transfer_checking, isSuccess: is_payment_agent_transfer_visible_is_success, } = usePaymentAgentTransferVisible(); - const { is_payment_agent_visible } = payment_agent; const { is_from_derivgo } = common; const { is_cashier_visible: is_visible, is_mobile, toggleCashier, toggleReadyToDepositModal } = ui; const { currency, is_account_setting_loaded, is_logged_in, is_logging_in, is_svg, is_virtual } = client; + const { + data: paymentAgentList, + isLoading: is_payment_agent_list_loading, + isSuccess: is_payment_agent_list_success, + } = usePaymentAgentList(currency); + const is_payment_agent_visible = paymentAgentList && paymentAgentList.length > 0; const is_account_transfer_visible = useAccountTransferVisible(); const is_onramp_visible = useOnrampVisible(); const p2p_notification_count = useP2PNotificationCount(); @@ -240,15 +246,26 @@ const Cashier = observer(({ history, location, routes: routes_config }: TCashier toggleReadyToDepositModal, ]); - if ( + const is_p2p_loading = is_p2p_enabled_loading && !is_p2p_enabled_success; + const is_payment_agent_loading = is_payment_agent_list_loading && !is_payment_agent_list_success; + const is_cashier_loading = ((!is_logged_in || is_mobile) && is_logging_in) || !is_account_setting_loaded || - is_payment_agent_checking || - (is_p2p_enabled_loading && !is_p2p_enabled_success) - ) { + is_payment_agent_transfer_checking || + is_p2p_loading || + is_payment_agent_loading; + + if (is_cashier_loading) { return ; } + // Calculation of `initial_tab_index` must be performed after cashier loading + // Because at this stage `getMenuOptions` list has all available routes + const initial_tab_index = Math.max( + getMenuOptions.findIndex(item => matchRoute(item, location.pathname)), + 0 + ); + // measure performance metrics (load cashier time) setPerformanceValue('load_cashier_time'); @@ -260,6 +277,7 @@ const Cashier = observer(({ history, location, routes: routes_config }: TCashier { const history = useHistory(); - const { ui } = useStore(); + const { client, ui } = useStore(); + const { loginid } = client; const { general_store } = useCashierStore(); const { setIsCashierOnboarding } = general_store; const { toggleSetCurrencyModal } = ui; const has_set_currency = useHasSetCurrency(); + useEffect(() => { + if (loginid) { + Analytics.trackEvent('ce_cashier_deposit_onboarding_form', { + action: 'open', + form_name: 'ce_cashier_deposit_onboarding_form', + login_id: loginid, + }); + } + }, [loginid]); + useEffect(() => { setIsCashierOnboarding(true); diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/__test__/cashier-onboarding-card.test.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/__test__/cashier-onboarding-card.test.tsx index b7f61951b6b4..b24950208c20 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/__test__/cashier-onboarding-card.test.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/__test__/cashier-onboarding-card.test.tsx @@ -10,6 +10,7 @@ describe('CashierOnboardingCard', () => { const props: React.ComponentProps = { title: 'foo', description: 'bar', + depositCategory: 'crypto', onClick: jest.fn(), }; diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/cashier-onboarding-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/cashier-onboarding-card.tsx index 760d9f157695..31361c6be00c 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/cashier-onboarding-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/cashier-onboarding-card.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { Analytics } from '@deriv-com/analytics'; import { Icon, Text } from '@deriv/components'; import { observer, useStore } from '@deriv/stores'; import './cashier-onboarding-card.scss'; @@ -6,14 +7,27 @@ import './cashier-onboarding-card.scss'; type TProps = { title: string; description: string; + depositCategory: 'crypto' | 'fiat' | 'fiat_onramp' | 'payment_agent' | 'p2p'; onClick?: VoidFunction; }; const CashierOnboardingCard: React.FC> = observer( - ({ title, description, onClick, children }) => { - const { ui } = useStore(); + ({ title, description, depositCategory, onClick, children }) => { + const { client, ui } = useStore(); + const { currency, loginid } = client; const { is_dark_mode_on, is_mobile } = ui; + const onClickHandler = () => { + onClick?.(); + Analytics.trackEvent('ce_cashier_deposit_onboarding_form', { + action: 'click_deposit_card', + form_name: 'ce_cashier_deposit_onboarding_form', + deposit_category: depositCategory, + currency, + login_id: loginid, + }); + }; + return (
@@ -22,7 +36,7 @@ const CashierOnboardingCard: React.FC> = observe
diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-crypto-card/cashier-onboarding-crypto-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-crypto-card/cashier-onboarding-crypto-card.tsx index 31841bb2b6ba..a5e3e35b8fc2 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-crypto-card/cashier-onboarding-crypto-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-crypto-card/cashier-onboarding-crypto-card.tsx @@ -36,6 +36,7 @@ const CashierOnboardingCryptoCard: React.FC = observer(() => { `${icon}${is_dark_mode_on ? 'Dark' : 'Light'}`)} /> diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-fiat-card/cashier-onboarding-fiat-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-fiat-card/cashier-onboarding-fiat-card.tsx index b923097d8f72..ced34110e5a9 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-fiat-card/cashier-onboarding-fiat-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-fiat-card/cashier-onboarding-fiat-card.tsx @@ -42,12 +42,17 @@ const CashierOnboardingFiatCard: React.FC = observer(() => { }; return ( - - `${icon}${is_dark_mode_on ? 'Dark' : 'Light'}`)} /> + + + `${icon}${is_dark_mode_on ? 'Dark' : 'Light'}`)} + /> + {can_switch_to_fiat_account && ( { onSwitchDone={onSwitchDone} /> )} - + ); }); diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-onramp-card/cashier-onboarding-onramp-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-onramp-card/cashier-onboarding-onramp-card.tsx index e4282458acdc..99bde98ffc10 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-onramp-card/cashier-onboarding-onramp-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-onramp-card/cashier-onboarding-onramp-card.tsx @@ -34,6 +34,7 @@ const CashierOnboardingOnrampCard: React.FC = observer(() => { : localize('Buy cryptocurrencies via fiat onramp') } description={localize('Choose any of these exchanges to buy cryptocurrencies:')} + depositCategory='fiat_onramp' onClick={onClick} > `${icon}${is_dark_mode_on ? 'Dark' : 'Light'}`)} /> diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-p2p-card/cashier-onboarding-p2p-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-p2p-card/cashier-onboarding-p2p-card.tsx index 05bab9fa7eef..d5a505ef2e4a 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-p2p-card/cashier-onboarding-p2p-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-p2p-card/cashier-onboarding-p2p-card.tsx @@ -46,13 +46,15 @@ const CashierOnboardingP2PCard: React.FC = observer(() => { if (!should_show_p2p_card) return null; return ( - + + {can_switch_to_fiat_account && ( { onSwitchDone={onSwitchDone} /> )} - + ); }); diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-payment-agent-card/cashier-onboarding-payment-agent-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-payment-agent-card/cashier-onboarding-payment-agent-card.tsx index 11cef7dc3bb6..81101dec37de 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-payment-agent-card/cashier-onboarding-payment-agent-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-payment-agent-card/cashier-onboarding-payment-agent-card.tsx @@ -28,6 +28,7 @@ const CashierOnboardingPaymentAgentCard: React.FC = observer(() => { description={localize( 'Deposit in your local currency via an authorised, independent payment agent in your country.' )} + depositCategory='payment_agent' onClick={onClick} /> ); diff --git a/packages/cashier/src/modules/deposit-crypto/components/deposit-crypto-wallet-address/deposit-crypto-wallet-address.tsx b/packages/cashier/src/modules/deposit-crypto/components/deposit-crypto-wallet-address/deposit-crypto-wallet-address.tsx index 0ed63bcbcea3..16022218c158 100644 --- a/packages/cashier/src/modules/deposit-crypto/components/deposit-crypto-wallet-address/deposit-crypto-wallet-address.tsx +++ b/packages/cashier/src/modules/deposit-crypto/components/deposit-crypto-wallet-address/deposit-crypto-wallet-address.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { Analytics } from '@deriv-com/analytics'; import { Button, Clipboard, InlineMessage, Loading, Text } from '@deriv/components'; import { useDepositCryptoAddress } from '@deriv/hooks'; import { observer, useStore } from '@deriv/stores'; @@ -9,7 +10,8 @@ import { DepositCryptoDisclaimers } from '../deposit-crypto-disclaimers'; import './deposit-crypto-wallet-address.scss'; const DepositCryptoWalletAddress: React.FC = observer(() => { - const { ui } = useStore(); + const { client, ui } = useStore(); + const { currency, loginid } = client; const { is_mobile } = ui; const { data: deposit_crypto_address, isLoading, error, resend } = useDepositCryptoAddress(); @@ -17,6 +19,15 @@ const DepositCryptoWalletAddress: React.FC = observer(() => { setPerformanceValue('load_crypto_deposit_cashier_time'); + const onClickHandler = () => { + Analytics.trackEvent('ce_cashier_deposit_onboarding_form', { + action: 'click_copy_crypto_address', + form_name: 'ce_cashier_deposit_onboarding_form', + currency, + login_id: loginid, + }); + }; + if (error) { return (
@@ -49,6 +60,7 @@ const DepositCryptoWalletAddress: React.FC = observer(() => { text_copy={deposit_crypto_address || ''} info_message={is_mobile ? undefined : localize('copy')} success_message={localize('copied!')} + onClickHandler={onClickHandler} popoverAlignment={is_mobile ? 'left' : 'bottom'} />
diff --git a/packages/cashier/src/modules/deposit-crypto/deposit-crypto.tsx b/packages/cashier/src/modules/deposit-crypto/deposit-crypto.tsx index b3d2418252ea..a8e00860143e 100644 --- a/packages/cashier/src/modules/deposit-crypto/deposit-crypto.tsx +++ b/packages/cashier/src/modules/deposit-crypto/deposit-crypto.tsx @@ -2,6 +2,7 @@ import React, { useEffect } from 'react'; import { observer, useStore } from '@deriv/stores'; import { Divider } from '../../components/divider'; import { PageContainer } from '../../components/page-container'; +import { DepositSubPageAnalyticsEventTracker } from '../../components/deposit-sub-page-event-tracker'; import { useCashierStore } from '../../stores/useCashierStores'; import { DepositCryptoCurrencyDetails, DepositCryptoSideNotes, DepositCryptoWalletAddress } from './components'; import DepositCryptoSideNoteTryFiatOnRamp from './components/deposit-crypto-side-notes/deposit-crypto-side-note-try-fiat-onramp'; @@ -27,6 +28,7 @@ const DepositCrypto: React.FC = observer(() => { // side notes for consistency and then we can remove unnecessary components from the children. right={is_mobile ? undefined : } > + diff --git a/packages/cashier/src/modules/deposit-fiat/deposit-fiat.tsx b/packages/cashier/src/modules/deposit-fiat/deposit-fiat.tsx index d045db2819ab..77068ac9e7e2 100644 --- a/packages/cashier/src/modules/deposit-fiat/deposit-fiat.tsx +++ b/packages/cashier/src/modules/deposit-fiat/deposit-fiat.tsx @@ -3,6 +3,7 @@ import { SideNote } from '@deriv/components'; import { observer, useStore } from '@deriv/stores'; import { Localize } from '@deriv/translations'; import { PageContainer } from '../../components/page-container'; +import { DepositSubPageAnalyticsEventTracker } from '../../components/deposit-sub-page-event-tracker'; import { DepositFiatIframe } from './components'; import { SideNoteFAQ } from 'Components/side-notes'; @@ -41,6 +42,7 @@ const DepositFiat: React.FC = observer(() => { } > + ); diff --git a/packages/cashier/src/pages/on-ramp/on-ramp.tsx b/packages/cashier/src/pages/on-ramp/on-ramp.tsx index 80059d0d07ae..1dd11982f66f 100644 --- a/packages/cashier/src/pages/on-ramp/on-ramp.tsx +++ b/packages/cashier/src/pages/on-ramp/on-ramp.tsx @@ -8,6 +8,7 @@ import CashierLocked from '../../components/cashier-locked'; import SideNote from '../../components/side-note'; import OnRampProviderCard from './on-ramp-provider-card'; import OnRampProviderPopup from './on-ramp-provider-popup'; +import { DepositSubPageAnalyticsEventTracker } from '../../components/deposit-sub-page-event-tracker'; import { useCashierStore } from '../../stores/useCashierStores'; import './on-ramp.scss'; @@ -112,56 +113,55 @@ const OnRamp = observer(({ menu_options, setSideNotes }: TOnRampProps) => { } return ( - -
- {isMobile() && ( - - { - if (e.currentTarget.value !== selected_cashier_path) { - setSelectedCashierPath(e.currentTarget.value); - } - }} - /> - - - )} - - - - {filtered_onramp_providers.map(provider => ( - - ))} - setIsOnRampModalOpen(!is_onramp_modal_open)} - onUnmount={resetPopup} - width={should_show_dialog ? '44rem' : '62.8rem'} - > - - - - -
-
+
+ + {isMobile() && ( + + { + if (e.currentTarget.value !== selected_cashier_path) { + setSelectedCashierPath(e.currentTarget.value); + } + }} + /> + + + )} + + + + {filtered_onramp_providers.map(provider => ( + + ))} + setIsOnRampModalOpen(!is_onramp_modal_open)} + onUnmount={resetPopup} + width={should_show_dialog ? '44rem' : '62.8rem'} + > + + + + +
); }); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx index e0a9b01e2aeb..9b75c0ab12d7 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx @@ -9,6 +9,7 @@ import DepositTab from './deposit-tab'; import WithdrawalTab from './withdrawal-tab'; import MissingPaymentMethodNote from '../missing-payment-method-note'; import PaymentAgentDisclaimer from '../payment-agent-disclaimer'; +import { DepositSubPageAnalyticsEventTracker } from '../../../components/deposit-sub-page-event-tracker'; import { useCashierStore } from '../../../stores/useCashierStores'; import './payment-agent-list.scss'; @@ -44,6 +45,7 @@ const PaymentAgentList = observer(({ setSideNotes }: TProps) => { return (
+
; @@ -23,6 +24,7 @@ const Clipboard = ({ icon, success_message, className, + onClickHandler, popoverClassName, popover_props = {}, popoverAlignment = 'bottom', @@ -40,6 +42,7 @@ const Clipboard = ({ } }, 2000); event.stopPropagation(); + onClickHandler?.(); }; React.useEffect(() => { diff --git a/packages/components/src/components/vertical-tab/vertical-tab-content-container.tsx b/packages/components/src/components/vertical-tab/vertical-tab-content-container.tsx index 338d792cfb02..844e6a9ae43b 100644 --- a/packages/components/src/components/vertical-tab/vertical-tab-content-container.tsx +++ b/packages/components/src/components/vertical-tab/vertical-tab-content-container.tsx @@ -1,5 +1,5 @@ import classNames from 'classnames'; -import React from 'react'; +import React, { memo, useMemo } from 'react'; import { Route, Switch } from 'react-router-dom'; import Icon from '../icon/icon'; import { TItem } from './vertical-tab-header'; @@ -51,38 +51,48 @@ const SideNotes = ({ class_name, side_notes }: TSideNotes) => { }; const ContentWrapper = ({ children, has_side_note }: React.PropsWithChildren) => { - if (has_side_note) { - return
{children}
; - } - return children as JSX.Element; + return ( +
+ {children} +
+ ); }; -const Content = ({ is_routed, items, selected }: TContent) => { +const Content = memo(({ is_routed, items, selected }: TContent) => { const selected_item = items.find(item => item.label === selected.label); - const TabContent = selected_item?.value as React.ElementType; const [side_notes, setSideNotes] = React.useState(null); const addToNotesQueue = React.useCallback((notes: React.ReactNode[]) => { setSideNotes(notes); }, []); + const MemoizedTabContent = useMemo(() => { + return selected_item?.value as React.ElementType; + }, [selected_item?.value]); + + const memoized_routes = useMemo(() => { + return items.map(({ value, component, path, icon }, idx) => { + const Component = (value as React.ElementType) || component; + return ( + } + /> + ); + }); + }, [addToNotesQueue, items]); + return ( {is_routed ? ( - - {items.map(({ value, component, path, icon }, idx) => { - const Component = (value as React.ElementType) || component; - return ( - } - /> - ); - })} - + {memoized_routes} ) : ( - + )} {selected.has_side_note && ( // for components that have side note, even if no note is passed currently, @@ -91,7 +101,9 @@ const Content = ({ is_routed, items, selected }: TContent) => { )} ); -}; +}); + +Content.displayName = 'Content'; const VerticalTabContentContainer = ({ action_bar, diff --git a/packages/components/src/components/vertical-tab/vertical-tab.tsx b/packages/components/src/components/vertical-tab/vertical-tab.tsx index ba870ca7e1f9..ef338d055265 100644 --- a/packages/components/src/components/vertical-tab/vertical-tab.tsx +++ b/packages/components/src/components/vertical-tab/vertical-tab.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useMemo } from 'react'; import classNames from 'classnames'; import { matchRoute } from '@deriv/shared'; import VerticalTabContentContainer, { TAction_bar } from './vertical-tab-content-container'; @@ -29,6 +29,7 @@ type TVerticalTab = { has_mixed_dimensions?: boolean; header_classname?: string; header_title?: string; + initial_vertical_tab_index?: number; is_collapsible?: boolean; is_floating?: boolean; is_grid?: boolean; @@ -81,6 +82,7 @@ const VerticalTab = ({ has_mixed_dimensions, header_classname, header_title, + initial_vertical_tab_index, is_collapsible, is_floating, is_grid, @@ -95,7 +97,8 @@ const VerticalTab = ({ title, vertical_tab_index, }: TVerticalTab) => { - const [curr_tab_index, setCurrTabIndex] = React.useState(vertical_tab_index || 0); + const [curr_tab_index, setCurrTabIndex] = React.useState(initial_vertical_tab_index ?? (vertical_tab_index || 0)); + const selected = useMemo(() => list[curr_tab_index] || list[0], [curr_tab_index, list]); const changeSelected = (e: TItem) => { setSelectedIndex({ @@ -153,7 +156,7 @@ const VerticalTab = ({ items={list} item_groups={list_groups} onChange={changeSelected} - selected={list[curr_tab_index] || list[0]} + selected={selected} has_mixed_dimensions={has_mixed_dimensions} is_collapsible={is_collapsible} is_floating={is_floating} @@ -172,7 +175,7 @@ const VerticalTab = ({ className={className} is_floating={is_floating} items={list} - selected={list[curr_tab_index] || list[0]} + selected={selected} is_routed={is_routed} />
diff --git a/packages/p2p/package.json b/packages/p2p/package.json index c2574afc2bcd..278a572d572f 100644 --- a/packages/p2p/package.json +++ b/packages/p2p/package.json @@ -32,6 +32,7 @@ "author": "", "license": "ISC", "dependencies": { + "@deriv-com/analytics": "1.10.0", "@deriv-com/utils": "^0.0.25", "@deriv/api": "^1.0.0", "@deriv/api-types": "1.0.172", diff --git a/packages/p2p/src/pages/app.jsx b/packages/p2p/src/pages/app.jsx index bfdf79aaa6ed..60387af7b48e 100644 --- a/packages/p2p/src/pages/app.jsx +++ b/packages/p2p/src/pages/app.jsx @@ -1,6 +1,7 @@ import React from 'react'; import { useHistory, useLocation } from 'react-router-dom'; import { reaction } from 'mobx'; +import { Analytics } from '@deriv-com/analytics'; import { Loading } from '@deriv/components'; import { useP2PCompletedOrdersNotification, useFeatureFlags, useP2PSettings } from '@deriv/hooks'; import { isEmptyObject, routes, WS } from '@deriv/shared'; @@ -19,7 +20,7 @@ import './app.scss'; const App = () => { const { is_p2p_v2_enabled } = useFeatureFlags(); const { notifications, client, ui, common, modules } = useStore(); - const { balance, is_logging_in } = client; + const { balance, currency, is_logging_in, loginid } = client; const { setOnRemount } = modules?.cashier?.general_store; const { is_mobile } = ui; @@ -190,6 +191,18 @@ const App = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [setQueryOrder]); + React.useEffect(() => { + if (loginid && currency) { + Analytics.trackEvent('ce_cashier_deposit_onboarding_form', { + action: 'open_deposit_subpage', + form_name: 'ce_cashier_deposit_onboarding_form', + deposit_category: 'p2p', + currency, + login_id: loginid, + }); + } + }, [currency, loginid]); + const setQueryOrder = React.useCallback( input_order_id => { const current_query_params = new URLSearchParams(location.search); diff --git a/packages/p2p/webpack.config.js b/packages/p2p/webpack.config.js index 16cbb75678f4..37c45c4e0fb2 100644 --- a/packages/p2p/webpack.config.js +++ b/packages/p2p/webpack.config.js @@ -174,6 +174,7 @@ module.exports = function (env) { 'react-router': 'react-router', 'react-router-dom': 'react-router-dom', 'prop-types': 'prop-types', + '@deriv-com/analytics': '@deriv-com/analytics', ...(is_publishing ? {} : { 'lodash.debounce': 'lodash.debounce', formik: 'formik' }), ...publisher_utils.getLocalDerivPackageExternals(__dirname, is_publishing), }, From f4237d13c5cda198724d81b409b79202ef244de1 Mon Sep 17 00:00:00 2001 From: nada-deriv <122768621+nada-deriv@users.noreply.github.com> Date: Fri, 26 Jul 2024 13:28:15 +0400 Subject: [PATCH 17/40] [P2PS] - Nada/2570/fix payment method checkbox issue, condition issue (#15980) * fix: fix payment method checkbox issue, condition issue * fix: coveralls * fix: removed condition for checkbox in pm card --- .../__tests__/payment-method-card.spec.tsx | 3 --- .../payment-method-card/payment-method-card.tsx | 8 +++----- packages/p2p/src/pages/buy-sell/buy-sell-form.jsx | 1 + 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/p2p/src/components/payment-method-card/__tests__/payment-method-card.spec.tsx b/packages/p2p/src/components/payment-method-card/__tests__/payment-method-card.spec.tsx index bd0633c0e811..91cf6dc5c212 100644 --- a/packages/p2p/src/components/payment-method-card/__tests__/payment-method-card.spec.tsx +++ b/packages/p2p/src/components/payment-method-card/__tests__/payment-method-card.spec.tsx @@ -29,9 +29,6 @@ const payment_method_card_props = { }; const mock_store: DeepPartial> = { - general_store: { - active_index: 0, - }, my_ads_store: { payment_method_ids: [1], }, diff --git a/packages/p2p/src/components/payment-method-card/payment-method-card.tsx b/packages/p2p/src/components/payment-method-card/payment-method-card.tsx index 35e812cb76a3..4cb786c8e12b 100644 --- a/packages/p2p/src/components/payment-method-card/payment-method-card.tsx +++ b/packages/p2p/src/components/payment-method-card/payment-method-card.tsx @@ -43,8 +43,7 @@ const PaymentMethodCard = ({ small = false, style, }: TPaymentMethodCardProps) => { - const { general_store, my_ads_store, my_profile_store } = useStores(); - const { active_index } = general_store; + const { my_ads_store, my_profile_store } = useStores(); const { payment_method_ids } = my_ads_store; const { showModal } = useModalManagerContext(); @@ -116,7 +115,7 @@ const PaymentMethodCard = ({ size={medium || small ? 16 : 24} /> )} - {is_vertical_ellipsis_visible && ( + {is_vertical_ellipsis_visible ? ( - )} - {(active_index === 2 || active_index === 0) && ( + ) : ( { if (!my_profile_store.advertiser_has_payment_methods) { my_profile_store.getPaymentMethodsList(); + my_profile_store.getAdvertiserPaymentMethods(); } advertiser_page_store.setFormErrorMessage(''); From d96fc3d3714605f5f50ce97d51d01d8e286ebe17 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 16:04:48 +0400 Subject: [PATCH 18/40] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20tra?= =?UTF-8?q?nslations=20with=20crowdin=20(#16221)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE --- packages/p2p/crowdin/messages.json | 2 +- packages/p2p/src/translations/ar.json | 4 - packages/p2p/src/translations/bn.json | 4 - packages/p2p/src/translations/de.json | 4 - packages/p2p/src/translations/es.json | 4 - packages/p2p/src/translations/fr.json | 4 - packages/p2p/src/translations/it.json | 4 - packages/p2p/src/translations/km.json | 4 - packages/p2p/src/translations/ko.json | 4 - packages/p2p/src/translations/mn.json | 4 - packages/p2p/src/translations/pl.json | 4 - packages/p2p/src/translations/pt.json | 4 - packages/p2p/src/translations/ru.json | 4 - packages/p2p/src/translations/si.json | 4 - packages/p2p/src/translations/sw.json | 4 - packages/p2p/src/translations/th.json | 4 - packages/p2p/src/translations/tr.json | 4 - packages/p2p/src/translations/vi.json | 4 - packages/p2p/src/translations/zh_cn.json | 4 - packages/p2p/src/translations/zh_tw.json | 4 - .../translations/src/translations/ach.json | 25 +- .../translations/src/translations/ar.json | 25 +- .../translations/src/translations/bn.json | 25 +- .../translations/src/translations/de.json | 25 +- .../translations/src/translations/es.json | 25 +- .../translations/src/translations/fr.json | 25 +- .../translations/src/translations/it.json | 25 +- .../translations/src/translations/km.json | 237 +++++++++--------- .../translations/src/translations/ko.json | 25 +- .../translations/src/translations/mn.json | 25 +- .../translations/src/translations/pl.json | 25 +- .../translations/src/translations/pt.json | 33 ++- .../translations/src/translations/ru.json | 25 +- .../translations/src/translations/si.json | 43 ++-- .../translations/src/translations/sw.json | 35 ++- .../translations/src/translations/th.json | 25 +- .../translations/src/translations/tr.json | 25 +- .../translations/src/translations/uz.json | 25 +- .../translations/src/translations/vi.json | 25 +- .../translations/src/translations/zh_cn.json | 25 +- .../translations/src/translations/zh_tw.json | 25 +- 41 files changed, 503 insertions(+), 348 deletions(-) diff --git a/packages/p2p/crowdin/messages.json b/packages/p2p/crowdin/messages.json index ab706725d5f4..461151fcd4aa 100644 --- a/packages/p2p/crowdin/messages.json +++ b/packages/p2p/crowdin/messages.json @@ -1 +1 @@ -{"3215342":"Last 30 days","4276410":"One last step before we close this order","6794664":"Ads that match your Deriv P2P balance and limit.","19789721":"Nobody has blocked you. Yay!","24711354":"Total orders <0>30d | <1>lifetime","50672601":"Bought","55916349":"All","57362642":"Closed","68867477":"Order ID {{ id }}","71445658":"Open","81450871":"We couldn’t find that page","97214671":"Hi! I'd like to exchange {{first_currency}} for {{second_currency}} at {{rate_display}}{{rate_type}} on Deriv P2P.nnIf you're interested, check out my ad 👉nn{{- advert_url}}nnThanks!","106063661":"Share this ad","111718006":"End date","121738739":"Send","122280248":"Avg release time <0>30d","124079319":"10:00 am","134205943":"Your ads with fixed rates have been deactivated. Set floating rates to reactivate them.","140800401":"Float","150156106":"Save changes","159757877":"You won't see {{advertiser_name}}'s ads anymore and they won't be able to place orders on your ads.","170072126":"Seen {{ duration }} days ago","173939998":"Avg. pay time <0>30d","179083332":"Date","180844799":"Your completion rate is too low for this ad.","192859167":"{{avg_buy_time_in_minutes}} min","203271702":"Try again","227420810":"09:00 pm","231473252":"Preferred currency","231707925":"Open 24 hours","233677840":"of the market rate","241726151":"07:00 am","257637860":"Upload documents to verify your address.","260669040":"02:00 pm","276261353":"Avg pay time <0>30d","277542386":"Please use <0>live chat to contact our Customer Support team for help.","281388118":"Floating","316725580":"You can no longer rate this transaction.","320607511":"10:30 pm","323002325":"Post ad","324970564":"Seller's contact details","358133589":"Unblock {{advertiser_name}}?","364681129":"Contact details","367579676":"Blocked","390890891":"Last quarter","392469164":"You have blocked {{advertiser_name}}.","395286495":"Wednesday","416167062":"You'll receive","424668491":"expired","435647306":"09:30 am","437332743":"07:30 pm","450016951":"Hello! This is where you can chat with the counterparty to confirm the order details.
Note: In case of a dispute, we'll use this chat as a reference.","452752527":"Rate (1 {{ currency }})","459886707":"E-wallets","460477293":"Enter message","464044457":"Buyer's nickname","468723632":"02:30 am","473688701":"Enter a valid amount","488150742":"Resend email","498500965":"Seller's nickname","500514593":"Hide my ads","501523417":"You have no orders.","514948272":"Copy link","517202770":"Set fixed rate","523301614":"Release {{amount}} {{currency}}","525380157":"Buy {{offered_currency}} order","531912261":"Bank name, account number, beneficiary name","543223747":"S","554135844":"Edit","555447610":"You won't be able to change your buy and sell limits again after this. Do you want to continue?","560402954":"User rating","565060416":"Exchange rate","574961698":"45 minutes","587882987":"Advertisers","597723493":"Tuesday","611376642":"Clear","612069973":"Would you recommend this buyer?","625563394":"Only numbers are allowed.","639382772":"Please upload supported file type.","649549724":"I’ve not received any payment.","654193846":"The verification link appears to be invalid. Hit the button below to request for a new one","655174618":"W","655733440":"Others","661808069":"Resend email {{remaining_time}}","662578726":"Available","668309975":"Others will see this on your profile, ads, and chats.","683273691":"Rate (1 {{ account_currency }})","706231597":"01:30 am","720104538":"Fixed Rate","723172934":"Looking to buy or sell USD? You can post your own ad for others to respond.","728383001":"I’ve received more than the agreed amount.","733311523":"P2P transactions are locked. This feature is not available for payment agents.","737751450":"04:30 pm","752996317":"Last step","767789372":"Wait for payment","782834680":"Time left","783454335":"Yes, remove","784839262":"Share","790825518":"This ad is unavailable","830703311":"My profile","834075131":"Blocked advertisers","838024160":"Bank details","842911528":"Don’t show this message again.","846659545":"Your ad is not listed on <0>Buy/Sell because the amount exceeds your daily limit of {{limit}} {{currency}}.\n <1 /><1 />You can still see your ad on <0>My ads. If you’d like to increase your daily limit, please contact us via <2>live chat.","858027714":"Seen {{ duration }} minutes ago","873437248":"Instructions (optional)","875911610":"Preferred countries <0>({{eligible_countries_display}})","876086855":"Complete the financial assessment form","881351325":"Would you recommend this seller?","886126850":"This ad is not listed on Buy/Sell because its maximum order is lower than the minimum amount you can specify for orders in your ads.","887667868":"Order","892431976":"If you cancel your order {{cancellation_limit}} times in {{cancellation_period}} hours, you will be blocked from using Deriv P2P for {{block_duration}} hours.
({{number_of_cancels_remaining}} cancellations remaining)","892969003":"Attention: Rate fluctuation","917359787":"You've not used Deriv P2P long enough for this ad.","926446466":"Please set a different minimum and/or maximum order limit. nnThe range of your ad should not overlap with any of your active ads.","929967494":"Non-reversible deposits: Deposits from non-reversible payment methods.","931661826":"Download this QR code","947389294":"We need your documents","949859957":"Submit","954233511":"Sold","957807235":"Blocking wasn't possible as {{name}} is not using Deriv P2P anymore.","988380202":"Your instructions","993198283":"The file you uploaded is not supported. Upload another.","1001160515":"Sell","1002264993":"Seller's real name","1009032439":"All time","1019151270":"Only users who match these criteria will see your ad.","1020552673":"You're creating an ad to buy <0>{{ target_amount }} {{ target_currency }}...","1030390916":"You already have an ad with this range","1035893169":"Delete","1040596075":"Address verification failed. Please try again.","1046570221":"01:00 pm","1052094244":"Max order","1056821534":"Are you sure?","1057127276":"{{- avg_release_time_in_minutes}} min","1065379930":"04:00 am","1065551550":"Set floating rate","1074783964":"If the rate changes significantly, we may not be able to create your order.","1077515534":"Date to","1078777356":"9:00 am - 9:00 pm","1080990424":"Confirm","1086666247":"10:30 am","1089110190":"You accidentally gave us another email address (usually a work or a personal one instead of the one you meant).","1091533736":"Don't risk your funds with cash transactions. Use bank transfers or e-wallets instead.","1106073960":"You've created an ad","1106485202":"Available Deriv P2P balance","1109217274":"Success!","1119887091":"Verification","1121630246":"Block","1137964885":"Can only contain letters, numbers, and special characters .- _ @.","1142686040":"Nickname added successfully!","1151608942":"Total amount","1157877436":"{{field_name}} should not exceed Amount","1162965175":"Buyer","1163072833":"<0>ID verified","1164771858":"I’ve received payment from 3rd party.","1168689876":"Your ad is not listed","1170520989":"Edit payment details","1184609483":"Create a similar ad","1191941618":"Enter a value that's within -{{limit}}% to +{{limit}}%","1192337383":"Seen {{ duration }} hour ago","1202500203":"Pay now","1210647712":"02:30 pm","1220160135":"You are creating an order to buy <0>{{currency}} {{input_amount}} for <1>{{local_currency}} {{received_amount}}.","1228352589":"Not rated yet","1229976478":"You will be able to see {{ advertiser_name }}'s ads. They'll be able to place orders on your ads, too.","1236083813":"Your payment details","1237846039":"07:30 am","1244549210":"09:30 pm","1254676637":"I'll do this later","1258285343":"Oops, something went wrong","1286797620":"Active","1287051975":"Nickname is too long","1300767074":"{{name}} is no longer on Deriv P2P","1303016265":"Yes","1304234792":"F","1313218101":"Rate this transaction","1314266187":"Joined today","1320670806":"Leave page","1326475003":"Activate","1328352136":"Sell {{ account_currency }}","1330528524":"Seen {{ duration }} month ago","1337027601":"You sold {{offered_amount}} {{offered_currency}}","1347322213":"How would you rate this transaction?","1347724133":"I have paid {{amount}} {{currency}}.","1366244749":"Limits","1370999551":"Floating rate","1371193412":"Cancel","1376329801":"Last 60 days","1378388952":"Promote your ad by sharing the QR code and link.","1381949324":"<0>Address verified","1385570445":"Upload documents to verify your identity.","1398938904":"We can't deliver the email to this address (usually because of firewalls or filtering).","1404414405":"Counterparty conditions","1421635527":"10:00 pm","1422356389":"No results for \"{{text}}\".","1426213515":"If you’ve received {{amount}} {{local_currency}} from {{name}} in your bank account or e-wallet, hit the button below to complete the order.","1430413419":"Maximum is {{value}} {{currency}}","1438103743":"Floating rates are enabled for {{local_currency}}. Ads with fixed rates will be deactivated. Switch to floating rates by {{end_date}}.","1448855725":"Add payment methods","1452260922":"Too many failed attempts","1467483693":"Past orders","1474532322":"Sort by","1480915523":"Skip","1497156292":"No ads for this currency 😞","1505293001":"Trade partners","1543377906":"This ad is not listed on Buy/Sell because you have paused all your ads.","1548770656":"02:00 am","1568512719":"Your daily limits have been increased to {{daily_buy_limit}} {{currency}} (buy) and {{daily_sell_limit}} {{currency}} (sell).","1571901911":"07:00 pm","1581886364":"Your Deriv P2P balance includes:","1582762394":"09:00 am","1583335572":"If the ad doesn't receive an order for {{adverts_archive_period}} days, it will be deactivated.","1587250288":"Ad ID {{advert_id}} ","1587507924":"Or copy this link","1607051458":"Search by nickname","1615530713":"Something's not right","1620858613":"You're editing an ad to sell <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","1622662457":"Date from","1623916605":"I wasn’t able to make full payment.","1654365787":"Unknown","1660278694":"The advertiser changed the rate before you confirmed the order.","1671725772":"If you choose to cancel, the edited details will be lost.","1675716253":"Min limit","1678804253":"Buy {{ currency }}","1685888862":"An internal error occurred","1686592014":"To place an order, add one of the advertiser's preferred payment methods:","1691540875":"Edit payment method","1699829275":"Cannot upload a file over 5MB","1702855414":"Your ad isn’t listed on Buy/Sell due to the following reason(s):","1703154819":"You're editing an ad to sell <0>{{ target_amount }} {{ target_currency }}...","1721422292":"Show my real name","1740434340":"Orders will expire if they aren’t completed within this time.","1747523625":"Go back","1752096323":"{{field_name}} should not be below Min limit","1767817594":"Buy completion <0>30d","1782514544":"This ad is not listed on Buy/Sell because its minimum order is higher than {{maximum_order_amount}} {{currency}}.","1784151356":"at","1791767028":"Set a fixed rate for your ad.","1794470010":"I’ve made full payment, but the seller hasn’t released the funds.","1794474847":"I've received payment","1798116519":"Available amount","1799384587":"Has the buyer paid you?","1809099720":"Expand all","1810217569":"Please refresh this page to continue.","1816315278":"Set the hours you’re available to accept orders. Your ads will only be visible to others during these times.","1817791306":"04:00 pm","1840793597":"01:00 am","1842172737":"You've received {{offered_amount}} {{offered_currency}}","1858251701":"minute","1859308030":"Give feedback","1874956952":"Hit the button below to add payment methods.","1881018702":"hour","1902229457":"Unable to block advertiser","1908023954":"Sorry, an error occurred while processing your request.","1914014145":"Today","1919093147":"Completion rate of more than <0>{{min_completion_rate}}%","1923443894":"Inactive","1928240840":"Sell {{ currency }}","1929119945":"There are no ads yet","1976156928":"You'll send","1992961867":"Rate (1 {{currency}})","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","2015367818":"04:30 am","2020104747":"Filter","2027742762":"Review your settings and create a new ad. Every ad must have unique limits and rates.","2029375371":"Payment instructions","2032274854":"Recommended by {{recommended_count}} traders","2039361923":"You're creating an ad to sell...","2040110829":"Increase my limits","2042699325":"01:30 pm","2047100984":"The exchange rate may vary slightly due to market fluctuations. The final rate will be shown when you proceed with your order.","2060873863":"Your order {{order_id}} is complete","2063890788":"Cancelled","2064304887":"We accept JPG, PDF, or PNG (up to 5MB).","2065710341":"The completion rate is the percentage of successful orders.","2076240918":"We'll only show your ad to people who've been using Deriv P2P for longer than the time you choose.","2091671594":"Status","2096014107":"Apply","2104905634":"No one has recommended this trader yet","2121837513":"Minimum is {{value}} {{currency}}","2142425493":"Ad ID","2145292295":"Rate","-1540251249":"Buy {{ account_currency }}","-962824159":"Create new order","-2026152535":"Order unsuccessful","-1267880283":"{{field_name}} is required","-2019083683":"{{field_name}} can only include letters, numbers, spaces, and any of these symbols: -+.,'#@():;","-222920564":"{{field_name}} has exceeded maximum length","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-1101273282":"Nickname is required","-919203928":"Nickname is too short","-1907100457":"Cannot start, end with, or repeat special characters.","-270502067":"Cannot repeat a character more than 4 times.","-499872405":"You have open orders for this ad. Complete all open orders before deleting this ad.","-2125702445":"Instructions","-1274358564":"Max limit","-1995606668":"Amount","-1965472924":"Fixed rate","-1081775102":"{{field_name}} should not be below Max limit","-991345852":"Only up to 2 decimals are allowed.","-885044836":"{{field_name}} should not exceed Max limit","-1921077416":"All ({{list_value}})","-608125128":"Blocked ({{list_value}})","-1764050750":"Payment details","-2021135479":"This field is required.","-2005205076":"{{field_name}} has exceeded maximum length of 200 characters.","-1837059346":"Buy / Sell","-494667560":"Orders","-679691613":"My ads","-412680608":"Add payment method","-984140537":"Add","-1220275347":"You may choose up to 3 payment methods for this ad.","-510341549":"I’ve received less than the agreed amount.","-650030360":"I’ve paid more than the agreed amount.","-1192446042":"If your complaint isn't listed here, please contact our Customer Support team.","-573132778":"Complaint","-792338456":"What's your complaint?","-418870584":"Cancel order","-1392383387":"I've paid","-727273667":"Complain","-2016990049":"Sell {{offered_currency}} order","-811190405":"Time","-961632398":"Collapse all","-415476028":"Not rated","-26434257":"You have until {{remaining_review_time}} GMT to rate this transaction.","-768709492":"Your transaction experience","-652933704":"Recommended","-84139378":"Not Recommended","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-1660552437":"Return to P2P","-137444201":"Buy","-1306639327":"Payment methods","-904197848":"Limits {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}","-464361439":"{{- avg_buy_time_in_minutes}} min","-2109576323":"Sell completion <0>30d","-165392069":"Avg. release time <0>30d","-1154208372":"Trade volume <0>30d","-1494028069":"It's either deleted or no longer active.","-2017825013":"Got it","-1845037007":"Advertiser's page","-1070228546":"Joined {{days_since_joined}}d","-2015102262":"({{number_of_ratings}} rating)","-1412298133":"({{number_of_ratings}} ratings)","-260332243":"{{user_blocked_count}} person has blocked you","-117094654":"{{user_blocked_count}} people have blocked you","-329713179":"Ok","-1689905285":"Unblock","-55126326":"Seller","-328555709":"Floating exchange rate shifts with market fluctuations.","-92830427":"Seller's instructions","-1940034707":"Buyer's instructions","-631576120":"Orders must be completed in","-835196958":"Receive payment to","-1218007718":"You may choose up to 3.","-1933432699":"Enter {{transaction_type}} amount","-2021730616":"{{ad_type}}","-490637584":"Limit: {{min}}–{{max}} {{currency}}","-1974067943":"Your bank details","-892663026":"Your contact details","-1285759343":"Search","-1657433201":"There are no matching ads.","-1862812590":"Limits {{ min_order }}–{{ max_order }} {{ currency }}","-1876891031":"Currency","-1503997652":"No ads for this currency.","-1048001140":"No results for \"{{value}}\".","-254484597":"You have no ads 😞","-1179827369":"Create new ad","-73663931":"Create ad","-141315849":"No ads for this currency at the moment 😞","-1889014820":"<0>Don’t see your payment method? <1>Add new.","-1406830100":"Payment method","-294043241":"Set ad type and amount","-311810519":"Set payment details","-1149273198":"Set ad conditions","-1282343703":"You're creating an ad to buy <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-2139632895":"You're creating an ad to sell <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-40669120":"You're creating an ad to sell <0>{{ target_amount }} {{ target_currency }}...","-514789442":"You're creating an ad to buy...","-642814645":"Edit ad type and amount","-172076831":"Edit ad conditions","-1914431773":"You're editing an ad to buy <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-107996509":"You're editing an ad to buy <0>{{ target_amount }} {{ target_currency }}...","-863580260":"You're editing an ad to buy...","-1396464057":"You're editing an ad to sell...","-309848900":"Copy","-1318334333":"Deactivate","-372210670":"Rate (1 {{account_currency}})","-87612148":"Ad not listed","-466964809":"Manage ad","-1667041441":"Rate (1 {{ offered_currency }})","-792015701":"Deriv P2P cashier is unavailable in your country.","-1983512566":"This conversation is closed.","-283017497":"Retry","-360975483":"You've made no transactions of this type during this period.","-979459594":"Buy/Sell","-2052184983":"Order ID","-2096350108":"Counterparty","-1597110099":"Receive","-750202930":"Active orders","-1626659964":"I've received {{amount}} {{currency}}.","-1862640130":"12:00 am","-681957586":"12:30 am","-98085164":"03:00 am","-1115214844":"03:30 am","-1711840274":"05:00 am","-564717250":"05:30 am","-1474332301":"06:00 am","-272694365":"06:30 am","-132120018":"08:00 am","-1082099458":"08:30 am","-1592637597":"11:00 am","-424526413":"11:30 am","-1021083922":"12:00 pm","-2071788482":"12:30 pm","-1442941500":"03:00 pm","-295825644":"03:30 pm","-902938370":"05:00 pm","-1920058834":"05:30 pm","-70886813":"06:00 pm","-1134157645":"06:30 pm","-1409736386":"08:00 pm","-329688082":"08:30 pm","-221551501":"11:00 pm","-1251271005":"11:30 pm","-526636259":"Error 404","-480724783":"You already have an ad with this rate","-2040406318":"You already have an ad with the same exchange rate for this currency pair and order type. nnPlease set a different rate for your ad.","-1117584385":"Seen more than 6 months ago","-1766199849":"Seen {{ duration }} months ago","-591593016":"Seen {{ duration }} day ago","-1586918919":"Seen {{ duration }} hours ago","-664781013":"Seen {{ duration }} minute ago","-1717650468":"Online","-485338176":"The advertiser has set conditions for this ad that you don't meet.","-1887970998":"Unblocking wasn't possible as {{name}} is not using Deriv P2P anymore.","-1207312691":"Completed","-688728873":"Expired","-1951641340":"Under dispute","-1738697484":"Confirm payment","-1611857550":"Waiting for the seller to confirm","-1452684930":"Buyer's real name","-1875343569":"Seller's payment details","-1977959027":"hours","-1603581277":"minutes","-1792280476":"Choose your payment method","-520142572":"Cashier is currently down for maintenance","-1552080215":"Please check back in a few minutes.<0>Thank you for your patience.","-684271315":"OK","-130601012":"Please select duration","-232254547":"Custom","-1577570698":"Start date","-1251526905":"Last 7 days","-1638172550":"To enable this feature you must complete the following:","-1086586743":"Please submit your <0>proof of address. You can use Deriv P2P after we’ve verified your documents.","-559300364":"Your Deriv P2P cashier is blocked","-740038242":"Your rate is","-1072444041":"Update ad","-2085839488":"This ad is not listed on Buy/Sell because its minimum order is higher than the ad’s remaining amount ({{remaining_amount}} {{currency}}).","-987612578":"This ad is not listed on Buy/Sell because its minimum order is higher than your Deriv P2P available balance ({{balance}} {{currency}}).","-84644774":"This ad is not listed on Buy/Sell because its minimum order is higher than your remaining daily limit ({{remaining_limit}} {{currency}}).","-452142075":"You’re not allowed to use Deriv P2P to advertise. Please contact us via live chat for more information.","-1886565882":"Your ads with floating rates have been deactivated. Set fixed rates to reactivate them.","-971817673":"Your ad isn't visible to others","-1735126907":"This could be because your account balance is insufficient, your ad amount exceeds your daily limit, or both. You can still see your ad on <0>My ads.","-674715853":"Your ad exceeds the daily limit","-1530773708":"Block {{advertiser_name}}?","-678964540":"to","-1856204727":"Reset","-276006001":"*Some ads may not be immediately visible to potential buyers due to order processing times.","-662820801":"Monday","-630205792":"M","-1107002784":"T","-1843685852":"10:30 am - 11:30 pm","-1216220934":"Thursday","-1222724746":"Friday","-383986464":"Saturday","-873282313":"Sunday","-930297702":"Edit business hour","-394711128":"Business hour","-2035037071":"Your Deriv P2P balance isn't enough. Please increase your balance before trying again.","-293182503":"Cancel adding this payment method?","-1850127397":"If you choose to cancel, the details you’ve entered will be lost.","-1601971804":"Cancel your edits?","-1571737200":"Don't cancel","-146021156":"Delete {{payment_method_name}}?","-1846700504":"Are you sure you want to remove this payment method?","-231863107":"No","-471384801":"Sorry, we're unable to increase your limits right now. Please try again in a few minutes.","-150224710":"Yes, continue","-1422779483":"That payment method cannot be deleted","-1088454544":"Get new link","-1327607310":"Releasing funds before receiving payment may result in losses. Check your email and follow the instructions <0>within 10 minutes to release the funds.","-1632557686":"I didn’t receive the email","-142727028":"The email is in your spam folder (sometimes things get lost there).","-75934135":"Matching ads","-227512949":"Check your spelling or use a different term.","-1554938377":"Search payment method","-1728351486":"Invalid verification link","-433946201":"Leave page?","-818345434":"Are you sure you want to leave this page? Changes made will not be saved.","-1099359768":"Continue with order","-392043307":"Do you want to delete this ad?","-854930519":"You will NOT be able to restore it.","-1600783504":"Set a floating rate for your ad.","-2066944925":"Deriv P2P balance","-172105477":"P2P deposits: Funds received from buying USD from another Deriv P2P user.","-271432543":"Note: Funds deposited using reversible payment methods, like credit cards, Maestro, Diners Club, ZingPay, Skrill, Neteller, Ozow, and UPI QR will not appear in your P2P balance.","-268565332":"What’s your nickname?","-532709160":"Your nickname","-1016461467":"Your nickname cannot be changed later.","-2008992756":"Do you want to cancel this order?","-1618084450":"If you cancel this order, you'll be blocked from using Deriv P2P for {{block_duration}} hours.","-2026176944":"Please do not cancel if you have already made payment.","-1989544601":"Cancel this order","-492996224":"Do not cancel","-1447732068":"Payment confirmation","-1951344681":"Please make sure that you've paid {{amount}} {{currency}} to {{other_user_name}}, and upload the receipt as proof of your payment","-637818525":"Sending forged documents will result in an immediate and permanent ban.","-670364940":"Upload receipt here","-937707753":"Go Back","-167747987":"Search countries","-1171244939":"No results for \"{{search_value}}\".","-1581516455":"Preferred countries","-1340125291":"Done","-1854199094":"{{type}} {{account_currency}}","-788469106":"ID number","-574559641":"Scan this code to order via Deriv P2P","-1078665050":"Share link","-354026679":"Share via","-229543460":"{{- link}}","-1388977563":"Copied!","-237014436":"Recommended by {{recommended_count}} trader","-849068301":"Loading...","-2061807537":"Something’s not right","-1354983065":"Refresh","-2054589794":"You've been temporarily barred from using our services due to multiple cancellation attempts. Try again after {{date_time}} GMT.","-1079963355":"trades","-609070622":"Identity verification in progress.","-1269954557":"Identity verification failed. Please try again.","-1507102231":"Identity verification complete.","-670039668":"Address verification in progress.","-23313647":"Address verification complete.","-1483008038":"Verify your P2P account","-792476552":"Verify your identity and address to use Deriv P2P.","-288996254":"Unavailable","-145054222":"Counterparty conditions (optional)","-614283799":"Joined more than","-1908785123":"Completion rate of more than","-2049545084":"We'll only show your ad to people with a completion rate higher than your selection.","-492290468":"We’ll only show your ad to people in the countries you choose.","-71696502":"Previous","-1541554430":"Next","-207756259":"You may tap and choose up to 3.","-2094684686":"If you choose to cancel, the details you've entered will be lost.","-1561775203":"Buy {{currency}}","-1527285935":"Sell {{currency}}","-592818187":"Your Deriv P2P balance is {{ dp2p_balance }}","-1654157453":"Fixed rate (1 {{currency}})","-379708059":"Min order","-1459289144":"This information will be visible to everyone.","-712875121":"{{title}}","-1987185760":"Next: {{title}}","-1281511784":"Cancel ad creation?","-2144449586":"Ad type","-1307206495":"Order must be completed in","-1653577295":"Joined more than <0>{{min_join_days}} days","-293628675":"1 hour","-1978767852":"30 minutes","-999492762":"15 minutes","-322185463":"All countries","-1908692350":"Filter by","-992568889":"No one to show here","-1241719539":"When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.","-1007339977":"There are no matching name.","-1298666786":"My counterparties","-179005984":"Save","-2059312414":"Ad details","-1769584466":"Stats","-2090878601":"Daily limit","-474123616":"Want to increase your daily limits to <0>{{max_daily_buy}} {{currency}} (buy) and <1>{{max_daily_sell}} {{currency}} (sell)?","-1007968770":"Business hours","-133982971":"{{avg_release_time_in_minutes}} min","-130547447":"Trade volume <0>30d | <1>lifetime","-383030149":"You haven’t added any payment methods yet","-1156559889":"Bank Transfers","-1269362917":"Add new"} \ No newline at end of file +{"3215342":"Last 30 days","4276410":"One last step before we close this order","6794664":"Ads that match your Deriv P2P balance and limit.","19789721":"Nobody has blocked you. Yay!","24711354":"Total orders <0>30d | <1>lifetime","50672601":"Bought","55916349":"All","57362642":"Closed","68867477":"Order ID {{ id }}","71445658":"Open","81450871":"We couldn’t find that page","97214671":"Hi! I'd like to exchange {{first_currency}} for {{second_currency}} at {{rate_display}}{{rate_type}} on Deriv P2P.nnIf you're interested, check out my ad 👉nn{{- advert_url}}nnThanks!","106063661":"Share this ad","111718006":"End date","121738739":"Send","122280248":"Avg release time <0>30d","124079319":"10:00 am","134205943":"Your ads with fixed rates have been deactivated. Set floating rates to reactivate them.","140800401":"Float","150156106":"Save changes","159757877":"You won't see {{advertiser_name}}'s ads anymore and they won't be able to place orders on your ads.","170072126":"Seen {{ duration }} days ago","173939998":"Avg. pay time <0>30d","179083332":"Date","180844799":"Your completion rate is too low for this ad.","192859167":"{{avg_buy_time_in_minutes}} min","203271702":"Try again","227420810":"09:00 pm","231473252":"Preferred currency","231707925":"Open 24 hours","233677840":"of the market rate","241726151":"07:00 am","257637860":"Upload documents to verify your address.","260669040":"02:00 pm","276261353":"Avg pay time <0>30d","277542386":"Please use <0>live chat to contact our Customer Support team for help.","281388118":"Floating","316725580":"You can no longer rate this transaction.","320607511":"10:30 pm","323002325":"Post ad","324970564":"Seller's contact details","358133589":"Unblock {{advertiser_name}}?","364681129":"Contact details","367579676":"Blocked","390890891":"Last quarter","392469164":"You have blocked {{advertiser_name}}.","395286495":"Wednesday","416167062":"You'll receive","424668491":"expired","435647306":"09:30 am","437332743":"07:30 pm","450016951":"Hello! This is where you can chat with the counterparty to confirm the order details.
Note: In case of a dispute, we'll use this chat as a reference.","452752527":"Rate (1 {{ currency }})","459886707":"E-wallets","460477293":"Enter message","464044457":"Buyer's nickname","468723632":"02:30 am","473688701":"Enter a valid amount","488150742":"Resend email","498500965":"Seller's nickname","500514593":"Hide my ads","501523417":"You have no orders.","514948272":"Copy link","517202770":"Set fixed rate","523301614":"Release {{amount}} {{currency}}","525380157":"Buy {{offered_currency}} order","531912261":"Bank name, account number, beneficiary name","543223747":"S","554135844":"Edit","555447610":"You won't be able to change your buy and sell limits again after this. Do you want to continue?","560402954":"User rating","565060416":"Exchange rate","587882987":"Advertisers","597723493":"Tuesday","611376642":"Clear","612069973":"Would you recommend this buyer?","625563394":"Only numbers are allowed.","639382772":"Please upload supported file type.","649549724":"I’ve not received any payment.","654193846":"The verification link appears to be invalid. Hit the button below to request for a new one","655174618":"W","655733440":"Others","661808069":"Resend email {{remaining_time}}","662578726":"Available","668309975":"Others will see this on your profile, ads, and chats.","683273691":"Rate (1 {{ account_currency }})","706231597":"01:30 am","720104538":"Fixed Rate","723172934":"Looking to buy or sell USD? You can post your own ad for others to respond.","728383001":"I’ve received more than the agreed amount.","733311523":"P2P transactions are locked. This feature is not available for payment agents.","737751450":"04:30 pm","752996317":"Last step","767789372":"Wait for payment","782834680":"Time left","783454335":"Yes, remove","784839262":"Share","790825518":"This ad is unavailable","830703311":"My profile","834075131":"Blocked advertisers","838024160":"Bank details","842911528":"Don’t show this message again.","846659545":"Your ad is not listed on <0>Buy/Sell because the amount exceeds your daily limit of {{limit}} {{currency}}.\n <1 /><1 />You can still see your ad on <0>My ads. If you’d like to increase your daily limit, please contact us via <2>live chat.","858027714":"Seen {{ duration }} minutes ago","873437248":"Instructions (optional)","875911610":"Preferred countries <0>({{eligible_countries_display}})","876086855":"Complete the financial assessment form","881351325":"Would you recommend this seller?","886126850":"This ad is not listed on Buy/Sell because its maximum order is lower than the minimum amount you can specify for orders in your ads.","887667868":"Order","892431976":"If you cancel your order {{cancellation_limit}} times in {{cancellation_period}} hours, you will be blocked from using Deriv P2P for {{block_duration}} hours.
({{number_of_cancels_remaining}} cancellations remaining)","892969003":"Attention: Rate fluctuation","917359787":"You've not used Deriv P2P long enough for this ad.","926446466":"Please set a different minimum and/or maximum order limit. nnThe range of your ad should not overlap with any of your active ads.","929967494":"Non-reversible deposits: Deposits from non-reversible payment methods.","931661826":"Download this QR code","947389294":"We need your documents","949859957":"Submit","954233511":"Sold","957807235":"Blocking wasn't possible as {{name}} is not using Deriv P2P anymore.","988380202":"Your instructions","993198283":"The file you uploaded is not supported. Upload another.","1001160515":"Sell","1002264993":"Seller's real name","1009032439":"All time","1019151270":"Only users who match these criteria will see your ad.","1020552673":"You're creating an ad to buy <0>{{ target_amount }} {{ target_currency }}...","1030390916":"You already have an ad with this range","1035893169":"Delete","1040596075":"Address verification failed. Please try again.","1046570221":"01:00 pm","1052094244":"Max order","1056821534":"Are you sure?","1057127276":"{{- avg_release_time_in_minutes}} min","1065379930":"04:00 am","1065551550":"Set floating rate","1074783964":"If the rate changes significantly, we may not be able to create your order.","1077515534":"Date to","1078777356":"9:00 am - 9:00 pm","1080990424":"Confirm","1086666247":"10:30 am","1089110190":"You accidentally gave us another email address (usually a work or a personal one instead of the one you meant).","1091533736":"Don't risk your funds with cash transactions. Use bank transfers or e-wallets instead.","1106073960":"You've created an ad","1106485202":"Available Deriv P2P balance","1109217274":"Success!","1119887091":"Verification","1121630246":"Block","1137964885":"Can only contain letters, numbers, and special characters .- _ @.","1142686040":"Nickname added successfully!","1151608942":"Total amount","1157877436":"{{field_name}} should not exceed Amount","1162965175":"Buyer","1163072833":"<0>ID verified","1164771858":"I’ve received payment from 3rd party.","1168689876":"Your ad is not listed","1170520989":"Edit payment details","1184609483":"Create a similar ad","1191941618":"Enter a value that's within -{{limit}}% to +{{limit}}%","1192337383":"Seen {{ duration }} hour ago","1202500203":"Pay now","1210647712":"02:30 pm","1220160135":"You are creating an order to buy <0>{{currency}} {{input_amount}} for <1>{{local_currency}} {{received_amount}}.","1228352589":"Not rated yet","1229976478":"You will be able to see {{ advertiser_name }}'s ads. They'll be able to place orders on your ads, too.","1236083813":"Your payment details","1237846039":"07:30 am","1244549210":"09:30 pm","1254676637":"I'll do this later","1258285343":"Oops, something went wrong","1286797620":"Active","1287051975":"Nickname is too long","1300767074":"{{name}} is no longer on Deriv P2P","1303016265":"Yes","1304234792":"F","1313218101":"Rate this transaction","1314266187":"Joined today","1320670806":"Leave page","1326475003":"Activate","1328352136":"Sell {{ account_currency }}","1330528524":"Seen {{ duration }} month ago","1337027601":"You sold {{offered_amount}} {{offered_currency}}","1347322213":"How would you rate this transaction?","1347724133":"I have paid {{amount}} {{currency}}.","1366244749":"Limits","1370999551":"Floating rate","1371193412":"Cancel","1376329801":"Last 60 days","1378388952":"Promote your ad by sharing the QR code and link.","1381949324":"<0>Address verified","1385570445":"Upload documents to verify your identity.","1398938904":"We can't deliver the email to this address (usually because of firewalls or filtering).","1404414405":"Counterparty conditions","1421635527":"10:00 pm","1422356389":"No results for \"{{text}}\".","1426213515":"If you’ve received {{amount}} {{local_currency}} from {{name}} in your bank account or e-wallet, hit the button below to complete the order.","1430413419":"Maximum is {{value}} {{currency}}","1438103743":"Floating rates are enabled for {{local_currency}}. Ads with fixed rates will be deactivated. Switch to floating rates by {{end_date}}.","1448855725":"Add payment methods","1452260922":"Too many failed attempts","1467483693":"Past orders","1474532322":"Sort by","1480915523":"Skip","1497156292":"No ads for this currency 😞","1505293001":"Trade partners","1543377906":"This ad is not listed on Buy/Sell because you have paused all your ads.","1548770656":"02:00 am","1568512719":"Your daily limits have been increased to {{daily_buy_limit}} {{currency}} (buy) and {{daily_sell_limit}} {{currency}} (sell).","1571901911":"07:00 pm","1581886364":"Your Deriv P2P balance includes:","1582762394":"09:00 am","1583335572":"If the ad doesn't receive an order for {{adverts_archive_period}} days, it will be deactivated.","1587250288":"Ad ID {{advert_id}} ","1587507924":"Or copy this link","1607051458":"Search by nickname","1615530713":"Something's not right","1620858613":"You're editing an ad to sell <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","1622662457":"Date from","1623916605":"I wasn’t able to make full payment.","1654365787":"Unknown","1660278694":"The advertiser changed the rate before you confirmed the order.","1671725772":"If you choose to cancel, the edited details will be lost.","1675716253":"Min limit","1678804253":"Buy {{ currency }}","1685888862":"An internal error occurred","1686592014":"To place an order, add one of the advertiser's preferred payment methods:","1691540875":"Edit payment method","1699829275":"Cannot upload a file over 5MB","1702855414":"Your ad isn’t listed on Buy/Sell due to the following reason(s):","1703154819":"You're editing an ad to sell <0>{{ target_amount }} {{ target_currency }}...","1721422292":"Show my real name","1740434340":"Orders will expire if they aren’t completed within this time.","1747523625":"Go back","1752096323":"{{field_name}} should not be below Min limit","1767817594":"Buy completion <0>30d","1782514544":"This ad is not listed on Buy/Sell because its minimum order is higher than {{maximum_order_amount}} {{currency}}.","1784151356":"at","1791767028":"Set a fixed rate for your ad.","1794470010":"I’ve made full payment, but the seller hasn’t released the funds.","1794474847":"I've received payment","1798116519":"Available amount","1799384587":"Has the buyer paid you?","1809099720":"Expand all","1810217569":"Please refresh this page to continue.","1816315278":"Set the hours you’re available to accept orders. Your ads will only be visible to others during these times.","1817791306":"04:00 pm","1840793597":"01:00 am","1842172737":"You've received {{offered_amount}} {{offered_currency}}","1858251701":"minute","1859308030":"Give feedback","1874956952":"Hit the button below to add payment methods.","1881018702":"hour","1902229457":"Unable to block advertiser","1908023954":"Sorry, an error occurred while processing your request.","1914014145":"Today","1919093147":"Completion rate of more than <0>{{min_completion_rate}}%","1923443894":"Inactive","1928240840":"Sell {{ currency }}","1929119945":"There are no ads yet","1976156928":"You'll send","1992961867":"Rate (1 {{currency}})","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","2015367818":"04:30 am","2020104747":"Filter","2027742762":"Review your settings and create a new ad. Every ad must have unique limits and rates.","2029375371":"Payment instructions","2032274854":"Recommended by {{recommended_count}} traders","2039361923":"You're creating an ad to sell...","2040110829":"Increase my limits","2042699325":"01:30 pm","2047100984":"The exchange rate may vary slightly due to market fluctuations. The final rate will be shown when you proceed with your order.","2060873863":"Your order {{order_id}} is complete","2063890788":"Cancelled","2064304887":"We accept JPG, PDF, or PNG (up to 5MB).","2065710341":"The completion rate is the percentage of successful orders.","2076240918":"We'll only show your ad to people who've been using Deriv P2P for longer than the time you choose.","2091671594":"Status","2096014107":"Apply","2104905634":"No one has recommended this trader yet","2121837513":"Minimum is {{value}} {{currency}}","2142425493":"Ad ID","2145292295":"Rate","-1540251249":"Buy {{ account_currency }}","-962824159":"Create new order","-2026152535":"Order unsuccessful","-1267880283":"{{field_name}} is required","-2019083683":"{{field_name}} can only include letters, numbers, spaces, and any of these symbols: -+.,'#@():;","-222920564":"{{field_name}} has exceeded maximum length","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-1101273282":"Nickname is required","-919203928":"Nickname is too short","-1907100457":"Cannot start, end with, or repeat special characters.","-270502067":"Cannot repeat a character more than 4 times.","-499872405":"You have open orders for this ad. Complete all open orders before deleting this ad.","-2125702445":"Instructions","-1274358564":"Max limit","-1995606668":"Amount","-1965472924":"Fixed rate","-1081775102":"{{field_name}} should not be below Max limit","-991345852":"Only up to 2 decimals are allowed.","-885044836":"{{field_name}} should not exceed Max limit","-1921077416":"All ({{list_value}})","-608125128":"Blocked ({{list_value}})","-1764050750":"Payment details","-2021135479":"This field is required.","-2005205076":"{{field_name}} has exceeded maximum length of 200 characters.","-1837059346":"Buy / Sell","-494667560":"Orders","-679691613":"My ads","-412680608":"Add payment method","-984140537":"Add","-1220275347":"You may choose up to 3 payment methods for this ad.","-510341549":"I’ve received less than the agreed amount.","-650030360":"I’ve paid more than the agreed amount.","-1192446042":"If your complaint isn't listed here, please contact our Customer Support team.","-573132778":"Complaint","-792338456":"What's your complaint?","-418870584":"Cancel order","-1392383387":"I've paid","-727273667":"Complain","-2016990049":"Sell {{offered_currency}} order","-811190405":"Time","-961632398":"Collapse all","-415476028":"Not rated","-26434257":"You have until {{remaining_review_time}} GMT to rate this transaction.","-768709492":"Your transaction experience","-652933704":"Recommended","-84139378":"Not Recommended","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-1660552437":"Return to P2P","-137444201":"Buy","-1306639327":"Payment methods","-904197848":"Limits {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}","-464361439":"{{- avg_buy_time_in_minutes}} min","-2109576323":"Sell completion <0>30d","-165392069":"Avg. release time <0>30d","-1154208372":"Trade volume <0>30d","-1494028069":"It's either deleted or no longer active.","-2017825013":"Got it","-1845037007":"Advertiser's page","-1070228546":"Joined {{days_since_joined}}d","-2015102262":"({{number_of_ratings}} rating)","-1412298133":"({{number_of_ratings}} ratings)","-260332243":"{{user_blocked_count}} person has blocked you","-117094654":"{{user_blocked_count}} people have blocked you","-329713179":"Ok","-1689905285":"Unblock","-55126326":"Seller","-328555709":"Floating exchange rate shifts with market fluctuations.","-92830427":"Seller's instructions","-1940034707":"Buyer's instructions","-631576120":"Orders must be completed in","-835196958":"Receive payment to","-1218007718":"You may choose up to 3.","-1933432699":"Enter {{transaction_type}} amount","-2021730616":"{{ad_type}}","-490637584":"Limit: {{min}}–{{max}} {{currency}}","-1974067943":"Your bank details","-892663026":"Your contact details","-1285759343":"Search","-1657433201":"There are no matching ads.","-1862812590":"Limits {{ min_order }}–{{ max_order }} {{ currency }}","-1876891031":"Currency","-1503997652":"No ads for this currency.","-1048001140":"No results for \"{{value}}\".","-254484597":"You have no ads 😞","-1179827369":"Create new ad","-73663931":"Create ad","-141315849":"No ads for this currency at the moment 😞","-1889014820":"<0>Don’t see your payment method? <1>Add new.","-1406830100":"Payment method","-294043241":"Set ad type and amount","-311810519":"Set payment details","-1149273198":"Set ad conditions","-1282343703":"You're creating an ad to buy <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-2139632895":"You're creating an ad to sell <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-40669120":"You're creating an ad to sell <0>{{ target_amount }} {{ target_currency }}...","-514789442":"You're creating an ad to buy...","-642814645":"Edit ad type and amount","-172076831":"Edit ad conditions","-1914431773":"You're editing an ad to buy <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-107996509":"You're editing an ad to buy <0>{{ target_amount }} {{ target_currency }}...","-863580260":"You're editing an ad to buy...","-1396464057":"You're editing an ad to sell...","-309848900":"Copy","-1318334333":"Deactivate","-372210670":"Rate (1 {{account_currency}})","-87612148":"Ad not listed","-466964809":"Manage ad","-1667041441":"Rate (1 {{ offered_currency }})","-792015701":"Deriv P2P cashier is unavailable in your country.","-1983512566":"This conversation is closed.","-283017497":"Retry","-360975483":"You've made no transactions of this type during this period.","-979459594":"Buy/Sell","-2052184983":"Order ID","-2096350108":"Counterparty","-1597110099":"Receive","-750202930":"Active orders","-1626659964":"I've received {{amount}} {{currency}}.","-1862640130":"12:00 am","-681957586":"12:30 am","-98085164":"03:00 am","-1115214844":"03:30 am","-1711840274":"05:00 am","-564717250":"05:30 am","-1474332301":"06:00 am","-272694365":"06:30 am","-132120018":"08:00 am","-1082099458":"08:30 am","-1592637597":"11:00 am","-424526413":"11:30 am","-1021083922":"12:00 pm","-2071788482":"12:30 pm","-1442941500":"03:00 pm","-295825644":"03:30 pm","-902938370":"05:00 pm","-1920058834":"05:30 pm","-70886813":"06:00 pm","-1134157645":"06:30 pm","-1409736386":"08:00 pm","-329688082":"08:30 pm","-221551501":"11:00 pm","-1251271005":"11:30 pm","-526636259":"Error 404","-480724783":"You already have an ad with this rate","-2040406318":"You already have an ad with the same exchange rate for this currency pair and order type. nnPlease set a different rate for your ad.","-1117584385":"Seen more than 6 months ago","-1766199849":"Seen {{ duration }} months ago","-591593016":"Seen {{ duration }} day ago","-1586918919":"Seen {{ duration }} hours ago","-664781013":"Seen {{ duration }} minute ago","-1717650468":"Online","-485338176":"The advertiser has set conditions for this ad that you don't meet.","-1887970998":"Unblocking wasn't possible as {{name}} is not using Deriv P2P anymore.","-1207312691":"Completed","-688728873":"Expired","-1951641340":"Under dispute","-1738697484":"Confirm payment","-1611857550":"Waiting for the seller to confirm","-1452684930":"Buyer's real name","-1875343569":"Seller's payment details","-1977959027":"hours","-1603581277":"minutes","-1792280476":"Choose your payment method","-520142572":"Cashier is currently down for maintenance","-1552080215":"Please check back in a few minutes.<0>Thank you for your patience.","-684271315":"OK","-130601012":"Please select duration","-232254547":"Custom","-1577570698":"Start date","-1251526905":"Last 7 days","-1638172550":"To enable this feature you must complete the following:","-1086586743":"Please submit your <0>proof of address. You can use Deriv P2P after we’ve verified your documents.","-559300364":"Your Deriv P2P cashier is blocked","-740038242":"Your rate is","-1072444041":"Update ad","-2085839488":"This ad is not listed on Buy/Sell because its minimum order is higher than the ad’s remaining amount ({{remaining_amount}} {{currency}}).","-987612578":"This ad is not listed on Buy/Sell because its minimum order is higher than your Deriv P2P available balance ({{balance}} {{currency}}).","-84644774":"This ad is not listed on Buy/Sell because its minimum order is higher than your remaining daily limit ({{remaining_limit}} {{currency}}).","-452142075":"You’re not allowed to use Deriv P2P to advertise. Please contact us via live chat for more information.","-1886565882":"Your ads with floating rates have been deactivated. Set fixed rates to reactivate them.","-971817673":"Your ad isn't visible to others","-1735126907":"This could be because your account balance is insufficient, your ad amount exceeds your daily limit, or both. You can still see your ad on <0>My ads.","-674715853":"Your ad exceeds the daily limit","-1530773708":"Block {{advertiser_name}}?","-678964540":"to","-1856204727":"Reset","-276006001":"*Some ads may not be immediately visible to potential buyers due to order processing times.","-662820801":"Monday","-630205792":"M","-1107002784":"T","-1843685852":"10:30 am - 11:30 pm","-1216220934":"Thursday","-1222724746":"Friday","-383986464":"Saturday","-873282313":"Sunday","-930297702":"Edit business hour","-394711128":"Business hour","-2035037071":"Your Deriv P2P balance isn't enough. Please increase your balance before trying again.","-293182503":"Cancel adding this payment method?","-1850127397":"If you choose to cancel, the details you’ve entered will be lost.","-1601971804":"Cancel your edits?","-1571737200":"Don't cancel","-146021156":"Delete {{payment_method_name}}?","-1846700504":"Are you sure you want to remove this payment method?","-231863107":"No","-471384801":"Sorry, we're unable to increase your limits right now. Please try again in a few minutes.","-150224710":"Yes, continue","-1422779483":"That payment method cannot be deleted","-1088454544":"Get new link","-1327607310":"Releasing funds before receiving payment may result in losses. Check your email and follow the instructions <0>within 10 minutes to release the funds.","-1632557686":"I didn’t receive the email","-142727028":"The email is in your spam folder (sometimes things get lost there).","-75934135":"Matching ads","-227512949":"Check your spelling or use a different term.","-1554938377":"Search payment method","-1728351486":"Invalid verification link","-433946201":"Leave page?","-818345434":"Are you sure you want to leave this page? Changes made will not be saved.","-1099359768":"Continue with order","-392043307":"Do you want to delete this ad?","-854930519":"You will NOT be able to restore it.","-1600783504":"Set a floating rate for your ad.","-2066944925":"Deriv P2P balance","-172105477":"P2P deposits: Funds received from buying USD from another Deriv P2P user.","-271432543":"Note: Funds deposited using reversible payment methods, like credit cards, Maestro, Diners Club, ZingPay, Skrill, Neteller, Ozow, and UPI QR will not appear in your P2P balance.","-268565332":"What’s your nickname?","-532709160":"Your nickname","-1016461467":"Your nickname cannot be changed later.","-2008992756":"Do you want to cancel this order?","-1618084450":"If you cancel this order, you'll be blocked from using Deriv P2P for {{block_duration}} hours.","-2026176944":"Please do not cancel if you have already made payment.","-1989544601":"Cancel this order","-492996224":"Do not cancel","-1447732068":"Payment confirmation","-1951344681":"Please make sure that you've paid {{amount}} {{currency}} to {{other_user_name}}, and upload the receipt as proof of your payment","-637818525":"Sending forged documents will result in an immediate and permanent ban.","-670364940":"Upload receipt here","-937707753":"Go Back","-167747987":"Search countries","-1171244939":"No results for \"{{search_value}}\".","-1581516455":"Preferred countries","-1340125291":"Done","-1854199094":"{{type}} {{account_currency}}","-788469106":"ID number","-574559641":"Scan this code to order via Deriv P2P","-1078665050":"Share link","-354026679":"Share via","-229543460":"{{- link}}","-1388977563":"Copied!","-237014436":"Recommended by {{recommended_count}} trader","-849068301":"Loading...","-2061807537":"Something’s not right","-1354983065":"Refresh","-2054589794":"You've been temporarily barred from using our services due to multiple cancellation attempts. Try again after {{date_time}} GMT.","-1079963355":"trades","-609070622":"Identity verification in progress.","-1269954557":"Identity verification failed. Please try again.","-1507102231":"Identity verification complete.","-670039668":"Address verification in progress.","-23313647":"Address verification complete.","-1483008038":"Verify your P2P account","-792476552":"Verify your identity and address to use Deriv P2P.","-288996254":"Unavailable","-145054222":"Counterparty conditions (optional)","-614283799":"Joined more than","-1908785123":"Completion rate of more than","-2049545084":"We'll only show your ad to people with a completion rate higher than your selection.","-492290468":"We’ll only show your ad to people in the countries you choose.","-71696502":"Previous","-1541554430":"Next","-207756259":"You may tap and choose up to 3.","-2094684686":"If you choose to cancel, the details you've entered will be lost.","-1561775203":"Buy {{currency}}","-1527285935":"Sell {{currency}}","-592818187":"Your Deriv P2P balance is {{ dp2p_balance }}","-1654157453":"Fixed rate (1 {{currency}})","-379708059":"Min order","-1459289144":"This information will be visible to everyone.","-712875121":"{{title}}","-1987185760":"Next: {{title}}","-1281511784":"Cancel ad creation?","-2144449586":"Ad type","-1307206495":"Order must be completed in","-1653577295":"Joined more than <0>{{min_join_days}} days","-322185463":"All countries","-1908692350":"Filter by","-992568889":"No one to show here","-1241719539":"When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.","-1007339977":"There are no matching name.","-1298666786":"My counterparties","-179005984":"Save","-2059312414":"Ad details","-1769584466":"Stats","-2090878601":"Daily limit","-474123616":"Want to increase your daily limits to <0>{{max_daily_buy}} {{currency}} (buy) and <1>{{max_daily_sell}} {{currency}} (sell)?","-1007968770":"Business hours","-133982971":"{{avg_release_time_in_minutes}} min","-130547447":"Trade volume <0>30d | <1>lifetime","-383030149":"You haven’t added any payment methods yet","-1156559889":"Bank Transfers","-1269362917":"Add new"} \ No newline at end of file diff --git a/packages/p2p/src/translations/ar.json b/packages/p2p/src/translations/ar.json index 79880d30e446..1419a93dea98 100644 --- a/packages/p2p/src/translations/ar.json +++ b/packages/p2p/src/translations/ar.json @@ -71,7 +71,6 @@ "555447610": "لن تتمكن من تغيير حدود البيع والشراء مرة أخرى بعد ذلك. هل تريد المتابعة؟", "560402954": "تصنيف المستخدم", "565060416": "سعر الصرف", - "574961698": "45 دقائق", "587882987": "المعلنون", "597723493": "الثلاثاء", "611376642": "واضح", @@ -567,9 +566,6 @@ "-2144449586": "نوع الإعلانات", "-1307206495": "يجب إكمال الطلبات في", "-1653577295": "انضم لأكثر من <0>{{min_join_days}} يومًا", - "-293628675": "1 ساعة", - "-1978767852": "30 دقائق", - "-999492762": "15 دقائق", "-322185463": "كل البلدان", "-1908692350": "التصفية حسب", "-992568889": "لا أحد للعرض هنا", diff --git a/packages/p2p/src/translations/bn.json b/packages/p2p/src/translations/bn.json index ff2eb47fe692..07dfbd162c10 100644 --- a/packages/p2p/src/translations/bn.json +++ b/packages/p2p/src/translations/bn.json @@ -71,7 +71,6 @@ "555447610": "আপনি এই পরে আবার আপনার কিনতে এবং বিক্রয় সীমা পরিবর্তন করতে সক্ষম হবে না। আপনি কি চালিয়ে যেতে চান?", "560402954": "ব্যবহারকারীর রেটিং", "565060416": "বিনিময় হার", - "574961698": "45 মিনিট", "587882987": "বিজ্ঞাপনদাতা", "597723493": "মঙ্গলবার", "611376642": "পরিষ্কার", @@ -567,9 +566,6 @@ "-2144449586": "বিজ্ঞাপনের ধরন", "-1307206495": "অর্ডারগুলি অবশ্যই সম্পন্ন করতে হবে", "-1653577295": "<0>{{min_join_days}} দিনেরও বেশি যোগ দিয়েছেন", - "-293628675": "1 ঘন্টা", - "-1978767852": "30 মিনিট", - "-999492762": "15 মিনিট", "-322185463": "সকল দেশ", "-1908692350": "অনুসারে ফিল্টার করুন", "-992568889": "এখানে কেউ দেখাতে পারবে না", diff --git a/packages/p2p/src/translations/de.json b/packages/p2p/src/translations/de.json index 7c3a74c06b48..d70170712118 100644 --- a/packages/p2p/src/translations/de.json +++ b/packages/p2p/src/translations/de.json @@ -71,7 +71,6 @@ "555447610": "Danach können Sie Ihre Kauf- und Verkaufslimits nicht mehr ändern. Möchtest du weitermachen?", "560402954": "Bewertung durch Nutzer", "565060416": "Wechselkurs", - "574961698": "45 Minuten", "587882987": "Werbetreibende", "597723493": "Dienstag", "611376642": "Klar", @@ -567,9 +566,6 @@ "-2144449586": "Anzeigenart", "-1307206495": "Die Bestellung muss ausgefüllt werden in", "-1653577295": "Mitglied seit mehr als <0>{{min_join_days}} Tagen", - "-293628675": "1 Stunde", - "-1978767852": "30 Minuten", - "-999492762": "15 Minuten", "-322185463": "Alle Länder", "-1908692350": "Filtern nach", "-992568889": "Niemand, der hier gezeigt werden kann", diff --git a/packages/p2p/src/translations/es.json b/packages/p2p/src/translations/es.json index 3fd4d45dae62..73fbe4b3aab9 100644 --- a/packages/p2p/src/translations/es.json +++ b/packages/p2p/src/translations/es.json @@ -71,7 +71,6 @@ "555447610": "Después de esto, no podrá volver a cambiar sus límites de compra y venta. ¿Quiere continuar?", "560402954": "Valoración de usuarios", "565060416": "Tasa de cambio", - "574961698": "45 minutos", "587882987": "Anunciantes", "597723493": "Martes", "611376642": "Limpiar", @@ -567,9 +566,6 @@ "-2144449586": "Tipo de anuncio", "-1307206495": "Las pedidos deben completarse en", "-1653577295": "Se unió más de <0>{{min_join_days}} días", - "-293628675": "1 hora", - "-1978767852": "30 minutos", - "-999492762": "15 minutos", "-322185463": "Todos los países", "-1908692350": "Filtrar por", "-992568889": "No hay nadie a quien mostrar aquí", diff --git a/packages/p2p/src/translations/fr.json b/packages/p2p/src/translations/fr.json index dae0c3c562fe..a35952eee5e8 100644 --- a/packages/p2p/src/translations/fr.json +++ b/packages/p2p/src/translations/fr.json @@ -71,7 +71,6 @@ "555447610": "Vous ne pourrez plus modifier vos limites d'achat et de vente par la suite. Souhaitez-vous continuer ?", "560402954": "Note de l'utilisateur", "565060416": "Taux de change", - "574961698": "45 minutes", "587882987": "Annonceurs", "597723493": "Mardi", "611376642": "Effacer", @@ -567,9 +566,6 @@ "-2144449586": "Type d'annonces", "-1307206495": "Les transactions doivent être terminées dans un délai de", "-1653577295": "Inscrit depuis plus de <0>{{min_join_days}} jours", - "-293628675": "1 heure", - "-1978767852": "30 minutes", - "-999492762": "15 minutes", "-322185463": "Tous les pays", "-1908692350": "Filtrer par", "-992568889": "Aucun à afficher ici", diff --git a/packages/p2p/src/translations/it.json b/packages/p2p/src/translations/it.json index d49780624201..5a5ea35bbc63 100644 --- a/packages/p2p/src/translations/it.json +++ b/packages/p2p/src/translations/it.json @@ -71,7 +71,6 @@ "555447610": "Proseguendo, non potrai più modificare i limiti di acquisto e vendita. Vuoi continuare?", "560402954": "Valutazione degli utenti", "565060416": "Tasso di cambio", - "574961698": "45 minuti", "587882987": "Annunci", "597723493": "Martedì", "611376642": "Cancella", @@ -567,9 +566,6 @@ "-2144449586": "Tipo di annuncio", "-1307206495": "Gli ordini devono essere completati in", "-1653577295": "Iscritto da più di <0>{{min_join_days}} giorni", - "-293628675": "1 ora", - "-1978767852": "30 minuti", - "-999492762": "15 minuti", "-322185463": "Tutti i paesi", "-1908692350": "Filtra per", "-992568889": "Nessuno da mostrare", diff --git a/packages/p2p/src/translations/km.json b/packages/p2p/src/translations/km.json index a981a28cfa6b..324b10f3d779 100644 --- a/packages/p2p/src/translations/km.json +++ b/packages/p2p/src/translations/km.json @@ -71,7 +71,6 @@ "555447610": "អ្នកនឹងមិនអាចផ្លាស់ប្តូរដែនកំណត់ការទិញ និងលក់របស់អ្នកបានទៀតទេបន្ទាប់ពីនេះ។ តើអ្នកចង់បន្តទៀតមែនទេ?", "560402954": "ការវាយតម្លៃអ្នកប្រើ", "565060416": "អាត្រាប្តូរប្រាក់", - "574961698": "45 នាទី", "587882987": "អ្នកដាំផ្សាយ", "597723493": "អធនផ្សតពស្បតនា", "611376642": "ជម្រះ", @@ -567,9 +566,6 @@ "-2144449586": "ប្រភេទការផ្សព្វផ្សាយ", "-1307206495": "ការបញ្ជាទិញត្រូវតែបញ្ចប់ក្នុង", "-1653577295": "ចូលរួមនាងច្រើនជាង <0>{{min_join_days}} ថ្ងៃ<\\/0>", - "-293628675": "1 ម៉ោង", - "-1978767852": "30 នាទី", - "-999492762": "15 នាទី", "-322185463": "ប្រទេសទាំងអស់", "-1908692350": "កំណត់តម្យាងដោយ", "-992568889": "មិនមាននរណាម្នាក់ឆ្លាក់នៅទីនេះទេ", diff --git a/packages/p2p/src/translations/ko.json b/packages/p2p/src/translations/ko.json index 2dd7fde9b476..9c5ca5e56309 100644 --- a/packages/p2p/src/translations/ko.json +++ b/packages/p2p/src/translations/ko.json @@ -71,7 +71,6 @@ "555447610": "이후에는 구매 및 판매 한도를 다시 변경할 수 없습니다. 계속하시겠습니까?", "560402954": "사용자 평가", "565060416": "환율", - "574961698": "45분", "587882987": "광고주", "597723493": "화요일", "611376642": "지우기", @@ -567,9 +566,6 @@ "-2144449586": "광고 유형", "-1307206495": "주문은 다음에서 완료해야 합니다.", "-1653577295": "가입 일수가 <0>{{min_join_days}} 일 이상", - "-293628675": "1시간", - "-1978767852": "30분", - "-999492762": "15분", "-322185463": "모든 나라들", "-1908692350": "필터링 기준", "-992568889": "여기에 표시할 사람이 없습니다", diff --git a/packages/p2p/src/translations/mn.json b/packages/p2p/src/translations/mn.json index e282e46d4a4a..a01c88ce9199 100644 --- a/packages/p2p/src/translations/mn.json +++ b/packages/p2p/src/translations/mn.json @@ -71,7 +71,6 @@ "555447610": "Та үүний дараа худалдан авах, зарах хязгаарыг дахин өөрчлөх боломжгүй болно. Та үргэлжлүүлэхийг хүсч байна уу?", "560402954": "Хэрэглэгчийн үнэлгээ", "565060416": "Валютын ханш", - "574961698": "45 минут", "587882987": "Зар сурталчилгаа", "597723493": "Мягмар", "611376642": "Цэлмэг", @@ -567,9 +566,6 @@ "-2144449586": "Зарын төрөл", "-1307206495": "Захиалгыг дотор нь бөглөх ёстой", "-1653577295": "<0>{{min_join_days}} гаруй хоногт элссэн", - "-293628675": "1 цаг", - "-1978767852": "30 минут", - "-999492762": "15 минут", "-322185463": "Бүх улс", "-1908692350": "Шүүлтүүр", "-992568889": "Энд харуулах хэн ч байхгүй", diff --git a/packages/p2p/src/translations/pl.json b/packages/p2p/src/translations/pl.json index 669b21724581..cf5a83a673c9 100644 --- a/packages/p2p/src/translations/pl.json +++ b/packages/p2p/src/translations/pl.json @@ -71,7 +71,6 @@ "555447610": "Po tym nie będziesz mógł ponownie zmienić limitów kupna i sprzedaży. Chcesz kontynuować?", "560402954": "Ocena użytkownika", "565060416": "Kurs wymiany", - "574961698": "45 minut", "587882987": "Reklamodawcy", "597723493": "wtorek", "611376642": "Wyczyść", @@ -567,9 +566,6 @@ "-2144449586": "Rodzaje ogłoszeń", "-1307206495": "Zamówienia muszą być zrealizowane w ciągu", "-1653577295": "Dołączył więcej niż <0>{{min_join_days}} dni", - "-293628675": "1 godzina", - "-1978767852": "30 minut", - "-999492762": "15 minut", "-322185463": "Wszystkie kraje", "-1908692350": "Filtruj według", "-992568889": "Brak użytkowników do wyświetlenia", diff --git a/packages/p2p/src/translations/pt.json b/packages/p2p/src/translations/pt.json index a9b1d60aaad0..b685321b156b 100644 --- a/packages/p2p/src/translations/pt.json +++ b/packages/p2p/src/translations/pt.json @@ -71,7 +71,6 @@ "555447610": "Depois disso, você não poderá alterar seus limites de compra e venda novamente. Deseja continuar?", "560402954": "Avaliação do usuário", "565060416": "Taxa de câmbio", - "574961698": "45 minutos", "587882987": "Anunciantes", "597723493": "Terça-feira", "611376642": "Limpar", @@ -567,9 +566,6 @@ "-2144449586": "Tipo de anúncio", "-1307206495": "O pedido deve ser finalizados em", "-1653577295": "Aderiu à mais de <0>{{min_join_days}} dias", - "-293628675": "1 hora", - "-1978767852": "30 minutos", - "-999492762": "15 minutos", "-322185463": "Todos os países", "-1908692350": "Filtrar por", "-992568889": "Ninguém para mostrar", diff --git a/packages/p2p/src/translations/ru.json b/packages/p2p/src/translations/ru.json index 95533eca2bdb..7eb31b4a2814 100644 --- a/packages/p2p/src/translations/ru.json +++ b/packages/p2p/src/translations/ru.json @@ -71,7 +71,6 @@ "555447610": "После этого вы не сможете снова изменить лимиты на покупку и продажу. Хотите продолжить?", "560402954": "Рейтинг", "565060416": "Обменный курс", - "574961698": "45 минуты", "587882987": "Адверты", "597723493": "Вторник", "611376642": "Очистить", @@ -567,9 +566,6 @@ "-2144449586": "Тип объявления", "-1307206495": "Заказы должны быть заполнены в", "-1653577295": "Присоединялся более <0>{{min_join_days}} дней", - "-293628675": "1 час", - "-1978767852": "30 минуты", - "-999492762": "15 минуты", "-322185463": "Все страны", "-1908692350": "Фильтр по", "-992568889": "Здесь никого нет", diff --git a/packages/p2p/src/translations/si.json b/packages/p2p/src/translations/si.json index 4ffd6beb3d1d..5c7a4b6d61b2 100644 --- a/packages/p2p/src/translations/si.json +++ b/packages/p2p/src/translations/si.json @@ -71,7 +71,6 @@ "555447610": "මෙයින් පසු ඔබේ මිලදී ගැනීමේ සහ විකිණීමේ සීමාවන් නැවත වෙනස් කිරීමට ඔබට නොහැකි වනු ඇත. ඔබට ඉදිරියට යාමට අවශ්යද?", "560402954": "පරිශීලක ශ්රේණිගත කිරීම", "565060416": "විනිමය අනුපාතය", - "574961698": "විනාඩි 45 යි", "587882987": "දැන්වීම්කරුවන්", "597723493": "අගහරුවාදා", "611376642": "පැහැදිලි", @@ -567,9 +566,6 @@ "-2144449586": "දැන්වීම් වර්ගය", "-1307206495": "ඇණවුම් සම්පූර්ණ කළ යුතුය", "-1653577295": "<0>දින{{min_join_days}} කට වැඩි කාලයක් සම්බන්ධ විය", - "-293628675": "පැය 1 යි", - "-1978767852": "විනාඩි 30 යි", - "-999492762": "විනාඩි 15 යි", "-322185463": "සියලුම රටවල්", "-1908692350": "විසින් පෙරහන් කරන්න", "-992568889": "මෙහි පෙන්වීමට කිසිවෙකු නැත", diff --git a/packages/p2p/src/translations/sw.json b/packages/p2p/src/translations/sw.json index 042d53f869ca..ef544c652e18 100644 --- a/packages/p2p/src/translations/sw.json +++ b/packages/p2p/src/translations/sw.json @@ -71,7 +71,6 @@ "555447610": "Hautaweza kubadilisha vikomo vyako vya ununuzi na uuzaji tena baada ya hili. Je, unataka kuendelea?", "560402954": "Ukadiriaji wa mtumiaji", "565060416": "Kiwango cha ubadilishaji", - "574961698": "Dakika 45", "587882987": "Watangazaji", "597723493": "Jumanne", "611376642": "Wafunua", @@ -567,9 +566,6 @@ "-2144449586": "Aina ya tangazo", "-1307206495": "Oda lazima zikamilishwe", "-1653577295": "Alijiunga zaidi ya siku <0>{{min_join_days}}", - "-293628675": "saa 1", - "-1978767852": "Dakika 30", - "-999492762": "Dakika 15", "-322185463": "Nchi zote", "-1908692350": "Chuja kwa", "-992568889": "Hakuna mtu wa kuonyesha hapa", diff --git a/packages/p2p/src/translations/th.json b/packages/p2p/src/translations/th.json index 62377405e79f..2ee10bd0df60 100644 --- a/packages/p2p/src/translations/th.json +++ b/packages/p2p/src/translations/th.json @@ -71,7 +71,6 @@ "555447610": "หลังจากนี้คุณจะไม่สามารถเปลี่ยนวงเงินการซื้อและการขายของคุณได้อีก คุณต้องการดำเนินการต่อหรือไม่?", "560402954": "การให้คะแนนของผู้ใช้", "565060416": "อัตราแลกเปลี่ยน", - "574961698": "45 นาที", "587882987": "ผู้โฆษณา", "597723493": "วันอังคาร", "611376642": "ล้าง", @@ -567,9 +566,6 @@ "-2144449586": "ประเภทโฆษณา", "-1307206495": "คำสั่งซื้อขายจะต้องเสร็จสิ้นภายใน", "-1653577295": "เข้าร่วมมากกว่า <0>{{min_join_days}} วัน", - "-293628675": "1 ชั่วโมง", - "-1978767852": "30 นาที", - "-999492762": "15 นาที", "-322185463": "ทุกประเทศ", "-1908692350": "กรองโดย", "-992568889": "ไม่มีผู้ใดที่จะแสดงที่นี่", diff --git a/packages/p2p/src/translations/tr.json b/packages/p2p/src/translations/tr.json index b0184d3b0b7d..085a0f599912 100644 --- a/packages/p2p/src/translations/tr.json +++ b/packages/p2p/src/translations/tr.json @@ -71,7 +71,6 @@ "555447610": "Bundan sonra alım satım limitlerinizi tekrar değiştiremezsiniz. Devam etmek ister misin?", "560402954": "Kullanıcı değerlendirmesi", "565060416": "Döviz kuru", - "574961698": "45 dakika", "587882987": "Reklamcılar", "597723493": "Salı", "611376642": "Temizle", @@ -567,9 +566,6 @@ "-2144449586": "İlan türü", "-1307206495": "Siparişler şu sürede tamamlanmalıdır", "-1653577295": "<0>{{min_join_days}} gün den fazla katıldı", - "-293628675": "1 saat", - "-1978767852": "30 dakika", - "-999492762": "15 dakika", "-322185463": "Tüm ülkeler", "-1908692350": "Göre filtrele", "-992568889": "Burada gösterilecek kimse yok", diff --git a/packages/p2p/src/translations/vi.json b/packages/p2p/src/translations/vi.json index 65375e2f90fb..bf6b915e7a63 100644 --- a/packages/p2p/src/translations/vi.json +++ b/packages/p2p/src/translations/vi.json @@ -71,7 +71,6 @@ "555447610": "Bạn sẽ không thể thay đổi giới hạn mua và bán của mình sau lần này. Bạn có muốn tiếp tục không?", "560402954": "Xếp hạng người dùng", "565060416": "Tỷ giá trao đổi", - "574961698": "45 phút", "587882987": "Nhà quảng cáo", "597723493": "Thứ ba", "611376642": "Xóa", @@ -567,9 +566,6 @@ "-2144449586": "Loại quảng cáo", "-1307206495": "Đơn đặt hàng phải được hoàn thành trong", "-1653577295": "Đã tham gia hơn <0>{{min_join_days}} ngày", - "-293628675": "1 giờ", - "-1978767852": "30 phút", - "-999492762": "15 phút", "-322185463": "Tất cả các quốc gia", "-1908692350": "Lọc theo", "-992568889": "Không có người dùng để hiển thị ở đây", diff --git a/packages/p2p/src/translations/zh_cn.json b/packages/p2p/src/translations/zh_cn.json index 1bbde80223be..cfab34011a6f 100644 --- a/packages/p2p/src/translations/zh_cn.json +++ b/packages/p2p/src/translations/zh_cn.json @@ -71,7 +71,6 @@ "555447610": "此后,将无法再次更改买入和卖出限额。继续吗?", "560402954": "用户评分", "565060416": "汇率", - "574961698": "45 分钟", "587882987": "广告商", "597723493": "星期二", "611376642": "清除", @@ -567,9 +566,6 @@ "-2144449586": "广告类型", "-1307206495": "必须在以下时间内完成订单", "-1653577295": "加入已超过 <0>{{min_join_days}} 天", - "-293628675": "1 小时", - "-1978767852": "30 分钟", - "-999492762": "15 分钟", "-322185463": "所有国家", "-1908692350": "筛选依据", "-992568889": "没人在此显示", diff --git a/packages/p2p/src/translations/zh_tw.json b/packages/p2p/src/translations/zh_tw.json index aac2f2732132..feeceac020c5 100644 --- a/packages/p2p/src/translations/zh_tw.json +++ b/packages/p2p/src/translations/zh_tw.json @@ -71,7 +71,6 @@ "555447610": "此後,將無法再次變更買入和賣出限額。繼續嗎?", "560402954": "使用者評分", "565060416": "匯率", - "574961698": "45 分鐘", "587882987": "廣告商", "597723493": "星期二", "611376642": "清除", @@ -567,9 +566,6 @@ "-2144449586": "廣告類型", "-1307206495": "訂單必須在以下時間內完成", "-1653577295": "加入超過 <0>{{min_join_days}} 天", - "-293628675": "1 小時", - "-1978767852": "30 分鐘", - "-999492762": "15 分鐘", "-322185463": "所有國家", "-1908692350": "篩選方式", "-992568889": "沒人在此顯示", diff --git a/packages/translations/src/translations/ach.json b/packages/translations/src/translations/ach.json index 920523f8b70d..a0f7533dd5af 100644 --- a/packages/translations/src/translations/ach.json +++ b/packages/translations/src/translations/ach.json @@ -512,6 +512,7 @@ "538017420": "crwdns2154495:0crwdne2154495:0", "538042340": "crwdns4122042:0crwdne4122042:0", "538228086": "crwdns4308518:0crwdne4308518:0", + "539352212": "crwdns5990874:0{{current_tick}}crwdne5990874:0", "541650045": "crwdns1259727:0{{platform}}crwdne1259727:0", "541700024": "crwdns1259729:0crwdne1259729:0", "542038694": "crwdns1259731:0{{label}}crwdne1259731:0", @@ -822,6 +823,7 @@ "839805709": "crwdns1260193:0crwdne1260193:0", "841543189": "crwdns1260197:0crwdne1260197:0", "843333337": "crwdns1260199:0crwdne1260199:0", + "845106422": "crwdns5990876:0crwdne5990876:0", "845304111": "crwdns1260203:0{{ input_number }}crwdne1260203:0", "848083350": "crwdns2301189:0crwdne2301189:0", "850582774": "crwdns1260207:0crwdne1260207:0", @@ -916,6 +918,7 @@ "938500877": "crwdns1260337:0{{ text }}crwdne1260337:0", "938947787": "crwdns2783111:0{{currency}}crwdne2783111:0", "938988777": "crwdns1260339:0crwdne1260339:0", + "942015028": "crwdns5990888:0crwdne5990888:0", "944499219": "crwdns1260345:0crwdne1260345:0", "945532698": "crwdns1260347:0crwdne1260347:0", "945753712": "crwdns3172754:0crwdne3172754:0", @@ -1105,6 +1108,7 @@ "1104912023": "crwdns1260601:0crwdne1260601:0", "1107474660": "crwdns1260603:0crwdne1260603:0", "1107555942": "crwdns1260605:0crwdne1260605:0", + "1109182113": "crwdns5990878:0crwdne5990878:0", "1109217274": "crwdns1260607:0crwdne1260607:0", "1110102997": "crwdns1260609:0crwdne1260609:0", "1111743543": "crwdns5798290:0crwdne5798290:0", @@ -1551,6 +1555,7 @@ "1542742708": "crwdns2154505:0crwdne2154505:0", "1544642951": "crwdns1261307:0crwdne1261307:0", "1547148381": "crwdns1445507:0crwdne1445507:0", + "1548185597": "crwdns5990890:0crwdne5990890:0", "1549098835": "crwdns1261311:0crwdne1261311:0", "1551172020": "crwdns1261313:0crwdne1261313:0", "1551689907": "crwdns4691860:0{{platform}}crwdnd4691860:0{{type}}crwdnd4691860:0{{from_account}}crwdne4691860:0", @@ -1686,6 +1691,7 @@ "1692912479": "crwdns1719427:0crwdne1719427:0", "1693614409": "crwdns1261519:0crwdne1261519:0", "1694517345": "crwdns1261523:0crwdne1261523:0", + "1694888104": "crwdns5990894:0crwdne5990894:0", "1696190747": "crwdns3859826:0crwdne3859826:0", "1698624570": "crwdns2101837:0crwdne2101837:0", "1699606318": "crwdns3698884:0crwdne3698884:0", @@ -1696,6 +1702,7 @@ "1703712522": "crwdns3328070:0crwdne3328070:0", "1704656659": "crwdns1335145:0crwdne1335145:0", "1707264798": "crwdns5798628:0crwdne5798628:0", + "1707758392": "crwdns5990892:0crwdne5990892:0", "1708413635": "crwdns1261529:0{{currency_name}}crwdnd1261529:0{{currency}}crwdne1261529:0", "1709859601": "crwdns1261531:0crwdne1261531:0", "1711013665": "crwdns1261535:0crwdne1261535:0", @@ -2014,6 +2021,7 @@ "1990331072": "crwdns1445517:0crwdne1445517:0", "1990735316": "crwdns1262035:0crwdne1262035:0", "1991055223": "crwdns2101865:0crwdne2101865:0", + "1991448657": "crwdns5990856:0crwdne5990856:0", "1991524207": "crwdns1262039:0crwdne1262039:0", "1994023526": "crwdns1262041:0crwdne1262041:0", "1994558521": "crwdns1262043:0crwdne1262043:0", @@ -2389,6 +2397,7 @@ "-138380129": "crwdns1381145:0crwdne1381145:0", "-1502578110": "crwdns81257:0crwdne81257:0", "-506122621": "crwdns3228678:0crwdne3228678:0", + "-1106259572": "crwdns5990858:0crwdne5990858:0", "-252665911": "crwdns3228682:0{{required}}crwdne3228682:0", "-859814496": "crwdns3228684:0{{required}}crwdne3228684:0", "-237940902": "crwdns3228686:0{{required}}crwdne3228686:0", @@ -2768,7 +2777,6 @@ "-1186807402": "crwdns81525:0crwdne81525:0", "-744999940": "crwdns118062:0crwdne118062:0", "-766186087": "crwdns5328286:0{{trustScore}}crwdnd5328286:0{{numberOfReviews}}crwdne5328286:0", - "-1265635180": "crwdns5287252:0crwdne5287252:0", "-1870909526": "crwdns160420:0crwdne160420:0", "-582721696": "crwdns169119:0{{format_min_withdraw_amount}}crwdnd169119:0{{format_max_withdraw_amount}}crwdnd169119:0{{currency}}crwdne169119:0", "-1975494965": "crwdns81493:0crwdne81493:0", @@ -3763,8 +3771,14 @@ "-1331298683": "crwdns5757136:0crwdne5757136:0", "-509210647": "crwdns5957586:0crwdne5957586:0", "-99964540": "crwdns5757138:0crwdne5757138:0", - "-1221049974": "crwdns2301219:0crwdne2301219:0", + "-542594338": "crwdns2225583:0crwdne2225583:0", + "-1622900200": "crwdns5990880:0crwdne5990880:0", "-2131851017": "crwdns2225581:0crwdne2225581:0", + "-339236213": "crwdns81045:0crwdne81045:0", + "-1396928673": "crwdns5990882:0crwdne5990882:0", + "-1358367903": "crwdns69662:0crwdne69662:0", + "-1853307892": "crwdns5990884:0crwdne5990884:0", + "-1221049974": "crwdns2301219:0crwdne2301219:0", "-843831637": "crwdns89524:0crwdne89524:0", "-583023237": "crwdns5822300:0crwdne5822300:0", "-1476381873": "crwdns3286916:0crwdne3286916:0", @@ -3845,8 +3859,6 @@ "-700280380": "crwdns89646:0crwdne89646:0", "-8998663": "crwdns89636:0{{last_digit}}crwdne89636:0", "-718750246": "crwdns4740254:0{{growth_rate}}crwdnd4740254:0{{tick_size_barrier_percentage}}crwdne4740254:0", - "-1358367903": "crwdns69662:0crwdne69662:0", - "-542594338": "crwdns2225583:0crwdne2225583:0", "-690963898": "crwdns2225585:0crwdne2225585:0", "-511541916": "crwdns2225587:0crwdne2225587:0", "-438655760": "crwdns3030605:0crwdne3030605:0", @@ -3865,7 +3877,6 @@ "-1686280757": "crwdns121916:0{{commission_percentage}}crwdnd121916:0{{multiplier}}crwdne121916:0", "-732683018": "crwdns3286902:0crwdne3286902:0", "-989393637": "crwdns5583396:0crwdne5583396:0", - "-339236213": "crwdns81045:0crwdne81045:0", "-194424366": "crwdns1781095:0crwdne1781095:0", "-857660728": "crwdns1781103:0crwdne1781103:0", "-1346404690": "crwdns3264404:0crwdne3264404:0", @@ -4177,6 +4188,8 @@ "-3423966": "crwdns121904:0crwdne121904:0", "-1131753095": "crwdns1829309:0{{trade_type_name}}crwdne1829309:0", "-360975483": "crwdns159414:0crwdne159414:0", + "-2082644096": "crwdns5757142:0crwdne5757142:0", + "-1942828391": "crwdns5990886:0crwdne5990886:0", "-335816381": "crwdns89540:0crwdne89540:0", "-1789807039": "crwdns89542:0crwdne89542:0", "-558031309": "crwdns89544:0crwdne89544:0", @@ -4192,7 +4205,6 @@ "-726626679": "crwdns70278:0crwdne70278:0", "-1511825574": "crwdns70276:0crwdne70276:0", "-499175967": "crwdns5757140:0crwdne5757140:0", - "-2082644096": "crwdns5757142:0crwdne5757142:0", "-706219815": "crwdns5757144:0crwdne5757144:0", "-1669418686": "crwdns80837:0crwdne80837:0", "-1548588249": "crwdns80839:0crwdne80839:0", @@ -4229,7 +4241,6 @@ "-342128411": "crwdns158202:0crwdne158202:0", "-9704319": "crwdns158204:0crwdne158204:0", "-465860988": "crwdns80901:0crwdne80901:0", - "-390528194": "crwdns158206:0crwdne158206:0", "-280323742": "crwdns170994:0crwdne170994:0", "-563812039": "crwdns80905:0crwdne80905:0", "-82971929": "crwdns3264408:0crwdne3264408:0", diff --git a/packages/translations/src/translations/ar.json b/packages/translations/src/translations/ar.json index a6b00343bf5a..5490bbb02bee 100644 --- a/packages/translations/src/translations/ar.json +++ b/packages/translations/src/translations/ar.json @@ -512,6 +512,7 @@ "538017420": "0.5 نقطة", "538042340": "المبدأ 2: تزداد الحصة فقط عندما تتبع التجارة الخاسرة تجارة ناجحة", "538228086": "Close-Low", + "539352212": "ضع علامة {{current_tick}}", "541650045": "إدارة {{platform}} كلمة مرور", "541700024": "أولاً، أدخل رقم رخصة القيادة وتاريخ انتهاء الصلاحية.", "542038694": "يُسمح فقط بالأحرف والأرقام والمسافة والتسطير السفلي والواصلة بـ {{label}}.", @@ -822,6 +823,7 @@ "839805709": "للتحقق منك بسلاسة، نحتاج إلى صورة أفضل", "841543189": "عرض المعاملة على بلوكشين (Blockchain)", "843333337": "يمكنك الايداع فقط. يرجى إكمال <0>التقييم المالي لفتح عمليات السحب.", + "845106422": "التنبؤ بالرقم الأخير", "845304111": "فترة EMA البطيئة {{ input_number }}", "848083350": "العائد الخاص بك يساوي <0>العائد لكل نقطة مضروبًا في الفرق بين السعر النهائي وسعر التنفيذ. لن تحقق ربحًا إلا إذا كانت عائداتك أعلى من حصتك الأولية.", "850582774": "يرجى تحديث معلوماتك الشخصية", @@ -916,6 +918,7 @@ "938500877": "{{ text }}.<0> يمكنك عرض ملخص هذه المعاملة في بريدك الإلكتروني.", "938947787": "السحب {{currency}}", "938988777": "حاجز عالي", + "942015028": "مؤشر الخطوة 500", "944499219": "الحد الأقصى للمراكز المفتوحة", "945532698": "تم بيع العقد", "945753712": "العودة إلى مركز التاجر", @@ -1105,6 +1108,7 @@ "1104912023": " التحقق قيد الانتظار ", "1107474660": "تقديم إثبات العنوان", "1107555942": "إلى", + "1109182113": "ملاحظة: إلغاء الصفقة متاح فقط لمؤشرات التقلب على المضاعفات.", "1109217274": "النجاح!", "1110102997": "بيان", "1111743543": "وقف الخسارة (المضاعف)", @@ -1551,6 +1555,7 @@ "1542742708": "المواد التركيبية والفوركس والأسهم ومؤشرات الأسهم والسلع والعملات المشفرة", "1544642951": "إذا اخترت «Only Ups»، فستفوز بالعائد إذا ارتفعت العلامات المتتالية تباعًا بعد نقطة الدخول. لا يتم دفع أي عائد إذا سقطت أي علامة أو كانت مساوية لأي من العلامات السابقة.", "1547148381": "هذا الملف كبير جدًا (يُسمح فقط بما يصل إلى 8 ميغابايت). يرجى تحميل ملف آخر.", + "1548185597": "مؤشر الخطوة 200", "1549098835": "إجمالي عمليات السحب", "1551172020": "سلة الدولار الأسترالي", "1551689907": "عزز تجربتك في التداول من خلال ترقية <0/><1>{{platform}} {{type}} {{from_account}} حسابك (حساباتك).", @@ -1686,6 +1691,7 @@ "1692912479": "دريف X, دريف MT5", "1693614409": "وقت البدء", "1694517345": "أدخل عنوان بريد إلكتروني جديد", + "1694888104": "المنتجات المعروضة على موقعنا هي منتجات مشتقة معقدة تنطوي على مخاطر كبيرة للخسارة المحتملة. العقود مقابل الفروقات هي أدوات معقدة تنطوي على مخاطر عالية لخسارة الأموال بسرعة بسبب الرافعة المالية. 70.78٪ من حسابات مستثمري التجزئة تخسر الأموال عند تداول العقود مقابل الفروقات مع هذا المزود. يجب أن تفكر فيما إذا كنت تفهم كيفية عمل هذه المنتجات وما إذا كان بإمكانك تحمل المخاطر العالية بخسارة أموالك.", "1696190747": "ينطوي التداول بطبيعته على مخاطر، ويمكن أن تتقلب الأرباح الفعلية بسبب عوامل مختلفة، بما في ذلك تقلبات السوق والمتغيرات الأخرى غير المتوقعة. على هذا النحو، يجب توخي الحذر وإجراء بحث شامل قبل الانخراط في أي أنشطة تداول.", "1698624570": "2. اضغط على Ok للتأكيد.", "1699606318": "لقد وصلت إلى الحد الأقصى لتحميل المستندات الخاصة بك.", @@ -1696,6 +1702,7 @@ "1703712522": "العائد الخاص بك يساوي العائد لكل نقطة مضروبًا بالفرق، <0>بالنقاط، بين السعر النهائي وسعر التنفيذ.", "1704656659": "ما مدى خبرتك في تداول CFD؟", "1707264798": "لماذا لا يمكنني رؤية الأموال المودعة في حسابي في Deriv؟", + "1707758392": "مؤشر الخطوة 100", "1708413635": "لحساب {{currency_name}} ({{currency}}) الخاص بك", "1709859601": "وقت الخروج الفوري", "1711013665": "معدل دوران الحساب المتوقع", @@ -2014,6 +2021,7 @@ "1990331072": "إثبات الملكية", "1990735316": "رايز يساوي", "1991055223": "اعرض سعر السوق لأصولك المفضلة.", + "1991448657": "ألا تعرف رقم التعريف الضريبي الخاص بك؟ انقر <0>هنا لمعرفة المزيد.", "1991524207": "مؤشر جامب 100", "1994023526": "عنوان البريد الإلكتروني الذي أدخلته به خطأ أو خطأ مطبعي (يحدث لأفضل منا).", "1994558521": "المنصات ليست سهلة الاستخدام.", @@ -2389,6 +2397,7 @@ "-138380129": "إجمالي السحب المسموح به", "-1502578110": "تم مصادقة حسابك بالكامل وتم رفع حدود السحب الخاصة بك.", "-506122621": "يرجى تخصيص بعض الوقت لتحديث معلوماتك الآن.", + "-1106259572": "ألا تعرف رقم التعريف الضريبي الخاص بك؟ <1 />انقر <0>هنا لمعرفة المزيد.", "-252665911": "مكان الميلاد{{required}}", "-859814496": "الإقامة الضريبية{{required}}", "-237940902": "رقم التعريف الضريبي{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "تحويل", "-744999940": "حساب مشتق", "-766186087": "{{trustScore}} من أصل 5 بناءً على التقييمات {{numberOfReviews}}", - "-1265635180": "المنتجات المعروضة على موقعنا هي منتجات مشتقة معقدة تنطوي على مخاطر كبيرة للخسارة المحتملة. العقود مقابل الفروقات هي أدوات معقدة تنطوي على مخاطر عالية لخسارة الأموال بسرعة بسبب الرافعة المالية. 67.28٪ من حسابات مستثمري التجزئة تخسر الأموال عند تداول العقود مقابل الفروقات مع هذا المزود. يجب أن تفكر فيما إذا كنت تفهم كيفية عمل هذه المنتجات وما إذا كان بإمكانك تحمل المخاطر العالية بخسارة أموالك.", "-1870909526": "لا يمكن للخادم الخاص بنا استرداد العنوان.", "-582721696": "مبلغ السحب الحالي المسموح به هو {{format_min_withdraw_amount}} إلى {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "كاشير", @@ -3763,8 +3771,14 @@ "-1331298683": "لا يمكن تعديل جني الأرباح بالنسبة للعقود التراكمية الجارية.", "-509210647": "حاول البحث عن شيء آخر.", "-99964540": "عندما يصل ربحك إلى المبلغ المحدد أو يتجاوزه، سيتم إغلاق صفقتك تلقائيًا.", - "-1221049974": "السعر النهائي", + "-542594338": "الحد الأقصى للدفع", + "-1622900200": "ممكّنة", "-2131851017": "معدل النمو", + "-339236213": "Multiplier", + "-1396928673": "إدارة المخاطر", + "-1358367903": "حصة", + "-1853307892": "اضبط تجارتك", + "-1221049974": "السعر النهائي", "-843831637": "إيقاف الخسارة", "-583023237": "هذه هي قيمة إعادة البيع للعقد، بناءً على ظروف السوق السائدة (على سبيل المثال، السعر الفوري الحالي)، بما في ذلك العمولات الإضافية إن وجدت.", "-1476381873": "أحدث سعر للأصول عندما تتم معالجة إغلاق التجارة بواسطة خوادمنا.", @@ -3845,8 +3859,6 @@ "-700280380": "إلغاء الصفقة. رسوم", "-8998663": "الرقم: {{last_digit}} ", "-718750246": "ستنمو حصتك بنسبة {{growth_rate}}% لكل علامة طالما ظل السعر الفوري الحالي في حدود ±{{tick_size_barrier_percentage}} من السعر الفوري السابق.", - "-1358367903": "حصة", - "-542594338": "الحد الأقصى للدفع", "-690963898": "سيتم إغلاق عقدك تلقائيًا عندما يصل العائد إلى هذا المبلغ.", "-511541916": "سيتم إغلاق عقدك تلقائيًا عند الوصول إلى هذا العدد من العلامات.", "-438655760": "<0>ملاحظة: يمكنك إغلاق تداولك في أي وقت. كن على دراية بمخاطر الانزلاق.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% من (<1/>* {{multiplier}})", "-732683018": "عندما يصل ربحك إلى هذا المبلغ أو يتجاوزه، سيتم إغلاق صفقتك تلقائيًا.", "-989393637": "اخذ ربح لا يمكن تعديله بعد بدء العقد الخاص بك.", - "-339236213": "Multiplier", "-194424366": "فوق", "-857660728": "أسعار الإضراب", "-1346404690": "تتلقى عائدًا عند انتهاء الصلاحية إذا لم يلمس السعر الفوري الحاجز أو يخترقه طوال مدة العقد. وإلا، سيتم إنهاء العقد الخاص بك في وقت مبكر.", @@ -4177,6 +4188,8 @@ "-3423966": "جني الأرباح<0 /> ووقف الخسارة", "-1131753095": "تفاصيل العقد {{trade_type_name}} غير متوفرة حاليًا. نحن نعمل على إتاحتها قريبًا.", "-360975483": "لم تقم بإجراء أي معاملات من هذا النوع خلال هذه الفترة.", + "-2082644096": "الحصة الحالية", + "-1942828391": "الحد الأقصى للدفع", "-335816381": "ينتهي في/ينتهي", "-1789807039": "الصعود الآسيوي/الهبوط الآسيوي", "-558031309": "علامة عالية/علامة منخفضة", @@ -4192,7 +4205,6 @@ "-726626679": "الربح/الخسارة المحتملة:", "-1511825574": "الربح/الخسارة:", "-499175967": "سعر الضربة", - "-2082644096": "الحصة الحالية", "-706219815": "سعر إرشادي", "-1669418686": "الدولار الأسترالي/الدولار الكندي", "-1548588249": "الدولار الأسترالي/الفرنك السويسري", @@ -4229,7 +4241,6 @@ "-342128411": "مؤشر كراش 500", "-9704319": "مؤشر كراش 1000", "-465860988": "مؤشر السوق الصاعد", - "-390528194": "فهرس الخطوات", "-280323742": "كرة السلة باليورو", "-563812039": "مؤشر Volatility 10 (1 ثانية)", "-82971929": "مؤشر Volatility 25 (1 ثانية)", diff --git a/packages/translations/src/translations/bn.json b/packages/translations/src/translations/bn.json index 85473d2b541d..bca16597dcb8 100644 --- a/packages/translations/src/translations/bn.json +++ b/packages/translations/src/translations/bn.json @@ -512,6 +512,7 @@ "538017420": "0.5 পিপস", "538042340": "নীতি 2: শেয়ার কেবল তখনই বৃদ্ধি পায় যখন কোনও ক্ষতির ট্রেড একটি সফল ট্রেডে অনুসরণ করা হয়", "538228086": "Close-Low", + "539352212": "টিক {{current_tick}}", "541650045": "{{platform}} পাসওয়ার্ড পরিচালনা করুন", "541700024": "প্রথমে, আপনার ড্রাইভিং লাইসেন্স নম্বর এবং মেয়াদ শেষের তারিখ লিখুন।", "542038694": "শুধুমাত্র অক্ষর, সংখ্যা, স্থান, আন্ডারস্কোর, এবং হাইফেন {{label}}এর জন্য অনুমোদিত।", @@ -822,6 +823,7 @@ "839805709": "আপনাকে মসৃণতায় যাচাইকরণে, আমাদের একটি ভাল ফটো দরকার।", "841543189": "ব্লকচেইনে লেনদেন দেখুন", "843333337": "আপনি শুধুমাত্র আমানত করতে পারেন অর্থ উত্তোলন আনলক করতে অনুগ্রহ করে <0>আর্থিক মূল্যায়ন সম্পূর্ণ করুন।", + "845106422": "শেষ অঙ্কের পূর্বাভাস", "845304111": "ধীর EMA সময়কাল {{ input_number }}", "848083350": "চূড়ান্ত মূল্য এবং স্ট্রাইক মূল্যের মধ্যে পার্থক্য দ্বারা গুণিত আপনার পেআউট <0>বিন্দু প্রতি পেআউটের সমান। আপনি শুধুমাত্র একটি মুনাফা অর্জন করবেন যদি আপনার পেআউট আপনার প্রারম্ভিক অংশের থেকে বেশি হয়।", "850582774": "অনুগ্রহ করে আপনার ব্যক্তিগত তথ্য হালনাগাদ করুন", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0>আপনি আপনার ইমেইলে এই লেনদেনের সারসংক্ষেপ দেখতে পারেন।.", "938947787": "প্রত্যাহার {{currency}}", "938988777": "উচ্চ বাধা", + "942015028": "ধাপ 500 সূচক", "944499219": "সর্বোচ্চ ওপেন পজিশন", "945532698": "কন্ট্রাক্ট বিক্রিত", "945753712": "ট্রেডার হাবে ফিরে যান", @@ -1105,6 +1108,7 @@ "1104912023": "মুলতুবি যাচাইকরণ", "1107474660": "ঠিকানার প্রমাণ জমা দিন", "1107555942": "টু", + "1109182113": "দ্রষ্টব্য: ডিল বাতিলকরণ শুধুমাত্র মাল্টিপ্লাইয়ারগুলিতে অস্থিরতা সূচক", "1109217274": "সফলতা!", "1110102997": "বিবৃতি", "1111743543": "স্টপ লস (গুণক)", @@ -1551,6 +1555,7 @@ "1542742708": "ফরেক্স, স্টক সূচক, পণ্য এবং ক্রিপ্টোকারেন্সি", "1544642951": "আপনি যদি “Only Ups” নির্বাচন করেন, তাহলে এন্ট্রি স্পটের পরে ধারাবাহিকভাবে টিক বৃদ্ধি পেলে আপনি পেআউট জিতবেন। কোন টিক পড়ে গেলে বা পূর্ববর্তী টিকের সমান না হলে পেআউট করা হয় না।", "1547148381": "ফাইলটি খুব বড় (শুধুমাত্র 8 মেগাবাইট পর্যন্ত অনুমোদিত)। অনুগ্রহ করে অন্য ফাইল আপলোড করুন।", + "1548185597": "ধাপ 200 সূচক", "1549098835": "মোট প্রত্যাহার", "1551172020": "AUD বাস্কেট", "1551689907": "আপনার <0/><1>{{platform}} {{type}} {{from_account}} অ্যাকাউন্ট(গুলি) আপগ্রেড করে আপনার ট্রেডিং অভিজ্ঞতা উন্নত করুন।", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "আরম্ভের সময়", "1694517345": "একটি নতুন ইমেইল ঠিকানা লিখুন", + "1694888104": "আমাদের ওয়েবসাইটে দেওয়া পণ্যগুলি জটিল ডেরিভেটিভ পণ্য যা সম্ভাব্য ক্ষতির উল্লেখযোগ্য ঝুঁকি বহন করে। CFDগুলি জটিল যন্ত্র যার লিভারেজের কারণে দ্রুত অর্থ হারানোর উচ্চ ঝুঁকি রয়েছে। এই সরবরাহকারীর সাথে CFD ট্রেড করার সময় 70.78% খুচরা বিনিয়োগকারী অ্যাকাউন্ট অর্থ হারায় এই পণ্যগুলি কীভাবে কাজ করে তা আপনি বুঝতে পারেন কিনা এবং আপনি আপনার অর্থ হারানোর উচ্চ ঝুঁকি নিতে পারবেন কিনা তা আপনার বিবেচনা করা উচিত।", "1696190747": "ট্রেডিং অস্বাভাবিকভাবে ঝুঁকি জড়িত এবং বাজারের অস্থিরতা এবং অন্যান্য অপ্রত্যাশিত ভেরিয়েবল সহ বিভিন্ন কারণের কারণে প্রকৃত লাভ ওঠানামা করতে যেমন, কোনও ব্যবসায়ের ক্রিয়াকলাপে জড়িত হওয়ার আগে সতর্কতা অবলম্বন করুন এবং পুঙ্খানু।", "1698624570": "2। নিশ্চিত করতে Ok হিট করুন।", "1699606318": "আপনি আপনার নথি আপলোড করার সীমায় পৌঁছেছেন।", @@ -1696,6 +1702,7 @@ "1703712522": "মেয়াদ শেষ হওয়ার সময়ে পেআউটে চূড়ান্ত মূল্য এবং স্ট্রাইক মূল্যের মধ্যে পার্থক্য দ্বারা গুণিত <0>প্রতি পিপ পেআউটের সমান।", "1704656659": "CFD ট্রেডিং এ আপনার কত অভিজ্ঞতা আছে?", "1707264798": "কেন আমি আমার Deriv অ্যাকাউন্টে জমাকৃত তহবিল দেখতে পাচ্ছি না?", + "1707758392": "ধাপ 100 সূচক", "1708413635": "আপনার {{currency_name}} ({{currency}}) অ্যাকাউন্টের জন্য", "1709859601": "স্পট টাইম প্রস্থান করুন", "1711013665": "প্রত্যাশিত অ্যাকাউন্ট টার্নওভার", @@ -2014,6 +2021,7 @@ "1990331072": "মালিকানা প্রমাণ", "1990735316": "সমান উত্থান", "1991055223": "আপনার প্রিয় সম্পদের বাজার মূল্য দেখুন।", + "1991448657": "আপনার ট্যাক্স সনাক্তকরণ নম্বর জানেন না? আরও জানতে <0>এখানে ক্লিক করুন।", "1991524207": "জাম্প 100 ইনডেক্স", "1994023526": "আপনি যে ইমেইল ঠিকানাটি লিখেছেন তাতে ভুল বা টাইপো ছিল (আমাদের সেরাদের ক্ষেত্রে ঘটে)।", "1994558521": "প্ল্যাটফর্মগুলি ব্যবহারকারী-বন্ধুত্বপূর্ণ নয়।", @@ -2389,6 +2397,7 @@ "-138380129": "মোট উইথড্রয়াল অনুমোদিত", "-1502578110": "আপনার অ্যাকাউন্ট পুরোপুরি প্রমাণীকৃত এবং আপনার উইথড্রয়াল লিমিট উঠিয়ে নেওয়া হয়েছে।", "-506122621": "দয়া করে এখনই আপনার তথ্য আপডেট করতে কিছুক্ষণ সময় নিন।", + "-1106259572": "আপনার ট্যাক্স সনাক্তকরণ নাম্বার জানেন না? <1 />আরও জা <0>নতে এখানে ক্লিক করুন।", "-252665911": "জন্মস্থান{{required}}", "-859814496": "করের বাসস্থান{{required}}", "-237940902": "কর সনাক্তকরণ নাম্বার{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "ট্রান্সফার", "-744999940": "Deriv একাউন্ট ", "-766186087": "{{numberOfReviews}}টি পর্যালোচনার ভিত্তিতে 5টির মধ্যে {{trustScore}}টি", - "-1265635180": "আমাদের ওয়েবসাইটে দেওয়া পণ্যগুলি জটিল ডেরিভেটিভ পণ্য যা সম্ভাব্য ক্ষতির উল্লেখযোগ্য ঝুঁকি বহন করে। CFDগুলি জটিল যন্ত্র যার লিভারেজের কারণে দ্রুত অর্থ হারানোর উচ্চ ঝুঁকি রয়েছে। এই সরবরাহকারীর সাথে CFD ট্রেড করার সময় 67.28% খুচরা বিনিয়োগকারী অ্যাকাউন্ট অর্থ হারায় এই পণ্যগুলি কীভাবে কাজ করে তা আপনি বুঝতে পারেন কিনা এবং আপনি আপনার অর্থ হারানোর উচ্চ ঝুঁকি নিতে পারবেন কিনা তা আপনার বিবেচনা করা উচিত।", "-1870909526": "আমাদের সার্ভার একটি ঠিকানা উদ্ধার করতে পারে না।", "-582721696": "বর্তমান অনুমোদিত প্রত্যাহারের পরিমাণ {{format_min_withdraw_amount}} থেকে {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "ক্যাশিয়ার", @@ -3763,8 +3771,14 @@ "-1331298683": "মুনাফা গ্রহণ চলমান Accumulator চুক্তির জন্য সামঞ্জস্য করা যাবে না।", "-509210647": "অন্য কিছু অনুসন্ধান করার চেষ্টা করুন।", "-99964540": "যখন আপনার লাভ সেট পরিমাণ পৌঁছায় বা অতিক্রম করে, তখন আপনার বাণিজ্য স্বয়ংক্রিয়ভাবে বন্ধ হবে।", - "-1221049974": "চূড়ান্ত মূল্য", + "-542594338": "সর্বোচ্চ পেআউট", + "-1622900200": "সক্ষম", "-2131851017": "বৃদ্ধির হার", + "-339236213": "Multiplier", + "-1396928673": "ঝুঁকি পরিচালনা", + "-1358367903": "ষ্টেক", + "-1853307892": "আপনার বাণিজ্য সেট করুন", + "-1221049974": "চূড়ান্ত মূল্য", "-843831637": "স্টপ লস", "-583023237": "এটি আপনার চুক্তির পুনরায় বিক্রয় মূল্য, প্রচলিত বাজারের অবস্থার উপর ভিত্তি করে (যেমন, বর্তমান স্পট), যদি থাকে তবে অতিরিক্ত কমিশন সহ।", "-1476381873": "আমাদের সার্ভার দ্বারা ট্রেড বন্ধ করার সময়ে সর্বশেষ সম্পদের মূল্য।", @@ -3845,8 +3859,6 @@ "-700280380": "চুক্তি বাতিল। ফি", "-8998663": "ডিজিট: {{last_digit}} ", "-718750246": "আপনার ষ্টেক প্রতি টিক {{growth_rate}}% হারে বৃদ্ধি পাবে যতক্ষণ না বর্তমান স্পট মূল্য আগের স্পট মূল্য থেকে ±{{tick_size_barrier_percentage}}-এর মধ্যে থাকবে।", - "-1358367903": "ষ্টেক", - "-542594338": "সর্বোচ্চ পেআউট", "-690963898": "আপনার পেআউট এই পরিমাণে পৌঁছলে আপনার চুক্তি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।", "-511541916": "এই সংখ্যায় টিক পৌঁছলে আপনার চুক্তি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।", "-438655760": "<0>দ্রষ্টব্য: আপনি যে কোন সময় আপনার ট্রেড বন্ধ করতে পারবেন। স্লিপেজ ঝুঁকি সম্পর্কে সচেতন থাকুন।", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}এর% (<1/>* {{multiplier}})", "-732683018": "যখন আপনার লাভ এই পরিমাণে পৌঁছায় বা তার বেশি হয়, তখন আপনার বাণিজ্য স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।", "-989393637": "আপনার চুক্তি শুরু হওয়ার পরে মুনাফা গ্রহণ সামঞ্জস্য করা যাবে না৷", - "-339236213": "Multiplier", "-194424366": "উপরে", "-857660728": "স্ট্রাইক দাম", "-1346404690": "চুক্তির সময়কাল জুড়ে স্পট মূল্য কখনও স্পর্শ না করলে বা বাধা লঙ্ঘন না করলে আপনি মেয়াদ শেষ হওয়ার সময় একটি পেআউট পাবেন। অন্যথায়, আপনার চুক্তি তাড়াতাড়ি শেষ হয়ে যাবে।", @@ -4177,6 +4188,8 @@ "-3423966": "লাভ<0 /> স্টপ লস নিন", "-1131753095": "{{trade_type_name}} চুক্তির বিবরণ বর্তমানে উপলব্ধ নয়। আমরা শীঘ্রই তাদের উপলব্ধ করার জন্য কাজ করছি।", "-360975483": "আপনি এই সময়ের মধ্যে এই ধরনের কোন লেনদেন করেছেন।", + "-2082644096": "বর্তমান স্টেক ", + "-1942828391": "সর্বোচ্চ অর্থ প্রদান", "-335816381": "সমাপ্ত/শেষ আউট", "-1789807039": "এশিয়ান উপর/এশিয়ান নিচে", "-558031309": "উচ্চ টিক/নিম্ন টিক", @@ -4192,7 +4205,6 @@ "-726626679": "সম্ভাব্য মুনাফা/ক্ষতি:", "-1511825574": "মুনাফা/ক্ষতি:", "-499175967": "স্ট্রাইক দাম", - "-2082644096": "বর্তমান স্টেক ", "-706219815": "ইঙ্গিতপূর্ণ মূল্য", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "ক্র্যাশ 500 ইনডেক্স", "-9704319": "ক্র্যাশ 1000 ইনডেক্স", "-465860988": "বুল মার্কেট ইনডেক্স", - "-390528194": "স্টেপ ইনডেক্স", "-280323742": "ইউরো বাস্কেট", "-563812039": "অস্থিতিশীলতা 10 (1s) সূচক", "-82971929": "Volatility 25 (1s) ইনডেক্স", diff --git a/packages/translations/src/translations/de.json b/packages/translations/src/translations/de.json index ae41c0053fa1..d20511e4eeba 100644 --- a/packages/translations/src/translations/de.json +++ b/packages/translations/src/translations/de.json @@ -512,6 +512,7 @@ "538017420": "0,5 Pips", "538042340": "Prinzip 2: Der Einsatz erhöht sich nur, wenn auf einen Verlusthandel ein erfolgreicher Handel folgt", "538228086": "Close-Low", + "539352212": "Tick {{current_tick}}", "541650045": "{{platform}} Passwort verwalten", "541700024": "Geben Sie zunächst Ihre Führerscheinnummer und das Ablaufdatum ein.", "542038694": "Für {{label}}sind nur Buchstaben, Zahlen, Leerzeichen, Unterstriche und Bindestriche zulässig.", @@ -822,6 +823,7 @@ "839805709": "Um Sie reibungslos verifizieren zu können, benötigen wir ein besseres Foto", "841543189": "Transaktion auf Blockchain anzeigen", "843333337": "Sie können nur Einzahlungen vornehmen. Bitte füllen Sie die <0>Finanzbewertung aus, um Abhebungen freizuschalten.", + "845106422": "Vorhersage der letzten Ziffer", "845304111": "Langsame EMA-Periode {{ input_number }}", "848083350": "Ihre Auszahlung entspricht der <0>Auszahlung pro Punkt multipliziert mit der Differenz zwischen dem Endpreis und dem Basispreis. Sie werden nur dann einen Gewinn erzielen, wenn Ihre Auszahlung höher ist als Ihr ursprünglicher Einsatz.", "850582774": "Bitte aktualisiere deine persönlichen Daten", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. Die Zusammenfassung dieser Transaktion können<0> Sie in Ihrer E-Mail einsehen.", "938947787": "Rücknahme {{currency}}", "938988777": "Hohe Barriere", + "942015028": "Schritt 500 Index", "944499219": "Max. offene Stellen", "945532698": "Vertrag verkauft", "945753712": "Zurück zu Trader's Hub", @@ -1105,6 +1108,7 @@ "1104912023": "Überprüfung steht noch aus", "1107474660": "Adressnachweis einreichen", "1107555942": "Zu", + "1109182113": "Hinweis: Die Stornierung von Geschäften ist nur für Volatilitätsindizes auf Multipliers verfügbar.", "1109217274": "Erfolgreich!", "1110102997": "Aussage", "1111743543": "Stop-Loss (Multiplier)", @@ -1551,6 +1555,7 @@ "1542742708": "Kunststoffe, Devisen, Aktien, Aktienindizes, Rohstoffe und Kryptowährungen", "1544642951": "Wenn Sie \"Only Ups\" wählen, gewinnen Sie die Auszahlung, wenn aufeinanderfolgende Ticks nach dem Startpunkt nacheinander steigen. Keine Auszahlung, wenn ein Tick fällt oder einem der vorherigen Ticks entspricht.", "1547148381": "Diese Datei ist zu groß (nur bis zu 8 MB erlaubt). Bitte laden Sie eine weitere Datei hoch.", + "1548185597": "Schritt 200 Index", "1549098835": "Insgesamt zurückgezogen", "1551172020": "AUD Korb", "1551689907": "Verbessern Sie Ihr Handelserlebnis durch ein Upgrade Ihres <0/><1>{{platform}} {{type}} {{from_account}} Konto(s).", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Startzeit", "1694517345": "Geben Sie eine neue E-Mail-Adresse ein", + "1694888104": "Bei den auf unserer Website angebotenen Produkten handelt es sich um komplexe derivative Produkte, die ein erhebliches Verlustrisiko bergen. CFDs sind komplexe Instrumente mit einem hohen Risiko, aufgrund der Hebelwirkung schnell Geld zu verlieren. 70,78% der Konten von Kleinanlegern verlieren Geld beim Handel mit CFDs bei diesem Anbieter. Sie sollten sich überlegen, ob Sie die Funktionsweise dieser Produkte verstehen und ob Sie es sich leisten können, das hohe Risiko einzugehen, Ihr Geld zu verlieren.", "1696190747": "Der Handel ist naturgemäß mit Risiken verbunden, und die tatsächlichen Gewinne können aufgrund verschiedener Faktoren, einschließlich der Marktvolatilität und anderer unvorhersehbarer Variablen, schwanken. Seien Sie daher vorsichtig und stellen Sie gründliche Nachforschungen an, bevor Sie sich auf Handelsaktivitäten einlassen.", "1698624570": "2. Drücken Sie Ok zur Bestätigung.", "1699606318": "Sie haben das Limit für das Hochladen Ihrer Dokumente erreicht.", @@ -1696,6 +1702,7 @@ "1703712522": "Ihre Auszahlung entspricht der Auszahlung pro Pip multipliziert mit der Differenz <0>in Pips zwischen dem Endkurs und dem Basispreis.", "1704656659": "Wie viel Erfahrung haben Sie im CFD-Handel?", "1707264798": "Warum kann ich die eingezahlten Beträge auf meinem Deriv-Konto nicht sehen?", + "1707758392": "Schritt 100 Index", "1708413635": "Für dein {{currency_name}} ({{currency}}) -Konto", "1709859601": "Spot-Time verlassen", "1711013665": "Erwarteter Kontoumsatz", @@ -2014,6 +2021,7 @@ "1990331072": "Nachweis des Eigentums", "1990735316": "Rise Equals", "1991055223": "Sehen Sie sich den Marktpreis Ihrer bevorzugten Vermögenswerte an.", + "1991448657": "Sie kennen Ihre Steueridentifikationsnummer nicht? Klicken Sie <0>hier um mehr zu erfahren.", "1991524207": "Jump 100 Index", "1994023526": "Die von Ihnen eingegebene E-Mail-Adresse hatte einen Fehler oder einen Tippfehler (passiert den Besten von uns).", "1994558521": "Die Plattformen sind nicht benutzerfreundlich.", @@ -2389,6 +2397,7 @@ "-138380129": "Vollständige Auszahlung zulässig", "-1502578110": "Ihr Konto ist vollständig authentifiziert und Ihre Auszahlungslimits wurden aufgehoben.", "-506122621": "Bitte nehmen Sie sich einen Moment Zeit, um Ihre Informationen jetzt zu aktualisieren.", + "-1106259572": "Sie kennen Ihre Steueridentifikationsnummer nicht? <1 />Klicken Sie <0>hier um mehr zu erfahren.", "-252665911": "Ort der Geburt{{required}}", "-859814496": "Steuerlicher Wohnsitz{{required}}", "-237940902": "Steuer-Identifikationsnummer{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "Übertragung", "-744999940": "Konto ableiten", "-766186087": "{{trustScore}} von 5 basierend auf {{numberOfReviews}} Bewertungen", - "-1265635180": "Bei den auf unserer Website angebotenen Produkten handelt es sich um komplexe derivative Produkte, die ein erhebliches Verlustrisiko bergen. CFDs sind komplexe Instrumente mit einem hohen Risiko, aufgrund der Hebelwirkung schnell Geld zu verlieren. 67,28% der Konten von Kleinanlegern verlieren Geld beim Handel mit CFDs bei diesem Anbieter. Sie sollten sich überlegen, ob Sie die Funktionsweise dieser Produkte verstehen und ob Sie es sich leisten können, das hohe Risiko einzugehen, Ihr Geld zu verlieren.", "-1870909526": "Unser Server kann keine Adresse abrufen.", "-582721696": "Der aktuell zulässige Abhebungsbetrag ist {{format_min_withdraw_amount}} bis {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "Kassierer", @@ -3763,8 +3771,14 @@ "-1331298683": "Der Take Profit kann bei laufenden Accumulator-Kontrakten nicht angepasst werden.", "-509210647": "Versuchen Sie, nach etwas anderem zu suchen.", "-99964540": "Wenn Ihr Gewinn den festgelegten Betrag erreicht oder überschreitet, wird Ihr Handel automatisch geschlossen.", - "-1221049974": "Endpreis", + "-542594338": "Max. Auszahlung", + "-1622900200": "Aktiviert", "-2131851017": "Wachstumsrate", + "-339236213": "Multiplier", + "-1396928673": "Risikomanagement", + "-1358367903": "Pfahl", + "-1853307892": "Legen Sie Ihren Handel fest", + "-1221049974": "Endpreis", "-843831637": "Stop-loss", "-583023237": "Dies ist der Wiederverkaufswert Ihres Vertrags, basierend auf den vorherrschenden Marktbedingungen (z.B. dem aktuellen Kassakurs), einschließlich etwaiger zusätzlicher Provisionen.", "-1476381873": "Der aktuelle Vermögenspreis zum Zeitpunkt des Handelsabschlusses, der von unseren Servern verarbeitet wird.", @@ -3845,8 +3859,6 @@ "-700280380": "Deal stornieren. Gebühr", "-8998663": "Digit: {{last_digit}} ", "-718750246": "Ihr Einsatz wächst mit {{growth_rate}}% pro Tick, solange der aktuelle Spotpreis innerhalb von ±{{tick_size_barrier_percentage}} vom vorherigen Spotpreis bleibt.", - "-1358367903": "Pfahl", - "-542594338": "Max. Auszahlung", "-690963898": "Ihr Vertrag wird automatisch geschlossen, wenn Ihre Auszahlung diesen Betrag erreicht.", "-511541916": "Ihr Vertrag wird automatisch geschlossen, sobald diese Anzahl von Ticks erreicht ist.", "-438655760": "<0>Hinweis: Sie können Ihren Handel jederzeit schließen. Seien Sie sich des Slippage-Risikos bewusst.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% von (<1/>* {{multiplier}})", "-732683018": "Wenn Ihr Gewinn diesen Betrag erreicht oder überschreitet, wird Ihr Handel automatisch geschlossen.", "-989393637": "Der Take Profit kann nach Beginn Ihres Vertrags nicht angepasst werden.", - "-339236213": "Multiplier", "-194424366": "über", "-857660728": "Basispreise", "-1346404690": "Sie erhalten bei Ablauf eine Auszahlung, wenn der Kassakurs die Barriere während der gesamten Vertragslaufzeit nicht berührt oder durchbricht. Andernfalls wird Ihr Kontrakt vorzeitig aufgelöst.", @@ -4177,6 +4188,8 @@ "-3423966": "Take-Profit<0 />Stop-Loss", "-1131753095": "Die {{trade_type_name}} Vertragsdetails sind derzeit nicht verfügbar. Wir arbeiten daran, sie bald verfügbar zu machen.", "-360975483": "Sie haben in diesem Zeitraum keine Transaktionen dieser Art getätigt.", + "-2082644096": "Aktueller Anteil", + "-1942828391": "Maximale Auszahlung", "-335816381": "Ends In/Ends Out", "-1789807039": "Asian Up/Asian Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "Potenzieller Gewinn/Verlust:", "-1511825574": "Gewinn/Verlust:", "-499175967": "Basispreis", - "-2082644096": "Aktueller Anteil", "-706219815": "Richtpreis", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Crash 500 Index", "-9704319": "Crash-1000-Index", "-465860988": "Bull Market Index", - "-390528194": "Step Index", "-280323742": "EUR Korb", "-563812039": "Volatility 10 Index (1s)", "-82971929": "Volatility 25 Index (1 s)", diff --git a/packages/translations/src/translations/es.json b/packages/translations/src/translations/es.json index 7bf1d772243d..d625c85c6d85 100644 --- a/packages/translations/src/translations/es.json +++ b/packages/translations/src/translations/es.json @@ -512,6 +512,7 @@ "538017420": "0.5 pips", "538042340": "Principio 2: La inversión solo aumenta cuando a una operación con pérdidas le sigue una operación con éxito", "538228086": "Close-Low", + "539352212": "Tick {{current_tick}}", "541650045": "Gestionar la contraseña de {{platform}}", "541700024": "Primero, introduzca el número de su carné de conducir y la fecha de caducidad.", "542038694": "Solo se permite el uso de letras, números, espacios, guión bajo y guiones para {{label}}.", @@ -822,6 +823,7 @@ "839805709": "Para verificarlo sin problemas, necesitamos una mejor foto", "841543189": "Ver transacción en Blockchain", "843333337": "Solo puede realizar depósitos. Por favor, complete la <0>evaluación financiera para desbloquear los retiros.", + "845106422": "Predicción del último dígito", "845304111": "Período de EMA lento {{ input_number }}", "848083350": "Su pago es igual al <0>pago por punto multiplicado por la diferencia entre el precio final y el precio de ejercicio. Solo obtendrá beneficios si su pago es superior a su apuesta inicial.", "850582774": "Por favor, actualice sus datos personales", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0> Puede ver el resumen de esta transacción en su correo electrónico.", "938947787": "Retirada {{currency}}", "938988777": "Barrera superior", + "942015028": "Índice Step 500", "944499219": "Posiciones máx. abiertas", "945532698": "Contrato vendido", "945753712": "Volver al Trader's Hub", @@ -1105,6 +1108,7 @@ "1104912023": "Verificación pendiente", "1107474660": "Enviar prueba de domicilio", "1107555942": "A", + "1109182113": "Nota: La cancelación de operaciones sólo está disponible para los Índices de Volatilidad en Multiplicadores.", "1109217274": "¡Exitoso!", "1110102997": "Extracto", "1111743543": "Stop loss (Multiplier)", @@ -1551,6 +1555,7 @@ "1542742708": "Sintéticos, Forex, Acciones, Índices bursátiles, Materias primas y Criptomonedas", "1544642951": "Si selecciona \"Only Ups\", usted gana el pago si los ticks consecutivos suben sucesivamente después del precio de entrada. No se gana el pago si algún tick cae o es igual a cualquiera de los ticks anteriores.", "1547148381": "El archivo es demasiado grande (solo se permiten hasta 8MB). Suba otro archivo.", + "1548185597": "Paso 200 Índice", "1549098835": "Retiros totales", "1551172020": "Cesta de AUD", "1551689907": "Mejore su experiencia de trading actualizando su(s) <0/><1>{{platform}} {{type}} {{from_account}} cuenta(s).", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Hora de inicio", "1694517345": "Introduzca una nueva dirección de correo electrónico", + "1694888104": "Los productos que se ofrecen en nuestro sitio web son productos derivados complejos que conllevan un riesgo significativo de pérdida potencial. Los CFD son instrumentos complejos con un alto riesgo de perder dinero rápidamente debido al apalancamiento. El 70.78% de las cuentas de inversores minoristas pierden dinero al operar con CFD con este proveedor. Debe considerar si entiende cómo funcionan estos productos y si puede permitirse correr el alto riesgo de perder su dinero.", "1696190747": "Las operaciones implican riesgos inherentes y los beneficios reales pueden fluctuar debido a diversos factores, como la volatilidad del mercado y otras variables imprevistas. Por ello, actúe con cautela e investigue a fondo antes de emprender cualquier actividad de trading.", "1698624570": "Haga clic en Ok para confirmar.", "1699606318": "Ha alcanzado el límite para subir sus documentos.", @@ -1696,6 +1702,7 @@ "1703712522": "Su pago es igual al pago por pip multiplicado por la diferencia, <0>en pips, entre el precio final y el precio de ejercicio.", "1704656659": "¿Cuánta experiencia tiene en el trafing con CFD?", "1707264798": "¿Por qué no puedo ver los fondos depositados en mi cuenta Deriv?", + "1707758392": "Paso 100 Índice", "1708413635": "Para su cuenta {{currency_name}} ({{currency}})", "1709859601": "Tiempo del punto de salida", "1711013665": "Facturación anticipada de cuenta", @@ -2014,6 +2021,7 @@ "1990331072": "Prueba de titularidad", "1990735316": "Rise Equals", "1991055223": "Vea el precio de mercado de sus activos favoritos.", + "1991448657": "¿No sabe su número de identificación fiscal? Haga clic <0>aquí para obtener más información.", "1991524207": "Índice Jump 100", "1994023526": "La dirección de correo electrónico que has introducido tenía un error o una imprecisión tipográfica (suele pasarnos a todos).", "1994558521": "Las plataformas no son fáciles de usar.", @@ -2389,6 +2397,7 @@ "-138380129": "Retiro total permitido", "-1502578110": "Su cuenta está totalmente autenticada y su límite de retiro ha sido aumentado.", "-506122621": "Por favor, tómese un momento para actualizar su información ahora.", + "-1106259572": "¿No conoce su número de identificación fiscal? <1 />Pulse <0>aquí para obtener más información.", "-252665911": "Lugar de nacimiento{{required}}", "-859814496": "Domicilio fiscal{{required}}", "-237940902": "Número de identificación fiscal{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "Transferir", "-744999940": "Cuenta Deriv", "-766186087": "TrustScore {{trustScore}} de 5 basado en {{numberOfReviews}} opiniones", - "-1265635180": "Los productos que se ofrecen en nuestro sitio web son productos derivados complejos que conllevan un riesgo significativo de pérdida potencial. Los CFD son instrumentos complejos con un alto riesgo de perder dinero rápidamente debido al apalancamiento. El 67.28% de las cuentas de inversores minoristas pierden dinero al operar con CFD con este proveedor. Debe considerar si entiende cómo funcionan estos productos y si puede permitirse correr el alto riesgo de perder su dinero.", "-1870909526": "Nuestro servidor no puede recuperar una dirección.", "-582721696": "La cantidad de retiro permitido actualmente es de {{format_min_withdraw_amount}} a {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "Cajero", @@ -3763,8 +3771,14 @@ "-1331298683": "Take profit no puede ajustarse para los contratos de accumulator en curso.", "-509210647": "Intente buscar otra cosa.", "-99964540": "Cuando su ganancia alcance o supere esta cantidad fijada, su operación se cerrará automáticamente.", - "-1221049974": "Precio final", + "-542594338": "Pago máximo", + "-1622900200": "Activado", "-2131851017": "Tasa de crecimiento", + "-339236213": "Multiplier", + "-1396928673": "Gestión de riesgos", + "-1358367903": "Inversión", + "-1853307892": "Establezca su comercio", + "-1221049974": "Precio final", "-843831637": "Stop loss", "-583023237": "Se trata del valor de reventa de su contrato, basado en las condiciones imperantes en el mercado (por ejemplo, el spot actual), incluidas las comisiones adicionales si las hubiera.", "-1476381873": "El último precio del activo cuando el cierre de la operación es procesado por nuestros servidores.", @@ -3845,8 +3859,6 @@ "-700280380": "Cuota de cancelación de contrato", "-8998663": "Dígito: {{last_digit}} ", "-718750246": "Su inversión aumentará un {{growth_rate}}% por tick siempre y cuando el precio spot actual se mantenga dentro de ±{{tick_size_barrier_percentage}} con respecto al precio spot anterior.", - "-1358367903": "Inversión", - "-542594338": "Pago máximo", "-690963898": "Su contrato se cerrará automáticamente cuando su pago alcance esta cantidad.", "-511541916": "Su contrato se cerrará automáticamente al alcanzar este número de ticks.", "-438655760": "<0>Nota: Puede cerrar su operación en cualquier momento. Sea consciente del riesgo de deslizamiento.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% de (<1/> * {{multiplier}})", "-732683018": "Cuando su beneficio alcance o supere esta cantidad, su operación se cerrará automáticamente.", "-989393637": "Take Profit no puede ajustarse una vez iniciado el contrato.", - "-339236213": "Multiplier", "-194424366": "por encima", "-857660728": "Precio de ejecución", "-1346404690": "Recibirá un pago al vencimiento si el precio al contado nunca toca o supera la barrera durante toda la duración del contrato. En caso contrario, su contrato finalizará anticipadamente.", @@ -4177,6 +4188,8 @@ "-3423966": "Take profit<0 />Stop loss", "-1131753095": "Los datos del contrato de {{trade_type_name}} no están disponibles actualmente. Estamos trabajando para que estén disponibles muy pronto.", "-360975483": "No ha realizado transacciones de este tipo durante este período.", + "-2082644096": "Inversión actual", + "-1942828391": "Pago máximo", "-335816381": "Finaliza dentro/Finaliza fuera", "-1789807039": "Asian Up/Asian Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "Ganancia/pérdida potencial:", "-1511825574": "Ganancia/Pérdida:", "-499175967": "Precio de Ejercicio", - "-2082644096": "Inversión actual", "-706219815": "Precio indicativo", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Índice Crash 500", "-9704319": "Índice Crash 1000", "-465860988": "Índice Bull Market", - "-390528194": "Índice Step", "-280323742": "Cesta de EUR", "-563812039": "Índice Volatility 10 (1s)", "-82971929": "Índice Volatility 25 (1s)", diff --git a/packages/translations/src/translations/fr.json b/packages/translations/src/translations/fr.json index 7cb7e4a011fc..49441302ba68 100644 --- a/packages/translations/src/translations/fr.json +++ b/packages/translations/src/translations/fr.json @@ -512,6 +512,7 @@ "538017420": "0,5 pips", "538042340": "Principe 2 : la mise n'augmente que lorsqu'une transaction à perte est suivie d'une transaction fructueuse", "538228086": "Close-Low", + "539352212": "Tick {{current_tick}}", "541650045": "Gérer le mot de passe {{platform}}", "541700024": "Entrez d'abord votre numéro de permis de conduire et la date d'expiration.", "542038694": "Seuls les lettres, chiffres, espaces, tirets bas et traits d'union sont autorisés pour {{label}}.", @@ -822,6 +823,7 @@ "839805709": "Pour vérifier votre compte, nous avons besoin d'une meilleure photo", "841543189": "Voir la transaction sur Blockchain", "843333337": "Vous ne pouvez effectuer que des dépôts. Veuillez compléter l'<0>évaluation financière pour débloquer les retraits.", + "845106422": "Prédiction du dernier chiffre", "845304111": "Période EMA lente {{ input_number }}", "848083350": "Votre gain est égal au <0>gain par point multiplié par la différence entre le prix final et le prix d'exercice. Vous ne réaliserez un bénéfice que si votre paiement est supérieur à votre mise initiale.", "850582774": "Veuillez mettre à jour vos données personnelles", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0>Vous pouvez consulter le détail de cette transaction dans votre email.", "938947787": "Retrait {{currency}}", "938988777": "Barrière supérieure", + "942015028": "Indice Step 500", "944499219": "Max. positions ouvertes", "945532698": "Contrats vendus", "945753712": "Retour au Trader’s Hub", @@ -1105,6 +1108,7 @@ "1104912023": "Vérification en attente", "1107474660": "Soumettre un justificatif de domicile", "1107555942": "À", + "1109182113": "Remarque : L'annulation de l'opération n'est possible que pour les indices de volatilité sur les multiplicateurs.", "1109217274": "Succès!", "1110102997": "Relevé", "1111743543": "Stop loss (multiplicateur)", @@ -1551,6 +1555,7 @@ "1542742708": "Synthétiques, Forex, Actions, Indices boursiers, Matières premières et Cryptomonnaies", "1544642951": "Si vous sélectionnez \"Only Ups\", vous gagnez le paiement si des ticks consécutifs augmentent successivement après le point d'entrée. Aucun paiement si un tick tombe ou est égal à l'un des ticks précédents.", "1547148381": "Ce fichier est trop volumineux (jusqu'à 8 Mo autorisés). Veuillez télécharger un autre fichier.", + "1548185597": "Étape 200 Indice", "1549098835": "Total retiré", "1551172020": "Panier AUD", "1551689907": "Améliorez votre expérience de trading en mettant à niveau votre/vos compte(s) <0/><1>{{platform}} {{type}} {{from_account}} compte(s).", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Heure de début", "1694517345": "Entrez un nouvel email", + "1694888104": "Les produits proposés sur notre site web sont des produits dérivés complexes qui comportent un risque important de perte potentielle. Les CFD sont des instruments complexes qui présentent un risque élevé de perte rapide en raison de l'effet de levier. 70,78% des comptes d'investisseurs particuliers perdent de l'argent en négociant des CFD avec ce fournisseur. Vous devez vous demander si vous comprenez le fonctionnement de ces produits et si vous pouvez vous permettre de prendre le risque élevé de perdre votre argent.", "1696190747": "Le trading comporte intrinsèquement des risques et les profits réels peuvent varier en raison de divers facteurs, notamment la volatilité du marché et d'autres variables imprévues. Par conséquent, faites preuve de prudence et effectuez des recherches approfondies avant de vous engager dans des activités de trading.", "1698624570": "2. Appuyez sur Ok pour confirmer.", "1699606318": "Vous avez atteint la limite de téléversement de vos documents.", @@ -1696,6 +1702,7 @@ "1703712522": "Votre paiement est égal au paiement par pip multiplié par la différence, <0>en pips, entre le prix final et le prix d'exercice.", "1704656659": "Quelle est votre expérience dans le trading de CFD ?", "1707264798": "Pourquoi ne puis-je pas voir les fonds déposés sur mon compte Deriv ?", + "1707758392": "Indice de l'étape 100", "1708413635": "Pour votre compte {{currency_name}} ({{currency}})", "1709859601": "Heure du Point de Sortie", "1711013665": "Chiffre d'affaire anticipé du compte", @@ -2014,6 +2021,7 @@ "1990331072": "Preuve de propriété", "1990735316": "La hausse est égale à", "1991055223": "Consultez le cours de marché de vos actifs préférés.", + "1991448657": "Vous ne connaissez pas votre numéro d'identification fiscale? Cliquez <0>ici pour en savoir plus.", "1991524207": "Indice Jump 100", "1994023526": "L'email que vous avez entré comportait une erreur ou une faute de frappe (cela arrive aux meilleurs d'entre nous).", "1994558521": "Les plates-formes ne sont pas adaptées aux débutants.", @@ -2389,6 +2397,7 @@ "-138380129": "Retrait total autorisé", "-1502578110": "Votre compte est entièrement authentifié et vos limites de retrait ont été levées.", "-506122621": "Veuillez prendre un moment pour mettre à jour vos informations.", + "-1106259572": "Vous ne connaissez pas votre numéro d'identification fiscale ? <1 />Cliquez <0>ici pour en savoir plus.", "-252665911": "Lieu de naissance{{required}}", "-859814496": "Résidence fiscale{{required}}", "-237940902": "Numéro d'identification fiscale{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "Transfert", "-744999940": "Compte Deriv", "-766186087": "TrustScore {{trustScore}} sur 5 basé sur {{numberOfReviews}} avis", - "-1265635180": "Les produits proposés sur notre site Web sont des produits dérivés complexes qui comportent un risque important de perte potentielle. Les CFD sont des instruments complexes présentant un risque élevé de perdre de l'argent rapidement en raison de l'effet de levier. 67,28 % des comptes d'investisseurs particuliers perdent de l'argent lorsqu'ils négocient des CFD avec ce fournisseur. Vous devez vous demander si vous comprenez le fonctionnement de ces produits et si vous pouvez vous permettre de prendre le risque élevé de perdre votre argent.", "-1870909526": "Notre serveur ne peut pas récupérer une adresse.", "-582721696": "Le montant actuel du retrait autorisé est de {{format_min_withdraw_amount}} à {{format_max_withdraw_amount}}{{currency}}", "-1975494965": "Caisse", @@ -3763,8 +3771,14 @@ "-1331298683": "Le Take Profit ne peut pas être ajusté pour les contrats d'accumulateur en cours.", "-509210647": "Essayez de chercher autre chose.", "-99964540": "Lorsque votre profit atteint ou dépasse le montant fixé, votre contrat est automatiquement clôturé.", - "-1221049974": "Prix final", + "-542594338": "Paiement max.", + "-1622900200": "Activé", "-2131851017": "Taux de croissance", + "-339236213": "Multiplier", + "-1396928673": "Gestion des risques", + "-1358367903": "Mise", + "-1853307892": "Définissez votre métier", + "-1221049974": "Prix final", "-843831637": "Stop loss", "-583023237": "Il s'agit de la valeur de revente de votre contrat, basée sur les conditions de marché en vigueur (par exemple, le cours au comptant actuel), y compris les commissions supplémentaires éventuelles.", "-1476381873": "Dernier prix de l'actif au moment du traitement de la clôture de la transaction par nos serveurs.", @@ -3845,8 +3859,6 @@ "-700280380": "Offre annulation. coût", "-8998663": "Chiffre: {{last_digit}} ", "-718750246": "Votre mise augmentera de {{growth_rate}}% par tick tant que le cours au comptant actuel reste inférieur de ±{{tick_size_barrier_percentage}} par rapport au cours au comptant précédent.", - "-1358367903": "Mise", - "-542594338": "Paiement max.", "-690963898": "Votre contrat sera automatiquement clôturé lorsque votre paiement atteindra ce montant.", "-511541916": "Votre contrat sera automatiquement clôturé lorsque ce nombre de ticks sera atteint.", "-438655760": "<0>Remarque : Vous pouvez clôturer votre contrat à tout moment. Gardez à l'esprit le risque de dérapage.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% de (<1/> * {{multiplier}})", "-732683018": "Lorsque votre profit atteint ou dépasse ce montant, votre contrat est automatiquement clôturé.", "-989393637": "Le Take Profit ne peut pas être ajusté après le début de votre contrat.", - "-339236213": "Multiplier", "-194424366": "au-dessus", "-857660728": "Prix d'exercice", "-1346404690": "Vous recevez un paiement à l'expiration si le prix spot ne touche jamais ou ne franchit jamais la barrière pendant toute la durée du contrat. Dans le cas contraire, votre contrat sera résilié de façon anticipée.", @@ -4177,6 +4188,8 @@ "-3423966": "Take profit<0 />Stop loss", "-1131753095": "Les informations sur le contrat {{trade_type_name}} ne sont pas disponibles actuellement. Nous nous efforçons de résoudre ce problème.", "-360975483": "Vous n'avez effectué aucune transaction de ce type pendant cette période.", + "-2082644096": "Mise actuelle", + "-1942828391": "Paiement maximum", "-335816381": "Termine dans/hors de la zone", "-1789807039": "Asian Up/Asian Down", "-558031309": "Tick Haut/ Tick Bas", @@ -4192,7 +4205,6 @@ "-726626679": "Bénéfice/Perte Potentielle:", "-1511825574": "Profits/pertes:", "-499175967": "Le prix d'exercice", - "-2082644096": "Mise actuelle", "-706219815": "Prix indicatif", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Indice Crash 500", "-9704319": "Indice Crash 1000", "-465860988": "Indice Bull Market", - "-390528194": "Indice Step", "-280323742": "Panier EUR", "-563812039": "Indice Volatility 10 (1s)", "-82971929": "Indice Volatility 25 (1s)", diff --git a/packages/translations/src/translations/it.json b/packages/translations/src/translations/it.json index ea45cc6c1a09..33b454939d75 100644 --- a/packages/translations/src/translations/it.json +++ b/packages/translations/src/translations/it.json @@ -512,6 +512,7 @@ "538017420": "0,5 pips", "538042340": "Principio 2: la puntata aumenta solo quando un'operazione in perdita è seguita da un'operazione di successo", "538228086": "Close-Low", + "539352212": "Tick {{current_tick}}", "541650045": "Gestisci password {{platform}}", "541700024": "Innanzitutto, inserisci il numero della tua patente di guida e la data di scadenza.", "542038694": "Solo lettere, numeri, spazi, il trattino basso e il trattino sono consentiti per {{label}}.", @@ -822,6 +823,7 @@ "839805709": "Per verificare facilmente la tua identità occorre una foto più nitida", "841543189": "Visualizza la operazione su Blockchain", "843333337": "Puoi solo fare depositi. Completa la <0>valutazione finanziaria per sbloccare i prelievi.", + "845106422": "Previsione dell'ultima cifra", "845304111": "Periodo EMA lento {{ input_number }}", "848083350": "Il tuo payout è pari al <0>payout per punto moltiplicato per la differenza tra il prezzo finale e il prezzo di esercizio. Guadagnerai un profitto solo se la tua vincita è superiore all'importo investito inizialmente.", "850582774": "Aggiorna i tuoi dati personali", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0> Puoi visualizzare il riepilogo di questa transazione nella tua e-mail.", "938947787": "Ritiro {{currency}}", "938988777": "Barriera superiore", + "942015028": "Indice Step 500", "944499219": "Limite di posizioni aperte", "945532698": "Contratto venduto", "945753712": "Torna a Trader's Hub", @@ -1105,6 +1108,7 @@ "1104912023": "Verifica in corso", "1107474660": "Invia prova a verifica dell'indirizzo", "1107555942": "A", + "1109182113": "Nota: l'annullamento dell'affare è disponibile solo per gli Indici di Volatilità sui Moltiplicatori.", "1109217274": "Fatto!", "1110102997": "Estratto", "1111743543": "Stop loss (moltiplicatore)", @@ -1551,6 +1555,7 @@ "1542742708": "Sintetici, Forex, Azioni, Indizi azionari azionari, materie prime e Criptovalute", "1544642951": "Selezionando \"Only Ups\", ottieni il payout se tick consecutivi superano successivamente il punto di entrata. Non ottieni alcun payout se qualsiasi tick è minore o uguale a uno dei tick precedenti.", "1547148381": "Le dimensioni del file sono troppo grandi (consentiti solo fino a 8MB). Carica un altro file.", + "1548185597": "Indice Step 200", "1549098835": "Totale prelievo", "1551172020": "Paniere AUD", "1551689907": "Migliora la tua esperienza di trading aggiornando i tuoi conti <0/><1>{{platform}} {{type}} {{from_account}} .", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Orario d'inizio", "1694517345": "Inserisci un nuovo indirizzo e-mail", + "1694888104": "I prodotti offerti sul nostro sito web sono prodotti derivati complessi che comportano un rischio significativo di perdita potenziale. I CFD sono strumenti complessi con un rischio elevato di perdere rapidamente denaro a causa della leva finanziaria. Il 70,78% dei conti degli investitori al dettaglio perde denaro durante il trading di CFD con questo fornitore. Dovrebbe valutare se comprende il funzionamento di questi prodotti e se può permettersi di correre il rischio elevato di perdere il suo denaro.", "1696190747": "Il trading comporta intrinsecamente dei rischi e i profitti effettivi possono fluttuare a causa di vari fattori, tra cui la volatilità del mercato e altre variabili impreviste. Per questo motivo, deve essere cauto e condurre una ricerca approfondita prima di impegnarsi in qualsiasi attività di trading.", "1698624570": "2. Premi Ok per confermare.", "1699606318": "Ha raggiunto il limite di caricamento dei suoi documenti.", @@ -1696,6 +1702,7 @@ "1703712522": "Il payout è pari al payout per pip moltiplicato per la differenza, <0>in pip, tra il prezzo finale e il prezzo d'esercizio.", "1704656659": "Quanta esperienza hai nel trading di CFD?", "1707264798": "Perché non riesco a vedere i fondi depositati nel mio conto Deriv?", + "1707758392": "Indice Step 100", "1708413635": "Per il tuo conto {{currency_name}} in {{currency}}", "1709859601": "Orario dello spot di uscita", "1711013665": "Fatturato previsto del conto", @@ -2014,6 +2021,7 @@ "1990331072": "Documento a verifica della proprietà", "1990735316": "Aumento pari a", "1991055223": "Visualizza il prezzo di mercato dei tuoi asset preferiti.", + "1991448657": "Non conosci il tuo numero di identificazione fiscale? Clicca <0>qui per saperne di più.", "1991524207": "Indice Jump 100", "1994023526": "L'indirizzo e-mail inserito contiene un errore o un refuso (è un errore comune, non preoccuparti!).", "1994558521": "Le piattaforme non sono facili da usare.", @@ -2389,6 +2397,7 @@ "-138380129": "Prelievo totale consentito", "-1502578110": "Il conto è stato completamente autenticato e i limiti di prelievo sono stati rimossi.", "-506122621": "Si prenda un momento per aggiornare le sue informazioni.", + "-1106259572": "Non conosce il suo codice fiscale? <1 />Clicchi <0>qui per saperne di più.", "-252665911": "Luogo di nascita{{required}}", "-859814496": "Residenza fiscale{{required}}", "-237940902": "Codice fiscale{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "Trasferisci", "-744999940": "Conto Deriv", "-766186087": "{{trustScore}} su 5 sulla base di {{numberOfReviews}} recensioni", - "-1265635180": "I prodotti offerti sul nostro sito Web sono prodotti derivati complessi che comportano un rischio significativo di perdita potenziale. I CFD sono strumenti complessi con un elevato rischio di perdere denaro rapidamente a causa della leva finanziaria. Il 67,28% dei conti degli investitori al dettaglio perde denaro quando fa trading di CFD con questo fornitore. Dovresti valutare se comprendi come funzionano questi prodotti e se puoi permetterti di correre il rischio elevato di perdere i tuoi soldi.", "-1870909526": "Il nostro server non è in grado di recuperare l'indirizzo.", "-582721696": "Attualmente è possibile prelevare un importo compreso tra {{format_min_withdraw_amount}} e {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "Cassa", @@ -3763,8 +3771,14 @@ "-1331298683": "Il take profit non può essere regolato per i contratti di accumulo in corso.", "-509210647": "Provi a cercare qualcos'altro.", "-99964540": "Quando il tuo profitto raggiunge o supera l'importo stabilito, il tuo trade verrà chiuso automaticamente.", - "-1221049974": "Prezzo finale", + "-542594338": "Payout massimo", + "-1622900200": "Abilitato", "-2131851017": "Tasso di crescita", + "-339236213": "Multiplier", + "-1396928673": "Gestione del rischio", + "-1358367903": "Importo investito", + "-1853307892": "Imposta il tuo commercio", + "-1221049974": "Prezzo finale", "-843831637": "Stop loss", "-583023237": "Si tratta del valore di rivendita del suo contratto, basato sulle condizioni di mercato prevalenti (ad esempio, lo spot attuale), comprese le eventuali commissioni aggiuntive.", "-1476381873": "Il prezzo più recente dell'attività quando la chiusura dell'operazione viene elaborata dai nostri server.", @@ -3845,8 +3859,6 @@ "-700280380": "Commissione per la cancellazione", "-8998663": "Cifra: {{last_digit}} ", "-718750246": "La tua puntata aumenterà dello {{growth_rate}}% per tick purché il prezzo spot corrente rimanga entro ±{{tick_size_barrier_percentage}} dal prezzo spot precedente.", - "-1358367903": "Importo investito", - "-542594338": "Payout massimo", "-690963898": "Il contratto verrà chiuso automaticamente quando il pagamento raggiunge questo importo.", "-511541916": "Il contratto verrà chiuso automaticamente al raggiungimento di questo numero di segni di spunta.", "-438655760": "<0>Nota: può chiudere l'operazione in qualsiasi momento. Sia consapevole del rischio di slippage.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% di (<1/> * {{multiplier}})", "-732683018": "Quando il suo profitto raggiunge o supera questo importo, l'operazione verrà chiusa automaticamente.", "-989393637": "Il take profit non può essere regolato dopo l'inizio del tuo contratto.", - "-339236213": "Multiplier", "-194424366": "superiore", "-857660728": "Prezzo d'esercizio", "-1346404690": "Riceve un pagamento alla scadenza se il prezzo spot non tocca o non supera la barriera per tutta la durata del contratto. In caso contrario, il suo contratto sarà terminato in anticipo.", @@ -4177,6 +4188,8 @@ "-3423966": "Take profit<0 />Stop loss", "-1131753095": "I dettagli del contratto {{trade_type_name}} non sono attualmente disponibili. Stiamo lavorando per renderli disponibili a breve.", "-360975483": "Non hai mai effettuato operazioni di questo tipo nel periodo selezionato.", + "-2082644096": "Puntata attuale", + "-1942828391": "Pagamento massimo", "-335816381": "Termina dentro/Termina fuori", "-1789807039": "Asian Up/Asian Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "Profitto/perdita potenziale:", "-1511825574": "Profitto/Perdita:", "-499175967": "Prezzo d'esercizio", - "-2082644096": "Puntata attuale", "-706219815": "Prezzo indicativo", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Indice Crash 500", "-9704319": "Indice Crash 1000", "-465860988": "Indice Bull Market", - "-390528194": "Indice Step", "-280323742": "Paniere EUR", "-563812039": "Indice Volatility 10 (1s)", "-82971929": "Indice Volatility 25 (1s)", diff --git a/packages/translations/src/translations/km.json b/packages/translations/src/translations/km.json index d7c873ef2fb0..2f8373b1715b 100644 --- a/packages/translations/src/translations/km.json +++ b/packages/translations/src/translations/km.json @@ -96,27 +96,27 @@ "107537692": "ដែនកំណត់ទាំងនេះអនុវត្តចំពោះការជួញដូរអប់សិនរបស់អ្នកតែប៉ុណ្ណោះ។ ឧទាហរណ៍ <0>ការខាតបង់សរុបអតិបរមា សំដៅលើការខាតបង់លើការជួញដូររបស់អ្នកទាំងអស់នៅលើវេទិកាជួញដូរអប់សិន។", "108916570": "រយៈពេល៖ {{duration}} ថ្ងៃ", "109073671": "សូមប្រើកាបូបអេឡិចត្រូនិច (e-wallet) ដែលអ្នកបានប្រើសម្រាប់ការដាក់ប្រាក់ពីមុនមកហើយ។ ត្រូវការប្រាកដថាកាបូបអេឡិចត្រូនិចគាំទ្រការដកប្រាក់បាន។ មើលបញ្ជីកាបូបអេឡិចត្រូនិចផ្សេងៗដែលគាំទ្រការដកប្រាក់បាននៅទីនេះ៖ <0>here។", - "111215238": "ប្ដូរផ្លូវពីភាពខ្លាចរបស់ភ្លើង", - "111718006": "ថ្ងៃបញ្ចប់", - "111931529": "ការប្រាក់សរុបអតិបរិមា១៤ថ្ងៃ", + "111215238": "ផ្លាស់ទីឆ្ងាយពីពន្លឺផ្ទាល់", + "111718006": "កាលបរិច្ឆេទបញ្ចប់", + "111931529": "អតិបរមា។ ភាគហ៊ុនសរុបក្នុងរយៈពេល 7 ថ្ងៃ។", "113378532": "ETH/USD", - "115032488": "តម្លៃទិញ និង P/L", - "116005488": "សម្រាប់បង្ហាញពិសេស", - "117056711": "យើងកំពុងធ្វើឱ្យប្រសើរឡើងការបណ្ដុំរបស់យើង", + "115032488": "តម្លៃទិញនិង P / L", + "116005488": "សូចនាករ", + "117056711": "យើងកំពុងធ្វើបច្ចុប្បន្នភាពគេហទំព័ររបស់យើង", "117318539": "ពាក្យសម្ងាត់គឺត្រូវតែមានអក្សរក្រោម និងអក្សរធំជាមួយនឹងលេខ។", - "117366356": "ជូនការពារឹកស្រូបនៃសមាត្រក្រាបនឹងទិញលើការចំនួនផ្ទុកលើសពីគល់ប្រកបដោយអតិថិជឹជូនបានទេ។", + "117366356": "ជម្រើស Turbo អនុញ្ញាតឱ្យអ្នកព្យាករទិសដៅនៃចលនាសម្បត្តិមូលដ្ឋាន។", "118727646": "{{new_account_title}}", - "119261701": "បោះពុម្ព:", - "119446122": "មិនបានជ្រើសរើសប្រភេទកិច្ចសន្យ", + "119261701": "ការព្យាករណ៍:", + "119446122": "ប្រភេទកិច្ចសន្យាមិនត្រូវបានជ្រើសរើសទេ", "120340777": "បំពេញព័ត៌មានលម្អិតផ្ទាល់ខ្លួនរបស់អ្នក", "122617359": "មើលការបង្រៀន", "122993457": "នេះ​គឺ​ដើម្បី​បញ្ជាក់​ថា​អ្នក​ធ្វើ​សំណើ​ដក​ប្រាក់។", "123454801": "{{withdraw_amount}} {{currency_symbol}}", - "124723298": "ផ្ទុកសម្រាប់យោគការណ៍អាសន្នដីដើម្បីផ្ទុកព័ត៌មានអាសន្នរបស់អ្នក", + "124723298": "ផ្ទុកឡើងនូវភស្តុតាងនៃអាសយដ្ឋាន ដើម្បីផ្ទៀងផ្ទាត់អាសយដ្ឋានរបស់អ្នក", "125354367": "ឧទាហរណ៍នៃយុទ្ធសាស្រ្ត D'Alembert's Grind", - "125443840": "៦។ ចាប់ផ្តើមជាវវាយក្រឡងចុងក្រោយបញ្ចូនកំហុស", + "125443840": "6. ចាប់ផ្តើមពាណិជ្ជកម្មចុងក្រោយឡើងវិញដោយកំហុស", "125842960": "{{name}} ត្រូវបានទាមទារ", - "127307725": "អ្នកដែលបានចូលចិត្តគឺជាអ្នកដែលបាននិយាយនៅនឹងតម្រូវការសម្រាប់សិក្សាពីភាពទាររបស់អ្នក។ សព្វថ្ងៃជាដៃគូរគន្លងតម្រូវការកំហុសរបស់អ្នកក៏ត្រូវបានរក្សាទុកជា អ្នកដែលជា អ្នកដែលមានតម្លៃលើសពី ព្នាយ៉ាងទឹកនៅនឹងលើកទិស័ដោយកំហុសរបស់សេវាកម្មគោនេះទេ។", + "127307725": "មនុស្សដែលមានឋានៈសង្គមខ្ពស់ (PEP) គឺជាអ្នកដែលត្រូវបានតែងតាំងដោយមុខតំណែងសាធារណៈសំខាន់។ អ្នកស្និតស្នាលនិងសមាជិកគ្រួសាររបស់ PEP ក៏ត្រូវបានចាត់ទុកថាជា PEP ដូចគ្នា។", "129005644": "គំនិតគឺថាការជួញដូរជោគជ័យអាចស្តារការបាត់បង់ពីមុន។ ទោះយ៉ាងណា វាសំខាន់ណាស់ក្នុងការប្រុងប្រយ័ត្ន ព្រោះហានិភ័យអាចកើនឡើងយ៉ាងឆាប់រហ័សជាមួយនឹងយុទ្ធសាស្ត្រនេះ។ ជាមួយ Deriv Bot អ្នកអាចកាត់បន្ថយហានិភ័យរបស់អ្នកដោយកំណត់ភាគចំណែកអតិបរមា។ នេះគឺជាលក្ខណៈគ្រប់គ្រងហានិភ័យជាជម្រើស។ យើងនិយាយថាភាគចំណែកអតិបរមានៃ 3 USD។ ប្រសិនបើភាគចំណែកសម្រាប់ការជួញដូរបន្ទាប់ត្រូវបានកំណត់លើសពី 3 USD ភាគចំណែករបស់អ្នកនឹងកំណត់ឡើងវិញទៅភាគចំណែកដើមនៃ 1 USD។ ប្រសិនបើអ្នកមិនកំណត់ភាគចំណែកអតិបរមា វានឹងត្រូវបានកើនឡើងលើសពី 3 USD។", "129137937": "លោកអ្នកប្រើកម្មវិធីDerivMT5 ក្នុងការចូលចិត្ត។ អ្នកអាចដែលបំពេញមេរៀនពីការបើកវិចវិចពេលណា ដោយផ្ទាល់ទុកពី២សប្តាហ៍ ទៅ៤ឆ្នាំ។ ហើយពេញនឹងបើហេប្រួជជ័យសូមលោកអ្នកចូលទៅបន្ទាន់លើពត៌មានចូលគណនី។ បើលោកអ្នកមិនចង់បានដាច់រកនៅសល់ពេកសូមមើលលោកអ្នក៖ សូមទាក់ទងមកកាន់ពួកយើងតាមរយៈ <0>កាថែវជម្រើស។", "129729742": "លេខអត្តសញ្ញាណពន្ធ*", @@ -143,124 +143,124 @@ "150156106": "រក្សាទុកការផ្លាស់ប្តូរ", "150486954": "ឈ្មោះអតិថិជន", "151279367": "2. កំណត់ លក្ខខណ្ឌទិញ។ ក្នុងឧទាហរណ៍នេះ, ប៉ុនរបស់អ្នកនឹងទិញកុងត្រា ឡើង នៅពេលវាចាប់ផ្តើម និងបន្ទាប់ពីកុងត្រាមានកន្លែងបិទ។", - "151646545": "មិនអាចអានឯកសារ {{name}} បានទេ", - "152415091": "គណនាផលសងគ្រោះជាក់ស្ដែង ។", - "152524253": "ផ្លូវលេខនិងទេសចរណ៍គឺមានការងារដោយប្រើកម្មវិធីដែលមានទំហំធំនឹងសកម្មនឹងប្រភេទកិច្ចគោលការក្នុងព្រឹត្តិការណ៍។", + "151646545": "មិនអាចអានឯកសារ {{name}}", + "152415091": "គណិតវិទ្យា", + "152524253": "ធ្វើពាណិជ្ជកម្មទីផ្សារពិភពលោកជាមួយនឹងវេទិកាដែលងាយស្រួលប្រើដ៏ពេញនិយមរបស់យើង។", "153485708": "Zero Spread - BVI", "154274415": "ប្រាក់ទូទាត់នៅពេលផុតកំណត់គឺស្មើនឹងការយកប្រាក់ទូទាត់ក្នុងមួយពិន្ទុមកគុណនឹងភាពខុសគ្នារវាងតម្លៃចុងក្រោយ និងកម្រិតបន្ទាត់តម្លៃគោលដៅ។", "157593038": "​ចំនួនគំរូចនិន្នាទីពី {{ start_number }} ដល់ {{ end_number }}", - "157871994": "តោះត្រាតែតៃរក់ទេ។", - "158355408": "មនុស្សនេះប្រតេអរម្មចំពោះដូច្នេះមិនអាចប្រើបានរបស់លោកអ្នកប៉ុន្មានពេល។", - "160746023": "Tether ជាកម្មវិធីខ្លួនអនុញ្ញាតរបស់ក្រុមហ៊ុន Tether (USDT) ជាកម្មវិធីធ្វើដំណើររបស់ Tether ដែលត្រូវបានជ្រើសរើសលើគណនោមชั้นស្រឡាយនៅលំនឹង blockchain របស់ Bitcoin។", - "160863687": "មិនអាចរកឃើញកាមេរ៉ាម៉ាស៊ីនសំរាប់", - "164112826": "ប្រភេទធ្លាប់នេះអនុញ្ញាតឱ្យអ្នកផ្ទុកប្លង់ពី URL បើអ្នកមាន។ ព័ត៌មាននេះនឹងត្រូវបានបើកអ្នកឆ្លើយនៅពេលដែលបញ្ជាក់ទុកចូលទៅប្លង់របស់អ្នកប្រើប្រាស់។", - "164564432": "ការដាក់ប្រាក់មិនមានសុពលភាពដែលប្រកបរបរត្រូវពីលើប្រព័ន្ធប្រតិបត្តិការ។ អ្នកអាចធ្វើការដាក់ប្រាក់បាននៅពេលដែលការថែរការប៉ុនប៉ងនេះត្រូវបានបញ្ជាក់សហការក្នុងព្រតិការណ៍។", + "157871994": "តំណផុតកំណត់", + "158355408": "សេវាកម្មមួយចំនួនអាចនឹងមិនមានជាបណ្តោះអាសន្ន។", + "160746023": "Tether as an Omni token (USDT) គឺជាកំណែនៃ Tether ដែលត្រូវបានបង្ហោះនៅលើស្រទាប់ Omni នៅលើ Bitcoin blockchain ។", + "160863687": "កាមេរ៉ាមិនត្រូវបានរកឃើញទេ។", + "164112826": "ប្លុកនេះអនុញ្ញាតឱ្យអ្នកផ្ទុកប្លុកពី URL ប្រសិនបើអ្នកផ្ទុកពួកវានៅលើម៉ាស៊ីនមេពីចម្ងាយ ហើយពួកវានឹងត្រូវបានផ្ទុកតែនៅពេលដែល bot របស់អ្នកដំណើរការប៉ុណ្ណោះ។", + "164564432": "ការ​ដាក់​ប្រាក់​មិន​អាច​ប្រើ​បាន​ជា​បណ្ដោះ​អាសន្ន​ដោយ​សារ​តែ​ការ​ថែទាំ​ប្រព័ន្ធ។ អ្នកអាចដាក់ប្រាក់បញ្ញើរបស់អ្នកនៅពេលដែលការថែទាំត្រូវបានបញ្ចប់។", "165294347": "សូមកំណត់ប្រទេសដែលរស់នៅរបស់អ្នកនៅក្នុងការកំណត់គណនីរបស់អ្នក ដើម្បីចូលទៅកាន់ អ្នកគិតលុយ។", "165312615": "ដំណើរការបន្ត​តាម​ទូរស័ព្ទ", - "165682516": "ប្រសិនបើអ្នកអាចបង្កើនការចែកចាយយើងរកគូភីភាពផ្សេងទៀតថ្មីអំពីទីផ្សារគឺដែលអ្នកប្រើប្រាស់?", + "165682516": "ប្រសិនបើអ្នកមិនខ្វល់ពីការចែករំលែក តើវេទិកាពាណិជ្ជកម្មណាមួយផ្សេងទៀតដែលអ្នកប្រើ?", "167094229": "• ភាគចំណែកបច្ចុប្បន្ន: ប្រើអថេរនេះដើម្បីរក្សាតម្លៃភាគចំណែក។ អ្នកអាចផ្ដល់ចំនួនណាមួយដែលអ្នកចង់បាន ប៉ុន្តែវាត្រូវតែជាចំនួនវិជ្ជមាន។", - "170185684": "បដិសេធទទួល", - "170244199": "ខុសវិញចំពោះមូលហេតុផ្សេងៗ", - "171307423": "ធ្វើការដោះស្រាយ", - "171579918": "ទៅនិស្សិតបន្ត", - "171638706": "អត្ថបទខ្លះ", - "173991459": "យើងកំពុងផ្ញើសំណើររបស់អ្នកទៅលើ blockchain។", - "174793462": "ផ្លូវកាត់ពន្ធលេខ ", + "170185684": "មិនអើពើ", + "170244199": "ខ្ញុំបិទគណនីរបស់ខ្ញុំដោយសារហេតុផលផ្សេងទៀត។", + "171307423": "ការងើបឡើងវិញ", + "171579918": "ទៅការកំចាត់ខ្លួនឯង", + "171638706": "អថេរ", + "173991459": "យើងកំពុងផ្ញើសំណើរបស់អ្នកទៅ blockchain ។", + "174793462": "តម្លៃអនុវត្ត", "176078831": "បានបន្ថែម", - "176319758": "ការប្រាក់សរុបអតិបរិមា៣០ថ្ងៃ", - "176654019": "$១០០,០០០ ដល់ $២៥០,០០០", - "177099483": "តំណរដាក់ប្រាក់របស់អ្នកនឹងកំពុលភាព និងយើងបានទាត់សហការក្នុងពេលដែលបានបញ្ជាក់អាសន្នរបស់អ្នក។", + "176319758": "ភាគហ៊ុនសរុបអតិបរមាឆ្លងកាត់ 30 ថ្ងៃ", + "176654019": "$100,000 - $250,000", + "177099483": "ការផ្ទៀងផ្ទាត់អាសយដ្ឋានរបស់អ្នកកំពុងរង់ចាំ និងយើងបានដាក់កំណត់មួយចំនួនលើគណនីរបស់អ្នក។ កំណត់ទាំងនេះនឹងត្រូវដកចេញពេលអាសយដ្ឋានរបស់អ្នកត្រូវបានផ្ទៀងផ្ទាត់។", "177467242": "កំណត់ជម្រើសពាណិជ្ជកម្មរបស់អ្នកដូចជា Accumulator និងភាគហ៊ុន។ ប្លុកនេះអាចប្រើបានតែជាមួយប្រភេទពាណិជ្ជកម្ម Accumulator ប៉ុណ្ណោះ។ ប្រសិនបើអ្នកជ្រើសរើសប្រភេទពាណិជ្ជកម្មផ្សេងទៀត ប្លុកនេះនឹងត្រូវបានជំនួសដោយប្លុកជម្រើសពាណិជ្ជកម្ម។", - "179083332": "កាលបរិច្ឆេទ", - "181107754": "គណនី <0>{{platform}} {{eligible_account_to_migrate}} របស់អ្នកគ ready សម្រាប់ការទិញលក់។", + "179083332": "កាលបរិច្ឆេ", + "181107754": "គណនីថ្មី <0>{{platform}} {{eligible_account_to_migrate}} របស់អ្នកត្រូវបានរៀបចំរួចរាល់សម្រាប់ការជួញដូរ។", "181346014": "កំណត់ចំណាំ", "181881956": "ប្រភេទកិច្ចសន្យ: {{ contract_type }}", - "182630355": "អរគុណចំពោះការដាក់អំណរគណដើម្បីលម្អិតពីការផ្ទៀងផ្ទាត់របាយការណ៍របស់អ្នក។", + "182630355": "សូមអរគុណចំពោះការបញ្ជូនព័ត៌មានរបស់អ្នក។", "184024288": "អក្សរតូច", - "189705706": "ប្រើប្រាស់អថេរ \"i\" ដើម្បីដោះស្រាយការរួចកុងគ្នារវាងប៉មជុំទាំងនេះ។ នៅក្នុងការរួមបញ្ចប់និង។ គម្រូទាំងពីរគ្នានៅលើបញ្ជីដោយការផ្ដល់ចន្លោះតែម្តងទៀត", - "189759358": "បង្កើតស្រទាប់ដោយការធ្វើការបំបួនធាតុដែលបានបញ្ជាក់", + "189705706": "ប្លុកនេះប្រើអថេរ \"i\" ដើម្បីគ្រប់គ្រងការកំណត់ចំនួនលំដាប់។ ក្នុងលំដាប់តែម្តងៗនេះ តម្លៃនៃ \"i\" ត្រូវបានកំណត់ដោយធាតុនៅក្នុងបញ្ជីដែលបានផ្ដល់ឱ្យ។", + "189759358": "បង្កើតបញ្ជីដោយធ្វើម៉ត់ធាតុមួយដែលបានផ្ដល់រួចម្តងហើយម្តងទៀត", "190834737": "សៀវភៅណែនាំ", - "191372501": "ការលុបបំណូល/ចំណូល", - "192436105": "គ្មានតួអក្សរលិង្គលា, ខ្លឹមក្នុង, ឬអក្សរពុម្ពអក្សរចល័ត", - "192573933": "បានអនុវត្តបានជោគជ័យ", + "191372501": "ការប្រមូលផ្តុំប្រាក់ចំណូល / ការសន្សំ", + "192436105": "មិនចាំបាច់មាននិមិត្តសញ្ញា ខ្ទង់ ឬអក្សរធំទេ។", + "192573933": "ការផ្ទៀងផ្ទាត់បានបញ្ចប់", "195136585": "គំនូសតាង Trading View", - "195972178": "ទាញយកតួអក្សរ", + "195972178": "ទទួលបានតួអក្សរ", "196810983": "ប្រសិនបើរយៈពេលលើសពី 24 ម៉ោង ពេលវេលាកំណត់បិទ និងកាលបរិច្ឆេទផុតកំណត់នឹងត្រូវបានប្រើជំនួសវិញ។", - "196998347": "យកប្រែប្រួលជុលដោយផ្ទាំងធនាគាររបស់អតិថិជនដែលមិនមែនជាផ្នែកនៃទិន្នន័យក្នុងករណីបច្ចុប្បន្ន។ នេះមានស្ថិតិប្រសិទ្ធិនៃការចេញពីប្រព័ន្ធការពារ: ការការពារមធ្យមបូកតម្លៃប្រទះ។", - "197190401": "កាលបរិច្ឆេទផុតកំណត់", + "196998347": "យើងបានរក្សាទុនអតិថិជននៅក្នុងគណនីធនាគារដែលបំបែកខុសពីគណនីប្រតិបត្តិការរបស់យើង ដែលមិននឹងក្លាយជាផ្នែកមួយនៃទ្រព្យសម្បត្តិរបស់ក្រុមហ៊ុននៅពេលមានការដួលរលំ។ នេះបំពេញតាមតំរូវការរបស់ <0>Gambling Commission សម្រាប់ការបំបែកទុនអតិថិជននៅកម្រិត: <1>ការការពារមធ្យម។", + "197190401": "ថ្ងៃ​ផុតកំណត់", "201016731": "<0>មើលច្រើនទៀត", - "201091938": "៣០ថ្ងៃ", - "203179929": "<0>អ្នកអាចបើកគណនីនេះនៅពេលដែលឯកសារដែលបានដាក់ស្នើហើយបានបានផ្ទៀងផ្ទាត់", - "203271702": "ព្រមានម្ដងទៀត", + "201091938": "30 ថ្ងៃ។", + "203179929": "<0>អ្នក​អាច​បើក​គណនី​នេះ​បាន​នៅ​ពេល​ដែល​ឯកសារ​ដែល​អ្នក​បាន​ដាក់​ស្នើ​ត្រូវ​បាន​ផ្ទៀងផ្ទាត់។", + "203271702": "ព្យាយាម​ម្តង​ទៀត", "203297887": "យុទ្ធសាស្ត្រ​រហ័ស​ដែល​អ្នក​ទើប​តែ​បង្កើត​នឹង​ត្រូវ​បាន​ផ្ទុក​ទៅ​កាន់​កន្លែងធ្វើការ។", "203924654": "ចុចប៊ូតុង <0>ចាប់ផ្តើម ដើម្បីចាប់ផ្តើម ហើយធ្វើតាមការណែនាំ។", "204797764": "ផ្ទេរទៅអតិថិជន", - "204863103": "មេរៀនចាក់ចេញ", + "204863103": "ពេលវេលាចាកចេញ", "207521645": "កំណត់ពេលវេលាឡើងវិញ", - "207824122": "សូមដកនូវប្រាក់របស់អ្នកពីគណនី Deriv ខាងក្រោយ។", + "207824122": "សូមដកប្រាក់របស់អ្នកចេញពីគណនី Deriv ខាងក្រោម៖", "209533725": "អ្នកបានផ្ញើរ {{amount}} {{currency}}", "210385770": "ប្រសិនបើអ្នកមានគណនីដែលកំពុងប្រើស្រាប់ សូមចូលប្រព័ន្ធដើម្បីដំណើរការបន្ត។ បើមិនដូច្នោះទេសូមចុះឈ្មោះ។", "210872733": "ស្ថានភាពផ្ទៀងផ្ទាត់មិនមានទេ អ្នកផ្តល់សេវានិយាយថា៖ Malformed JSON។", - "211224838": "វិធីសាស្រ្ត", - "211461880": "ឈ្បើងនិងនាមអ្នកជាធម្មជាតិទាន់សម័យ", - "211487193": "លេខឯកសារ (ឧបត្ថម្ភដី,លិខិតឆ្លងដែន,ប្រអប់លុក)", + "211224838": "ការវិនិយោគ", + "211461880": "ឈ្មោះទូទៅ និងនាមត្រកូលងាយស្រួលទាយ", + "211487193": "លេខឯកសារ (ឧ. អត្តសញ្ញាណប័ណ្ណ លិខិតឆ្លងដែន ប័ណ្ណបើកបរ)", "211847965": "<0>ព័ត៌មានលម្អិតផ្ទាល់ខ្លួន របស់អ្នកមិនពេញលេញទេ។ សូមចូលទៅកាន់ការកំណត់គណនីរបស់អ្នក ហើយបំពេញព័ត៌មានលម្អិតផ្ទាល់ខ្លួនរបស់អ្នក ដើម្បីបើកការដកប្រាក់។", "216114973": "ភាគហ៊ុន និងសន្ទស្សន៍", "216650710": "អ្នកកំពុងប្រើគណនីសាកល្បង", "217377529": "5. ប្រសិនបើការទិញបន្ទាប់មានចំណេញ ភាគចំណែកសម្រាប់ការទិញបន្ទាប់នឹងត្រូវបានកាត់បន្ថយដោយ 2 USD។ វានឹងត្រូវបានបង្ហាញខាងលើដែលភាគចំណែក 3 USD ត្រូវបានកាត់បន្ថយទៅ 1 USD។ មើល A3។", "217403651": "សញ្ជាតិនិងហ្វ្រេណនះ St. Vincent & Grenadines", - "217504255": "បានដាក់ស្នើជោគជ័យលើសកម្មសត្វនិម្មិត", - "218441288": "លេខអត្តសញ្ញាណប័ណ្ណសម្គាល់", + "217504255": "ការវាយតម្លៃហិរញ្ញវត្ថុត្រូវបានដាក់ជូនដោយជោគជ័យ", + "218441288": "លេខអត្តសញ្ញាណប័ណ្ណ", "220014242": "បង្ហោះរូប រូបសែលហ្វី (selfie) ពីកុំព្យូទ័ររបស់អ្នក។", - "220186645": "អត្រាសំណើរព្រមាននៃធនាគារអតិថិជន", - "221261209": "គណនាអំណោយផ្សេងទៀតគ្រប់គ្រាន់របស់អ្នកក្នុងការចំនើនប្រាក់រថយន្ត (CFDs)។", - "223120514": "ក្នុងឧទាហរណ៍នេះ, ចំណូលរូបមិនមានទំនាក់ទំនងគ្រប់គ្រាន់រវាងតម្លៃខ្លីឈ្មោះរបស់របាយការណ៍តំបន់បណ្តប់ប្រវត្តិ។", - "223607908": "ស្ថានភាពខុសពីទិន្នន័យចុងក្រោយ ១០០០ ដុល្លារ សម្រាប់ {{underlying_name}}", + "220186645": "អត្ថបទគឺទទេ", + "221261209": "គណនី Deriv នឹងអនុញ្ញាតឱ្យអ្នកផ្តល់មូលនិធិ (និងដកប្រាក់ពី) គណនី CFDs របស់អ្នក។", + "223120514": "ក្នុងឧទាហរណ៍នេះ ចំណុចនីមួយៗនៃបន្ទាត់ SMA គឺជាមធ្យមនព្វន្ធនៃតម្លៃជិតស្និទ្ធសម្រាប់រយៈពេល 50 ថ្ងៃចុងក្រោយ។", + "223607908": "ស្ថិតិតួលេខចុងក្រោយសម្រាប់ចំណុច Tick 1000 ចុងក្រោយសម្រាប់ {{underlying_name}}", "224650827": "IOT/USD", - "225887649": "គ្មានសន្តិធិកម្មធាតុរបស់ក្រុមហ៊ុនទាន់សម័យនៅក្នុងការព្រីកលោកឲ្យអ្នកនៅពេលដែលអ្នកបង្កើតគម្រោងថ្មី។ អ្នកមិនអាចបញ្ជួនច្រេីននៅលើអេក្រង់ក្រោមនេះបានច្រើនជាងមួយចំណុចទៀតទេ។", - "227591929": "ដើម្បីកាត់ព័ត៌មាន {{ input_datetime }} {{ dummy }}", - "227903202": "យើងនឹងថ្លើមថ្លាទៅកាន់កម្រិតការផ្ទេរ ១% សម្រាប់ការផ្ទេររបស់អ្នកក្នុងកំណែទ្រព័ររបស់ Deriv របស់អ្នកនិងគណនី {{platform_name_mt5}}។", - "228521812": "ធ្វើភាពពិតប្រាកដណ្តោះកាលខ្លី ២០១១", - "233500222": "- ខ្ពស់: តម្លៃខ្ពស់បំផុត", + "225887649": "ប្លុកនេះគឺចាំបាច់។ វាត្រូវបានបន្ថែមទៅយុទ្ធសាស្រ្តរបស់អ្នកតាមលំនាំដើមនៅពេលអ្នកបង្កើតយុទ្ធសាស្រ្តថ្មី។ អ្នកមិនអាចបន្ថែមច្បាប់ចម្លងលើសពីមួយច្បាប់នៃប្លុកនេះទៅផ្ទាំងក្រណាត់បានទេ។", + "227591929": "ដើម្បីត្រាពេលវេលា {{ input_datetime }} {{ dummy }}", + "227903202": "យើងនឹងគិតថ្លៃផ្ទេរប្រាក់ 1% សម្រាប់ការផ្ទេរជារូបិយប័ណ្ណផ្សេងៗគ្នារវាងគណនី Deriv ​​fiat និង {{platform_name_mt5}} របស់អ្នក។", + "228521812": "សាកល្បងថាតើខ្សែអក្សរនៃអត្ថបទទទេ។ ត្រឡប់តម្លៃប៊ូលីន (ពិតឬមិនពិត)។", + "233500222": "- High៖ តម្លៃខ្ពស់បំផុត", "235244966": "ត្រឡប់ទៅ Trader's Hub វិញ", - "235583807": "SMA គឺជាឧបករណ៍ដែលត្រូវបានប្រើច្រើនជាងគំនិតក្រហមទៀតនៃការវិភាគបណ្តាញ។ វាជាការគណនាបន្ទប់ទីទាន់ហេតុនៃតម្លៃទីផ្សារដើម្បីបង្ខំទឹកករតម្លៃលើការវិភាគដែលបានកំណត់: លើឬចុះ។ ឧបករណ៍គឺបើការវិភាគកំពុងរួចរាល់ឡើង។", - "235994721": "ប្រាក់ក្រុមហើយជាវ (ស្ថិតនៅ / ផ្សេង)", - "236642001": "កម្សាន្ត", + "235583807": "SMA គឺជាសូចនាករដែលត្រូវបានប្រើញឹកញាប់ក្នុងការវិភាគបច្ចេកទេស។ វាគណនាតម្លៃមធ្យមនៃទីផ្សារនៅក្នុងរយៈពេលជាក់លាក់ ហើយត្រូវបានប្រើដើម្បីកំណត់ទិសដៅនៃលំនឹងទីផ្សារ៖ លើ ឬ ចុះ។ ឧទាហរណ៍ ប្រសិនបើ SMA កំពុងផ្លាស់ប្តូរឡើង វាមានន័យថាលំនឹងទីផ្សារកំពុងឡើង។ ", + "235994721": "Forex (ស្តង់ដារ/កម្រនិងអសកម្ម) និងរូបិយប័ណ្ណគ្រីបតូ", + "236642001": "ទិនានុប្បវត្តិ", "238496287": "ការពាណិជ្ជកម្មជាមួយការបំលែងគឺមានហានិភ័យខ្ពស់ ដូច្នេះវាជាគំនិតល្អក្នុងការប្រើប្រាស់លក្ខណៈគ្រប់គ្រងហានិភ័យដូចជាស្តុបបោះ។ ស្តុបបោះអនុញ្ញាតឱ្យអ្នក", "242028165": "បង់ថ្លៃសេវាតូចមួយ ដើម្បីផ្តល់អាទិភាពដល់ការដកប្រាក់របស់អ្នក ថ្លៃសេវានេះនឹងត្រូវបានកាត់ចេញពីចំនួនដកប្រាក់។", "243537306": "1. ក្រោមម៉ឺនុយ ប្លុក ទៅកាន់ Utility > Variables។", - "243614144": "វាត្រូវបានផ្ដល់សេវាកម្មជាមុនសិនពេលដែលអ្នកបានផ្អាកគណនីមានរបស់អ្នក។", - "245005091": "ក្រង់ទួលភាពបន្ថែម", - "245187862": "DRC នឹងធ្វើការជូនដំណឹងអំពីការពារសារអ្វីដែលទទួលបាន (សូមប្រាប់ថា DRC បញ្ជូនប្រព័ន្ធនិងពន្យាគមន៍លទ្ធភាពនៃការបង្គោលប្រព័ន្ធរបស់នាក់ទទួលបានកំរិតពីមួយ។", - "245812353": "បើ {{ ស្ថានភាព }} ត្រូវបានសម្របស់អ្នកផ្ញើញាសេរី", - "246428134": "ណែនាំដោយឆាប់រហ័ស", - "248153700": "កំណត់ពាក្យសម្ងាត់ឡឺករ៉ាខ្លះរបស់អ្នក", - "248565468": "ពិនិត្យអ៊ីឌីវអ៊ីមែលគណនីរបស់អ្នកហើយចុចតំណរបស់វា។", - "248909149": "ផ្ញើទំព័រសុខភាពទីសន្តិនិងរស់នៅទៅកាន់ទូរស័ព្ទរបស់អ្នកដោយសុវត្ថិសាស្រ្ត", + "243614144": "វាអាចប្រើបានសម្រាប់តែអតិថិជនដែលមានស្រាប់ប៉ុណ្ណោះ។", + "245005091": "lower", + "245187862": "DRC នឹងធ្វើ <0>ការសម្រេចចិត្តលើពាក្យបណ្តឹង (សូមចំណាំថា DRC មិននិយាយអំពីពេលវេលាសម្រាប់ការប្រកាសការសម្រេចចិត្តរបស់ខ្លួនទេ)។", + "245812353": "ប្រសិនបើ {{ condition }} ត្រឡប់ {{ value }}", + "246428134": "ការណែនាំជាជំហាន ៗ", + "248153700": "កំណត់ពាក្យសម្ងាត់របស់អ្នកឡើងវិញ", + "248565468": "ពិនិត្យអ៊ីមែលគណនី {{ identifier_title }} របស់អ្នក ហើយចុចលើតំណក្នុងអ៊ីមែលដើម្បីបន្ត។", + "248909149": "ផ្ញើតំណសុវត្ថិភាពទៅទូរស័ព្ទរបស់អ្នក", "251134918": "ព័ត៌មានគណនី", - "251445658": "ប្រទេសត្រឹមត្រូវ", + "251445658": "ប្រធានបទពណ៌ងងឹត", "251882697": "សូមអរគុណ! ការឆ្លើយតបរបស់អ្នកត្រូវបានកត់ត្រាទៅក្នុងប្រព័ន្ធរបស់យើង។<0/><0/>សូមចុច 'យល់ព្រម' ដើម្បីដំណើរការបន្ត។", - "254912581": "គ្មានដូចជា EMA។ គ្រប់ពីនាក់កាន់តែបង្ហាញសកម្មប៉ុណ្ណារិទ្ធិនៃបន្ទះ EMA តាមរយៈបញ្ជីនិទ្ទាកាប់បន្ថែមនិងដោយបន្ទាប់ពីគំនិតបានផ្តល់។", - "256031314": "ភារកិច្ចលុយតាមជិតការ", + "254912581": "ប្លុកនេះគឺស្រដៀងទៅនឹង EMA លើកលែងតែវាផ្តល់ឱ្យអ្នកនូវបន្ទាត់ EMA ទាំងមូលដោយផ្អែកលើបញ្ជីបញ្ចូល និងរយៈពេលដែលបានផ្តល់ឱ្យ។", + "256031314": "អាជីវកម្មសាច់ប្រាក់", "256602726": "បើអ្នកបិទគណនីរបស់អ្នកនោះ:", "258448370": "MT5", "258912192": "ការវាយតម្លៃពាណិជ្ជកម្ម", - "260069181": "មានកំហុសក្នុងពេលដែលការព័ត៌មានត្រូវការរួចរាល់ត្រូវដាក់សុវត្ថិសាស្រ្ត", - "260086036": "ដាក់មួយគ្រប់ពេលដែលគម្រូរបាទចូលដំណើរផ្សព្វលេអ៊ែររបស់អ្នក។", - "260361841": "លេខការបើកបង្អួចរបស់អ្នកចុះឈ្មោះមួយសកម្មថ្មីត្រូវបានដោះស្រាយ ដោយបញ្ជាក់។", - "260393332": "អ្នកមិនអាចធ្វើឱ្យប្រើបានទទួលការដាក់ប្រាក់របស់អ្នកទេព្រោះសារឯកសារមិនទាន់បានបភ័ណ្ឌទុកក្នុងការពិនិត្តបានអនុញ្ញាត។ យើងនឹងបញ្ជាអ្នកតាមឯកសារអ៊ីម៉ែលក្នុងពេល ៣ ថ្ងៃបន្ទាប់ពីការអនុញ្ញាតផ្នែកនេះរបស់អ្នកបានអនុញ្ញាត។", + "260069181": "កំហុសបានកើតឡើងខណៈពេលកំពុងព្យាយាមផ្ទុក URL", + "260086036": "ដាក់ប្លុកនៅទីនេះ ដើម្បីអនុវត្តកិច្ចការម្តង នៅពេលដែល bot របស់អ្នកចាប់ផ្តើមដំណើរការ។", + "260361841": "លេខអត្តសញ្ញាណពន្ធមិនអាចលើសពី 25 តួអក្សរទេ។", + "260393332": "អ្នកមិនអាចដាក់ប្រាក់បន្ថែមបានទេ ដោយសារឯកសាររបស់អ្នកកំពុងស្ថិតក្រោមការត្រួតពិនិត្យ។ យើងនឹងជូនដំណឹងដល់អ្នកតាមអ៊ីមែលក្នុងរយៈពេល 3 ថ្ងៃបន្ទាប់ពីការផ្ទៀងផ្ទាត់របស់អ្នកត្រូវបានយល់ព្រម។", "261074187": "4. នៅពេលប្លុកត្រូវបានផ្ទុកទៅក្នុងផ្ទាំងធ្វើការ, កែសម្រួលលក្ខខណ្ឌប្រសិនបើអ្នកចង់, ឬចុច ដំណើរការ ដើម្បីចាប់ផ្តើមពាណិជ្ជកម្ម។", "261250441": "ទាញយកប្លុក <0>ពាណិជ្ជកម្មឡើងវិញ និងបន្ថែមវានៅក្នុងផ្នែក <0>ធ្វើ នៃប្លុក <0>ធ្វើឡើងវិញរហូតដល់។", - "262095250": "ប្រសិនបើអ្នក​ជ្រើស​ <0>\"Put\"​អ្នក​នឹង​ទាញយក​ប្រាក់​​នៅ​ពេល​ផុត​​បាន​និង​តិច​ជាង​តម្លៃ​ដែល​កំណត់​នៅ​ពេល​ផុត។ សេចក្តី​នេះ​មិន​ត្រូវ​អាច​ទទួល​បាន​ប្រាក់​​ទេ។", - "264976398": "3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.", - "265644304": "ប្រភេទ​ជាប្រាប់នៃការ​ទិញលក្ខណៈមុនច្បាប់", + "262095250": "ប្រសិនបើអ្នកជ្រើសរើស <0>\"Put\" អ្នកនឹងទទួលបានការទូទាត់ប្រសិនបើតម្លៃចុងក្រោយគឺទាបជាងតម្លៃព្រមាននៅពេលផុតកំណត់។ បើមិនដូច្នេះទេ អ្នកនឹងមិនទទួលបានការបង់ប្រាក់ទេ។", + "264976398": "3. 'កំហុស' បង្ហាញសារជាពណ៌ក្រហម ដើម្បីរំលេចអ្វីមួយដែលត្រូវដោះស្រាយភ្លាមៗ។", + "265644304": "ប្រភេទពាណិជ្ជកម្ម", "266455247": "ស្តង់ដារ Vanuatu", - "267992618": "កម្រមធាតុសំខាន់ជាបរិស្ថានចំណេះទូទៅបាត់បង់។", + "267992618": "វេទិកាខ្វះមុខងារ ឬមុខងារសំខាន់ៗ។", "268254263": "បើកគណនីពិតឥឡូវនេះ", "268940240": "សមតុល្យរបស់អ្នក ({{format_balance}} {{currency}}) គឺតិចជាងការដកប្រាក់អប្បបរមាបច្ចុប្បន្នដែលត្រូវបានអនុញ្ញាត ({{format_min_withdraw_amount}} {{currency}})។ សូមបញ្ចូលទឹកប្រាក់ក្នុងគណនីរបស់អ្នក ដើម្បីបន្តដំណើរការដកប្រាក់របស់អ្នក។", - "269322978": "ការដាក់ប្រាក់ជាមួយរូបិយប័ណ្ណទូរសព្ទនិងអ្នកចំនូលគ្រប់គ្រងជាមួយអ្នកប្រើប្រាស់ជាអ្នកស្វែងរកប្រជាជនរបស់អ្នកក្នុងប្រទេសរបស់អ្នក។", + "269322978": "ដាក់ប្រាក់ជាមួយរូបិយប័ណ្ណក្នុងស្រុករបស់អ្នកតាមរយៈការផ្លាស់ប្តូរពីម្នាក់ទៅម្នាក់ជាមួយពាណិជ្ជករក្នុងប្រទេសរបស់អ្នក។", "269607721": "ផ្ទុកឡើង", - "270339490": "ប្រសិនបើអ្នកជ្រើស \"លើ\", អ្នកនឹងឃើញការ​បង្កើត​ពិពណ៌នាលើការទុងខុសពីការព្យាបាលរបស់អ្នក។", + "270339490": "ប្រសិនបើអ្នកជ្រើសរើស \"Over\" អ្នកនឹងឈ្នះការបង់ប្រាក់ ប្រសិនបើខ្ទង់ចុងក្រោយនៃសញ្ញាធីកចុងក្រោយគឺធំជាងការព្យាករណ៍របស់អ្នក។", "270396691": "<0>កាបូបរបស់អ្នកបានរួចរាល់!", "270610771": "ក្នុងឧទាហរណ៍នេះ, តម្លៃថ្មីនៃថិរវេរឱ្យកាន់តែក្រឡិកទេសចរណ៍ \"candle_open_price\"។", "270712176": "ចុះក្រោម", @@ -512,6 +512,7 @@ "538017420": "0.5 pips", "538042340": "គោលការណ៍ 2៖ ភាគចំណែកបង្កើនចំនួននៅពេលដែលការដូរបាត់បង់ត្រូវបានបន្សំដោយការជោគជ័យ។", "538228086": "ខិតបើទំហំចុងក្រោយរបស់កន្លងមិត្តនឹងខូចក្រោយ", + "539352212": "Tick {{current_tick}}", "541650045": "គ្រប់គ្រងពាក្យសម្ងាត់ {{platform}}", "541700024": "ដំបូងចូលលេខសំបុត្របើកនិងថ្ងៃផុតកំណត់។", "542038694": "អនុញ្ញាតអក្សរ ប្លែក លេខ លំនិត ផ្លូវសម្រាប់ {{label}}។", @@ -822,6 +823,7 @@ "839805709": "To smoothly verify you, we need a better photo", "841543189": "មើលប្រតិបត្តិការនៅលើប្លង់ប្រតិបត្តិវាល", "843333337": "អ្នកអាចធ្វើការប្រតិបត្តិនៅតែក្នុង។ សូមបំពេញការវាយតម្លៃហាត់ប្រាណើកបានដូចតទ្ធតែដើម្បីដោះស្រាយឱ្យបានចំណុចខាងក្រោម", + "845106422": "ការព្យាករណ៍លេខចុងក្រោយ", "845304111": "អេក្រង់ថ្មីដំបូងស្ថិតនៅក្រោយចេញ EMA ដែលថយចុះសម្រាប់សកម្មភាពគ្រប់គ្រងពិនិត្យ", "848083350": "ការទូទាត់របស់អ្នកស្មើនឹង <0>ការសងក្នុងមួយពិន្ទុ គុណនឹងភាពខុសគ្នារវាងតម្លៃចុងក្រោយ និងតម្លៃកូដកម្ម។ អ្នកនឹងទទួលបានប្រាក់ចំណេញតែប៉ុណ្ណោះ ប្រសិនបើការទូទាត់របស់អ្នកខ្ពស់ជាងភាគហ៊ុនដំបូងរបស់អ្នក។", "850582774": "សូមធ្វើបច្ចុប្បន្នភាពព័ត៌មានផ្ទាល់ខ្លួនរបស់អ្នក", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0>អ្នកអាចមើលសង្ខេបនៃការទំនាក់ទំនងនេះនៅក្នុងអ៊ីម៉ែលរបស់អ្នក។", "938947787": "ការដកប្រាក់ចេញ {{currency}}", "938988777": "ឧបសគ្គខ្ពស់", + "942015028": "សន្ទស្សន៍ Step 500", "944499219": "តំណែងបើកអតិបរមា", "945532698": "កិច្ចសន្យាត្រូវបានលក់", "945753712": "ត្រឡប់ទៅ Trader’s Hub", @@ -1105,6 +1108,7 @@ "1104912023": "ការធ្វើការពិពណ៌នាកំណែរបស់អ្នករង់ចាំលេខកូដផ្ទៀងផ្ទាត់នេះ", "1107474660": "បញ្ជូនភស្តុតាងនៃអាសយដ្ឋាន", "1107555942": "ទៅកាន់", + "1109182113": "ចំណាំ៖ ការលុបចោលកិច្ចព្រមព្រៀងគឺអាចប្រើបានសម្រាប់តែសន្ទស្សន៍ Volatility នៅលើ Multipliers ប៉ុណ្ណោះ។", "1109217274": "ជោគជ័យ!", "1110102997": "បញ្ជាក់", "1111743543": "បញ្ឈប់ការបាត់បង់ (Multiplier)", @@ -1551,6 +1555,7 @@ "1542742708": "Synthetics, Forex, Stocks, Stock indices, Commodities, and Cryptocurrencies", "1544642951": "ប្រសិនបើអ្នកជ្រើស \"យកដកដែលថាមពលលើឲ្យនៅក្នុងការបញ្ជូនប្រាក់អត់ធ្មត្តមួយចម្រុះបន្ថែមទាំងកន្លែង។ គ្រាន់តែសម្រាប់ការបញ្ជូនរបស់ភាគហ៊ុននានាណាមួយចុះចំនួនចុះបានច្រើនពីមុនតាមការឈប់នៃទីសាកល្បងចាស់។", "1547148381": "ឯកសារនេះធំពេក (តែតំណាងរបស់អនុគមន៍អន្តរជាតិទេ)។ សូមផ្ទុកឡើងឯកសារផ្សេងទៀត។", + "1548185597": "សន្ទស្សន៍ Step 200", "1549098835": "ប្រាក់ដកចេញសរុប", "1551172020": "កន្ត្រក AUD", "1551689907": "បង្កើនបទពិសោធន៍ពាណិជ្ជកម្មរបស់អ្នកដោយធ្វើឱ្យមានការអភិវឌ្ឍន៍គណនី <0/><1>{{platform}} {{type}} {{from_account}}។", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "ពេលវេលាចាប់ផ្តើម", "1694517345": "បញ្ចូលអ៊ីមែលថ្មី", + "1694888104": "ផលិតផលដែលផ្តល់ជូននៅលើគេហទំព័ររបស់យើងគឺជាផលិតផលដេរីវេស្មុគ្រស្មាញដែលមានហានិភ័យខ្ពស់នៃការបាត់បង់សក្តានុពល។ CFDs គឺជាឧបករណ៍ស្មុគ្រស្មាញដែលមានហានិភ័យខ្ពស់នៃការបាត់បង់ប្រាក់យ៉ាងឆាប់រហ័សដោយសារតែអានុភាព។ 70.78% នៃគណនីវិនិយោគិនលក់រាយបាត់បង់ប្រាក់នៅពេលធ្វើពាណិជ្ជកម្ម CFDs ជាមួយអ្នកផ្តល់សេវានេះ។ អ្នកគួរតែពិចារណាថាតើអ្នកយល់ពីរបៀបដែលផលិតផលទាំងនេះដំណើរការ និងថាតើអ្នកអាចមានលទ្ធភាពទទួលយកហានិភ័យខ្ពស់នៃការបាត់បង់ប្រាក់របស់អ្នក។", "1696190747": "ការដាក់ប្រាក់គឺជាការចំណាងតម្លៃ ហើយផលិតដោយថ្លៃថ្លេកថ្លែងថ្លៃទើបឡើងព្រៀងច្រើន ហើយយកការដាក់ប្រាក់ដល់តម្លៃដើមក្នុងការចំណាត់ថ្នាក់តែម្តង ដើម្បីផលិតបានភាពចំណាប់អាក្របរបស់អ្នក ការការបរិច្ឆេតដោយតម្លៃស្មើនឹង ១ ដុល្លារអាមេរិច.", "1698624570": "2. ចុច Ok ដើម្បីបញ្ជាក់។", "1699606318": "អ្នកបានដោនឡូតកំរិតនៃការផ្ទុកឯកសាររបស់អ្នក។", @@ -1696,6 +1702,7 @@ "1703712522": "ការទូទាត់របស់អ្នកស្មើនឹងការទូទាត់ក្នុងមួយ pip គុណនឹងភាពខុសគ្នា <0>ក្នុង pips រវាងតម្លៃចុងក្រោយ និងតម្លៃប្រចាំថ្ងៃ។", "1704656659": "តើអ្នកមានបទពិសោធន៍ប៉ុន្មាននៅក្នុងការជួញដូរ CFD?", "1707264798": "ហេតុអ្វី​បាន​ជា​ខ្ញុំ​មិន​អាច​មើល​ឃើញ​ទឹកប្រាក់ដែល​បាន​ដាក់​ក្នុង​គណនី Deriv របស់​ខ្ញុំ?", + "1707758392": "សន្ទស្សន៍ Step 100", "1708413635": "សម្រាប់គណនី {{currency_name}} ({{currency}}) របស់អ្នក", "1709859601": "របាយការណ៍ម៉ាស៊ីនកិច្ចការចាប់ផ្ដើម", "1711013665": "ការចាប់ផ្តើមគណនីរួមមានការបង្វិលដំរាលការទាញចូលរបស់អ្នក។", @@ -2014,6 +2021,7 @@ "1990331072": "លក្ខណៈកម្មសុទ្ធ", "1990735316": "កើន/ច្រើនគ្រប់គ្រង", "1991055223": "មើលតម្លៃក្របុងពេញចិត្តរបស់ផលិតផលដែលអ្នកចូលចូលចិត្ត។", + "1991448657": "មិនស្គាល់លេខអត្តសញ្ញាណពន្ធរបស់អ្នកមែនទេ? ចុច <0>ទីនេះ ដើម្បីស្វែងយល់បន្ថែម។", "1991524207": "សន្ទស្សន៍ Jump 100", "1994023526": "អាស៊ីអាសយដ្ឋាន​អ្នកបានបញ្ចូលមាន​​ការភាបបញ្ចូលឯកសារ​ក៏មានសន្និទ្ធស្និទ្ធភាគប័ណ្ណ (កំហុសនោះកើតជាក្រុមនៅពេល៣គឺការដោះស្រាយដូចគ្នា)។", "1994558521": "វេទិកាមិនមានភាពងាយស្រួលប្រើប្រាស់ទេ។", @@ -2389,6 +2397,7 @@ "-138380129": "ជំនួយក្នុងការដកប្រាក់ទទួលប្រាក់រួចកែលម្អិតពីសុវត្ថិភាពរបស់អ្នក។", "-1502578110": "គណនីរបស់អ្នកបានបញ្ជាក់ទាំងអស់ហើយ លីនុចសម្រាប់ការលុបចោលបានបិទ។", "-506122621": "សូមនិយាយពាក្យបន្តសារពីអ្នកអានទំព័រចម្បងនេះ។", + "-1106259572": "មិនស្គាល់លេខអត្តសញ្ញាណពន្ធរបស់អ្នកមែនទេ? <1 />ចុច <0>ទីនេះ ដើម្បីស្វែងយល់បន្ថែម។", "-252665911": "ទីកន្លែងកំណើត{{ទាមទារ}}", "-859814496": "ទីកន្លែងបកប្រែពន្ធដើម្បីប្រាប់ការបានកាន់តែសុពលភាពប្រាស់។", "-237940902": "លេខសម្គាល់អត្តសញ្ញាណប័ណ្ណពាក្យបញ្ចូនកាតរបស់អ្នកគឺ{{ចាំបាច់}}", @@ -2768,7 +2777,6 @@ "-1186807402": "ផ្ទេរ", "-744999940": "គណនី Deriv", "-766186087": "{{trustScore}} ក្នុងចំណោម 5 ដោយផ្អែកលើការវាយតម្លៃ {{numberOfReviews}}", - "-1265635180": "ផលិតផលដែលផ្តល់ជូននៅលើគេហទំព័ររបស់យើងគឺជាផលិតផលដេរីវេស្មុគ្រស្មាញដែលមានហានិភ័យខ្ពស់នៃការបាត់បង់សក្តានុពល។ CFDs គឺជាឧបករណ៍ស្មុគ្រស្មាញដែលមានហានិភ័យខ្ពស់នៃការបាត់បង់ប្រាក់យ៉ាងឆាប់រហ័សដោយសារតែអានុភាព។ 67.28% នៃគណនីវិនិយោគិនលក់រាយបាត់បង់ប្រាក់នៅពេលធ្វើពាណិជ្ជកម្ម CFDs ជាមួយអ្នកផ្តល់សេវានេះ។ អ្នកគួរតែពិចារណាថាតើអ្នកយល់ពីរបៀបដែលផលិតផលទាំងនេះដំណើរការ និងថាតើអ្នកអាចមានលទ្ធភាពទទួលយកហានិភ័យខ្ពស់នៃការបាត់បង់ប្រាក់របស់អ្នក។", "-1870909526": "ម៌ូទំព័ររបស់យើងមិនអាចរកមើសមាតិធម្មទុកនេះបានទេ។", "-582721696": "ចំនួនដកនិងលម្អិតបោះបង់តម្លៃដែលអតិបរមារបស់អ្នកទៅ {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "អ្នកគិតលុយ", @@ -3763,8 +3771,14 @@ "-1331298683": "Take Profit មិន​អាច​ត្រូវ​បាន​កែ​តម្រូវ​សម្រាប់​កិច្ច​សន្យា Accumulator ដែល​កំពុង​បន្ត។", "-509210647": "ព្យាយាមស្វែងរកអ្វីផ្សេងទៀត។", "-99964540": "នៅពេលដែលប្រាក់ចំណេញរបស់អ្នកឈានដល់ ឬលើសពីចំនួនដែលបានកំណត់ ពាណិជ្ជកម្មរបស់អ្នកនឹងត្រូវបានបិទដោយស្វ័យប្រវត្តិ។", - "-1221049974": "តម្លៃចុងក្រោយ", + "-542594338": "ប្រាក់បង់អតិបរមា", + "-1622900200": "បានបើក", "-2131851017": "អត្រាកំណើន", + "-339236213": "កម្រិតជនជាតិ", + "-1396928673": "ការគ្រប់គ្រង​ហានិភ័យ", + "-1358367903": "ដើមទុនវិនិយោគ", + "-1853307892": "កំណត់ពាណិជ្ជកម្មរបស់អ្នក", + "-1221049974": "តម្លៃចុងក្រោយ", "-843831637": "Stop loss", "-583023237": "នេះគឺជាតម្លៃលក់បន្តនៃកិច្ចសន្យារបស់អ្នក ដោយផ្អែកលើលក្ខខណ្ឌទីផ្សារដែលកំពុងមាន (ឧ. កន្លែងបច្ចុប្បន្ន) រួមទាំងកម្រៃជើងសារបន្ថែមប្រសិនបើមាន។", "-1476381873": "តម្លៃចុងក្រោយបំផុតនៃទ្រព្យសម្បត្តិនៅពេលបិទការពាណិជ្ជកម្មត្រូវបានដំណើរការដោយម៉ាស៊ីនមេរបស់យើង។", @@ -3793,14 +3807,14 @@ "-2089488446": "ប្រសិនបើអ្នកជ្រើសរើស \"Ends Between\"។ អ្នកឈ្នោះបានប្រាក់បានប្រជែងប្រែលើរារាងទ្រន្នឹមដែល exit យោលគឺ ខ្ពស់លើបារៀរទាំងាក់ខ្ពស់ក្នុងប្រធានបទក្រុមប្រធានបទទាំងអស់។", "-1876950330": "ប្រសិនបើអ្នកជ្រើសរើស \"Ends Outside\"។ អ្នកឈ្នោះបានប្រាក់បានប្រជែងប្រែលើរារាងទ្រន្នឹមដែល exit យោលគឺ ខ្ពស់ជាងបារៀរដែលកំណត់ខ្លីទ្រន្នឹមនិងទាបជាងបារៀរដែលកំណត់ខ្ពស់ទ្រន្នឹម។", "-546460677": "ប្រសិនបើចំណុចចេញស្មើនឹងឧបសគ្គទាប ឬឧបសគ្គខ្ពស់ អ្នកមិនឈ្នះការទូទាត់ទេ។", - "-1929209278": "ប្រសិនបើអ្នកជ្រើសរើស \"Even\"។ អ្នកនឹងបានប្រាក់បានប្រជែងប្រែលើទ្រន្នឹមដែលភាពខ្ពស់នៃតម្លៃសមប្រីមនិងតិចនៃខ្ទាត់ចុងក្រោយគឺ ចំនួនគត់គឺ 2,4,6,8 ឬនិនិតច័ន្ទ។", - "-2038865615": "ប្រសិនបើអ្នកជ្រើសរើស \"Odd\"។ អ្នកនឹងបានប្រាក់បានប្រជែងប្រែលើទ្រន្នឹមដែលភាពខ្ពស់នៃតម្លៃសមប្រីមនិងតិចនៃខ្ទាត់ចុងក្រោយគឺ ចំនួនគត់គឺ 1,3,5,7 ឬ 9។", + "-1929209278": "ប្រសិនបើអ្នកជ្រើស \"Even\" អ្នកនឹងឈ្នះការទូទាត់ប្រសិនបើតួលេខចុងក្រោយនៃចំណុច Tick ចុងក្រោយគឺជាលេខសូម (ឧ. 2, 4, 6, 8, ឬ 0)។", + "-2038865615": "ប្រសិនបើអ្នកជ្រើស \"Odd\" អ្នកនឹងឈ្នះការទូទាត់ប្រសិនបើតួលេខចុងក្រោយនៃចំណុច Tick ចុងក្រោយគឺជាលេខខេស (ឧ. 1, 3, 5, 7, ឬ 9)។", "-1959473569": "ប្រសិនបើអ្នកជ្រើសរើស \"Lower\"។ អ្នកឈ្នោះបានប្រាក់បានប្រជែងប្រែលើរារាងទ្រន្នឹមដែល exit យោលគឺ ទាបជាងបារៀរ។", "-1350745673": "ប្រសិនបើចំណុចចាកចេញស្មើនឹងរបាំង, អ្នកមិនឈ្នះការបង់ប្រាក់", "-93996528": "ដោយការទិញកុងត្រា \"Close-to-Low\", អ្នកនឹងឈ្នះម៉ូលទំនិញគុណនឹងភាពខុសគ្នារវាងតម្លៃបិទ និងទាបនៅក្នុងរយៈពេលកុងត្រា។", "-420387848": "ចំណាត់ថ្នាក់ខ្ពស់បំផុតតែសំរាប់រាងទ្រន្នឹមដែលទំនាំស្មើគ្នាដែលសារជាប់នៃការផុសព្រឹតូចធំ។", "-1722190480": "ដោយការទិញកុងត្រា \"High-to-Low\", អ្នកនឹងឈ្នះម៉ូលទំនិញគុណនឹងភាពខុសគ្នារវាងតម្លៃខ្ពស់ និងទាបនៅក្នុងរយៈពេលកុងត្រា។", - "-1281286610": "ប្រសិនបើអ្នកជ្រើសរើស \"Matches\"។ អ្នកនឹងបានប្រាក់បានប្រជែងប្រែលើទ្រន្នឹមដែលភាពទិសនៃខ្ទាត់ចុងក្រោយគឺដំណើរប្តែកគឺត្រូវធ្វើឡើងដូចជាកន្សេដៃ។", + "-1281286610": "ប្រសិនបើអ្នកជ្រើស \"Matches\" អ្នកនឹងឈ្នះការទូទាត់ប្រសិនបើតួលេខចុងក្រោយនៃចំណុច Tick ចុងក្រោយត្រូវនឹងការព្យាករណ៍របស់អ្នក។", "-1113825265": "មានលក្ខណៈបន្ថែមសម្រាប់គ្រប់គ្រងទីតាំងរបស់អ្នក: \"<0>Take profit\" និង \"<0>Stop loss\" អនុញ្ញាតឱ្យអ្នកកែសំរួលកម្រិតហានិភ័យរបស់អ្នក។", "-1104397398": "មានលក្ខណៈបន្ថែមសម្រាប់គ្រប់គ្រងទីតាំងរបស់អ្នក: \"<0>Take profit\", \"<0>Stop loss\" និង \"<0>Deal cancellation\" អនុញ្ញាតឱ្យអ្នកកែសំរួលកម្រិតហានិភ័យរបស់អ្នក។", "-1272255095": "ប្រសិនបើទំហំក្រណាត់ក្នុងពេលបញ្ចប់ត្រូួបស្មាត្រប្រកបលាដូចគ្នានោះលើត្រង់ឬដំណើរប្តែកម្តងហើយអ្នកនឹងមិនទាន់បានប្រាក់ប្រជែងទេ។", @@ -3809,12 +3823,12 @@ "-1435306976": "ប្រសិនបើអ្នកជ្រើសរើស \"Allow equals\"។ អ្នកឈ្នោះបានប្រាក់បានប្រជែងប្រែលើទ្រន្នឹមដែល exit យោលគឺ​ ខ្ពស់ជាងឬស្មើ entry ទៅវិញឈ្នោះ \"Rise\"។ ដោយសារដល់ អ្នកឈ្នោះបានប្រាក់បានប្រជែងប្រែលើទ្រន្នឹមដែល exit យោលគឺ ទាបជាងឬស្មើ entry ទៅវិញឈ្នោះ \"Fall\"។", "-1812957362": "ប្រសិនបើអ្នកជ្រើសរើស \"Stays Between\"។ អ្នកឈ្នោះបានប្រាក់ទាន់បានប្រជែងលើរារាងទ្រន្នឹមដែលជំនិះឬទទួលទ្រន្នឹមពីក្នុងរយៈពេលកុំព្យូទ័រជាមួយនោះនៅពេលណាមួយ", "-220379757": "ប្រសិនបើអ្នកជ្រើសរើស \"Goes Outside\"។ អ្នកឈ្នោះបានប្រាក់ទាន់បានប្រជែងលើរារាងទ្រន្នឹមដែលមុនពេលនោះមានទ្រន្នឹមឥទ្ធិពលឬទ្រន្នឹមទាបនោះទាំងាក់ខ្ពស់ក្នុងពេលណាមួយដែលមុនពេលនោះមានទ្រន្នឹមឥទ្ធិពលឬទ្រន្នឹមខ្ពស់ក្នុងពេលណាមួយ។", - "-299450697": "ប្រសិនបើអ្នកជ្រើសរើស \"High Tick\" អ្នកនឹងបានប្រាក់បានប្រជែងនៅពេលចុងក្រោយរបស់រាងទ្រន្នឹមដែលជារង។", + "-299450697": "ប្រសិនបើអ្នកជ្រើស \"High Tick\" អ្នកនឹងឈ្នះការទូទាត់ប្រសិនបើចំណុច Tick ដែលបានជ្រើសខ្ពស់ជាងគេក្នុងចំណោមចំណុច Tick បន្ទាប់ 5។", "-1416078023": "ប្រសិនបើអ្នកជ្រើសរើស \"Touch\"។ អ្នកនឹងបានប្រាក់បានប្រជែងលើរារាងទ្រន្នឹមដែលបានចុះប្រកបលាប្រជែលគ្មានចំនួន។", "-1565216130": "ប្រសិនបើអ្នកជ្រើស <0>\"ឡើង\", អ្នកនឹងទទួលបានការទូទាត់ប្រសិនបើតម្លៃត្រូវមិនធ្លាក់ក្រោមឧបសគ្គ។", "-1336860323": "ប្រសិនបើអ្នកជ្រើស <0>\"ធ្លាក់\", អ្នកនឹងទទួលបានការទូទាត់ប្រសិនបើតម្លៃត្រូវមិនកើនលើសពីឧបសគ្គ។", "-1547935605": "ការទូទាត់របស់អ្នកស្មើនឹង <0>ការសងក្នុងមួយពិន្ទុ គុណនឹងភាពខុសគ្នារវាង <0>តម្លៃចុងក្រោយ និងរបាំង។ អ្នកនឹងទទួលបានប្រាក់ចំណេញតែប៉ុណ្ណោះ ប្រសិនបើការទូទាត់របស់អ្នកខ្ពស់ជាងភាគហ៊ុនដំបូងរបស់អ្នក។", - "-351875097": "ចំនួនចុច", + "-351875097": "ចំនួនចំណុច Tick", "-729830082": "មើលតិច", "-1649593758": "ព័ត៌មានការជួញដូរ", "-1382749084": "ត្រលប់ទៅកាន់ការដើរទិញវិញ", @@ -3845,8 +3859,6 @@ "-700280380": "ថ្លៃចូលទ្បរចាក់កាត់", "-8998663": "ខ្ទាត់: {{last_digit}} ", "-718750246": "ភាគចំណែករបស់អ្នកនឹងកើនឡើងនៅ {{growth_rate}}% ក្នុងមួយ tick ត្រាតម្លៃសារធាតុបច្ចុប្បន្ននៅក្នុង ±{{tick_size_barrier_percentage}} ពីតម្លៃទីផ្សារមុន។", - "-1358367903": "ដើមទុនវិនិយោគ", - "-542594338": "ប្រាក់បង់អតិបរមា", "-690963898": "កិច្ចសន្យារបស់អ្នកនឹងត្រូវបានបិទដោយស្វ័យប្រវត្តិ នៅពេលដែលប្រាក់ទូទាត់របស់អ្នកឈានដល់ចំនួននេះ។", "-511541916": "កិច្ចសន្យារបស់អ្នកនឹងត្រូវបានបិទដោយស្វ័យប្រវត្តិនៅពេលឈានដល់ចំនួនចំណុច Tick នេះ។", "-438655760": "<0>ចំណាំ: អ្នកអាចបិទការអ្នកពិនិត្យលក្ខខណ្ឌរាបស់អ្នកនៅពេលណាមួយ។ តម្លៃបរិច្កទេពនោះអាចធ្វើឲ្យអ្នកដាក់ចំនួនឬនៅសាលារបស់អ្នក។", @@ -3855,7 +3867,7 @@ "-1956787775": "តម្លៃជញ្ជាំង:", "-1513281069": "របារ 2", "-390994177": "ត្រូវតែចាប់ពី {{min}} ទៅដល់ {{max}}", - "-1231210510": "ចំនុច Tick", + "-1231210510": "ចំណុច Tick", "-2055106024": "ប្ដូរច្បាប់របស់ដំណើរការគឺចូលឡើងគ្រាន់តែកំពុងសម្រេច និងការកំណត់ព័ត៌មានសំណេរសោះវាយប្រហាក្រាដោយលើព្រឹត្តិការណ៍ ។", "-1012793015": "ពេលបញ្ចប់", "-1804019534": "ផុតកំណត់: {{date}}", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% នៃ (<1/> * {{multiplier}})", "-732683018": "នៅពេលដែលចំណេញរបស់អ្នកឈានដល់ឬលើសពីចំនួននេះ ការជួញដូររបស់អ្នកនឹងត្រូវបិទដោយស្វ័យប្រវត្តិ។", "-989393637": "Take Profit មិនអាចកែតម្រូវបានទេបន្ទាប់ពីកិច្ចសន្យារបស់អ្នកចាប់ផ្តើម។", - "-339236213": "កម្រិតជនជាតិ", "-194424366": "លើក្រោម", "-857660728": "ការតម្លៃរបស់កាត់បំណង់", "-1346404690": "អ្នកទទួលបានការទូទាត់នៅពេលផុតកំណត់ ប្រសិនបើតម្លៃសារធាតុបច្ចុប្បន្នមិនពេលឬលើសឧបសគ្គទេនៅទូទាំងរយៈពេលកុងត្រា។ ម្យ៉ាងវិញទៀត កុងត្រារបស់អ្នកនឹងត្រូវបានបញ្ចប់មុនពេល។", @@ -3968,23 +3979,23 @@ "-1150972084": "ទីតាំងក្រងយោនតឺម៉ឺត្រែលក្ខណៈ", "-276935417": "ប្លុកនេះត្រូវបានប្រើដើម្បីកំណត់ ប្រសិនបើតម្លៃទីផ្សារផ្លាស់ប្តូរតាមទិសដៅដែលបានជ្រើស ឬមិន។ វាផ្ដល់តម្លៃ \"True\" ឬ \"False\"។", "-764931948": "ក្នុមជាបញ្ជីធាតុទាំងអស់ដើម្បីស្រាយស្រួលរកឃើញលំដាប់ទី {{ input_number }}", - "-924607337": "ត្រឡប់មកវិញនៃកំនត់ចុងក្រោយនៃចុះ​ដំណើរការបច្ចុប្បន្នចុះបញ្ជីនៅពេលថ្ងៃថ្មី។", - "-560033550": "ផ្តល់ការបង្ហាញបញ្ជីនៃតម្លៃចុះបញ្ជីចុងក្រោយរបស់ ១០០០លំនាំនៃតម្លៃរបស់បច្ចុប្បន្ន។", + "-924607337": "ប្រគល់តួលេខចុងក្រោយនៃចំណុច Tick ចុងក្រោយបំផុត", + "-560033550": "ប្រគល់បញ្ជីតួលេខចុងក្រោយនៃតម្លៃចំណុច Tick 1000 ថ្មីៗ", "-74062476": "ធ្វើបញ្ជីនៃតម្លៃ {{ candle_property }} ក្នុងបញ្ជីខ្លួនរៃបញ្ជីជាមួយនិងពេលវេលារបស់វាមានចំនួនពីរ។ តម្លៃចន្លោះស្ថិតនៅចន្លោះចន្លោះ: {{ candle_interval_type }}", "-1556495906": "ប្រអប់នេះផ្តល់ការគ្រប់គ្រងតម្លៃជាផ្លូវពីបញ្ជីភាគច្រើនតម្លៃពេញនិយមរបស់កាំបិតប្រើការជ្រើសរើសចម្លងថ្ងៃពេញ។", "-166816850": "បង្កើតបញ្ជីនៃតម្លៃចម្បងរបស់កាំបិតប្រើកំណត់ទីតាំង (១)", "-1174859923": "អានតម្លៃកាប្បូរផ្តូលកម្ពស់", "-1972165119": "អានតម្លៃក្រោមទីតាំងក្រងនៅពេល (១)", - "-1956100732": "អ្នកអាចប្រើប្រាស់ប្រអប់នេះដើម្បីវិភាគរៀន Lima ព្និត្រុង មិនស្គាល់ពីការលក់របស់អ្នក", - "-443243232": "មាតិកាសរខ្ពស់ក្នុងប្រអប់នេះត្រូវបានទូទាត់អោយលើចុះកិច្ចកោងរបស់អ្នក។ ដាក់ប្រអប់នេះច្រើនជាងនេះសូមបង្អប់ខាងក្រោមគ្រាន់តែនៅក្នុងប្រអប់ឫចុច", - "-641399277": "ចុងក្រោយនៃការជំនួយតម្លៃចុះក្រោយរបស់អ្នក", - "-1628954567": "តម្លៃនៃចន្លើយពាក្យកង់ចុលចិត្តកម្មរបស់លេចធ្មប់", - "-1332756793": "ប្រអប់នេះផ្តល់អ្នកតម្លៃចុះចម្បងរបស់អាយអេ។", - "-2134440920": "តម្លៃចុះដោយ​តម្លៃ Tick ចុះចម្បង", - "-1466340125": "តម្លៃចុះក្រោម", - "-467913286": "ការពន្យល់អំពីតម្លៃចុះនៃតម្លៃចុះ", - "-785831237": "ប្រអប់នេះផ្តល់ការគ្រប់គ្រងតម្លៃកាប្បូគំរូ (١٠٠٠)", - "-1546430304": "ការគ្រប់គ្រងតម្លៃចុះចម្បងរបស់ប្រអប់នេះពេលយកគេនឹងតម្លៃនៅក្នុងតម្លៃបំពេញ ១០០០ចំហ៊្ស្បីត្រូវការ។", + "-1956100732": "អ្នកអាចប្រើប្លុកនេះដើម្បីវិភាគចំណុច Tick ដោយមិនគិតពីការជួញដូររបស់អ្នក", + "-443243232": "មាតិកានៃប្លុកនេះត្រូវបានហៅលើគ្រប់ចំណុច Tick ។ សូមដាក់ប្លុកនេះខាងក្រៅប្លុកឫសដើមណាមួយ។", + "-641399277": "ចំណុច Tick ចុងក្រោយ", + "-1628954567": "ប្រគល់តម្លៃនៃចំណុច Tick ចុងក្រោយ", + "-1332756793": "ប្លុកនេះផ្តល់តម្លៃនៃចំណុច Tick ចុងក្រោយឱ្យអ្នក।", + "-2134440920": "ខ្សែអក្សរចំណុច Tick ចុងក្រោយ", + "-1466340125": "តម្លៃចំណុច Tick", + "-467913286": "ការពិពណ៌នាតម្លៃចំណុច Tick", + "-785831237": "ប្លុកនេះផ្តល់បញ្ជីនៃតម្លៃចំណុច Tick 1000 ចុងក្រោយឱ្យអ្នក។", + "-1546430304": "ការពិពណ៌នាខ្សែអក្សរបញ្ជីចំណុច Tick", "-1788626968": "ប្រតិបត្តក្នុងករណីមួយប្រកាណផ្លេឈមុខគឺការតាមដានក្រុមដិបទខ្មែរ", "-436010611": "ធ្វើបញ្ជីនៃតម្លៃ {{ candle_property }} ពីបញ្ជីវេលារបស់សម្ភាពទាំងមូល {{ candle_list }}", "-1384340453": "ប្រអប់នេះផ្តល់ការគ្រប់គ្រងតម្លៃជាផ្លូវពីបញ្ជីដោយការបណ្តុំ", @@ -4177,6 +4188,8 @@ "-3423966": "Take profit<0 />Stop loss", "-1131753095": "មិនមានព័ត៌មានលម្អិតនៃកិច្ចការប្រកបាននោះទេ។ យើងកំពុងធ្វើការធ្វើឱ្យមានលទ្ធភាពថ្មីវិញ។", "-360975483": "លោកពុំបានធ្វើការអ្នកប្រើនៃប្រតិបត្តិការនេះក្នុងរយៈពេលនេះ។", + "-2082644096": "ភាគហ៊ុនបច្ចុប្បន្ន", + "-1942828391": "ប្រាក់បង់អតិបរមា", "-335816381": "បញ្ចប់ក្រោយឬចាប់អស់", "-1789807039": "ហត្រចាស់-ហត្រចាំក្រោយ", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "ចំណេញ/ខាតដែលអាចកើត:", "-1511825574": "ចំណូល/ការបាត់បង់:", "-499175967": "តម្លៃកូដកម្ម", - "-2082644096": "ភាគហ៊ុនបច្ចុប្បន្ន", "-706219815": "តម្លៃចង្អុលបង្ហាញ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "សន្ទស្សន៍ Crash 500", "-9704319": "សន្ទស្សន៍ Crash 1000", "-465860988": "សន្ទស្សន៍ Bull Market", - "-390528194": "សន្ទស្សន៍ Step", "-280323742": "កន្ត្រក EUR", "-563812039": "សន្ទស្សន៍ Volatility 10 (1s)", "-82971929": "សន្ទស្សន៍ Volatility 25 (1s)", @@ -4276,8 +4287,8 @@ "-727588232": "ឯកសាររបស់អ្នកមើលទៅជាចម្លងស្កេន ដែលមានសញ្ញា ឬអត្ថបទដែលមិនគួរមាននៅលើឯកសាររបស់អ្នក។", "-1435064387": "ឯកសាររបស់អ្នកហាក់ដូចជាច្បាប់ចម្លងដែលបានបោះពុម្ព។", "-624316211": "ឯកសាររបស់អ្នកហាក់ដូចជារូបថតពីអេក្រង់ឧបករណ៍។", - "-1714959941": "ការបង្ហាញតារាងនេះគ្មានអវិជ្ជមានសម្រាប់កិច្ចប្រការទងនៅក្នុងពេលស្តុក។", - "-1254554534": "សូមប្ដូររយៈពេលតារាងទំហំទៅតារាងកសិករលើនិងការប្រើប្រាស់អ្វីទាំងអស់ច្បាស់ល្អជាង។", + "-1714959941": "ការបង្ហាញក្រាហ្វនេះមិនល្អសម្រាប់កិច្ចសន្យាចំណុច Tick ទេ", + "-1254554534": "សូមផ្លាស់ប្តូររយៈពេលនៃក្រាហ្វទៅចំណុច Tick ដើម្បីទទួលបានបទពិសោធន៍ជួញដូរល្អប្រសើរជាងមុន។", "-1658230823": "កិច្ចប្រភេទបានលក់សម្រាប់ <0 />។", "-1905867404": "កិច្ចប្បល់បង្ហាញបានបញ្ចប់" } \ No newline at end of file diff --git a/packages/translations/src/translations/ko.json b/packages/translations/src/translations/ko.json index 45ddbb803b0a..c3c308cca868 100644 --- a/packages/translations/src/translations/ko.json +++ b/packages/translations/src/translations/ko.json @@ -512,6 +512,7 @@ "538017420": "0.5 핍", "538042340": "원칙 2: 손실 거래 후 성공 거래가 이어질 때만 지분이 증가합니다", "538228086": "Close-Low", + "539352212": "틱 {{current_tick}}", "541650045": "{{platform}} 비밀번호 관리", "541700024": "먼저, 귀하의 운전면허증 번호와 만료일을 입력하세요.", "542038694": "{{label}} 에 대해서 오직 문자, 숫자, 띄어쓰기, 밑줄 및 하이픈만 허용됩니다.", @@ -822,6 +823,7 @@ "839805709": "귀하를 문제없이 인증하기 위해서, 우리는 더 나은 사진이 필요합니다", "841543189": "블록체인에 대한 거래 확인하기", "843333337": "입금만 하실 수 있습니다. 인출 잠금을 해제하기 위해서는 <0>재무 평가를 완료하시기 바랍니다.", + "845106422": "마지막 숫자 예측", "845304111": "느린 EMA 기간 {{ input_number }}", "848083350": "귀하의 지불금은 <0>포인트당 지불금에 최종 가격과 행사 가격의 차이를 곱한 값과 같습니다. 지불금이 초기 예치금보다 높은 경우에만 수익을 얻게 됩니다.", "850582774": "귀하의 인적 정보를 업데이트 하시기 바랍니다", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0>귀하의 이메일에서 이 거래의 요약을 확인하실 수 있습니다.", "938947787": "출금 {{currency}}", "938988777": "높은 장벽", + "942015028": "500단계 색인", "944499219": "최대 오픈 포지션", "945532698": "계약이 판매되었습니다", "945753712": "트레이더 허브로 돌아가기", @@ -1105,6 +1108,7 @@ "1104912023": "완료되지 않은 인증", "1107474660": "주소 증명서를 제출하세요", "1107555942": "으로", + "1109182113": "참고: 거래 취소는 멀티플라이어의 변동성 지수에 대해서만 가능합니다.", "1109217274": "성공!", "1110102997": "명세서", "1111743543": "손절매(승수)", @@ -1551,6 +1555,7 @@ "1542742708": "합성수지, 외환, 주식, 주가지수, 원자재 및 암호화폐", "1544642951": "만약 귀하께서 \"Only Ups\"를 선택하시면, 연속적인 틱들이 엔트리 스팟 이후 성공적으로 오를 경우 귀하께서 지불금을 받습니다. 만약 그 어떠한 틱이라도 떨어지거나 또는 이전의 틱과 동일하다면 지불금은 없습니다.", "1547148381": "파일이 너무 큽니다 (최대 8MB까지만 허용됩니다). 다른 파일을 업로드하세요.", + "1548185597": "200단계 색인", "1549098835": "인출된 총 금액", "1551172020": "AUD 바스켓", "1551689907": "<0/><1>{{platform}} {{type}} {{from_account}} 계정을 업그레이드하여 거래 경험을 향상시키세요.", @@ -1686,6 +1691,7 @@ "1692912479": "파생 MT5, 파생 X", "1693614409": "시작 시간", "1694517345": "새로운 이메일 주소를 입력하세요", + "1694888104": "당사 웹사이트에서 제공하는 상품은 잠재적 손실 위험이 큰 복합 파생 상품입니다. CFD는 레버리지로 인해 손실이 급속히 커질 위험이 높은 복잡한 상품입니다. 본 업체에서 CFD를 거래하는 개인 투자자 계좌의 70.78% 가 손실을 보고 있습니다. 본인이 이러한 상품의 작동 방식을 이해하고 있는지, 높은 손실 위험을 감수할 수 있는지 고려해야 합니다.", "1696190747": "트레이딩은 본질적으로 위험을 수반하며, 시장 변동성 및 기타 예상치 못한 변수를 포함한 다양한 요인으로 인해 실제 수익이 변동될 수 있습니다. 따라서 거래에 참여하기 전에 주의를 기울이고 철저한 조사를 수행하시기 바랍니다.", "1698624570": "2. 히트 Ok 확인.", "1699606318": "문서 업로드 한도에 도달했습니다.", @@ -1696,6 +1702,7 @@ "1703712522": "지불금은 핍당 지불금에 최종 가격과 행사 가격의 차이 <0>핍 단위로 를 곱한 금액과 같습니다.", "1704656659": "CFD 거래 경험이 얼마나 있습니까?", "1707264798": "파생 계좌에 입금된 자금을 확인할 수 없는 이유는 무엇인가요?", + "1707758392": "100단계 색인", "1708413635": "귀하의 {{currency_name}} ({{currency}}) 계좌", "1709859601": "출구부 시간", "1711013665": "예상되는 계좌 턴오버", @@ -2014,6 +2021,7 @@ "1990331072": "소유권 증명", "1990735316": "상승 일치", "1991055223": "좋아하는 자산의 시장 가격을 확인하세요.", + "1991448657": "귀하의 세금 식별번호를 모르시나요? <0>여기를 클릭하셔서 더 알아보세요.", "1991524207": "Jump 100 지수", "1994023526": "귀하께서 입력하신 이메일 주소에는 오류 또는 오타가 있습니다 (많은 분들에게 이러한 현상이 있을 수 있습니다).", "1994558521": "해당 플랫폼들은 사용자 친화적이지 않습니다.", @@ -2389,6 +2397,7 @@ "-138380129": "총 인출 허용금액", "-1502578110": "귀하의 계좌가 인증 완료되었으며 인출한도가 풀렸습니다.", "-506122621": "지금 잠시 시간을 내어 정보를 업데이트해 주세요.", + "-1106259572": "납세자 식별 번호를 모르시나요? <1 /><0>여기를 클릭하여 자세히 알아보세요.", "-252665911": "출생지{{required}}", "-859814496": "세금 거주지{{required}}", "-237940902": "세금 식별 번호{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "송금", "-744999940": "Deriv 계좌", "-766186087": "{{trustScore}} 5점 만점에 5점( {{numberOfReviews}} 리뷰 기준", - "-1265635180": "당사 웹사이트에서 제공하는 상품은 잠재적 손실 위험이 큰 복합 파생 상품입니다. CFD는 레버리지로 인해 손실이 급속히 커질 위험이 높은 복잡한 상품입니다. 본 업체에서 CFD를 거래하는 개인 투자자 계좌의 67.28% 가 손실을 보고 있습니다. 본인이 이러한 상품의 작동 방식을 이해하고 있는지, 높은 손실 위험을 감수할 수 있는지 고려해야 합니다.", "-1870909526": "우리의 서버가 주소를 검색할 수 없습니다.", "-582721696": "현재 허용되는 인출금액은 {{format_min_withdraw_amount}} 에서 {{format_max_withdraw_amount}} {{currency}} 입니다", "-1975494965": "캐셔", @@ -3763,8 +3771,14 @@ "-1331298683": "이익 실현은 진행 중인 누적 계약에 대해 조정할 수 없습니다.", "-509210647": "다른 것을 검색해 보세요.", "-99964540": "당신의 이익이 설정한 금액에 도달하거나 초과하는 경우 거래가 자동으로 종료됩니다.", - "-1221049974": "최종 가격", + "-542594338": "최대 지급금", + "-1622900200": "활성화됨", "-2131851017": "성장률", + "-339236213": "Multiplier", + "-1396928673": "위험 관리", + "-1358367903": "지분", + "-1853307892": "거래 설정", + "-1221049974": "최종 가격", "-843831637": "스톱로스", "-583023237": "이는 현재 시장 상황(예: 현재 현물)을 기준으로 한 계약의 재판매 가치이며, 추가 수수료가 있는 경우 이를 포함합니다.", "-1476381873": "서버에서 거래 청산을 처리할 때의 최신 자산 가격입니다.", @@ -3845,8 +3859,6 @@ "-700280380": "거래 취소 비용", "-8998663": "숫자: {{last_digit}} ", "-718750246": "현재 현물 가격이 이전 현물 가격에서 ±{{tick_size_barrier_percentage}} 이내로 유지되는 한, 귀하의 지분은 틱당 {{growth_rate}}% 씩 증가합니다.", - "-1358367903": "지분", - "-542594338": "최대 지급금", "-690963898": "지급액이 이 금액에 도달하면 계약이 자동으로 종료됩니다.", "-511541916": "이 틱 수에 도달하면 계약이 자동으로 종료됩니다.", "-438655760": "<0>참고: 언제든지 거래를 청산할 수 있습니다. 슬리피지 위험에 유의하세요.", @@ -3865,7 +3877,6 @@ "-1686280757": "(<1/> * {{multiplier}}) 의 <0>{{commission_percentage}}%", "-732683018": "수익이 이 금액에 도달하거나 초과하면 거래가 자동으로 청산됩니다.", "-989393637": "이익 실현은 계약이 시작된 후에는 조정할 수 없습니다.", - "-339236213": "Multiplier", "-194424366": "이상", "-857660728": "행사 가격", "-1346404690": "계약 기간 동안 현물 가격이 장벽에 닿거나 위반하지 않으면 만기 시 지급금을 받습니다. 그렇지 않으면 계약이 조기 종료됩니다.", @@ -4177,6 +4188,8 @@ "-3423966": "이윤 취득<0 />손실제한", "-1131753095": "현재 {{trade_type_name}} 계약의 세부 사항을 확인할 수 없습니다. 곧 확인 가능하도록 작업 중에 있습니다.", "-360975483": "귀하께서는 이 기간동안 이 종류의 거래를 하지 않으셨습니다.", + "-2082644096": "현재 지분", + "-1942828391": "최대 지급액", "-335816381": "내부 종료/외부 종료", "-1789807039": "Asian Up/Asian Down", "-558031309": "높은 틱/낮은 틱", @@ -4192,7 +4205,6 @@ "-726626679": "잠재적인 이윤/손실:", "-1511825574": "이윤/손실:", "-499175967": "행사 가격", - "-2082644096": "현재 지분", "-706219815": "참고 가격", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Crash 500 지수", "-9704319": "Crash 1000 지수", "-465860988": "Bull Market 지수", - "-390528194": "Step 지수", "-280323742": "EUR 바스켓", "-563812039": "Volatility 10 (1s) 지수", "-82971929": "Volatility 25 (1초) 지수", diff --git a/packages/translations/src/translations/mn.json b/packages/translations/src/translations/mn.json index ab0d6476e728..59c5bc4a2d6c 100644 --- a/packages/translations/src/translations/mn.json +++ b/packages/translations/src/translations/mn.json @@ -512,6 +512,7 @@ "538017420": "0.5 пипс", "538042340": "зарчим 2: Алдагдалтай арилжаа хийхэд л хувьцаа нэмэгддэгамжилттай арилжаа хийхэд л нэмэгдэнэ", "538228086": "Close-Low", + "539352212": "Шалз {{current_tick}}", "541650045": "{{platform}} нууц үгийг удирдах", "541700024": "Эхлээд жолооны үнэмлэхний дугаар болон хугацаа дуусах хугацааг оруулна уу.", "542038694": "Зөвхөн үсэг, тоо, зай, доогуур үзүүлэлт, тэглүүр зэргийг {{label}}хувьд зөвшөөрнө.", @@ -822,6 +823,7 @@ "839805709": "Таныг жигд баталгаажуулахын тулд бидэнд илүү сайн зураг хэрэгтэй", "841543189": "Блокчейн дээрх гүйлгээг үзэх", "843333337": "Та зөвхөн хадгаламж хийж болно. Гараах төлбөрийг <0>нээхийн тулд санхүүгийн үнэл гээг бөглөнө үү.", + "845106422": "Сүүлийн оронтой таамгийг", "845304111": "Удаан EMA хугацаа {{ input_number }}", "848083350": "Таны төлбөр нь эцсийн үнэ болон ажил хаял <0>тын үнийн хоорон дох зөрүүгээр үржүүлсэн цэгт ногдох төлбөртэй тэнцүү байна. Таны төлбөр таны анхны хувьцаанаас өндөр байгаа тохиолдолд л ашиг олох болно.", "850582774": "Хувийн мэдээллээ шинэчилнэ үү", @@ -916,6 +918,7 @@ "938500877": "{{ text }}<0> Та энэ гүйлгээний хураангуйг өөрийн имэйлээр үзэх боломжтой.", "938947787": "Буцаан авах {{currency}}", "938988777": "Өндөр саад бэрхшээл", + "942015028": "Алхам 500 индекс", "944499219": "Макс. нээлттэй албан тушаалууд", "945532698": "Гэрээ зарсан", "945753712": "Худалдаачдын төв рүү буцах", @@ -1105,6 +1108,7 @@ "1104912023": "Баталгаажуулалт хүлээж байна", "1107474660": "Хаягийн нотолгоо ирүүлнэ үү", "1107555942": "Уруу", + "1109182113": "Тайлбар: Хэлэлцээрийг цуцлах нь зөвхөн Үржүүлэгч дээрх хэлбэлзлийн индексүүдийн хувьд боломжтой.", "1109217274": "Амжилт!", "1110102997": "Мэдэгдэл", "1111743543": "Алдагдлыг зогсоох (үржүүлэгч)", @@ -1551,6 +1555,7 @@ "1542742708": "Синтетик, Форекс, Хувьцаа, Хөрөнгийн индекс, Түүхий эд, Криптовалют", "1544642951": "Хэрэв та “Зөвхөн Ups” сонгосон бол, Хэрэв та дараалсан хачиг орох спот дараа дараалан өсөх бол төлбөрийг ялах. Ямар нэгэн шалз унасан эсвэл өмнөх хачгийн аль нэгэнтэй тэнцүү бол төлбөр төлөгдөхгүй.", "1547148381": "Энэ файл хэтэрхий том (зөвхөн 8MB хүртэл зөвшөөрөгдсөн). Өөр файл байршуулна уу.", + "1548185597": "Алхам 200 индекс", "1549098835": "Нийт татан авчээ", "1551172020": "AUD сагс", "1551689907": "<0/><1>{{platform}} {{type}} {{from_account}} данс (ууд) -аа шинэчлэх замаар арилжааны туршлагаа сайжруулна уу.", @@ -1686,6 +1691,7 @@ "1692912479": "Дерив MT5, Дерив X", "1693614409": "Эхлэх цаг", "1694517345": "Шинэ и-мэйл хаяг оруулна уу", + "1694888104": "Манай вэбсайт дээр санал болгож буй бүтээгдэхүүнүүд нь болзошгүй алдагдал ихээхэн эрсдэлийг дагуулдаг нарийн төвөгтэй дериватив бүтээгдэхүүн юм. CFD нь хөшүүргийн улмаас хурдацтай мөнгө алдах өндөр эрсдэлтэй нарийн төвөгтэй хэрэгсэл юм. 70.78% нь жижиглэнгийн хөрөнгө оруулагчийн дансууд энэ үйлчилгээ үзүүлэгчтэй CFD арилжаалахдаа мөнгө алддаг. Та эдгээр бүтээгдэхүүн хэрхэн ажилладаг, та мөнгөө алдах өндөр эрсдэлийг авч төлж чадах эсэхийг ойлгож байгаа эсэхийг авч үзэх хэрэгтэй.", "1696190747": "Арилжаа хийх нь угаасаа эрсдэлтэй бөгөөд бодит ашиг нь янз бүрийн хүчин зүйлс, түүний дотор зах зээлийн хэлбэлзэл болон бусад урьдчилан таамаглаагүй хувьсагчуудаас шалтгаалан хэлбэлзэж болно. Иймээс аливаа арилжааны үйл ажиллагаанд оролцохоосоо өмнө болгоомжтой хандаж, нарийн судалгаа хийгээрэй.", "1698624570": "2. Баталгаажуулахын тулд Ok дээр дарна уу.", "1699606318": "Та баримт бичгээ байршуулах хязгаарт хүрсэн.", @@ -1696,6 +1702,7 @@ "1703712522": "Таны төлбөр нь ялгаагаар үржүүлсэн pip тутамд төлбөртэй тэнцүү, <0>пипээр, эцсийн үнэ болон ажил хаялтын үнийн хооронд.", "1704656659": "CFD арилжаагаар хичнээн туршлагатай вэ?", "1707264798": "Би яагаад Deriv дансандаа байршуулсан хөрөнгийг харж чадахгүй байна вэ?", + "1707758392": "Алхам 100 индекс", "1708413635": "Таны {{currency_name}} ({{currency}}) дансанд зориулав", "1709859601": "Гарах цэгийн цаг", "1711013665": "Хүлээгдэж буй орлого", @@ -2014,6 +2021,7 @@ "1990331072": "Эзэмшлийн нотолгоо", "1990735316": "Өсөх тэнцүү", "1991055223": "Өөрийн дуртай хөрөнгийн зах зээлийн үнийг үзээрэй.", + "1991448657": "Татварын үнэмлэхний дугаараа мэдэхгүй байна уу? Илүү <0>ихийг мэдэхийн тулд энд дарна уу.", "1991524207": "Jump 100 Индекс", "1994023526": "Таны оруулсан имэйл хаяг нь алдаатай байсан (бидэнд хамгийн их тохиолддог).", "1994558521": "Платформууд нь хэрэглэгчдэд ээлтэй биш юм.", @@ -2389,6 +2397,7 @@ "-138380129": "Нийт татгалзах зөвшөөрөгдсөн", "-1502578110": "Таны данс бүрэн баталгаажсан бөгөөд таны татан авалтын лимитийг идэвхгүй болгосон.", "-506122621": "Одоо мэдээллээ шинэчлэхийн тулд хэсэг зуур зарцуулна уу.", + "-1106259572": "Татварын үнэмлэхний дугаараа мэдэхгүй байна уу? <1 />Илүү <0>ихийг мэдэхийн тулд энд дарна уу.", "-252665911": "Төрсөн газар{{required}}", "-859814496": "Татварын оршин суух{{required}}", "-237940902": "Татварын үнэмлэх дугаар{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "Шилжүүлэлт", "-744999940": "Deriv данс", "-766186087": "{{numberOfReviews}} тойм дээр суурилсан {{trustScore}} нь 5-аас", - "-1265635180": "Манай вэбсайт дээр санал болгож буй бүтээгдэхүүнүүд нь болзошгүй алдагдал ихээхэн эрсдэлийг дагуулдаг нарийн төвөгтэй дериватив бүтээгдэхүүн юм. CFD нь хөшүүргийн улмаас хурдацтай мөнгө алдах өндөр эрсдэлтэй нарийн төвөгтэй хэрэгсэл юм. 67.28% нь жижиглэнгийн хөрөнгө оруулагчийн дансууд энэ үйлчилгээ үзүүлэгчтэй CFD арилжаалахдаа мөнгө алддаг. Та эдгээр бүтээгдэхүүн хэрхэн ажилладаг, та мөнгөө алдах өндөр эрсдэлийг авч төлж чадах эсэхийг ойлгож байгаа эсэхийг авч үзэх хэрэгтэй.", "-1870909526": "Манай сервер хаягийг авч чадахгүй.", "-582721696": "Одоогийн зөвшөөрөгдсөн татгалзах хэмжээ нь {{format_min_withdraw_amount}} нь {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "Касс", @@ -3763,8 +3771,14 @@ "-1331298683": "Take Profit-ыг одоо байгаа аккумляторын гэрээнд тохируулах боломжгүй.", "-509210647": "Өөр зүйл хайж үзээрэй.", "-99964540": "Таны ашиг тогтоосон хэмжээгээр хүрэх эсвэл түүнээс хэтэрсэн тохиолдолд таны худалдаа автоматаар хаагдах болно.", - "-1221049974": "Эцсийн үнэ", + "-542594338": "Макс. төлбөр", + "-1622900200": "идэвхжүүлсэн", "-2131851017": "Өсөлтийн үзүүлэлт", + "-339236213": "Multipliers", + "-1396928673": "Эрсдлийн менежмент", + "-1358367903": "Stake", + "-1853307892": "Худалдаагаа тохируулна уу", + "-1221049974": "Эцсийн үнэ", "-843831637": "Алдагдлыг зогсоох", "-583023237": "Энэ нь зонхилох зах зээлийн нөхцөл байдал (жишээ нь, одоогийн спот) дээр үндэслэн таны гэрээний дахин борлуулалтын үнэ цэнэ бөгөөд хэрэв байгаа бол нэмэлт шимтгэл орно.", "-1476381873": "Худалдааны хаалтыг манай серверүүдээр боловсруулсан үед хамгийн сүүлийн үеийн хөрөнгийн үнэ.", @@ -3845,8 +3859,6 @@ "-700280380": "Гэрээ цуцлах. хураамж", "-8998663": "Цифр: {{last_digit}} ", "-718750246": "Одоогийн спот үнэ өмнөх спот үнээс ±{{tick_size_barrier_percentage}} дотор үлдсэн цагт таны хувьцаа нэг шалк тутамд {{growth_rate}}% -ээр өсөх болно.", - "-1358367903": "Stake", - "-542594338": "Макс. төлбөр", "-690963898": "Таны төлбөр энэ хэмжээндээ хүрэх үед таны гэрээ автоматаар хаагдах болно.", "-511541916": "Энэ тооны хачигт хүрсний дараа таны гэрээ автоматаар хаагдах болно.", "-438655760": "<0>Тайлбар: Та хэзээ ч худалдаагаа хааж болно. Гулсалтын эрсдэлийг мэдэж аваарай.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% нь (<1/>* {{multiplier}})", "-732683018": "Таны ашиг энэ хэмжээгээр хүрэх эсвэл давсан тохиолдолд таны худалдаа автоматаар хаагдах болно.", "-989393637": "Ашиг авах нь таны гэрээ эхэлсний дараа тохируулах боломжгүй.", - "-339236213": "Multipliers", "-194424366": "Дээрх", "-857660728": "Ажил хаялтын үнэ", "-1346404690": "Гэрээний хугацааны туршид спот үнэ хэзээ ч хүрч, саад тотгорыг зөрчсөн тохиолдолд та хугацаа дууссаны дараа төлбөр авах болно. Үгүй бол таны гэрээ эрт дуусгавар болно.", @@ -4177,6 +4188,8 @@ "-3423966": "Ашиг авах Алда <0 /> гдлыг зогсоо", "-1131753095": "{{trade_type_name}} гэрээний дэлгэрэнгүй мэдээлэл одоогоор байхгүй байна. Бид тэдгээрийг удахгүй бэлэн болгохоор ажиллаж байна.", "-360975483": "Та энэ хугацаанд ийм төрлийн гүйлгээ хийгээгүй.", + "-2082644096": "Одоогийн хувьцаа", + "-1942828391": "Макс төлбөр", "-335816381": "Дуусдаг/дуусна", "-1789807039": "Азийн дээш/Азийн доош", "-558031309": "Өндөр хачиг/Бага хачиг", @@ -4192,7 +4205,6 @@ "-726626679": "Боломжит ашиг/алдагдал:", "-1511825574": "Аш/Алдагдал:", "-499175967": "Strike Price", - "-2082644096": "Одоогийн хувьцаа", "-706219815": "Үндсэн үнэ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Crash 500 Индекс", "-9704319": "Crash 1000 Индекс", "-465860988": "Bull Market Индекс", - "-390528194": "Step Индексүүд", "-280323742": "EUR сагс", "-563812039": "Volatility 10 (1s) Индекс", "-82971929": "Volatility 25 (1s) Индекс", diff --git a/packages/translations/src/translations/pl.json b/packages/translations/src/translations/pl.json index 2477f4d63926..cd539e546514 100644 --- a/packages/translations/src/translations/pl.json +++ b/packages/translations/src/translations/pl.json @@ -512,6 +512,7 @@ "538017420": "0,5 pipsa", "538042340": "Zasada 2: Stawka wzrasta tylko wtedy, gdy po transakcji stratowej następuje udana transakcja", "538228086": "Close-Low", + "539352212": "Najmniejsza zmiana ceny {{current_tick}}", "541650045": "Zarządzaj hasłem {{platform}}", "541700024": "Najpierw wprowadź numer swojego prawa jazdy i datę ważności.", "542038694": "W przypadku {{label}} akceptowane są wyłącznie litery, cyfry, znak spacji i podkreślenia oraz łącznik.", @@ -822,6 +823,7 @@ "839805709": "Aby zweryfikować Twoją tożsamość, potrzebujemy lepszego zdjęcia", "841543189": "Wyświetl transakcję na Blockchain", "843333337": "Możesz dokonywać tylko wpłat. Ukończ <0>ocenę finansową, aby odblokować wypłaty.", + "845106422": "Przewidywanie ostatniej cyfry", "845304111": "Okres wolnej wykładniczej średniej kroczącej {{ input_number }}", "848083350": "Państwa wypłata jest równa <0>wypłacie za punkt pomnożonej przez różnicę między ceną końcową a ceną wykonania. Zysk osiągną Państwo tylko wtedy, gdy wypłata będzie wyższa niż początkowa stawka.", "850582774": "Zaktualizuj swoje dane osobowe", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0>Podsumowanie tej transakcji można znaleźć w wiadomości e-mail.", "938947787": "Wycofanie {{currency}}", "938988777": "Górny limit", + "942015028": "Indeks kroku 500", "944499219": "Maks. liczba otwartych pozycji", "945532698": "Sprzedane kontrakty", "945753712": "Powrót do Trader's Hub", @@ -1105,6 +1108,7 @@ "1104912023": "Oczekuje na weryfikację", "1107474660": "Dostarcz dowód adresu", "1107555942": "Do", + "1109182113": "Uwaga: anulowanie transakcji jest dostępne tylko dla wskaźników zmienności na multiplikatorach.", "1109217274": "Udało się!", "1110102997": "Wyciąg", "1111743543": "Stop loss (mnożnik)", @@ -1551,6 +1555,7 @@ "1542742708": "Syntetyki, Forex, Akcje, Indeksy giełdowe, Towary i Kryptowaluty", "1544642951": "Jeśli wybierzesz \"Only Ups\", zyskasz wygraną, gdy następujące po sobie ticki są zmianami w górę po punkcie wejściowym. Wypłata nie przysługuje, jeśli cena spada lub jest równa dowolnemu poprzedniemu tickowi.", "1547148381": "Ten plik jest zbyt duży (dozwolona wielkość pliku do 8 MB). Prześlij inny plik.", + "1548185597": "Indeks kroku 200", "1549098835": "Wypłaty ogółem", "1551172020": "Koszyk AUD", "1551689907": "Zwiększ swoje doświadczenie handlowe, uaktu <0/><1>{{platform}} {{type}} {{from_account}} .", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Godzina rozpoczęcia", "1694517345": "Wprowadź nowy adres e-mail", + "1694888104": "Produkty oferowane na naszej stronie internetowej to złożone produkty pochodne, które niosą ze sobą znaczne ryzyko potencjalnej straty. Kontrakty CFD to złożone instrumenty o wysokim ryzyku szybkiej utraty pieniędzy z powodu dźwigni finansowej. 70,78% kont inwestorów detalicznych traci pieniądze podczas handlu kontraktami CFD u tego dostawcy. Powinieneś rozważyć, czy rozumiesz, jak działają te produkty i czy możesz sobie pozwolić na podjęcie wysokiego ryzyka utraty pieniędzy.", "1696190747": "Handel z natury wiąże się z ryzykiem, a rzeczywiste zyski mogą się wahać z powodu różnych czynników, w tym zmienności rynku i innych nieprzewidzianych zmiennych. W związku z tym należy zachować ostrożność i przeprowadzić dokładne badania przed podjęciem jakichkolwiek działań handlowych.", "1698624570": "2. Uderzenie Ok , aby potwierdzić.", "1699606318": "Osiągnąłeś limit przesyłania dokumentów.", @@ -1696,6 +1702,7 @@ "1703712522": "Państwa wypłata jest równa wypłacie za pips pomnożonej przez różnicę <0>w pipsach między ceną końcową a ceną wykonania.", "1704656659": "Ile masz doświadczenia w inwestowaniu w kontrakty CFD?", "1707264798": "Dlaczego nie widzę wpłaconych środków na moim koncie Deriv?", + "1707758392": "Indeks kroku 100", "1708413635": "Dla Twojego konta {{currency_name}} ({{currency}})", "1709859601": "Czas punktu wyjściowego", "1711013665": "Przewidywany obrót na koncie", @@ -2014,6 +2021,7 @@ "1990331072": "Dowód własności", "1990735316": "Wzrost Równa się", "1991055223": "Zobacz cenę rynkową swoich ulubionych aktywów.", + "1991448657": "Nie znasz swojego numeru identyfikacji podatkowej? Kliknij <0>tutaj, aby uzyskać więcej informacji.", "1991524207": "Indeks Jump 100", "1994023526": "Wprowadzony przez Ciebie adres e-mail zawiera błąd lub literówkę (zdarza się najlepszym).", "1994558521": "Platformy nie są przyjazne użytkownikom.", @@ -2389,6 +2397,7 @@ "-138380129": "Całkowita dozwolona kwota wypłaty", "-1502578110": "Twoje konto jest w pełni zweryfikowane, a Twój limit wypłat został zwiększony.", "-506122621": "Proszę poświęcić chwilę, aby zaktualizować swoje dane.", + "-1106259572": "Nie znasz swojego numeru identyfikacji podatkowej? <1 />Kliknij <0>tutaj, aby dowiedzieć się więcej.", "-252665911": "Miejsce urodzenia{{required}}", "-859814496": "Rezydencja podatkowa{{required}}", "-237940902": "Numer identyfikacji podatkowej{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "Przelew", "-744999940": "Konta Deriv", "-766186087": "{{trustScore}} z 5 na podstawie opinii: {{numberOfReviews}}", - "-1265635180": "Produkty oferowane na naszej stronie internetowej to złożone produkty pochodne, które niosą ze sobą znaczne ryzyko potencjalnej straty. Kontrakty CFD to złożone instrumenty o wysokim ryzyku szybkiej utraty pieniędzy z powodu dźwigni finansowej. 67,28% kont inwestorów detalicznych traci pieniądze podczas handlu kontraktami CFD u tego dostawcy. Powinieneś rozważyć, czy rozumiesz, jak działają te produkty i czy możesz sobie pozwolić na podjęcie wysokiego ryzyka utraty pieniędzy.", "-1870909526": "Nasze serwery nie mogą pobrać adresu.", "-582721696": "Dozwolona kwota wypłaty to {{format_min_withdraw_amount}} - {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "Kasjer", @@ -3763,8 +3771,14 @@ "-1331298683": "Take profit nie może być dostosowany do bieżących umów Accumulator.", "-509210647": "Spróbuj poszukać czegoś innego.", "-99964540": "Gdy twój zysk osiągnie lub przekroczy ustaloną kwotę, transakcja zostanie zamknięta automatycznie.", - "-1221049974": "Cena końcowa", + "-542594338": "Maksymalna wypłata", + "-1622900200": "Włączone", "-2131851017": "Tempo wzrostu", + "-339236213": "Multiplier", + "-1396928673": "Zarządzanie ryzykiem", + "-1358367903": "Stawka", + "-1853307892": "Ustaw swoją transakcję", + "-1221049974": "Cena końcowa", "-843831637": "Stop stratom", "-583023237": "Jest to wartość odsprzedaży kontraktu oparta na aktualnych warunkach rynkowych (np. aktualny spot), w tym dodatkowe prowizje, jeśli takie istnieją.", "-1476381873": "Najnowsza cena aktywów w momencie zamknięcia transakcji jest przetwarzana przez nasze serwery.", @@ -3845,8 +3859,6 @@ "-700280380": "Anulowanie transakcji. Opłata", "-8998663": "Cyfra: {{last_digit}} ", "-718750246": "Twoja stawka wzrośnie do {{growth_rate}}% za tick, o ile aktualna cena spot pozostanie w granicach ±{{tick_size_barrier_percentage}} w stosunku do poprzedniej ceny spot.", - "-1358367903": "Stawka", - "-542594338": "Maksymalna wypłata", "-690963898": "Twoja umowa zostanie automatycznie zamknięta, gdy Twoja wypłata osiągnie tę kwotę.", "-511541916": "Twoja umowa zostanie automatycznie zamknięta po osiągnięciu tej liczby ticków.", "-438655760": "<0>Uwaga: Mogą Państwo zamknąć transakcję w dowolnym momencie. Proszę pamiętać o ryzyku poślizgu.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% z (<1/> * {{multiplier}})", "-732683018": "Gdy Państwa zysk osiągnie lub przekroczy tę kwotę, transakcja zostanie automatycznie zamknięta.", "-989393637": "Take profit nie może zostać skorygowany po rozpoczęciu umowy.", - "-339236213": "Multiplier", "-194424366": "powyżej", "-857660728": "Ceny wykonania", "-1346404690": "Otrzymają Państwo wypłatę w momencie wygaśnięcia, jeśli cena spot nigdy nie dotknie ani nie przekroczy bariery przez cały okres obowiązywania kontraktu. W przeciwnym razie Państwa kontrakt zostanie przedterminowo rozwiązany.", @@ -4177,6 +4188,8 @@ "-3423966": "Uzyskaj zysk<0 />Stop stratom", "-1131753095": "Szczegóły umowy {{trade_type_name}} nie są obecnie dostępne. Pracujemy nad udostępnieniem ich wkrótce.", "-360975483": "W tym okresie nie zrealizowano żadnej transakcji tego rodzaju.", + "-2082644096": "Obecna stawka", + "-1942828391": "Maksymalna wypłata", "-335816381": "Zakończy się w/Zakończy się poza", "-1789807039": "Asian Up/Asian Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "Potencjalny zysk/strata:", "-1511825574": "Zysk/strata:", "-499175967": "Cena uderzeniowa", - "-2082644096": "Obecna stawka", "-706219815": "Cena orientacyjna", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Indeks Crash 500", "-9704319": "Indeks Crash 1000", "-465860988": "Indeks Bull Market", - "-390528194": "Indeks Step", "-280323742": "Koszyk EUR", "-563812039": "Indeks Volatility 10 (1s)", "-82971929": "Indeks Volatility 25 (1s)", diff --git a/packages/translations/src/translations/pt.json b/packages/translations/src/translations/pt.json index df683c5075c5..1d84bec41ab7 100644 --- a/packages/translations/src/translations/pt.json +++ b/packages/translations/src/translations/pt.json @@ -512,6 +512,7 @@ "538017420": "0.5 pips", "538042340": "Princípio 2: O montante da entrada só aumenta quando uma negociação com perdas é seguida de uma negociação bem sucedida", "538228086": "Close-Low", + "539352212": "Tick {{current_tick}}", "541650045": "Gerir a palavra-passe {{platform}}", "541700024": "Primeiro, introduza o número da carta de condução e a data de validade.", "542038694": "Só são permitidas letras, números, espaços, underscores e hífenes para {{label}}.", @@ -550,7 +551,7 @@ "575968081": "Conta criada. Selecione o método de pagamento para efetuar o depósito.", "576355707": "Selecione o seu país e cidadania:", "577215477": "conte com {{ variable }} de {{ start_number }} a {{ end_number }} por {{ step_size }}", - "577779861": "Levantamento", + "577779861": "Levantamentos", "577883523": "4. Prémios e ordens", "578640761": "Call Spread", "579529868": "Mostrar todos os detalhes - incluindo as últimas duas linhas", @@ -822,6 +823,7 @@ "839805709": "Para conseguirmos validar sem problemas, precisamos de uma fotografia com melhor qualidade ", "841543189": "Ver transação na Blockchain", "843333337": "Só é possível efetuar depósitos. Por favor, complete a <0>avaliação financeira para desbloquear os levantamentos.", + "845106422": "Previsão do último dígito", "845304111": "Período de MME lento {{ input_number }}", "848083350": "O seu pagamento é igual ao <0>pagamento por ponto multiplicado pela diferença entre o preço final e o preço de exercício. Só obterá um lucro se o seu pagamento for superior à sua entrada inicial.", "850582774": "Atualize os seus dados pessoais", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0>Pode visualizar o resumo da transação no seu e-mail.", "938947787": "Levantamento {{currency}}", "938988777": "Barreira alta", + "942015028": "Índice Step 500", "944499219": "Máximo de posições abertas", "945532698": "Contrato vendido", "945753712": "Voltar ao Trader's Hub", @@ -1105,6 +1108,7 @@ "1104912023": "Validação pendente", "1107474660": "Enviar comprovativo de morada", "1107555942": "Para", + "1109182113": "Nota: O \"Deal cancellation\" só está disponível para os Índices Volatility nos \"Multipliers\".", "1109217274": "Concluído com sucesso!", "1110102997": "Extrato", "1111743543": "Stop loss (Multiplier)", @@ -1141,7 +1145,7 @@ "1143730031": "A direção é {{ direction_type }}", "1144028300": "Matriz do Índice de Força Relativa (RSIA)", "1145927365": "Execute os blocos após um determinado número de segundos", - "1146064568": "Ir para a página Depósito", + "1146064568": "Ir para a página de Depósitos", "1147269948": "A barreira não pode ser zero.", "1150637063": "*Índice Volatility 150 e Índice Volatility 250", "1151964318": "ambos os lados", @@ -1529,7 +1533,7 @@ "1512469749": "No exemplo acima, assume-se que a variável candle_open_price é processada algures noutros blocos.", "1513771077": "Estamos a processar o seu levantamento.", "1516559721": "Selecione apenas um ficheiro", - "1516676261": "Depositar", + "1516676261": "Depósitos", "1517503814": "Enviar ficheiro ou clicar aqui para carregar", "1520332426": "Rendimento anual líquido", "1521546070": "Transferir bloco", @@ -1551,6 +1555,7 @@ "1542742708": "Sintéticos, Forex, Ações, Índices de Ações, Matérias-primas e Criptomoedas", "1544642951": "Se selecionar \"Only Ups\", recebe o pagamento se os ticks consecutivos subirem sucessivamente após o preço de abertura. Se algum tick descer ou for igual a qualquer um dos ticks anteriores, não recebe o pagamento.", "1547148381": "Esse ficheiro é demasiado grande (só é permitido um máximo de 8MB). Por favor, carregue outro ficheiro.", + "1548185597": "Índice Step 200", "1549098835": "Total retirado", "1551172020": "Cesta de AUD", "1551689907": "Otimize a sua experiência de negociação ao fazer upgrade à conta <0/><1>{{platform}} {{type}} {{from_account}} .", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Hora de início", "1694517345": "Insira um novo endereço de e-mail", + "1694888104": "Os produtos oferecidos no nosso site são produtos derivados complexos que comportam um risco significativo de perda potencial. Os CFDs são instrumentos complexos que apresentam um elevado risco de perda rápida de dinheiro devido à alavancagem. 70.78% das contas de investidores não profissionais perdem dinheiro ao negociar CFDs com este fornecedor. Deve considerar se compreende o funcionamento destes produtos e se pode correr o risco elevado de perder o seu dinheiro.", "1696190747": "A negociação envolve riscos inerentes e os lucros efetivos podem variar devido a vários fatores, nomeadamente a volatilidade do mercado e outras variáveis imprevistas. Portanto, seja prudente e faça uma pesquisa exaustiva antes de se envolver em quaisquer atividades de negociação.", "1698624570": "2. Pressione Ok para confirmar.", "1699606318": "Atingiu o limite de carregamento de documentos.", @@ -1696,6 +1702,7 @@ "1703712522": "O seu pagamento é igual ao pagamento por pip multiplicado pela diferença, <0>em pips, entre o preço final e o preço de exercício.", "1704656659": "Qual é a sua experiência na negociação de CFDs?", "1707264798": "Porque não consigo visualizar os fundos depositados na minha conta Deriv?", + "1707758392": "Índice Step 100", "1708413635": "Para a sua conta {{currency_name}} ({{currency}})", "1709859601": "Horário do preço de saída", "1711013665": "Volume de negócios previsto da conta", @@ -2014,6 +2021,7 @@ "1990331072": "Comprovativo de propriedade", "1990735316": "Rise Equals", "1991055223": "Ver o preço de mercado dos seus ativos favoritos.", + "1991448657": "Não sabe o seu número de identificação fiscal? Clique <0>aqui para saber mais.", "1991524207": "Índice Jump 100", "1994023526": "O e-mail que introduziu tinha um erro ou uma imprecisão (acontece aos melhores).", "1994558521": "As plataformas não são fáceis de usar.", @@ -2389,6 +2397,7 @@ "-138380129": "Total de levantamento autorizado", "-1502578110": "A sua conta encontra-se totalmente autenticada e os seus limites de levantamento foram aumentados.", "-506122621": "Por favor, atualize agora as suas informações.", + "-1106259572": "Não sabe o seu número de identificação fiscal? <1 />Clique <0>aqui para saber mais.", "-252665911": "Naturalidade{{required}}", "-859814496": "Domicílio fiscal{{required}}", "-237940902": "Número de Identificação Fiscal{{required}}", @@ -2765,10 +2774,9 @@ "-1002556560": "Não foi possível concluir o upgrade da Wallet. Tente novamente mais tarde ou contacte-nos através do live chat.", "-90090878": "Utilize as Wallets para gerir os seus fundos em diferentes moedas sem qualquer dificuldade.", "-280236366": "Ativar agora", - "-1186807402": "Transferir", + "-1186807402": "Transferências", "-744999940": "Conta Deriv", "-766186087": "{{trustScore}} de 5 com base em {{numberOfReviews}} avaliações", - "-1265635180": "Os produtos oferecidos no nosso site são produtos derivados complexos que comportam um risco significativo de perda potencial. Os CFDs são instrumentos complexos que apresentam um elevado risco de perda rápida de dinheiro devido à alavancagem. 67,28% das contas de investidores não profissionais perdem dinheiro ao negociar CFDs com este fornecedor. Deve considerar se compreende o funcionamento destes produtos e se pode correr o risco elevado de perder o seu dinheiro.", "-1870909526": "O nosso servidor não consegue recuperar um endereço.", "-582721696": "O montante de levantamento atual permitido é de {{format_min_withdraw_amount}} a {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "Caixa", @@ -3763,8 +3771,14 @@ "-1331298683": "O \"take profit\" não pode ser ajustado para contratos \"accumulator\" em curso.", "-509210647": "Tente procurar outra coisa.", "-99964540": "Quando o seu lucro atingir ou exceder este montante definido, a sua transação será fechada automaticamente.", - "-1221049974": "Preço final", + "-542594338": "Pagamento máximo", + "-1622900200": "Ativo", "-2131851017": "Taxa de crescimento", + "-339236213": "Multipliers", + "-1396928673": "Gestão de risco", + "-1358367903": "Entrada", + "-1853307892": "Defina a sua negociação", + "-1221049974": "Preço final", "-843831637": "Stop loss", "-583023237": "Este é o valor de revenda do seu contrato, com base nas condições de mercado atuais (como o preço atual), incluindo eventuais comissões adicionais.", "-1476381873": "O último preço do ativo quando o fecho da negociação é processado pelos nossos servidores.", @@ -3845,8 +3859,6 @@ "-700280380": "Taxa de \"Deal cancellation\"", "-8998663": "Digit: {{last_digit}} ", "-718750246": "A sua entrada aumenta {{growth_rate}}% por tick, desde que o preço à vista atual se mantenha dentro de ±{{tick_size_barrier_percentage}} do preço à vista anterior.", - "-1358367903": "Entrada", - "-542594338": "Pagamento máximo", "-690963898": "O seu contrato será encerrado automaticamente quando o seu pagamento atingir esse valor.", "-511541916": "O seu contrato será automaticamente encerrado ao atingir esse número de ticks.", "-438655760": "<0>Nota: Pode fechar a sua negociação em qualquer altura. Tenha em atenção o risco de derrapagem.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% de (<1/>* {{multiplier}})", "-732683018": "Quando o seu lucro atingir ou exceder este montante, a sua transação será fechada automaticamente.", "-989393637": "O \"take profit\" não pode ser ajustado após o contrato iniciar.", - "-339236213": "Multipliers", "-194424366": "acima", "-857660728": "Preços de Exercício", "-1346404690": "Recebe um pagamento na data de expiração se o preço à vista nunca atingir ou ultrapassar a barreira durante o período do contrato. Caso contrário, o seu contrato será rescindido antecipadamente.", @@ -4177,6 +4188,8 @@ "-3423966": "Take profit <0 /> Stop loss", "-1131753095": "Os dados do contrato {{trade_type_name}} não estão atualmente disponíveis. Estamos a trabalhar para os disponibilizar em breve.", "-360975483": "Não foram efetuadas transações deste tipo durante este período.", + "-2082644096": "Entrada atual", + "-1942828391": "Pagamento máx.", "-335816381": "Termina entrada/termina fora", "-1789807039": "Asian Up/Asian Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "Lucros/perdas possíveis:", "-1511825574": "Lucro/perda:", "-499175967": "Preço de exercício", - "-2082644096": "Entrada atual", "-706219815": "Preço indicativo", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Índice Crash 500", "-9704319": "Índice Crash 1000", "-465860988": "Índice Bull Market", - "-390528194": "Índice Step", "-280323742": "Cesta de EUR", "-563812039": "Índice Volatility 10 (1s)", "-82971929": "Índice Volatility 25 (1s)", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index 407edd4a9d54..34904f7ee797 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -512,6 +512,7 @@ "538017420": "0.5 пипсов", "538042340": "Принцип 2: Ставка увеличивается только тогда, когда за убыточной сделкой следует успешная.", "538228086": "Close-Low", + "539352212": "Тик {{current_tick}}", "541650045": "Управление паролем {{platform}}", "541700024": "Сначала введите номер водительских прав и дату истечения срока действия.", "542038694": "Для {{label}} разрешены только буквы, цифры, пробел, нижнее подчёркивание, и дефис.", @@ -822,6 +823,7 @@ "839805709": "Нам нужно фото более высокого качества, чтобы верифицировать вас", "841543189": "Просмотр транзакции в блокчейне", "843333337": "Вы можете только пополнять счет. Пройдите <0>финансовую оценку, чтобы разблокировать вывод средств.", + "845106422": "Предсказание последней цифры", "845304111": "Период медленной EMA {{ input_number }}", "848083350": "Ваша выплата равна <0>выплате за пункт, умноженной на разницу между конечной ценой и ценой исполнения. Прибыль возможна только в том случае, если выплата превышает первоначальную ставку.", "850582774": "Обновите личные данные", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0>Мы отправили информацию по этой транзакции на ваш эл. адрес.", "938947787": "Вывод {{currency}}", "938988777": "Верхний барьер", + "942015028": "Индекс Step 500", "944499219": "Макс. число открытых позиций", "945532698": "Контракт продан", "945753712": "Назад в Trader's Hub", @@ -1105,6 +1108,7 @@ "1104912023": "Ожидание проверки", "1107474660": "Отправить подтверждение адреса", "1107555942": "До", + "1109182113": "Примечание: Отмена сделки доступна только для индексов волатильности на мультипликаторах.", "1109217274": "Готово!", "1110102997": "История счёта", "1111743543": "Стоп-лосс (множитель)", @@ -1551,6 +1555,7 @@ "1542742708": "Синтетические активы, форекс, акции, фондовые индексы, сырьевые товары и криптовалюты", "1544642951": "Выбрав \"Only Ups\", вы получите выплату, если несколько тиков подряд будут расти по отношению к котировке на входе. Если любой тик покажет снижение или будет равен одному из предыдущих тиков, вы не получите выплату.", "1547148381": "Файл слишком большой (разрешено не более 8 МБ). Попробуйте другой файл.", + "1548185597": "Шаг 200 Индекс", "1549098835": "Общая сумма вывода", "1551172020": "Индекс AUD", "1551689907": "Повысьте свой торговый опыт, улучшив свой <0/><1>{{platform}} {{type}} {{from_account}} счет(ы).", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Время начала", "1694517345": "Введите новый адрес эл. почты", + "1694888104": "Продукты, предлагаемые на нашем сайте, являются сложными производными продуктами и несут значительный риск потенциальных потерь. CFD — это сложные инструменты с высоким риском быстрой потери денег из-за кредитного плеча. 70.78% розничных счетов теряют деньги на CFD с этим провайдером. Оцените понимание этих продуктов и свою готовность к высокому риску потерь.", "1696190747": "Торговля по своей сути связана с рисками, и фактическая прибыль может колебаться под влиянием различных факторов, включая волатильность рынка и другие непредвиденные переменные. Поэтому проявляйте осторожность и проводите тщательное исследование, прежде чем приступать к какой-либо торговой деятельности.", "1698624570": "2. Нажмите Ok для подтверждения.", "1699606318": "Вы достигли предела загрузки документов.", @@ -1696,6 +1702,7 @@ "1703712522": "Ваша выплата равна выплате за пункт, умноженной на разницу, <0>в пунктах, между конечной ценой и ценой исполнения.", "1704656659": "Какой у вас опыт торговли CFD?", "1707264798": "Почему я не могу увидеть депонированные средства на моем счете Deriv?", + "1707758392": "Шаг 100 Индекс", "1708413635": "Для вашего счета в {{currency_name}} ({{currency}})", "1709859601": "Время выходной котировки", "1711013665": "Ожидаемый оборот на счете", @@ -2014,6 +2021,7 @@ "1990331072": "Подтверждение права собственности", "1990735316": "Повышение равно", "1991055223": "Следите за ценами любимых активов.", + "1991448657": "Не знаете свой ИНН? Нажмите <0>здесь, чтобы узнать больше.", "1991524207": "Индекс Jump 100", "1994023526": "Адрес эл. почты был введен с ошибкой или опечаткой (случается с лучшими из нас).", "1994558521": "Неудобные платформы.", @@ -2389,6 +2397,7 @@ "-138380129": "Максимальная сумма вывода", "-1502578110": "Ваш счет полностью авторизован, и лимит на вывод был снят.", "-506122621": "Пожалуйста, уделите немного времени, чтобы обновить Вашу информацию сейчас.", + "-1106259572": "Не знаете свой идентификационный номер налогоплательщика? <1 />Нажмите <0>здесь, чтобы узнать больше.", "-252665911": "Место рождения{{required}}", "-859814496": "Налоговое резидентство{{required}}", "-237940902": "Идентификационный номер налогоплательщика{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "Перевод", "-744999940": "Счет Deriv", "-766186087": "{{trustScore}} из 5 на основании {{numberOfReviews}} отзывов", - "-1265635180": "Продукты, предлагаемые на нашем сайте, являются сложными производными продуктами и несут значительный риск потенциальных потерь. CFD — это сложные инструменты с высоким риском быстрой потери денег из-за кредитного плеча. 67.28% розничных счетов теряют деньги на CFD с этим провайдером. Оцените понимание этих продуктов и свою готовность к высокому риску потерь.", "-1870909526": "Нашему серверу не удалось получить адрес.", "-582721696": "Разрешенная сумма вывода сейчас составляет от {{format_min_withdraw_amount}} до {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "Касса", @@ -3763,8 +3771,14 @@ "-1331298683": "Нельзя изменить тейк профит в текущих контрактах Accumulator.", "-509210647": "Попробуйте поискать что-нибудь другое.", "-99964540": "Когда прибыль достигнет или превысит установленную сумму, контракт будет закрыт автоматически.", - "-1221049974": "Цена продажи", + "-542594338": "Макс. выплата", + "-1622900200": "Включено", "-2131851017": "Темп роста", + "-339236213": "Multiplier", + "-1396928673": "Управление рисками", + "-1358367903": "Ставка", + "-1853307892": "Настройте свою торговлю", + "-1221049974": "Цена продажи", "-843831637": "Стоп лосс", "-583023237": "Это стоимость Вашего контракта при перепродаже, основанная на преобладающих рыночных условиях (например, на текущем споте), включая дополнительные комиссии, если таковые имеются.", "-1476381873": "Последняя цена актива, когда закрытие сделки обрабатывается нашими серверами.", @@ -3845,8 +3859,6 @@ "-700280380": "Комиссия за отмену", "-8998663": "Десятичная: {{last_digit}} ", "-718750246": "Ваша ставка будет расти на {{growth_rate}}% за тик до тех пор, пока текущая спот-цена остается в пределах ±{{tick_size_barrier_percentage}} от предыдущей спот-цены.", - "-1358367903": "Ставка", - "-542594338": "Макс. выплата", "-690963898": "Ваш контракт будет автоматически закрыт, когда выплата достигнет этой суммы.", "-511541916": "По достижении этого количества тиков ваш контракт будет автоматически закрыт.", "-438655760": "<0>Примечание: Вы можете закрыть контракт в любое время. Помните о риске проскальзывания.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% от (<1/> * {{multiplier}})", "-732683018": "Когда Ваша прибыль достигнет или превысит эту сумму, Ваша сделка будет закрыта автоматически.", "-989393637": "Нельзя изменить тейк профит после начала контракта.", - "-339236213": "Multiplier", "-194424366": "выше", "-857660728": "Цены исполнения", "-1346404690": "Вы получите выплату по истечении срока действия контракта, если цена спот никогда не коснется или не пробьет барьер в течение всего срока действия контракта. В противном случае Ваш контракт будет досрочно расторгнут.", @@ -4177,6 +4188,8 @@ "-3423966": "Тейк профит<0 />Стоп лосс", "-1131753095": "Детали контракта {{trade_type_name}} в настоящее время недоступны. Мы работаем над тем, чтобы сделать их доступными в ближайшее время.", "-360975483": "Вы не совершали транзакций такого типа за этот период.", + "-2082644096": "Текущая ставка", + "-1942828391": "Максимальная выплата", "-335816381": "Закончится Внутри/Закончится Вне", "-1789807039": "Asian Up/Asian Downs", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "Потенциальная прибыль/убыток:", "-1511825574": "Прибыль/убыток:", "-499175967": "Цена исполнения", - "-2082644096": "Текущая ставка", "-706219815": "Ориентировочная цена", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Индекс Crash 500", "-9704319": "Индекс Crash 1000", "-465860988": "Индекс Bull Market", - "-390528194": "Индекс Step", "-280323742": "Индекс EUR", "-563812039": "Индекс Volatility 10 (1с)", "-82971929": "Индекс Volatility 25 (1с)", diff --git a/packages/translations/src/translations/si.json b/packages/translations/src/translations/si.json index ff3cf9f16434..270354d9ebb5 100644 --- a/packages/translations/src/translations/si.json +++ b/packages/translations/src/translations/si.json @@ -21,7 +21,7 @@ "19424289": "පරිශීලක නාමය", "19552684": "USD බාස්කට්", "21035405": "කරුණාකර ඔබ පිටව යන්නේ මන්දැයි අපට කියන්න. (හේතු {{ allowed_reasons }} ක් දක්වා තෝරන්න.)", - "23745193": "මාව ඩෙමෝ එකට ගෙන යන්න", + "23745193": "මා ආදර්ශනය වෙත ගෙන යන්න", "24900606": "රන් බාස්කට්", "25854018": "මෙම කොටස සංවර්ධකයාගේ කොන්සෝලය තුළ පාඨ පෙළක්, අංකයක්, බූලීය හෝ දත්ත මාලාවක් විය හැකි ආදානයක් සමඟ පණිවුඩ​ පෙන්වයි.", "26566655": "සාරාංශය", @@ -188,7 +188,7 @@ "196810983": "කාලය පැය 24 ට වඩා වැඩි නම්, කඩඉම් කාලය සහ කල් ඉකුත් වීමේ දිනය ඒ වෙනුවට යොදනු ලැබේ.", "196998347": "බංකොලොත් භාවයේ දී සමාගමේ වත්කම්වලින් කොටසක් නොවන අපගේ මෙහෙයුම් ගිණුම්වලින් වෙන් වූ බැංකු ගිණුම්වල අපි පාරිභෝගික අරමුදල් තබා ගන්නෙමු. මෙය පාරිභෝගික අරමුදල් මට්ටමින් වෙන් කිරීම සඳහා <0>Gambling Commission හි අවශ්‍යතා සපුරාලයි: <1>මධ්‍යම ආරක්ෂාව.", "197190401": "කල් ඉකුත් වීමේ දිනය", - "201016731": "<0>වැඩිදුර බලන්න", + "201016731": "<0>තව බලන්න", "201091938": "දින 30 ක්", "203179929": "<0>ඔබ ඉදිරිපත් කළ ලේඛන සත්‍යාපනය කළ පසු ඔබට මෙම ගිණුම විවෘත කළ හැක.", "203271702": "නැවත උත්සාහ කරන්න", @@ -387,7 +387,7 @@ "401339495": "ලිපිනය සත්‍යාපනය කරන්න", "401345454": "එසේ කිරීමට නිබන්ධන ටැබය වෙත යන්න.", "403456289": "SMA සඳහා සූත්‍රය:", - "403936913": "ඩෙරිව් බොට් පිළිබඳ හැඳින්වීමක්", + "403936913": "Deriv Bot සඳහා හැඳින්වීමක්", "406359555": "ගිවිසුම් විස්තර", "406497323": "අවශ්‍ය නම් ඔබේ ක්‍රියාකාරී ගිවිසුම​ විකුණන්න (විකල්ප වශයෙන්)", "411482865": "{{deriv_account}} ගිණුම එක් කරන්න", @@ -405,14 +405,14 @@ "426031496": "නවත්වන්න", "427134581": "වෙනත් ගොනු වර්ගයක් භාවිතා කිරීමට උත්සාහ කරන්න.", "427617266": "Bitcoin", - "428380816": "ඔබ “Mat <0>ches” තෝරා ගන්නේ නම්, අවසාන ටික් එකේ අවසාන ඉලක්කම් ඔබේ අනාවැකිය හා සමාන නම් ඔබ ගෙවීම ජය ගනු ඇත.", - "429505586": "ඔබ \"<0>වැට ීම “තෝරා ගන්නේ නම්, පිටවීමේ ස්ථානය ඇතුල් වීමේ ස්ථානයට වඩා දැඩි ලෙස අඩු නම් ඔබ ගෙවීම දිනා ගනී.", + "428380816": "ඔබ “<0>Matches” තෝරා ගන්නේ නම්, අවසාන සලකුණේ අවසාන ඉලක්කම් ඔබේ පුරෝකථනයට සමාන නම් ඔබ ගෙවීම දිනා ගනු ඇත.", + "429505586": "ඔබ \"<0>Fall\" තෝරා ගන්නේ නම්, පිටවීමේ ස්ථානය පිවිසුම් ස්ථානයට වඩා දැඩි ලෙස ප​හළින් පිහිටයි නම් ඔබ ගෙවීම දිනා ගනු ඇත​.", "429970999": "ප්‍රමාදයන් වළක්වා ගැනීමට, ඔබේ {{document_name}} හි දිස්වන ආකාරයටම ඔබේ <0>නම ඇතුළත් කරන්න.", "431267979": "යන එන අතරතුර දී Deriv බොට් භාවිත කරන ආකරය පිළිබඳ ඉක්මන් මාර්ගෝපදේශයක් මෙන්න.", "432273174": "1:100", "432508385": "Take Profit: {{ currency }} {{ take_profit }}", "432519573": "ලේඛනය උඩුගත කරන ලදී", - "433237511": "ටෙලිග්රෑම් %1 ප්රවේශ ටෝකනය දැනුම් දෙන්න: %2 චැට් හැඳුනුම්පත: %3 පණිවිඩ %4", + "433237511": "Telegram වෙත දැනුම් දෙන්න %1 ප්‍රවේශ ටෝකනය: %2 කථාබස් හැඳුනුම්පත: %3 පණිවුඩය: %4", "433348384": "දේශපාලනිකව නිරාවරණය වූ පුද්ගලයින්ට (PEP) සැබෑ ගිණුම් නොමැත.", "433616983": "2. විමර්ශන අදියර", "434548438": "කාර්යය නිර්වචනය ඉස්මතු කරන්න", @@ -453,7 +453,7 @@ "466837068": "ඔව්, මගේ සීමා වැඩි කරන්න", "467839232": "මම වෙනත් වේදිකාවල forex CFD සහ අනෙකුත් සංකීර්ණ මූල්‍ය මෙවලම් සමඟ නිතිපතා ගනුදෙනු කරන්නෙමි.", "471402292": "ඔබේ බොට් එක එක් එක් ධාවනය සඳහා තනි ගනුදෙනු වර්ගයක් භාවිත කරයි.", - "471667879": "කපා දැමීමේ කාලය:", + "471667879": "කපා හැරීමේ කාලය:", "473154195": "සැකසීම්", "474306498": "ඔබ ඉවත්ව යාම ගැන අපට කනගාටුයි. ඔබේ ගිණුම දැන් වසා ඇත.", "475492878": "කෘත්‍රිම​ දර්ශක උත්සාහ කරන්න", @@ -464,7 +464,7 @@ "479420576": "තෘතීයික", "480356486": "*Boom 300 සහ Crash 300 දර්ශක", "481276888": "Goes Outside", - "481564514": "ඔබ “<0>ඉහ ළට” තෝරාගන්නේ නම්, ස්ථානීය මිල කිසි විටෙකත් බාධකයට පහළින් පහත වැටෙන්නේ නම් ඔබ ගෙවීමක් උපයනු ඇත.", + "481564514": "ඔබ “<0>Up” තේරුවහොත්, ස්ථාන මිල කිසි විටෙක බාධකයට වඩා පහළ නොයන්නේ නම් ඔබට ගෙවීමක් ලැබෙනු ඇත.", "483279638": "තක්සේරුව අවසන්<0/><0/>", "485379166": "ගනුදෙනු බලන්න", "487239607": "දී ඇති 'සත්‍ය' හෝ 'අසත්‍ය' අගය ප්‍රතිවිරුද්ධ අගයට පරිවර්තනය කරයි", @@ -512,6 +512,7 @@ "538017420": "ලක්ෂ්‍යයේ ප්‍රතිශත (pips) 0.5", "538042340": "මූලධර්මය 2: අලාභ ලබන ගනුදෙනුවකට පසු සාර්ථක ගනුදෙනුවක් සිදු වුවහොත් පමණක් කොටස් වැඩි වේ", "538228086": "Close-Low", + "539352212": "{{current_tick}} tick", "541650045": "{{platform}} මුරපදය කළමනාකරණය කරන්න", "541700024": "පළමුව, ඔබගේ රියදුරු බලපත්‍ර අංකය සහ සහ එය කල් ඉකුත් වන දිනය ඇතුළත් කරන්න.", "542038694": "{{label}} සඳහා අවසර ඇත්තේ අකුරු, ඉලක්කම්, අවකාශ, යටි ඉර සහ හයිපන පමණි.", @@ -535,7 +536,7 @@ "563034502": "අපි ඔබේ පැමිණිල්ල ව්‍යාපාරික දින 15ක් ඇතුළත විසඳීමට උත්සාහ කරන්නෙමු. අපි අපගේ ස්ථාවරය පිළිබඳ පැහැදිලි කිරීමක් සමඟ ප්‍රතිඵලය පිළිබඳව ඔබට දන්වා අප විසින් ගැනීමට අදහස් කරන ප්‍රතිකර්ම ක්‍රියාමාර්ග ද යෝජනා කරන්නෙමු.", "563166122": "ඔබේ පැමිණිල්ල ලැබුණු බව අපි පිළිගනිමු, එය ප්‍රවේශමෙන් සමාලෝචනය කර හැසිරවීමේ ක්‍රියාවලිය පිළිබඳව ඔබව යාවත්කාලීනව තබන්නෙමු. පැමිණිල්ල විසඳීමට පහසුකම් සැලසීම සඳහා අපි වැඩිදුර තොරතුරු හෝ පැහැදිලි කිරීම් ඉල්ලා සිටිය හැක.", "563652273": "කොටස වෙත යන්න", - "565356380": "ප්රියතමයන්ට එකතු කරන ලදි", + "565356380": "ප්‍රියතමයන් වෙත එක් කරන ලදී", "565410797": "පහත රූපයේ දැක්වෙන්නේ Simple Moving Average Array කොටස ක්‍රියා කරන ආකාරයයි:", "566274201": "1. වෙළඳපල", "567019968": "විචල්‍යයක් යනු බොට් එකක් නිර්මාණය කිරීමේදී වඩාත්ම වැදගත් හා බලවත් සංරචකයකි. එය පාඨ හෝ අංක ලෙස තොරතුරු ගබඩා කිරීමේ ක්‍රමයකි. විචල්‍යයක් ලෙස ගබඩා කර ඇති තොරතුරු ලබා දී ඇති උපදෙස් අනුව භාවිත කිරීමට මෙන්ම වෙනස් කිරීමට ද හැකි වේ. විචල්‍යවලට ඕනෑම නමක් ලබා දිය හැකි නමුත් සාමාන්‍යයෙන් ඒවාට ප්‍රයෝජනවත්, සංකේතාත්මක නාම ලබා දී ඇති අතර එමඟින් උපදෙස් ක්‍රියාත්මක කිරීමේදී ඒවා ඇමතීමට පහසු වේ.", @@ -822,6 +823,7 @@ "839805709": "ඔබව සුමටව සත්‍යාපනය කිරීමට, අපට වඩා හොඳ ඡායාරූපයක් අවශ්‍ය වේ", "841543189": "Blockchain හි ගනුදෙනුව බලන්න", "843333337": "ඔබට තැන්පතු පමණක් සිදු කළ හැකිය. මුදල් ආපසු ගැනීම් අගුලු හැරීමට කරුණාකර <0>මූල්‍ය තක්සේරුව සම්පූර්ණ කරන්න.", + "845106422": "අවසාන ඉලක්කම් අනාවැකිය", "845304111": "මන්දගාමී EMA කාල සීමාව {{ input_number }}", "848083350": "ඔබේ ගෙවීම අවසන් මිල සහ වර්ජන මිල අතර වෙනස මඟින් ගුණ කළ <0>ලක්ෂ්‍යයකට ගෙවීමට සමාන වේ. ඔබ ලාභයක් උපයා ගන්නේ ඔබේ ගෙවීම ඔබේ මුල් කොටසට වඩා වැඩි නම් පමණි.", "850582774": "කරුණාකර ඔබේ පුද්ගලික තොරතුරු යාවත්කාලීන කරන්න", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0>ඔබට මෙම ගනුදෙනුවේ සාරාංශය ඔබේ ඊ-තැපෑලෙන් බැලිය හැක.", "938947787": "ආපසු ගැනීම {{currency}}", "938988777": "ඉහළ බාධකය", + "942015028": "පියවර 500 දර්ශකය", "944499219": "උපරිම විවෘත ස්ථාන", "945532698": "ගිවිසුම විකුණා ඇත", "945753712": "Trader's Hub වෙත ආපසු යන්න", @@ -1105,6 +1108,7 @@ "1104912023": "සත්‍යාපනය පොරොත්තුවෙන්", "1107474660": "ලිපිනය පිළිබඳ සාක්ෂි ඉදිරිපත් කරන්න", "1107555942": "දක්වා", + "1109182113": "සටහන: ගනුදෙනු අවලංගු කිරීම ලබා ගත හැක්කේ ගුණක වල අස්ථාවර දර්ශක සඳහා පමණි.", "1109217274": "සාර්ථකයි!", "1110102997": "ප්‍රකාශන​ය", "1111743543": "Stop loss (Multiplier)", @@ -1551,6 +1555,7 @@ "1542742708": "කෘත්‍රිම​ දර්ශක, Forex, කොටස්, කොටස් දර්ශක, වෙළඳ භාණ්ඩ සහ ක්‍රිප්ටෝ මුදල්", "1544642951": "ඔබ \"Only Ups\" තෝරා ගන්නේ නම්, පිවිසුම් ස්ථානයෙන් පසු අඛණ්ඩව ටික් ඉහළ ගියහොත් ඔබ ගෙවීම දිනා ගනී. කිසියම් ටික් එකක් පහළ ගියහොත් හෝ පෙර ටික්වලට සමාන නම් ගෙවීමක් ලැබෙන්නේ නැත​.", "1547148381": "එම ගොනුව ඉතා විශාලයි (8MB දක්වා පමණක් අවසර ඇත). කරුණාකර වෙනත් ගොනුවක් උඩුගත කරන්න.", + "1548185597": "පියවර 200 දර්ශකය", "1549098835": "මුළු ආපසු ගැනීම්", "1551172020": "AUD බාස්කට්", "1551689907": "ඔබේ <0/><1>{{platform}} හි {{type}} {{from_account}} ගිණුම(ම්) උත්ශ්‍රේණි කිරීමෙන් ඔබේ ගනුදෙනු අත්දැකීම වැඩි දියුණු කර ගන්න.", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "ආරම්භක වේලාව", "1694517345": "නව ඊ-තැපැල් ලිපිනයක් ඇතුළත් කරන්න", + "1694888104": "අපගේ වෙබ් අඩවියේ ඉදිරිපත් කර ඇති නිෂ්පාදන සංකීර්ණ ව්‍යුත්පන්න නිෂ්පාදන වන අතර ඒවා විය හැකි අලාභයේ සැලකිය යුතු අවදානමක් දරයි. CFD යනු උත්තෝලනය හේතුවෙන් වේගයෙන් මුදල් අහිමි වීමේ ඉහළ අවදානමක් සහිත සංකීර්ණ මෙවලම් වේ. මෙම සැපයුම්කරු සමඟ CFD ගනුදෙනු කිරීමේදී සිල්ලර ආයෝජක ගිණුම්වලින් 70.78%කට මුදල් අහිමි වේ. මෙම නිෂ්පාදන ක්‍රියා කරන ආකාරය ඔබ තේරුම් ගන්නේද යන්න සහ ඔබේ මුදල් අහිමි වීමේ ඉහළ අවදානමක් දැරීමට ඔබට හැකියාව තිබේද යන්න ඔබ විසින් සලකා බැලිය යුතුය.", "1696190747": "ගනුදෙනුවලට සහජයෙන්ම අවදානම් ඇතුළත් වන අතර වෙළඳපල අස්ථාවරත්වය සහ අනෙකුත් අනපේක්ෂිත විචල්‍යයන් ඇතුළු විවිධ සාධක හේතුවෙන් සැබෑ ලාභ උච්චාවචනය විය හැක. එබැවින්, ගනුදෙනු සම්බන්ධ ඕනෑම කටයුත්තක නියැලීමට පෙර ප්‍රවේශම් වන්න සහ ගැඹුරින් සොයා බලන්න.", "1698624570": "2. තහවුරු කිරීමට හරි ක්ලික් කරන්න.", "1699606318": "ඔබ ඔබේ ලේඛන උඩුගත කිරීමේ සීමාවට පැමිණ ඇත.", @@ -1696,6 +1702,7 @@ "1703712522": "ඔබේ ගෙවීම අවසන් මිල සහ වැඩ වර්ජන මිල අතර වෙනස, <0>ලක්ෂ්‍යයේ ප්‍රතිශත (pip) මඟින් ගුණ කරන ලද ලක්ෂ්‍යයේ ප්‍රතිශත ගෙවීමට සමාන වේ.", "1704656659": "CFD ගනුදෙනු පිළිබඳ ඔබට කොපමණ අත්දැකීම් තිබේ ද?", "1707264798": "මගේ Deriv ගිණුමේ තැන්පත් කළ අරමුදල් මට නොපෙනෙන්නේ ඇයි?", + "1707758392": "පියවර 100 දර්ශකය", "1708413635": "ඔබගේ {{currency_name}} {{currency}} ගිණුම සඳහා", "1709859601": "පිටවීමේ ස්ථානයේ වේලාව", "1711013665": "අපේක්ෂිත ගිණුම් පිරිවැටුම", @@ -2014,6 +2021,7 @@ "1990331072": "හිමිකාරිත්වය පිළිබඳ සාක්ෂය", "1990735316": "Rise Equals", "1991055223": "ඔබේ ප්‍රියතම වත්කම්වල වෙළඳපල මිල බලන්න.", + "1991448657": "ඔබේ බදු හඳුනාගැනීමේ අංකය නොදන්නේ ද? තව දැන ගැනීමට <0>මෙතැන ක්ලික් කරන්න.", "1991524207": "Jump 100 දර්ශකය", "1994023526": "ඔබ ඇතුළත් කළ​ ඊ-තැපැල් ලිපිනයේ වැරදීමක් හෝ මුද්‍රණ දෝෂයක් ඇත (බොහෝ අයට මෙය සිදු වේ).", "1994558521": "වේදිකා පරිශීලක-හිතකාමී නොවේ.", @@ -2389,6 +2397,7 @@ "-138380129": "සම්පූර්ණ මුදල් ආපසු ගැනීමේ සීමාව", "-1502578110": "ඔබේ ගිණුම සම්පූර්ණයෙන්ම සත්‍යාපනය කර ඇති අතර ඔබේ මුදල් ආපසු ගැනීමේ සීමාවන් ඉවත් කර ඇත.", "-506122621": "කරුණාකර දැන් ඔබේ තොරතුරු යාවත්කාලීන කිරීමට මොහොතක් ගත කරන්න.", + "-1106259572": "ඔබේ බදු හඳුනාගැනීමේ අංකය නොදන්නේ ද? <1 />තව දැන ගැනීමට <0>මෙතැන ක්ලික් කරන්න.", "-252665911": "උපන් ස්ථානය{{required}}", "-859814496": "බදු පදිංචිය{{required}}", "-237940902": "බදු හඳුනාගැනීමේ අංකය{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "මාරු කිරීම්", "-744999940": "Deriv ගිණුම", "-766186087": "සමාලෝචන {{numberOfReviews}} ක් මත පදනම්ව 5න් {{trustScore}} ක්", - "-1265635180": "අපගේ වෙබ් අඩවියේ ඉදිරිපත් කර ඇති නිෂ්පාදන සංකීර්ණ ව්‍යුත්පන්න නිෂ්පාදන වන අතර ඒවා විය හැකි අලාභයේ සැලකිය යුතු අවදානමක් දරයි. CFD යනු උත්තෝලනය හේතුවෙන් වේගයෙන් මුදල් අහිමි වීමේ ඉහළ අවදානමක් සහිත සංකීර්ණ මෙවලම් වේ. මෙම සැපයුම්කරු සමඟ CFD ගනුදෙනු කිරීමේදී සිල්ලර ආයෝජක ගිණුම්වලින් 67.28%කට මුදල් අහිමි වේ. මෙම නිෂ්පාදන ක්‍රියා කරන ආකාරය ඔබ තේරුම් ගන්නේද යන්න සහ ඔබේ මුදල් අහිමි වීමේ ඉහළ අවදානමක් දැරීමට ඔබට හැකියාව තිබේද යන්න ඔබ විසින් සලකා බැලිය යුතුය.", "-1870909526": "අපගේ සේවාදායකයට ලිපිනයක් ලබා ගත නොහැක.", "-582721696": "දැනට අවසර දී ඇති ආපසු ගැනීමේ මුදල {{format_min_withdraw_amount}} සිට {{format_max_withdraw_amount}} {{currency}} වේ.", "-1975494965": "අයකැමි", @@ -3763,8 +3771,14 @@ "-1331298683": "පවතින Accumulator ගිවිසුම් සඳහා Take Profit ගැළපිය නොහැක.", "-509210647": "වෙන දෙයක් හොයන්න උත්සාහ කරන්න.", "-99964540": "ඔබේ ලාභය මෙම ප්‍රමාණයට ළඟා වූ විට හෝ එය ඉක්මවා ගිය විට, ඔබේ ගනුදෙනුව ස්වයංක්‍රීයව වසා දමනු ඇත.", - "-1221049974": "අවසාන මිල", + "-542594338": "උපරිම ගෙවීම", + "-1622900200": "සක්රීය", "-2131851017": "වර්ධන වේගය", + "-339236213": "Multiplier", + "-1396928673": "අවදානම් කළමනාකරණය", + "-1358367903": "කොටස", + "-1853307892": "ඔබේ වෙළඳාම සකසන්න", + "-1221049974": "අවසාන මිල", "-843831637": "Stop loss", "-583023237": "පවතින වෙළඳපල තත්වයන් (උදා: වත්මන් ස්ථානය) මත පදනම්ව ඔබේ කොන්ත්රාත්තුවේ නැවත විකිණීමේ වටිනාකම මෙය වේ, ඇත්නම් අමතර කොමිස් ද ඇතුළුව.", "-1476381873": "අපගේ සේවාදායකයෙන් ගනුදෙනුව වසා දැමීම සකසන විට ඇති නවතම වත්කම් මිලයි.", @@ -3845,8 +3859,6 @@ "-700280380": "ගනුදෙනු අවලංගු කිරීමේ ගාස්තුව", "-8998663": "ඉලක්කම: {{last_digit}} ", "-718750246": "වත්මන් ස්ථාන මිල පෙර ස්ථාන මිලට වඩා ±{{tick_size_barrier_percentage}} ක් තුළ පවතින තෙක් ඔබේ කොටස් tick එකකට {{growth_rate}}% බැගින් වර්ධනය වේ.", - "-1358367903": "කොටස", - "-542594338": "උපරිම ගෙවීම", "-690963898": "ඔබගේ ගෙවීම මෙම මුදල කරා ළඟා වූ විට ඔබේ ගිවිසුම ස්වයංක්‍රීයව වසා දැමෙනු ඇත.", "-511541916": "මෙම ටික් ගණනට ළඟා වූ පසු ඔබේ ගිවිසුම ස්වයංක්‍රීයව වසා දමනු ඇත.", "-438655760": "<0>සටහන: ඔබට ඕනෑම වේලාවන ඔබේ ගනුදෙනුව වසා දැමිය හැක. ලිස්සුම් අවදානම ගැන සැලකිලිමත් වන්න.", @@ -3865,7 +3877,6 @@ "-1686280757": "(<1/> * {{multiplier}}) මඟින් <0>{{commission_percentage}}%", "-732683018": "ඔබේ ලාභය මෙම ප්‍රමාණයට ළඟා වූ විට හෝ එය ඉක්මවා ගිය විට, ඔබේ ගනුදෙනුව ස්වයංක්‍රීයව වසා දමනු ඇත.", "-989393637": "ඔබේ ගිවිසුම ආරම්භ වූ පසු ලබා ගැනීමේ ලාභය සකස් කළ නොහැක.", - "-339236213": "Multiplier", "-194424366": "ඉහළින්", "-857660728": "වර්ජන මිල", "-1346404690": "ගිවිසුම් කාලය පුරාවට ස්ථාන මිල කිසිවිටෙකත් බාධාව ස්පර්ශ නොකළහොත් හෝ කඩ නොකළහොත් කල් ඉකුත් වීමේදී ඔබට ගෙවීමක් ලැබෙනු ඇත. එසේ නොමැති නම්, ඔබේ ගිවිසුම කලින් අවසන් කරනු ලැබේ.", @@ -4177,6 +4188,8 @@ "-3423966": "Take profit<0 />Stop loss", "-1131753095": "{{trade_type_name}} ගිවිසුම් විස්තර දැනට ලබා ගත නොහැක. අපි ඒවා ඉක්මනින් ලබා දීමට කටයුතු කරමින් සිටින්නෙමු.", "-360975483": "මෙම කාල සීමාව තුළ ඔබ මේ ආකාරයේ ගනුදෙනු කිසිවක් සිදු කර නැත.", + "-2082644096": "වත්මන් කොටස්", + "-1942828391": "උපරිම ගෙවීම", "-335816381": "Ends In/Ends Out", "-1789807039": "Asian Up/Asian Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "විභව ලාභය/අලාභය:", "-1511825574": "ලාභය/අලාභය:", "-499175967": "වර්ජන මිල", - "-2082644096": "වත්මන් කොටස්", "-706219815": "ප්‍රතීයමාන මිල", "-1669418686": "AUD/CAD", "-1548588249": "විගණනය/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Crash 500 දර්ශකය", "-9704319": "Crash 1000 දර්ශකය", "-465860988": "Bull වෙළඳපල දර්ශකය", - "-390528194": "පියවර දර්ශකය", "-280323742": "EUR බාස්කට්", "-563812039": "10 (1s) අස්ථායීතා දර්ශකය", "-82971929": "25 (1s) අස්ථායීතා දර්ශකය", diff --git a/packages/translations/src/translations/sw.json b/packages/translations/src/translations/sw.json index 98c7c7aefb59..02d697d5e66d 100644 --- a/packages/translations/src/translations/sw.json +++ b/packages/translations/src/translations/sw.json @@ -139,7 +139,7 @@ "145511192": "ni dau la awali.", "145633981": "Haipatikani kwani hati zako bado zinakaguliwa", "145736466": "Chukua selfie", - "147327552": "Hakuna vipendwa", + "147327552": "Hakuna vipendeleo", "150156106": "Hifadhi mabadiliko", "150486954": "Jina la tokeni", "151279367": "2. Weka Vigezo vya ununuzi. Katika mfano huu, bot yako itanunua mkataba wa Rise wakati inapoanza na baada ya mkataba kufungwa.", @@ -170,7 +170,7 @@ "176319758": "Max. jumla ya dau la zaidi ya siku 30", "176654019": "$100,000 - $250,000", "177099483": "Uthibitishaji wa anwani yako haujakamilika, na tumeweka vizuizi kadhaa kwenye akaunti yako. Vizuizi vitaondolewa mara tu anwani yako itakapothibitishwa.", - "177467242": "Fafanua chaguzi zako za biashara kama vile mkusanyiko na hisa. Kizuizi hiki kinaweza kutumika tu na aina ya biashara ya mkusanyiko. Ikiwa utachagua aina nyingine ya biashara, kizuizi hiki kitabadilishwa na kizuizi cha chaguzi za Biashara.", + "177467242": "Fafanua chaguzi zako za biashara kama vile accumulator na dau. Kitalu hiki kinaweza kutumika tu na aina ya biashara ya accumulator. Ikiwa utachagua aina nyingine ya biashara, kitalu hiki kitabadilishwa na kitalu cha chaguzi za Biashara.", "179083332": "Tarehe", "181107754": "Akaunti yako mpya ya <0>{{platform}} {{eligible_account_to_migrate}} iko tayari kwa biashara.", "181346014": "Notisi ", @@ -205,7 +205,7 @@ "211461880": "Majina ya kawaida na majina ya ukoo ni rahisi kukisia", "211487193": "Nambari ya hati (m.f. kadi ya kitambulisho, pasipoti, leseni ya udereva)", "211847965": "<0>Taarifa zako binafsi hazijakamilika. Tafadhali nenda kwenye mipangilio ya akaunti yako na ukamilishe taarifa zako binafsi ili uweze kutoa pesa.", - "216114973": "Hisa na fahirisi", + "216114973": "Hisa na indeksi", "216650710": "Unatumia demo akaunti", "217377529": "5. Ikiwa biashara zifuatazo zina faida, dau la biashara ifuatayo litapunguzwa kwa USD 2. Hii inaweza kuonyeshwa hapo juu ambapo dau la USD 3 limepunguzwa hadi USD 1. Tazama A3.", "217403651": "St Vincent & Grenadines", @@ -512,6 +512,7 @@ "538017420": "0.5 pips", "538042340": "Kanuni ya 2: Dau huongezeka tu wakati biashara iliyopata hasara inafuatiwa na biashara iliyofanikiwa", "538228086": "Close-Low", + "539352212": "Tick {{current_tick}}", "541650045": "Dhibiti nenosiri la {{platform}}", "541700024": "Kwanza, ingiza nambari yako ya leseni ya udereva na tarehe yake ya mwisho wa matumizi.", "542038694": "Herufi tu, nambari, nafasi, alama ya mkato, na alama (-) zinaruhusiwa kwa {{label}}.", @@ -822,6 +823,7 @@ "839805709": "Ili kukuthibitisha vizuri, tunahitaji picha bora", "841543189": "Tazama shughuli kwenye Blockchain", "843333337": "Unaweza tu kufanya amana. Tafadhali kamilisha tath <0>mini ya kifedha ili kufungua uondoaji.", + "845106422": "Utabiri wa tarakimu mwisho", "845304111": "Kipindi cha polepole cha EMA {{ input_number }}", "848083350": "Malipo yako ni sawa na <0>malipo kwa kila pointi zidisha na tofauti kati ya bei ya mwisho na bei ya ushindani. Utapata faida ikiwa tu malipo yako ni makubwa kuliko dau lako la awali.", "850582774": "Tafadhali sasisha taarifa zako binafsi", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0> Unaweza kutazama muhtasari wa muamala huu kwenye barua pepe yako.", "938947787": "Utoaji pesa {{currency}}", "938988777": "Kizuizi cha juu", + "942015028": "Kielelezo cha Hatua 500", "944499219": "Max. nafasi za kufungua", "945532698": "Mkataba uliouzwa", "945753712": "Rudi kwenye Trader's Hub", @@ -1105,6 +1108,7 @@ "1104912023": "Inasubiri uthibitish", "1107474660": "Tuma uthibitisho wa anwani", "1107555942": "Kwa", + "1109182113": "Kumbuka: Kufuta mpango unapatikana tu kwa Fahirisi za Ubadilishaji kwenye Viongezaji.", "1109217274": "Mafanikio!", "1110102997": "Taarifa", "1111743543": "Zuia hasara (Multiplier)", @@ -1551,6 +1555,7 @@ "1542742708": "Vifaa vya sintetiki, Forex, Hisa, Fahirisi za Hisa, Bidhaa, na Cryptocurrency", "1544642951": "Ukichagua “Only Ups”, utashinda malipo ikiwa ticks zitainuka mfululizo baada ya bei ya kuingia. Hakuna malipo ikiwa tick yoyote itaanguka au kuwa sawa na tick yoyote ya awali.", "1547148381": "Faili hiyo ni kubwa sana (hadi 8MB tu inaruhusiwa). Tafadhali pakia faili nyingine.", + "1548185597": "Kielelezo cha Hatua 200", "1549098835": "Jumla ya utoaji pesa", "1551172020": "Kikapu AUD", "1551689907": "Ongeza uzoefu wako wa biashara kwa kuboresha akaunti yako ya <0/> <1>{{platform}} {{type}} {{from_account}} .", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Wakati wa kuanza", "1694517345": "Ingiza anwani mpya ya barua pepe", + "1694888104": "Bidhaa zinazotolewa kwenye wavuti yetu ni bidhaa ngumu za matokeo ambazo zina hatari kubwa ya upotezaji. CFD ni zana ngumu zilizo na hatari kubwa ya kupoteza pesa haraka kutokana na ufanisi. 70.78% ya akaunti za wawekezaji wa rejareja hupoteza pesa wakati wa kufanya biashara ya CFD na mtoa huduma huyu. Unapaswa kuzingatia ikiwa unaelewa jinsi bidhaa hizi zinavyofanya kazi na ikiwa unaweza kumudu kuchukua hatari kubwa ya kupoteza pesa zako.", "1696190747": "Biashara kwa asilia inahusisha hatari, na faida halisi inaweza kubadilika kutokana na sababu mbalimbali, ikiwa ni pamoja na kuyumba kwa soko na vigezo vingine visivyotarajiwa, kwa hivyo, chukua tahadhari na fanya utafiti wa kina kabla ya kujihusisha na shughuli zozote za biashara.", "1698624570": "2. Bonyeza Sawa ili kuthibitisha.", "1699606318": "Umefikia kikomo cha kupakia hati zako.", @@ -1696,6 +1702,7 @@ "1703712522": "Malipo yako ni sawa na malipo kwa kila pip zidisha na tofauti, <0>katika pips, kati ya bei ya mwisho na bei ya ushindani.", "1704656659": "Una uzoefu kiasi gani katika biashara ya CFD?", "1707264798": "Kwa nini siwezi kuona pesa zilizowekwa kwenye akaunti yangu ya Deriv?", + "1707758392": "Kielelezo cha Hatua 100", "1708413635": "Kwa akaunti yako ya {{currency_name}} ({{currency}})", "1709859601": "Muda wa Bei ya Kutoka", "1711013665": "Matarajio ya mauzo kwa akaunti", @@ -2014,6 +2021,7 @@ "1990331072": "Uthibitisho wa umiliki", "1990735316": "Rise Equals", "1991055223": "Tazama bei ya soko ya mali unayopenda.", + "1991448657": "Haujui nambari yako ya utambulisho wa kodi? Bonyeza <0>hapa ili kujifunza zaidi.", "1991524207": "Jump 100 Indeksi", "1994023526": "Anwani ya barua pepe uliyoingiza ilikuwa na kosa au makosa ya kiuandishi (hutokea kwa ubora kwetu sote).", "1994558521": "Majukwaa hayana rafiki ya rafiki.", @@ -2389,6 +2397,7 @@ "-138380129": "Jumla ya utoaji pesa ulioruhusiwa", "-1502578110": "Akaunti yako imethibitishwa kikamilifu na kikomo chako kimeondolewa.", "-506122621": "Tafadhali chukua muda kusasisha taarifa yako sasa.", + "-1106259572": "Haujui nambari yako ya utambulisho wa kodi? <1 />Bonyenza <0>hapa ili kujifunza zaidi.", "-252665911": "Mahali pa kuzaliwa{{required}}", "-859814496": "Kodi ya makazi{{required}}", "-237940902": "Nambari ya utambulisho wa kodi{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "Uhamisho", "-744999940": "Akaunti ya Deriv", "-766186087": "{{trustScore}} kati ya 5 kulingana na maoni {{numberOfReviews}}", - "-1265635180": "Bidhaa zinazotolewa kwenye wavuti yetu ni bidhaa ngumu za matokeo ambazo zina hatari kubwa ya upotezaji. CFD ni zana ngumu zilizo na hatari kubwa ya kupoteza pesa haraka kutokana na ufanisi. 67.28% ya akaunti za wawekezaji wa rejareja hupoteza pesa wakati wa kufanya biashara ya CFD na mtoa huduma huyu. Unapaswa kuzingatia ikiwa unaelewa jinsi bidhaa hizi zinavyofanya kazi na ikiwa unaweza kumudu kuchukua hatari kubwa ya kupoteza pesa zako.", "-1870909526": "Seva yetu haiwezi kurejesha anwani.", "-582721696": "Kiasi cha kutoa kinachoruhusiwa kwa sasa ni {{format_min_withdraw_amount}} hadi {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "Cashier", @@ -3284,7 +3292,7 @@ "-295975118": "Kisha, nenda kwenye kichup <0>o cha Huduma chini ya orodha ya Vizuizi. Gonga mshale unaoondoka na ubonye <0>za Loops.", "-698493945": "Hatua ya 5:", "-1992994687": "Sasa, gusa <0>Uchambuzi katika mshale unaoshuka na bonyeza <0>Mkataba.", - "-1844492873": "Nenda kwenye kizuizi cha <0>mwisho cha mat okeo ya biashara na bofya ikoni + ili kuongeza kiz <0>uizi cha Matokeo ni Win kwenye nafasi ya kazi.", + "-1844492873": "Nenda kwenye kitalu cha <0>matokeo ya mwisho ya biashara na bofya ikoni ya + ili kuongeza kitalu cha <0>Result is Win kwenye nafasi ya kazi.", "-1547091772": "Kisha, buruta Matok <0>eo ni kushin da kwenye slot tupu karibu na kuru <0>dia hadi kiz uizi.", "-736400802": "Hatua ya 6:", "-732067680": "Mwishowe, buruta na ongeza kizuizi kizima <0>cha Kuru dia kwenye kizuizi cha <0>Anzisha upya hali ya biashara.", @@ -3763,8 +3771,14 @@ "-1331298683": "Kuchukua faida hakuwezi kurekebishwa kwa mikataba inayoendelea ya accumulator.", "-509210647": "Jaribu kutafuta kitu kingine.", "-99964540": "Wakati faida yako inapofikia au kuzidi kiasi kilichowekwa, biashara yako itafungwa otomatiki.", - "-1221049974": "Bei ya mwisho", + "-542594338": "Max. malipo", + "-1622900200": "Imewezesha", "-2131851017": "Kiwango cha ukuaji", + "-339236213": "Multiplier", + "-1396928673": "Usimamizi wa Hatari", + "-1358367903": "Dau", + "-1853307892": "Weka biashara yako", + "-1221049974": "Bei ya mwisho", "-843831637": "Zuia hasara", "-583023237": "Hii ni thamani ya kuuza tena ya mkataba wako, kulingana na hali iliyopo ya soko (kwa mfano, sehemu ya sasa), ikiwa ni pamoja na tume za ziada ikiwa ziko.", "-1476381873": "Bei ya hivi karibuni ya mali wakati wa ufungaji wa biashara huchakatwa na seva zetu.", @@ -3845,8 +3859,6 @@ "-700280380": "Ada. ya kughairi mpango", "-8998663": "Digit: {{last_digit}} ", "-718750246": "Dau lako litaongezeka kwa {{growth_rate}}% kwa kila tick maadamu bei ya sasa itabaki ndani ya ±{{tick_size_barrier_percentage}} kutoka kwa bei ya hapo awali.", - "-1358367903": "Dau", - "-542594338": "Max. malipo", "-690963898": "Mkataba wako utafungwa otomatiki wakati malipo yako yatapofikia kiasi hiki.", "-511541916": "Mkataba wako utafungwa otomatiki baada ya kufikia idadi hii ya tick.", "-438655760": "<0>Kumbuka: Unaweza kufunga biashara yako wakati wowote. Jihadhari na hatari ya kuteleza.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% ya (<1/>* {{multiplier}})", "-732683018": "Wakati faida yako inapofikia au kuzidi kiasi hiki, biashara yako itafungwa otomatiki.", "-989393637": "Kuchukua faida hakuwezi kubadilishwa baada ya mkataba wako kuanza.", - "-339236213": "Multiplier", "-194424366": "hapo juu", "-857660728": "Bei za Ushindani", "-1346404690": "Unapokea malipo wakati wa kumalizika ikiwa bei ya hapo haigusa au kukiuka kizuizi wakati wote wa mkataba. Vinginevyo, mkataba wako utaondolewa mapema.", @@ -4070,7 +4081,7 @@ "-1735674752": "Jaribu nambari", "-1017805068": "Kizuizi hiki hupima namba fulani kulingana na uteuzi na inarudisha thamani ya “Kweli” au “Uwongo”. Chaguzi zinazopatikana: Hata, Ajabu, Mkuu, Wote, Chanya, Hasi, Inaweza kugawanyika", "-1858332062": "Nambari", - "-1053492479": "Ingiza namba ya jumla au nambari ya sehemu kwenye kizuizi hiki. Tafadhali tumia `.` kama mgawanyiko wa kukata kwa nambari za sehemu.", + "-1053492479": "Ingiza namba kamili au nambari ya sehemu kwenye kitalu hiki. Tafadhali tumia `.` kama kigawanyo cha desimali kwa nambari za sehemu.", "-927097011": "jumla", "-1653202295": "max", "-1555878023": "wastani", @@ -4177,6 +4188,8 @@ "-3423966": "Chukua faida <0 /> Zuia hasara", "-1131753095": "Taarifa ya mkataba wa {{trade_type_name}} hazipatikani kwa sasa. Tunafanya kazi kuzifanya zipatikane hivi karibuni.", "-360975483": "Hujafanya miamala ya aina hii katika kipindi hiki.", + "-2082644096": "Dau la sasa", + "-1942828391": "Malipo kubwa", "-335816381": "Ends In/Ends Out", "-1789807039": "Asia Up/Asia Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "Faida/hasara inayowezekana:", "-1511825574": "Faida/Hasara:", "-499175967": "Bei za Ushindani", - "-2082644096": "Dau la sasa", "-706219815": "Bei ya kiashiria", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Crash 500 Indeksi", "-9704319": "Crash 1000 Indeksi", "-465860988": "Soko Bull Indeksi", - "-390528194": "Step Indeksi", "-280323742": "Kikapu EUR", "-563812039": "Volatility 10 (1s) Indeksi", "-82971929": "Volatility 25 (1s) Indeksi", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index 3f56d76f1494..8c8ee2622283 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -512,6 +512,7 @@ "538017420": "0.5 จุดพิพ", "538042340": "หลักการที่ 2: เงินทุนทรัพย์จะเพิ่มขึ้นก็ต่อเมื่อการเทรดขาดทุนนั้นตามมาด้วยการเทรดที่ประสบความสำเร็จ", "538228086": "Close-Low", + "539352212": "Tick {{current_tick}}", "541650045": "จัดการรหัสผ่าน {{platform}}", "541700024": "ขั้นตอนแรกคือให้กรอกข้อมูลหมายเลขใบขับขี่และวันหมดอายุบัตร", "542038694": "เฉพาะตัวอักษร ตัวเลข เว้นวรรค เส้นใต้ และยัติภังค์เท่านั้นที่ได้รับอนุญาตสำหรับ {{label}}", @@ -822,6 +823,7 @@ "839805709": "เราต้องได้ภาพถ่ายที่ดีกว่านี้ของคุณเพื่อการยืนยันตัวตนที่ราบรื่น", "841543189": "ดูธุรกรรมบนบล็อกเชน", "843333337": "คุณสามารถทำการฝากเงินได้เท่านั้น โปรดกรอก <0>การประเมินทางการเงิน เพื่อปลดล็อกการถอนเงิน", + "845106422": "คาดการณ์ตัวเลขหลักสุดท้าย", "845304111": "ช่วงเวลา EMA ที่ช้า {{ input_number }}", "848083350": "เงินผลตอบแทนของคุณจะเท่ากับการ <0>เงินได้ต่อจุดพอยท์ คูณด้วยส่วนต่างระหว่างราคาสุดท้ายและราคาใช้สิทธิ โดยคุณจะได้รับผลกำไรก็ต่อเมื่อเงินตอบแทนของคุณสูงกว่าเงินทุนทรัพย์เริ่มแรก", "850582774": "โปรดอัพเดทข้อมูลส่วนบุคคลของคุณ", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0>คุณสามารถดูสรุปการทำธุรกรรมนี้ได้ในอีเมล์ของคุณ", "938947787": "การถอนเงิน {{currency}}", "938988777": "เส้นระดับราคาเป้าหมายอันบน", + "942015028": "ดัชนี Step 500", "944499219": "จำนวนสูงสุดของตำแหน่งที่เปิดได้", "945532698": "สัญญาที่ถูกขาย", "945753712": "กลับไปยัง Trader’s Hub", @@ -1105,6 +1108,7 @@ "1104912023": "รอการตรวจสอบยืนยัน", "1107474660": "ส่งหลักฐานยืนยันที่อยู่", "1107555942": "ถึง", + "1109182113": "หมายเหตุ: การยกเลิกดีลข้อตกลงจะใช้ได้เฉพาะสำหรับดัชนี Volatility ในการเทรด Multiplier เท่านั้น", "1109217274": "สำเร็จแล้ว!", "1110102997": "รายการบัญชี", "1111743543": "ตัวหยุดการขาดทุน (Multiplier)", @@ -1551,6 +1555,7 @@ "1542742708": "สินทรัพย์สังเคราะห์ Forex หุ้น ดัชนีหุ้น สินค้าโภคภัณฑ์ และคริปโตเคอเรนซี่", "1544642951": "หากคุณเลือก \"Only Ups\" คุณจะได้รับเงินผลตอบแทนก็ต่อเมื่อช่วงค่า Tick ที่อยู่ติดๆ กันขยับสูงขึ้นอย่างต่อเนื่องหลังจากจุดเข้า แต่คุณจะไม่ได้รับเงินผลตอบแทนหากว่าค่า Tick อันหนึ่งอันใดมีค่าลดลงจากหรือเท่ากับค่า Tick ตัวก่อนหน้านั้น", "1547148381": "ไฟล์นั้นใหญ่เกินไป (อนุญาตได้ไม่เกิน 8MB) กรุณาอัปโหลดไฟล์อื่น", + "1548185597": "ดัชนี Step 200", "1549098835": "ยอดถอนเงินทั้งหมด", "1551172020": "Basket AUD", "1551689907": "เสริมประสบการณ์การเทรดหรือเทรดของคุณด้วยการอัพเกรดบัญชี <0/><1>{{platform}} {{type}} {{from_account}} ของคุณ", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "เวลาเริ่มต้น", "1694517345": "ป้อนที่อยู่อีเมล์ใหม่", + "1694888104": "ผลิตภัณฑ์ที่นำเสนอบนเว็บไซต์ของเรานั้นเป็นผลิตภัณฑ์อนุพันธ์ที่ซับซ้อนซึ่งมาพร้อมกับความเสี่ยงสูงที่จะขาดทุนสูญเสีย สัญญาส่วนต่างหรือ CFD เป็นตราสารที่ซับซ้อนและมาพร้อมกับความเสี่ยงสูงที่จะสูญเสียเงินอย่างรวดเร็วเนื่องจากการใช้เลเวอเรจ ทั้งนี้ 70.78% ของบัญชีนักลงทุนรายย่อยสูญเสียเงินเมื่อเทรด CFD กับผู้ให้บริการรายนี้ ดังนั้นคุณควรพิจารณาว่าคุณเข้าใจวิธีการทำงานของผลิตภัณฑ์เหล่านี้หรือไม่ และคุณสามารถที่จะรับความเสี่ยงสูงในการสูญเสียเงินของคุณได้หรือไม่", "1696190747": "การเทรดโดยธรรมชาติแล้วจะเกี่ยวข้องกับความเสี่ยง และกำไรที่จะได้จริงๆ นั้นก็อาจผันผวนไปตามปัจจัยต่างๆ รวมถึงความผันผวนของตลาดและตัวแปรอื่นๆ ที่ไม่คาดฝัน ดังนั้นจึงต้องใช้ความระมัดระวังและต้องทำการศึกษาอย่างละเอียดก่อนที่จะเข้ามามีส่วนร่วมในกิจกรรมการเทรดหรือเทรดใดๆ", "1698624570": "2. กด ตกลง เพื่อยืนยัน", "1699606318": "คุณได้อัปโหลดเอกสารมากจนถึงขีดจำกัดแล้ว", @@ -1696,6 +1702,7 @@ "1703712522": "เงินผลตอบแทนของคุณจะเท่ากับเงินผลตอบแทนที่ได้ต่อจุดพิพ มาคูณด้วยส่วนต่าง <0>ในรูปแบบจุดพิพระหว่างราคาสุดท้ายและราคาใช้สิทธิ", "1704656659": "คุณมีประสบการณ์ในการเทรด CFD มากแค่ไหน", "1707264798": "เหตุใดฉันจึงไม่เห็นเงินที่ฝากไว้ในบัญชี Deriv ของฉัน?", + "1707758392": "ดัชนี Step 100", "1708413635": "สำหรับบัญชี {{currency_name}} ({{currency}}) ของคุณ", "1709859601": "เวลาจุดออก", "1711013665": "ปริมาณการเทรดที่คาดการณ์เอาไว้ของบัญชี", @@ -2014,6 +2021,7 @@ "1990331072": "หลักฐานการเป็นเจ้าของ", "1990735316": "Rise Equals", "1991055223": "ดูราคาตลาดของสินทรัพย์ที่คุณชื่นชอบ", + "1991448657": "ไม่ทราบหมายเลขประจําตัวผู้เสียภาษีของคุณใช่หรือไม่? คลิก <0>ที่นี่ เพื่อเรียนรู้เพิ่มเติม", "1991524207": "ดัชนี Jump 100", "1994023526": "ที่อยู่อีเมล์ที่คุณป้อนมีข้อผิดพลาดหรือพิมพ์ผิด (เกิดขึ้นได้กับเราทุกคน)", "1994558521": "แพลตฟอร์มเหล่านี้ไม่เป็นมิตรกับผู้ใช้", @@ -2389,6 +2397,7 @@ "-138380129": "ยอดการถอนเงินทั้งหมดที่ได้อนุญาตแล้ว", "-1502578110": "บัญชีของคุณได้รับการยืนยันตัวตนอย่างสมบูรณ์ และวงเงินการถอนเงินของคุณได้ถูกยกเลิกแล้ว", "-506122621": "โปรดสละเวลาสักครู่เพื่ออัพเดทข้อมูลของคุณตอนนี้", + "-1106259572": "ไม่ทราบหมายเลขประจำตัวผู้เสียภาษีของคุณใช่หรือไม่? <1 />คลิก <0>ที่นี่ เพื่อเรียนรู้เพิ่มเติม", "-252665911": "สถานที่เกิด{{required}}", "-859814496": "ที่อยู่ผู้เสียภาษี{{required}}", "-237940902": "หมายเลขประจำตัวผู้เสียภาษี{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "โอนเงิน", "-744999940": "บัญชี Deriv", "-766186087": "ได้คะแนน TrustScore {{trustScore}} จากเต็ม 5 โดยอิงรีวิว {{numberOfReviews}} ฉบับ", - "-1265635180": "ผลิตภัณฑ์ที่นำเสนอบนเว็บไซต์ของเรานั้นเป็นผลิตภัณฑ์อนุพันธ์ที่ซับซ้อนซึ่งมาพร้อมกับความเสี่ยงสูงที่จะขาดทุนสูญเสีย สัญญาการเทรดส่วนต่างหรือ CFD เป็นตราสารที่ซับซ้อนและมาพร้อมกับความเสี่ยงสูงที่จะสูญเสียเงินอย่างรวดเร็วเนื่องจากเลเวอเรจ 67.28% ของบัญชีนักลงทุนรายย่อยสูญเสียเงินเมื่อเทรด CFD กับผู้ให้บริการรายนี้ ดังนั้นคุณควรพิจารณาว่าคุณเข้าใจวิธีการทำงานของผลิตภัณฑ์เหล่านี้หรือไม่ และคุณสามารถที่จะรับความเสี่ยงสูงในการสูญเสียเงินได้หรือไม่", "-1870909526": "เซิร์ฟเวอร์ของเราไม่สามารถดึงข้อมูลที่อยู่ได้", "-582721696": "จำนวนการถอนที่อนุญาตในปัจจุบันคือ {{format_min_withdraw_amount}} ถึง {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "แคชเชียร์", @@ -3763,8 +3771,14 @@ "-1331298683": "ตัวปิดเทรดเอากำไรนั้นจะไม่อาจปรับได้สำหรับสัญญา Accumulator ที่กำลังดำเนินอยู่", "-509210647": "ลองค้นหาสิ่งอื่น", "-99964540": "เมื่อกำไรของคุณถึงหรือเกินจำนวนที่ตั้งค่าไว้นี้ การเทรดของคุณจะถูกปิดโดยอัตโนมัติ", - "-1221049974": "ราคาสุดท้าย", + "-542594338": "เงินผลตอบแทนขั้นสูงสุด", + "-1622900200": "เปิดใช้งานแล้ว", "-2131851017": "อัตราการเติบโต", + "-339236213": "Multiplier", + "-1396928673": "การบริหารความเสี่ยง", + "-1358367903": "ทุนทรัพย์", + "-1853307892": "ตั้งค่าการเทรดของคุณ", + "-1221049974": "ราคาสุดท้าย", "-843831637": "ตัวหยุดการขาดทุน", "-583023237": "นี่คือมูลค่าการขายต่อของสัญญาของคุณ โดยอิงตามเงื่อนไขของตลาดปัจจุบัน (เช่น ราคาสปอตปัจจุบัน) รวมถึงค่าคอมมิชชั่นเพิ่มเติมหากมี", "-1476381873": "ราคาสินทรัพย์ล่าสุดเมื่อเซิร์ฟเวอร์ของเราประมวลผลการปิดการเทรด", @@ -3845,8 +3859,6 @@ "-700280380": "ค่าธรรมเนียมการยกเลิกดีลข้อตกลง", "-8998663": "Digit: {{last_digit}} ", "-718750246": "เงินทุนทรัพย์ของคุณจะเติบโต {{growth_rate}}% ในทุกจุด Tick ตราบใดที่ราคายังคงอยู่ในช่วง ±{{tick_size_barrier_percentage}} จากราคาอันก่อนหน้า", - "-1358367903": "ทุนทรัพย์", - "-542594338": "เงินผลตอบแทนขั้นสูงสุด", "-690963898": "สัญญาของคุณจะถูกปิดโดยอัตโนมัติหากว่าจำนวนเงินผลตอบแทนของคุณได้มาถึงจำนวนนี้", "-511541916": "สัญญาของคุณจะถูกปิดโดยอัตโนมัติเมื่อถึงจำนวนจุด Tick นี้", "-438655760": "<0>หมายเหตุ: คุณสามารถปิดการเทรดของคุณได้ตลอดเวลา โปรดตระหนักถึงความเสี่ยงการคลาดเคลื่อนราคา", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% ของ (<1/> * {{multiplier}})", "-732683018": "เมื่อกำไรของคุณถึงหรือเกินจำนวนนี้ การเทรดของคุณจะถูกปิดโดยอัตโนมัติ", "-989393637": "ตัวปิดเทรดเอากำไรนั้นจะไม่อาจปรับได้หลังจากที่สัญญาของคุณเริ่มต้นแล้ว", - "-339236213": "Multiplier", "-194424366": "ด้านบน", "-857660728": "ราคาใช้สิทธิ", "-1346404690": "คุณจะได้รับเงินผลตอบแทนที่จุดหมดเวลา หากว่าราคาสปอตนั้นไม่เคยแตะหรือฝ่าทะเลุเส้นระดับราคาเป้าหมายในตลอดช่วงเวลาสัญญา มิฉะนั้นสัญญาของคุณก็จะถูกยกเลิกก่อนกำหนด", @@ -4177,6 +4188,8 @@ "-3423966": "ตัวปิดเทรดเอากำไร<0 />ตัวหยุดการขาดทุน", "-1131753095": "รายละเอียดสัญญา {{trade_type_name}} ยังไม่มีให้บริการในขณะนี้ เรากำลังจัดเตรียมข้อมูลเพื่อพร้อมให้บริการในเร็วๆนี้", "-360975483": "คุณไม่ได้ทำธุรกรรมประเภทนี้ในช่วงเวลานี้", + "-2082644096": "เงินทุนทรัพย์ปัจจุบัน", + "-1942828391": "เงินผลตอบแทนขั้นสูงสุด", "-335816381": "Ends In/Ends Out", "-1789807039": "Asian Up/Asian Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "กำไร/ขาดทุนที่ถูกประมาณการ:", "-1511825574": "กำไร/ขาดทุน:", "-499175967": "ราคาใช้สิทธิ", - "-2082644096": "เงินทุนทรัพย์ปัจจุบัน", "-706219815": "ราคาที่เหมาะสม", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "ดัชนี Crash 500", "-9704319": "ดัชนี Crash 1000", "-465860988": "ดัชนี Bull Market", - "-390528194": "ดัชนี Step", "-280323742": "Basket EUR", "-563812039": "ดัชนี Volatility 10 (1s)", "-82971929": "ดัชนี Volatility 25 (1s)", diff --git a/packages/translations/src/translations/tr.json b/packages/translations/src/translations/tr.json index ae5cf5eb3d5a..ed3a852eb807 100644 --- a/packages/translations/src/translations/tr.json +++ b/packages/translations/src/translations/tr.json @@ -512,6 +512,7 @@ "538017420": "0.5 pips", "538042340": "İlke 2: Bahis miktarı yalnızca bir kayıp işlemini başarılı bir işlem izlediğinde artar", "538228086": "Close-Low", + "539352212": "Tik {{current_tick}}", "541650045": "{{platform}} parolasını yönet", "541700024": "İlk olarak, ehliyet numaranızı ve son kullanma tarihini girin.", "542038694": "{{label}} için sadece harfler, sayılar, boşluk, alt çizgi, ve kısa çizgiye izin verilir.", @@ -822,6 +823,7 @@ "839805709": "Sizi sorunsuz bir şekilde doğrulamak için daha iyi bir fotoğrafa ihtiyacımız var", "841543189": "Blockchain'de işlemi görüntüle", "843333337": "Yalnızca deposit işlemi yapabilirsiniz. Para çekme işlemlerinin kilidini açmak için lütfen <0>finansal değerlendirmeyi tamamlayın.", + "845106422": "Son rakam tahmini", "845304111": "Yavaş EMA Periyotu {{ input_number }}", "848083350": "Ödemeniz, <0>puan başına ödemenin nihai fiyat ile strike fiyatı arasındaki farkla çarpımına eşittir. Yalnızca ödemeniz ilk bahis miktarınızdan yüksekse kâr elde edersiniz.", "850582774": "Lütfen kişisel bilgilerinizi güncelleyin", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0>Bu işlemin özetini e-postanızda görüntüleyebilirsiniz.", "938947787": "Para Çekme {{currency}}", "938988777": "Yüksek bariyer", + "942015028": "Adım 500 Endeksi", "944499219": "Maks. açık pozisyonlar", "945532698": "Sözleşme satıldı", "945753712": "Trader's Hub'a geri dön", @@ -1105,6 +1108,7 @@ "1104912023": "Doğrulama bekleniyor", "1107474660": "Adres kanıtı gönder", "1107555942": "E", + "1109182113": "Not: Anlaşma iptali yalnızca Çarpanlardaki Volatilite Endeksleri için kullanılabilir.", "1109217274": "Başarı!", "1110102997": "Açıklama", "1111743543": "Zarar durdur (Multiplier)", @@ -1551,6 +1555,7 @@ "1542742708": "Sentetikler, Forex, Hisse Senetleri, Hisse senedi endeksleri, Emtialar ve Kripto Para Birimleri", "1544642951": "\"Only Ups\"ı seçerseniz, giriş noktasından sonra ardışık tikler art arda yükselirse ödemeyi kazanırsınız. Herhangi bir tik düşerse veya önceki tiklerden herhangi birine eşitse ödeme yapılmaz.", "1547148381": "Bu dosya çok büyük (sadece 8MB'a kadar izin verilir). Lütfen başka bir dosya yükleyin.", + "1548185597": "Adım 200 Endeksi", "1549098835": "Çekilen toplam", "1551172020": "AUD Sepeti", "1551689907": "Ticaret deneyiminizi geliştirin <0/><1>{{platform}} {{type}} {{from_account}} hesap(lar).", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Başlangıç zamanı", "1694517345": "Yeni bir e-posta adresi girin", + "1694888104": "Web sitemizde sunulan ürünler, önemli ölçüde potansiyel kayıp riski taşıyan karmaşık türev ürünlerdir. CFD'ler, kaldıraç nedeniyle hızla para kaybetme riski yüksek olan karmaşık araçlardır. Perakende yatırımcı hesaplarının %70.78'i bu sağlayıcı ile CFD ticareti yaparken para kaybetmektedir. Bu ürünlerin nasıl çalıştığını anlayıp anlamadığınızı ve paranızı kaybetme riskini göze alıp alamayacağınızı düşünmelisiniz.", "1696190747": "Alım satım doğası gereği risk içerir ve gerçek kârlar, piyasa oynaklığı ve diğer öngörülemeyen değişkenler dahil olmak üzere çeşitli faktörler nedeniyle dalgalanabilir. Bu nedenle, herhangi bir alım satım faaliyetine başlamadan önce dikkatli olun ve kapsamlı bir araştırma yapın.", "1698624570": "2. Onaylamak için Ok ögesine tıklayın.", "1699606318": "Belgelerinizi yükleme sınırına ulaştınız.", @@ -1696,6 +1702,7 @@ "1703712522": "Ödemeniz, pip başına ödemenin nihai fiyat ile kullanım fiyatı arasındaki <0>pip cinsinden farkla çarpımına eşittir.", "1704656659": "CFD ticaretinde ne kadar deneyiminiz var?", "1707264798": "Deriv hesabımda yatırılan fonları neden göremiyorum?", + "1707758392": "Adım 100 Endeksi", "1708413635": "{{currency_name}} ({{currency}}) hesabınız için", "1709859601": "Çıkış Noktası Zamanı", "1711013665": "Beklenen hesap cirosu", @@ -2014,6 +2021,7 @@ "1990331072": "Sahiplik kanıtı", "1990735316": "Rise Equals", "1991055223": "Favori varlıklarınızın piyasa fiyatını görüntüleyin.", + "1991448657": "Vergi kimlik numaranızı bilmiyor musunuz? Daha fazla bilgi edinmek için <0>buraya tıklayın.", "1991524207": "Jump 100 Endeksi", "1994023526": "Girdiğiniz e-posta adresi bir hata veya yazım hatası içerdi (en iyilerimizin bile başına geliyor).", "1994558521": "Platformlar kullanıcı dostu değildir.", @@ -2389,6 +2397,7 @@ "-138380129": "İzin verilen toplam para çekme", "-1502578110": "Hesabınızın kimliği tamamen doğrulandı ve para çekme limitleriniz kaldırıldı.", "-506122621": "Lütfen bilgilerinizi şimdi güncellemek için bir dakikanızı ayırın.", + "-1106259572": "Vergi kimlik numaranızı bilmiyor musunuz? <1 />Daha fazlasını öğrenmek için <0>buraya <1 />tıklayın<0>.", "-252665911": "Doğum yeri {{required}}", "-859814496": "Vergi ikametgahı{{required}}", "-237940902": "Vergi Kimlik numarası{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "Transfer", "-744999940": "Deriv hesabı", "-766186087": "{{numberOfReviews}} kullanıcı görüşüne göre TrustScore puanı {{trustScore}} ", - "-1265635180": "Web sitemizde sunulan ürünler, önemli ölçüde potansiyel kayıp riski taşıyan karmaşık türev ürünlerdir. CFD'ler, kaldıraç nedeniyle hızla para kaybetme riski yüksek olan karmaşık araçlardır. Perakende yatırımcı hesaplarının %67.28'i bu sağlayıcı ile CFD ticareti yaparken para kaybetmektedir. Bu ürünlerin nasıl çalıştığını anlayıp anlamadığınızı ve paranızı kaybetme riskini göze alıp alamayacağınızı düşünmelisiniz.", "-1870909526": "Sunucumuz bir adres kurtaramıyor.", "-582721696": "İzin verilen geçerli geri çekme miktarı {{format_min_withdraw_amount}} ile {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "Kasiyer", @@ -3763,8 +3771,14 @@ "-1331298683": "Devam eden accumulator sözleşmeleri için Kar Al ayarı yapılamaz.", "-509210647": "Başka bir şey aramayı deneyin.", "-99964540": "Kârınız belirlenen miktara ulaştığında veya aştığında, işleminiz otomatik olarak kapatılacaktır.", - "-1221049974": "Son fiyat", + "-542594338": "Maks. ödeme", + "-1622900200": "Etkin", "-2131851017": "Büyüme oranı", + "-339236213": "Multiplier", + "-1396928673": "Risk Yönetimi", + "-1358367903": "Bahis", + "-1853307892": "Ticaretinizi ayarlayın", + "-1221049974": "Son fiyat", "-843831637": "Zarar durdur", "-583023237": "Bu, varsa ek komisyonlar dahil olmak üzere, geçerli piyasa koşullarına (örneğin, mevcut spot) dayalı olarak sözleşmenizin yeniden satış değeridir.", "-1476381873": "İşlem kapanışı sunucularımız tarafından işlendiğinde en son varlık fiyatı.", @@ -3845,8 +3859,6 @@ "-700280380": "Anlaşma iptal. ücreti", "-8998663": "Digit: {{last_digit}} ", "-718750246": "Mevcut spot fiyat önceki spot fiyattan ±{{tick_size_barrier_percentage}} içinde kaldığı sürece bahisiniz tik başına {{growth_rate}}% oranında artacaktır.", - "-1358367903": "Bahis", - "-542594338": "Maks. ödeme", "-690963898": "Ödemeniz bu tutara ulaştığında sözleşmeniz otomatik olarak kapatılacaktır.", "-511541916": "Bu sayıda tike ulaşıldığında sözleşmeniz otomatik olarak kapatılacaktır.", "-438655760": "<0>Not: İşleminizi istediğiniz zaman kapatabilirsiniz. Kayma riskinin farkında olun.", @@ -3865,7 +3877,6 @@ "-1686280757": "(<1/> * {{multiplier}})'ın <0>{{commission_percentage}}%", "-732683018": "Kârınız bu tutara ulaştığında veya bu tutarı aştığında, işleminiz otomatik olarak kapatılacaktır.", "-989393637": "Kar Al, sözleşmeniz başladıktan sonra ayarlanamaz.", - "-339236213": "Multiplier", "-194424366": "üzerinde", "-857660728": "Strike Fiyatları", "-1346404690": "Spot fiyat sözleşme süresi boyunca bariyere hiç dokunmaz veya bariyeri aşmazsa, vade sonunda bir ödeme alırsınız. Aksi takdirde, sözleşmeniz erken sonlandırılır.", @@ -4177,6 +4188,8 @@ "-3423966": "Kar al<0 />Zarar durdur", "-1131753095": "{{trade_type_name}} sözleşmesi ayrıntıları şu anda mevcut değil. Yakında onları kullanıma sunmaya çalışıyoruz.", "-360975483": "Bu süre boyunca bu tür bir işlem yapmadınız.", + "-2082644096": "Mevcut bahis", + "-1942828391": "Maksimum ödeme", "-335816381": "Ends In/Ends Out", "-1789807039": "Asian Up/Asian Down", "-558031309": "Yüksek Tik/Düşük Tik", @@ -4192,7 +4205,6 @@ "-726626679": "Potansiyel kar/zarar:", "-1511825574": "Kar/Zarar:", "-499175967": "Strike Fiyatları", - "-2082644096": "Mevcut bahis", "-706219815": "Gösterge fiyatı", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Crash 500 Endeksi", "-9704319": "Crash 1000 Endeksi", "-465860988": "Bull Market Endeksi", - "-390528194": "Step Endeksi", "-280323742": "EUR Sepeti", "-563812039": "Volatility 10 (1s) Endeksi", "-82971929": "Volatility 25 (1s) Endeksi", diff --git a/packages/translations/src/translations/uz.json b/packages/translations/src/translations/uz.json index 95c152790ea9..fa3b7dea6c69 100644 --- a/packages/translations/src/translations/uz.json +++ b/packages/translations/src/translations/uz.json @@ -512,6 +512,7 @@ "538017420": "0.5 pips", "538042340": "2 tamoyil: Tikish faqat mag'lubiyatga uchragan savdodan so'ng muvaffaqiyatli bo'lgan taqdirdagina oshadi", "538228086": "Close-Low", + "539352212": "Tick {{current_tick}}", "541650045": "{{platform}} parolini boshqarish", "541700024": "Birinchidan, haydovchilik guvohnomangiz raqamini va amal qilish muddatini kiriting.", "542038694": "{{label}} uchun faqaq harflar, raqamlar, bo'sh joy, pastki chiziq va tirnoqlarga ruxsat berilgan.", @@ -822,6 +823,7 @@ "839805709": "Sizni muammosiz aniqlash uchun bizga yaxshiroq surat kerak", "841543189": "Blokcheyndagi tranzaksiyani ko'rish", "843333337": "Hozir siz faqat depozit qo'yishingiz mumkin. Pul yechib olish uchun <0>moliyaviy baholashni yakunlang.", + "845106422": "Last digit prediction", "845304111": "Sekin EMA davri {{ input_number }}", "848083350": "Sizning to'lovingiz yakuniy narx va ijro narxi o'rtasida farqga ko'paytirilgan <0>point uchun tolovga teng. Agar sizning to'lovingiz dastlabki tikishingizdan yuqori bo'lsa, foyda olasiz.", "850582774": "Ltimos, shaxsiy ma'lumotlaringizni yangilang", @@ -916,6 +918,7 @@ "938500877": "{{ text }}.<0>ushbu tranzaksiyaning xulosasini email-ingizda ko'rishingiz mumkin.", "938947787": "Chiqarish {{currency}}", "938988777": "Yuqo'ri tosiq", + "942015028": "Step 500 Index", "944499219": "Maksimal ochiq positsiyalar", "945532698": "Shartnoma sotildi", "945753712": "Trader’s Hub-ga qaytish", @@ -1105,6 +1108,7 @@ "1104912023": "Pending verification", "1107474660": "Submit proof of address", "1107555942": "To", + "1109182113": "Note: Deal cancellation is only available for Volatility Indices on Multipliers.", "1109217274": "Success!", "1110102997": "Statement", "1111743543": "Stop loss (Multiplier)", @@ -1551,6 +1555,7 @@ "1542742708": "Synthetics, Forex, Stocks, Stock indices, Commodities, and Cryptocurrencies", "1544642951": "If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.", "1547148381": "That file is too big (only up to 8MB allowed). Please upload another file.", + "1548185597": "Step 200 Index", "1549098835": "Total withdrawn", "1551172020": "AUD Basket", "1551689907": "Enhance your trading experience by upgrading your <0/><1>{{platform}} {{type}} {{from_account}} account(s).", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Start time", "1694517345": "Yangi email manzilini kiriting", + "1694888104": "The products offered on our website are complex derivative products that carry a significant risk of potential loss. CFDs are complex instruments with a high risk of losing money rapidly due to leverage. 70.78% of retail investor accounts lose money when trading CFDs with this provider. You should consider whether you understand how these products work and whether you can afford to take the high risk of losing your money.", "1696190747": "Trading inherently involves risks, and actual profits can fluctuate due to various factors, including market volatility and other unforeseen variables. As such, exercise caution and conduct thorough research before engaging in any trading activities.", "1698624570": "2. Hit Ok to confirm.", "1699606318": "You've reached the limit of uploading your documents.", @@ -1696,6 +1702,7 @@ "1703712522": "Your payout is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.", "1704656659": "How much experience do you have in CFD trading?", "1707264798": "Why can't I see deposited funds in my Deriv account?", + "1707758392": "Step 100 Index", "1708413635": "For your {{currency_name}} ({{currency}}) account", "1709859601": "Exit Spot Time", "1711013665": "Anticipated account turnover", @@ -2014,6 +2021,7 @@ "1990331072": "Mulkni tasdiqlovchi hujjat", "1990735316": "Rise Equals", "1991055223": "Sevimli aktivlaringizning bozor narxini ko'ring.", + "1991448657": "Don't know your tax identification number? Click <0>here to learn more.", "1991524207": "Jump 100 Indeksiga", "1994023526": "The email address you entered had a mistake or typo (happens to the best of us).", "1994558521": "The platforms aren’t user-friendly.", @@ -2389,6 +2397,7 @@ "-138380129": "Total withdrawal allowed", "-1502578110": "Your account is fully authenticated and your withdrawal limits have been lifted.", "-506122621": "Please take a moment to update your information now.", + "-1106259572": "Don't know your tax identification number? <1 />Click <0>here to learn more.", "-252665911": "Place of birth{{required}}", "-859814496": "Tax residence{{required}}", "-237940902": "Tax Identification number{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "Transfer", "-744999940": "Deriv Hisobi", "-766186087": "{{trustScore}} out of 5 based on {{numberOfReviews}} reviews", - "-1265635180": "The products offered on our website are complex derivative products that carry a significant risk of potential loss. CFDs are complex instruments with a high risk of losing money rapidly due to leverage. 67.28% of retail investor accounts lose money when trading CFDs with this provider. You should consider whether you understand how these products work and whether you can afford to take the high risk of losing your money.", "-1870909526": "Our server cannot retrieve an address.", "-582721696": "The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "Kassir", @@ -3763,8 +3771,14 @@ "-1331298683": "Take profit can’t be adjusted for ongoing accumulator contracts.", "-509210647": "Try searching for something else.", "-99964540": "When your profit reaches or exceeds the set amount, your trade will be closed automatically.", - "-1221049974": "Final price", + "-542594338": "Maks. to'lov", + "-1622900200": "Enabled", "-2131851017": "O'sish surati", + "-339236213": "Multiplier", + "-1396928673": "Risk Management", + "-1358367903": "Tikish", + "-1853307892": "Set your trade", + "-1221049974": "Final price", "-843831637": "Stop loss", "-583023237": "This is the resale value of your contract, based on the prevailing market conditions (e.g, the current spot), including additional commissions if any.", "-1476381873": "The latest asset price when the trade closure is processed by our servers.", @@ -3845,8 +3859,6 @@ "-700280380": "Deal cancel. fee", "-8998663": "Digit: {{last_digit}} ", "-718750246": "Your stake will grow at {{growth_rate}}% per tick as long as the current spot price remains within ±{{tick_size_barrier_percentage}} from the previous spot price.", - "-1358367903": "Tikish", - "-542594338": "Maks. to'lov", "-690963898": "Your contract will be automatically closed when your payout reaches this amount.", "-511541916": "Your contract will be automatically closed upon reaching this number of ticks.", "-438655760": "<0>Note: You can close your trade anytime. Be aware of slippage risk.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% of (<1/> * {{multiplier}})", "-732683018": "When your profit reaches or exceeds this amount, your trade will be closed automatically.", "-989393637": "Take profit can't be adjusted after your contract starts.", - "-339236213": "Multiplier", "-194424366": "above", "-857660728": "Strike Prices", "-1346404690": "You receive a payout at expiry if the spot price never touches or breaches the barrier throughout the contract duration. Otherwise, your contract will be terminated early.", @@ -4177,6 +4188,8 @@ "-3423966": "Take profit<0 />Stop loss", "-1131753095": "The {{trade_type_name}} contract details aren't currently available. We're working on making them available soon.", "-360975483": "You've made no transactions of this type during this period.", + "-2082644096": "Current stake", + "-1942828391": "Max payout", "-335816381": "Ends In/Ends Out", "-1789807039": "Asian Up/Asian Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "Potensial profit/loss:", "-1511825574": "Profit/Loss:", "-499175967": "Strike Price", - "-2082644096": "Current stake", "-706219815": "Indicative price", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Crash 500 Index", "-9704319": "Crash 1000 Index", "-465860988": "Bull Market Index", - "-390528194": "Step Index", "-280323742": "EUR Basket", "-563812039": "Volatility 10 (1s) Indeksi", "-82971929": "Volatility 25 (1s) Indeksi", diff --git a/packages/translations/src/translations/vi.json b/packages/translations/src/translations/vi.json index 644a7b990425..119e05c0bbeb 100644 --- a/packages/translations/src/translations/vi.json +++ b/packages/translations/src/translations/vi.json @@ -512,6 +512,7 @@ "538017420": "0,5 pip", "538042340": "Nguyên tắc 2: Cổ phần chỉ tăng khi giao dịch thua lỗ được theo sau bởi giao dịch thành công", "538228086": "Close-Low", + "539352212": "Tick {{current_tick}}", "541650045": "Quản lý mật khẩu {{platform}}", "541700024": "Trước tiên, hãy nhập số giấy phép lái xe của bạn và ngày hết hạn.", "542038694": "Chỉ được điền chữ cái, số, dấu cách, gạch dưới và dấu gạch nối cho {{label}}.", @@ -822,6 +823,7 @@ "839805709": "Để việc xác minh được dễ dàng, chúng tôi cần một bức ảnh có chất lượng tốt hơn", "841543189": "Xem giao dịch trên Chuỗi khối", "843333337": "Bạn chỉ có thể nạp tiền. Vui lòng hoàn thành <0>đánh giá tài chính để rút tiền.", + "845106422": "dự đoán chữ số cuối cùng", "845304111": "Thời lượng EMA chậm {{ input_number }}", "848083350": "Khoản chi trả của bạn sẽ bằng <0>khoản chi trả của mỗi điểm nhân với chênh lệch giữa giá cuối cùng và giá thực hiện. Bạn sẽ chỉ kiếm được lợi nhuận nếu khoản chi trả cho bạn cao hơn số tiền cược ban đầu.", "850582774": "Vui lòng cập nhật thông tin cá nhân của bạn", @@ -916,6 +918,7 @@ "938500877": "{{ text }}. <0>Bạn có thể xem tóm tắt giao dịch này trong email của bạn.", "938947787": "Rút tiền {{currency}}", "938988777": "Ngưỡng cao", + "942015028": "Chỉ số bước 500", "944499219": "Số vị thế mở tối đa", "945532698": "Hợp đồng đã bán", "945753712": "Quay lại Trader's Hub", @@ -1105,6 +1108,7 @@ "1104912023": "Đang chờ xác minh", "1107474660": "Gửi giấy tờ xác thực địa chỉ", "1107555942": "Tới", + "1109182113": "Lưu ý: Hủy thỏa thuận chỉ khả dụng đối với Chỉ số Có trọng lượng trên Số nhân.", "1109217274": "Thành công!", "1110102997": "Sao kê", "1111743543": "Xử lý thẳng (Hệ số nhân)", @@ -1551,6 +1555,7 @@ "1542742708": "Chỉ số tổng hợp, Forex, Cổ phiếu, Chỉ số chứng khoán, Hàng hóa và Tiền điện tử", "1544642951": "Nếu bạn chọn \"Only Ups\" (Chỉ Tăng), hợp đồng quyền chọn của bạn sẽ sinh lời nếu các tick tiếp theo tăng liên tiếp sau giá vào. Hợp đồng không sinh lời nếu giá bất kỳ tick nào thấp hơn hoặc bằng với bất kỳ tick nào trước đó.", "1547148381": "Kích thước tệp quá lớn (chỉ cho phép tối đa 8MB). Vui lòng tải lên một tệp tin khác.", + "1548185597": "Bước 200 Chỉ mục", "1549098835": "Tổng số tiền rút", "1551172020": "Giỏ AUD", "1551689907": "Nâng cao trải nghiệm giao dịch của bạn bằng cách nâng cấp (các) tài khoản <0/> <1>{{platform}} {{type}} {{from_account}} của bạn.", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Thời gian bắt đầu", "1694517345": "Nhập địa chỉ email mới", + "1694888104": "Các sản phẩm được cung cấp trên trang web của chúng tôi là các sản phẩm phái sinh phức tạp có nguy cơ mất mát đáng kể. CFD là công cụ phức tạp có nguy cơ mất tiền nhanh chóng do đòn bẩy. 70.78% tài khoản nhà đầu tư bán lẻ bị mất tiền khi giao dịch CFD với nhà cung cấp này. Bạn nên xem xét liệu bạn có hiểu cách thức hoạt động của các sản phẩm này và liệu bạn có đủ khả năng để chấp nhận rủi ro mất tiền cao hay không.", "1696190747": "Giao dịch vốn liên quan đến rủi ro và lợi nhuận thực tế có thể biến động do nhiều yếu tố khác nhau, bao gồm biến động thị trường và các biến số không lường trước được khác. Do đó, hãy thận trọng và tiến hành nghiên cứu kỹ lưỡng trước khi tham gia vào bất kỳ hoạt động giao dịch nào.", "1698624570": "2. Nhấp Ok để xác nhận.", "1699606318": "Bạn đã đạt đến giới hạn tải lên giấy tờ của mình.", @@ -1696,6 +1702,7 @@ "1703712522": "Khoản chi trả cho bạn sẽ bằng khoản chi trả ở mỗi pip nhân với chênh lệch giữa giá cuối cùng và giá thực hiện, <0>tính bằng pips.", "1704656659": "Bạn có bao nhiêu kinh nghiệm giao dịch CFD?", "1707264798": "Tại sao tôi không thể thấy tiền đã nạp trong tài khoản Deriv của mình?", + "1707758392": "Chỉ số bước 100", "1708413635": "Cho tài khoản {{currency_name}} {{currency}} của bạn", "1709859601": "Thời gian thoát", "1711013665": "Doanh thu tài khoản dự kiến", @@ -2014,6 +2021,7 @@ "1990331072": "Giấy tờ xác nhận quyền sở hữu", "1990735316": "Tăng tương đương", "1991055223": "Xem giá thị trường của tài sản yêu thích của bạn.", + "1991448657": "Bạn không biết mã số thuế của mình? Nhấn <0>vào đây để tìm hiểu thêm.", "1991524207": "Chỉ số Jump 100", "1994023526": "Địa chỉ email bạn nhập bị nhầm hoặc có lỗi chính tả (rất hay xảy ra).", "1994558521": "Các nền tảng không thân thiện với người dùng.", @@ -2389,6 +2397,7 @@ "-138380129": "Tổng số tiền được rút", "-1502578110": "Tài khoản của bạn đã được xác thực đầy đủ và mức giới hạn rút tiền của bạn đã được nâng lên.", "-506122621": "Vui lòng dành một chút thời gian để cập nhật thông tin của bạn ngay bây giờ.", + "-1106259572": "Bạn không biết mã số thuế của mình? <1 />Hãy bấm vào <0>đây để tìm hiểu thêm.", "-252665911": "Nơi sinh {{required}}", "-859814496": "Nơi cư trú bị tính thuế {{required}}", "-237940902": "Mã số thuế {{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "Chuyển khoản", "-744999940": "Tài khoản Deriv", "-766186087": "{{trustScore}} trên 5 dựa trên {{numberOfReviews}} đánh giá", - "-1265635180": "Các sản phẩm được cung cấp trên trang web của chúng tôi là các sản phẩm phái sinh phức tạp có nguy cơ mất mát đáng kể. CFD là công cụ phức tạp có nguy cơ mất tiền nhanh chóng do đòn bẩy. 67.28% tài khoản nhà đầu tư bán lẻ bị mất tiền khi giao dịch CFD với nhà cung cấp này. Bạn nên xem xét liệu bạn có hiểu cách thức hoạt động của các sản phẩm này và liệu bạn có đủ khả năng để chấp nhận rủi ro mất tiền cao hay không.", "-1870909526": "Máy chủ của chúng tôi không thể thu hồi địa chỉ.", "-582721696": "Số tiền được phép rút hiện tại là từ {{format_min_withdraw_amount}} đến {{format_max_withdraw_amount}} {{currency}}", "-1975494965": "Thanh toán", @@ -3763,8 +3771,14 @@ "-1331298683": "Lợi nhuận không thể được điều chỉnh cho các hợp đồng accumulator đang diễn ra.", "-509210647": "Hãy thử tìm kiếm một cái gì đó khác.", "-99964540": "Khi lợi nhuận của bạn đạt hoặc vượt quá số tiền được đặt, giao dịch của bạn sẽ tự động đóng.", - "-1221049974": "Giá cuối cùng", + "-542594338": "Mức chi trả tối đa", + "-1622900200": "Đã kích hoạt", "-2131851017": "Tốc độ tăng trưởng", + "-339236213": "Multiplier", + "-1396928673": "Quản lý rủi ro", + "-1358367903": "Mức cược", + "-1853307892": "Thiết lập giao dịch của bạn", + "-1221049974": "Giá cuối cùng", "-843831637": "Cắt lỗ", "-583023237": "Đây là giá trị bán lại hợp đồng của bạn, dựa trên các điều kiện thị trường hiện hành (ví dụ: giao ngay hiện tại), bao gồm hoa hồng bổ sung nếu có.", "-1476381873": "Giá tài sản mới nhất khi đóng giao dịch được xử lý bởi máy chủ của chúng tôi.", @@ -3845,8 +3859,6 @@ "-700280380": "Phí hủy giao dịch", "-8998663": "Số: {{last_digit}} ", "-718750246": "Tiền cược của bạn sẽ tăng ở mức {{growth_rate}}% cho mỗi tick, miễn là giá giao ngay hiện tại vẫn nằm trong ±{{tick_size_barrier_percentage}} so với giá giao ngay trước đó.", - "-1358367903": "Mức cược", - "-542594338": "Mức chi trả tối đa", "-690963898": "Hợp đồng của bạn sẽ tự động đóng khi mức chi trả cho bạn đạt đến số tiền này.", "-511541916": "Hợp đồng của bạn sẽ tự động đóng khi đạt đến số tick này.", "-438655760": "<0>Lưu ý: Bạn có thể đóng giao dịch của mình bất cứ lúc nào. Hãy cẩn thận với rủi ro trượt giá.", @@ -3865,7 +3877,6 @@ "-1686280757": "<0>{{commission_percentage}}% của (<1/>*{{multiplier}})", "-732683018": "Khi lợi nhuận của bạn đạt hoặc vượt quá số tiền này, giao dịch của bạn sẽ tự động đóng.", "-989393637": "Take profit không thể được điều chỉnh sau khi hợp đồng của bạn bắt đầu.", - "-339236213": "Multiplier", "-194424366": "trên", "-857660728": "Giá thực hiện", "-1346404690": "Bạn sẽ nhận được khoản chi trả khi hết hạn nếu giá giao ngay không bao giờ chạm hoặc vượt quá mức ngưỡng trong suốt thời hạn hợp đồng. Nếu vi phạm, hợp đồng của bạn sẽ bị chấm dứt sớm.", @@ -4177,6 +4188,8 @@ "-3423966": "Chốt lời<0 />Cắt lỗ", "-1131753095": "Thông tin chi tiết của hợp đồng {{trade_type_name}} hiện chưa có sẵn. Chúng tôi đang chuẩn bị và sẽ cố gắng gửi đến bạn sớm nhất có thể.", "-360975483": "Bạn chưa thực hiện giao dịch nào của tài sản này. ", + "-2082644096": "Mức cược hiện tại", + "-1942828391": "Thanh toán tối đa", "-335816381": "Kết thúc Trong/Kết thúc Ngoài", "-1789807039": "Asian Up/Asian Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "Lời/lỗ tiềm năng:", "-1511825574": "Lời/Lỗ:", "-499175967": "Giá thực hiện", - "-2082644096": "Mức cược hiện tại", "-706219815": "Giá biểu thị", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", @@ -4229,7 +4241,6 @@ "-342128411": "Chỉ số Crash 500", "-9704319": "Chỉ số Crash 1000", "-465860988": "Chỉ số Bull Market", - "-390528194": "Chỉ số Step", "-280323742": "Giỏ EUR", "-563812039": "Chỉ số Volatility 10 (1 giây)", "-82971929": "Chỉ số Volatility 25 (1 giây)", diff --git a/packages/translations/src/translations/zh_cn.json b/packages/translations/src/translations/zh_cn.json index ea690673b61c..3f970e0a3794 100644 --- a/packages/translations/src/translations/zh_cn.json +++ b/packages/translations/src/translations/zh_cn.json @@ -512,6 +512,7 @@ "538017420": "0.5 点", "538042340": "原则 2:只有在亏损后交易获利时,才可增加投注额", "538228086": "Close-Low", + "539352212": "跳动点 {{current_tick}}", "541650045": "管理{{platform}} 密码", "541700024": "首先,输入驾驶执照号码和到期日。", "542038694": "{{label}} 只允许字母、数字、空格、下划线和连字符。", @@ -822,6 +823,7 @@ "839805709": "为了顺利验证,我们需要更好的照片", "841543189": "查看区块链上的交易", "843333337": "您仅能存款。请完成<0>财务评估以解锁取款。", + "845106422": "最后数字预测", "845304111": "EMA周期缓慢 {{ input_number }}", "848083350": "赔付额等于<0>每点的赔付额乘以最终价格与行权价格之间的差额。只有当赔付高于初始投注时,才会赚取利润。", "850582774": "请更新个人信息", @@ -916,6 +918,7 @@ "938500877": "{{ text }}.<0> 电子邮件中可以查看此交易的摘要。", "938947787": "提款 {{currency}}", "938988777": "高障碍", + "942015028": "Step 500 指数", "944499219": "最大未平仓头寸", "945532698": "已卖出合约", "945753712": "返回 Trader's Hub", @@ -1105,6 +1108,7 @@ "1104912023": "待验证", "1107474660": "提交地址证明", "1107555942": "到", + "1109182113": "注意:交易取消仅适用于 Multipliers 的 Volatility Indices。", "1109217274": "成功!", "1110102997": "声明", "1111743543": "止损(Multiplier)", @@ -1551,6 +1555,7 @@ "1542742708": "综合资产、外汇、股票、股票指数、大宗商品和加密货币", "1544642951": "如果选择“Only Ups”期权,只要入市现价后的价格持续上涨,将获得赔付。如果期间内的价格有任何下跌或相等于之前的价格, 将不会获得赔付。", "1547148381": "文件太大了(最多只允许 8MB)。请上传另一文件。", + "1548185597": "Step 200 指数", "1549098835": "提款总额", "1551172020": "澳元 Basket", "1551689907": "升级 <0/> <1>{{platform}} {{type}} {{from_account}} 账户,增强交易体验。", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5、Deriv X", "1693614409": "开始时间", "1694517345": "输入新的的电子邮件地址", + "1694888104": "网站上提供的产品是复杂的衍生产品,潜在的亏损风险很高。差价合约是复杂的工具,并且由于杠杆作用,具有快速亏损的高风险。70.78%的零售投资者账户在与该提供商交易差价合约时会亏损。您必须考虑自己是否了解这些产品的运作方式,以及是否有能力承担损失资金的高风险。", "1696190747": "交易本身存在风险,实际利润可能因各种因素而波动,包括市场波动和其他不可预见的变量。因此,在参与任何交易活动之前,请谨慎行事并进行全面研究。", "1698624570": "2. 点击Ok确认。", "1699606318": "文件上传已达上限。", @@ -1696,6 +1702,7 @@ "1703712522": "赔付额等于每点赔付乘以最终价格与行权价格之间的差额(<0>以点为单位)。", "1704656659": "您在差价合约交易方面有多少经验?", "1707264798": "为什么 Deriv 账户看不到存入的资金?", + "1707758392": "Step 100 指数", "1708413635": "用于 {{currency_name}} ({{currency}}) 账户", "1709859601": "退市现价时间", "1711013665": "预期的账户交易额", @@ -2014,6 +2021,7 @@ "1990331072": "所有权证明", "1990735316": "Rise Equals", "1991055223": "查看您最喜欢的资产的市场价格。", + "1991448657": "不知道税务标识号?单击<0>此处了解详情。", "1991524207": "Jump 100 指数", "1994023526": "您输入的电子邮件地址拼写有误(有时这是难免的)。", "1994558521": "平台操作不便。", @@ -2389,6 +2397,7 @@ "-138380129": "允许提款总额", "-1502578110": "账户已经得到完全验证,且取款限额已经取消。", "-506122621": "请花点时间立即更新信息。", + "-1106259572": "不知道税务识别号?<1 />单击<0>此处了解详情。", "-252665911": "出生地{{required}}", "-859814496": "税务居住地{{required}}", "-237940902": "税务识别号{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "转账", "-744999940": "Deriv 账户", "-766186087": "根据 {{numberOfReviews}} 评论,得分{{trustScore}} ,满分为 5 分", - "-1265635180": "网站上提供的产品是复杂的衍生产品,潜在的亏损风险很高。差价合约是复杂的工具,并且由于杠杆作用,具有快速亏损的高风险。67.28%的零售投资者账户在与该提供商交易差价合约时会亏损。您必须考虑自己是否了解这些产品的运作方式,以及是否有能力承担损失资金的高风险。", "-1870909526": "服务器无法取回地址。", "-582721696": "当前允许取款额为 {{format_min_withdraw_amount}} 至 {{format_max_withdraw_amount}}", "-1975494965": "收银台", @@ -3763,8 +3771,14 @@ "-1331298683": "无法对正在进行的 accumulator 合约调整止盈。", "-509210647": "尝试搜索其他东西。", "-99964540": "当盈利达到或超过此设置金额时,交易将自动平仓。", - "-1221049974": "最终价格", + "-542594338": "最大赔付", + "-1622900200": "已启用", "-2131851017": "增长率", + "-339236213": "Multiplier", + "-1396928673": "风险管理", + "-1358367903": "投注资金", + "-1853307892": "设置交易", + "-1221049974": "最终价格", "-843831637": "止损", "-583023237": "这是根据当前市场状况(例如当前现货)得出的合约转售价值,包括额外佣金(如果有)。", "-1476381873": "服务器处理交易关闭时的最新资产价格。", @@ -3845,8 +3859,6 @@ "-700280380": "交易取消. 费用", "-8998663": "Digit: {{last_digit}} ", "-718750246": "只要当前入市现价保持在前一个现价的±{{tick_size_barrier_percentage}} 范围内,投注额将以每一跳动价的 {{growth_rate}}%增长。", - "-1358367903": "投注资金", - "-542594338": "最大赔付", "-690963898": "当赔付额达到此金额,合约将自动平仓。", "-511541916": "达到此价格跳动次数时,合约将自动平仓。", "-438655760": "<0>注意:可以随时平仓。注意滑点风险。", @@ -3865,7 +3877,6 @@ "-1686280757": "(<1/> * {{multiplier}}) 的<0>{{commission_percentage}}%", "-732683018": "当盈利达到或超过此金额时,交易将自动平仓。", "-989393637": "合约开始后无法调整止盈。", - "-339236213": "Multiplier", "-194424366": "高于", "-857660728": "行权价格", "-1346404690": "如果现货价格在合约期内从未触及或突破障碍,则将在到期时获得赔付。否则,合约将提前终止。", @@ -4177,6 +4188,8 @@ "-3423966": "止盈<0 />止损", "-1131753095": "{{trade_type_name}} 合约详细目前还没有。我们正在准备,会尽快提供。", "-360975483": "您在此期间没有进行过此类交易。", + "-2082644096": "当前投注额", + "-1942828391": "最大赔付", "-335816381": "Ends In/Ends Out", "-1789807039": "Asian Up/Asian Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "潜在利润/亏损:", "-1511825574": "利润/亏损:", "-499175967": "行权价格", - "-2082644096": "当前投注额", "-706219815": "指示性价格", "-1669418686": "澳元/加元", "-1548588249": "澳元/瑞士法郎", @@ -4229,7 +4241,6 @@ "-342128411": "Crash 500 指数", "-9704319": "Crash 1000 指数", "-465860988": "Bull Market 指数", - "-390528194": "Step 指数", "-280323742": "欧元 Basket", "-563812039": "Volatility 10 (1s) 指数", "-82971929": "Volatility 25 (1s) 指数", diff --git a/packages/translations/src/translations/zh_tw.json b/packages/translations/src/translations/zh_tw.json index 6090b054c97d..9fe5575aa60e 100644 --- a/packages/translations/src/translations/zh_tw.json +++ b/packages/translations/src/translations/zh_tw.json @@ -512,6 +512,7 @@ "538017420": "0.5 點", "538042340": "原則 2:只有在虧損後交易獲利時,才可增加投注金額", "538228086": "Close-Low", + "539352212": "跳動點 {{current_tick}}", "541650045": "管理 {{platform}} 密碼", "541700024": "首先,輸入駕駛執照號碼和到期日。", "542038694": "{{label}} 只允許字母、數位、空格、底線和連字號。", @@ -822,6 +823,7 @@ "839805709": "為了順利驗證,我們需要更好的照片", "841543189": "檢視區塊鏈上的交易", "843333337": "您僅能存款。請完成<0>財務評估以解鎖取款。", + "845106422": "最後數字預測", "845304111": "EMA 週期緩慢 {{ input_number }}", "848083350": "賠付額等於<0>每點的賠付額乘以最終價格與行權價格之間的差額。只有當賠付高於初始投注時,才會賺取利潤。", "850582774": "請更新個人資訊", @@ -916,6 +918,7 @@ "938500877": "{{ text }})<0> 電子郵件可以查看此交易的摘要。", "938947787": "提款 {{currency}}", "938988777": "高障礙", + "942015028": "Step 500 指數", "944499219": "最大未平倉頭寸", "945532698": "已賣出合約", "945753712": "返回 Trader's Hub", @@ -1105,6 +1108,7 @@ "1104912023": "待驗證", "1107474660": "提交地址證明", "1107555942": "到", + "1109182113": "注意:交易取消只適用於 Multipliers 的 Volatility Indices。", "1109217274": "成功!", "1110102997": "帳單", "1111743543": "止損 (Multiplier)", @@ -1551,6 +1555,7 @@ "1542742708": "綜合資產、外匯、股票、股票指數、大宗商品和加密貨幣", "1544642951": "如果選擇「Only Ups」期權,只要入市現價後的價格持續上漲,將獲得賠付。如果期間內的價格有任何下跌或相等於之前的價格, 將不會獲得賠付。", "1547148381": "該文件太大(最多只允許 8MB)。請上傳另一文件。", + "1548185597": "Step 200 指數", "1549098835": "提款總額", "1551172020": "澳元 Basket", "1551689907": "升級 <0/> <1>{{platform}} {{type}} {{from_account}} 帳戶,增強交易體驗。", @@ -1686,6 +1691,7 @@ "1692912479": "Deriv MT5、Deriv X", "1693614409": "開始時間", "1694517345": "輸入新的電子郵件地址", + "1694888104": "網站上提供的產品是複雜的衍生產品,可能虧損的風險很高。差價合約是複雜的工具,並且由於槓桿作用,具有快速虧損的高風險。 70.78% 的零售投資者帳戶在與該供應商交易差價合約時損失。您必須考慮自己是否了解這些產品的運作方式,以及是否有能力承擔損失資金的高風險。", "1696190747": "交易本身存在風險,實際利潤可能因各種因素而波動,包括市場波動和其他不可預見的變數。 因此,在參與任何交易活動之前,請謹慎行事並進行徹底研究。", "1698624570": "2. 點選Ok確認。", "1699606318": "文件上傳已達上限。", @@ -1696,6 +1702,7 @@ "1703712522": "賠付額等於每點賠付乘以最終價格與行權價格之間的差額(<0>以點為單位)。", "1704656659": "您在差價合約交易方面有多少經驗?", "1707264798": "為什麼 Deriv 帳戶看不到已存入的資金?", + "1707758392": "Step 100 指數", "1708413635": "用於 {{currency_name}} ({{currency}}) 帳戶", "1709859601": "退市現價時間", "1711013665": "預期的帳戶交易額", @@ -2014,6 +2021,7 @@ "1990331072": "擁有權證明", "1990735316": "Rise Equals", "1991055223": "查看您最喜歡的資產的市場價格。", + "1991448657": "不知道稅務識別號?點選<0>此處瞭解詳情。", "1991524207": "Jump 100 指數", "1994023526": "輸入的電子郵件地址拼寫有誤(有時這是難免的)。", "1994558521": "平台操作不便。", @@ -2389,6 +2397,7 @@ "-138380129": "允許提款總額", "-1502578110": "帳戶已經得到完全驗證,且取款限額已經取消。", "-506122621": "請花點時間立即更新資訊。", + "-1106259572": "不知道稅務識別號?<1 />點選<0>此處瞭解詳情。", "-252665911": "出生地{{required}}", "-859814496": "稅務居住地{{required}}", "-237940902": "稅務識別號{{required}}", @@ -2768,7 +2777,6 @@ "-1186807402": "轉帳", "-744999940": "Deriv 帳戶", "-766186087": "基於 {{numberOfReviews}} 點評,積分為 {{trustScore}} ,滿分為 5", - "-1265635180": "網站上提供的產品是複雜的衍生產品,可能虧損的風險很高。差價合約是複雜的工具,並且由於槓桿作用,具有快速虧損的高風險。 67.28% 的零售投資者帳戶在與該供應商交易差價合約時損失。您必須考慮自己是否了解這些產品的運作方式,以及是否有能力承擔損失資金的高風險。", "-1870909526": "伺服器無法取回地址。", "-582721696": "目前允許取款額為 {{format_min_withdraw_amount}} 至 {{format_max_withdraw_amount}}", "-1975494965": "收銀台", @@ -3763,8 +3771,14 @@ "-1331298683": "不能對持續的 accumulator 合約調整止盈。", "-509210647": "嘗試搜尋其他東西。", "-99964540": "當盈利達到或超過此設定金額時,交易將自動平倉。", - "-1221049974": "最終價格", + "-542594338": "最大賠付", + "-1622900200": "已啟用", "-2131851017": "增長率", + "-339236213": "Multiplier", + "-1396928673": "風險管理", + "-1358367903": "投注資金", + "-1853307892": "設定交易", + "-1221049974": "最終價格", "-843831637": "止損", "-583023237": "這是根據目'前的市場條件(例如目前現貨價)的合約轉售價值,包括額外佣金(如果有)。", "-1476381873": "伺服器處理交易關閉時的最新資產價格。", @@ -3845,8 +3859,6 @@ "-700280380": "交易取消費用", "-8998663": "Digit: {{last_digit}} ", "-718750246": "只要入市現價格保持在前一個入市現價的±{{tick_size_barrier_percentage}} 範圍內,投注額將以每個跳動點的 {{growth_rate}}%增長。", - "-1358367903": "投注資金", - "-542594338": "最大賠付", "-690963898": "當賠付額達到此金額,合約將自動平倉。", "-511541916": "達到此跳動點次數時,合約將自動平倉。", "-438655760": "<0>注意:可以隨時關閉交易。注意滑點風險。", @@ -3865,7 +3877,6 @@ "-1686280757": "(<1/> * {{multiplier}}) 的<0>{{commission_percentage}}%", "-732683018": "當盈利達到或超過此金額時,交易將自動平倉。", "-989393637": "合約開始後不能調整止盈。", - "-339236213": "Multiplier", "-194424366": "高於", "-857660728": "行權價格", "-1346404690": "如果現貨價格在合約期間從未觸及或突破障礙,則將在到期時獲得賠償。 否則,合約將提前終止。", @@ -4177,6 +4188,8 @@ "-3423966": "止盈<0 />止損", "-1131753095": "{{trade_type_name}} 合約詳細目前還沒有。我們正在準備,會盡快提供。", "-360975483": "此期間內沒有進行過此類交易。", + "-2082644096": "目前投注額", + "-1942828391": "最大賠付", "-335816381": "Ends In/Ends Out", "-1789807039": "Asian Up/Asian Down", "-558031309": "High Tick/Low Tick", @@ -4192,7 +4205,6 @@ "-726626679": "潛在利潤/虧損:", "-1511825574": "利潤/虧損:", "-499175967": "行權價格", - "-2082644096": "目前投注額", "-706219815": "指示性價格", "-1669418686": "澳元/加元", "-1548588249": "澳元/瑞士法郎", @@ -4229,7 +4241,6 @@ "-342128411": "Crash 500 指數", "-9704319": "Crash 1000 指數", "-465860988": "Bull Market 指數", - "-390528194": "Step 指數", "-280323742": "歐元 Basket", "-563812039": "Volatility 10 (1s) 指數", "-82971929": "Volatility 25 (1s) 指數", From d3b11bdafd30604c69c897f476df57dc145c10cf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 16:14:00 +0400 Subject: [PATCH 19/40] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20tra?= =?UTF-8?q?nslations=20with=20crowdin=20(#16223)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE --- packages/translations/src/translations/bn.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/translations/src/translations/bn.json b/packages/translations/src/translations/bn.json index bca16597dcb8..e5d8aa40ad2e 100644 --- a/packages/translations/src/translations/bn.json +++ b/packages/translations/src/translations/bn.json @@ -823,7 +823,7 @@ "839805709": "আপনাকে মসৃণতায় যাচাইকরণে, আমাদের একটি ভাল ফটো দরকার।", "841543189": "ব্লকচেইনে লেনদেন দেখুন", "843333337": "আপনি শুধুমাত্র আমানত করতে পারেন অর্থ উত্তোলন আনলক করতে অনুগ্রহ করে <0>আর্থিক মূল্যায়ন সম্পূর্ণ করুন।", - "845106422": "শেষ অঙ্কের পূর্বাভাস", + "845106422": "শেষ সংখ্যার ভবিষ্যদ্বাণী", "845304111": "ধীর EMA সময়কাল {{ input_number }}", "848083350": "চূড়ান্ত মূল্য এবং স্ট্রাইক মূল্যের মধ্যে পার্থক্য দ্বারা গুণিত আপনার পেআউট <0>বিন্দু প্রতি পেআউটের সমান। আপনি শুধুমাত্র একটি মুনাফা অর্জন করবেন যদি আপনার পেআউট আপনার প্রারম্ভিক অংশের থেকে বেশি হয়।", "850582774": "অনুগ্রহ করে আপনার ব্যক্তিগত তথ্য হালনাগাদ করুন", @@ -2021,7 +2021,7 @@ "1990331072": "মালিকানা প্রমাণ", "1990735316": "সমান উত্থান", "1991055223": "আপনার প্রিয় সম্পদের বাজার মূল্য দেখুন।", - "1991448657": "আপনার ট্যাক্স সনাক্তকরণ নম্বর জানেন না? আরও জানতে <0>এখানে ক্লিক করুন।", + "1991448657": "আপনার ট্যাক্স সনাক্তকরণ নাম্বার কি জানেন না? আরও জানতে <0>এখানে ক্লিক করুন।", "1991524207": "জাম্প 100 ইনডেক্স", "1994023526": "আপনি যে ইমেইল ঠিকানাটি লিখেছেন তাতে ভুল বা টাইপো ছিল (আমাদের সেরাদের ক্ষেত্রে ঘটে)।", "1994558521": "প্ল্যাটফর্মগুলি ব্যবহারকারী-বন্ধুত্বপূর্ণ নয়।", @@ -4189,7 +4189,7 @@ "-1131753095": "{{trade_type_name}} চুক্তির বিবরণ বর্তমানে উপলব্ধ নয়। আমরা শীঘ্রই তাদের উপলব্ধ করার জন্য কাজ করছি।", "-360975483": "আপনি এই সময়ের মধ্যে এই ধরনের কোন লেনদেন করেছেন।", "-2082644096": "বর্তমান স্টেক ", - "-1942828391": "সর্বোচ্চ অর্থ প্রদান", + "-1942828391": "সর্বোচ্চ পেআউট", "-335816381": "সমাপ্ত/শেষ আউট", "-1789807039": "এশিয়ান উপর/এশিয়ান নিচে", "-558031309": "উচ্চ টিক/নিম্ন টিক", From d84a0d6c2e7cc0ff38e92819df7003cb8fe47791 Mon Sep 17 00:00:00 2001 From: henry-deriv <118344354+henry-deriv@users.noreply.github.com> Date: Fri, 26 Jul 2024 20:40:32 +0800 Subject: [PATCH 20/40] [DTRA] henry/webrel-3029/hotfix: hide recent positions modal and show landscape blocker for contract details and reports (#16220) * fix: hide recent positions modal and show landscape blocker for contract details and reports * fix: snakecase --- .../LandscapeBlocker/landscape-blocker.tsx | 10 +- .../toggle-positions-mobile.tsx | 100 +++++++++++------- 2 files changed, 65 insertions(+), 45 deletions(-) diff --git a/packages/core/src/App/Components/Elements/LandscapeBlocker/landscape-blocker.tsx b/packages/core/src/App/Components/Elements/LandscapeBlocker/landscape-blocker.tsx index 14cc3211769c..c97560ea7f7e 100644 --- a/packages/core/src/App/Components/Elements/LandscapeBlocker/landscape-blocker.tsx +++ b/packages/core/src/App/Components/Elements/LandscapeBlocker/landscape-blocker.tsx @@ -15,16 +15,16 @@ const LandscapeBlocker = observer(() => { const location = useLocation(); const pathname = location?.pathname; const is_hidden_landscape_blocker = isDisabledLandscapeBlockerRoute(pathname); - const shouldShowDtraderTabletView = pathname === routes.trade && isTabletOs; - const showBlockerDtraderMobileLandscapeView = + const should_show_dtrader_tablet_view = pathname === routes.trade && isTabletOs; + const show_blocker_dtrader_mobile_landscape_view = !isMobile && isMobileOs() && - (pathname.startsWith(routes.trade) || pathname.startsWith(routes.reports || pathname.startsWith('/contract/'))); + (pathname.startsWith(routes.trade) || pathname.startsWith(routes.reports) || pathname.startsWith('/contract')); if ( !has_wallet && - !showBlockerDtraderMobileLandscapeView && - (is_hidden_landscape_blocker || shouldShowDtraderTabletView) + !show_blocker_dtrader_mobile_landscape_view && + (is_hidden_landscape_blocker || should_show_dtrader_tablet_view) ) return null; diff --git a/packages/trader/src/App/Components/Elements/TogglePositions/toggle-positions-mobile.tsx b/packages/trader/src/App/Components/Elements/TogglePositions/toggle-positions-mobile.tsx index b30103331e29..1abbc86f7693 100644 --- a/packages/trader/src/App/Components/Elements/TogglePositions/toggle-positions-mobile.tsx +++ b/packages/trader/src/App/Components/Elements/TogglePositions/toggle-positions-mobile.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { TransitionGroup, CSSTransition } from 'react-transition-group'; import { Icon, Div100vhContainer, Modal, Text } from '@deriv/components'; -import { routes } from '@deriv/shared'; +import { isDisabledLandscapeBlockerRoute, isMobileOs, isTabletOs, routes } from '@deriv/shared'; import { localize } from '@deriv/translations'; -import { NavLink } from 'react-router-dom'; +import { NavLink, useLocation } from 'react-router-dom'; import EmptyPortfolioMessage from '../EmptyPortfolioMessage'; import PositionsModalCard from 'App/Components/Elements/PositionsDrawer/positions-modal-card'; import TogglePositions from './toggle-positions'; @@ -32,9 +32,27 @@ const TogglePositionsMobile = observer( onClickCancel, }: TTogglePositionsMobile) => { const { togglePositionsDrawer, is_positions_drawer_on } = useStore().ui; + const { has_wallet } = useStore().client; const [hidden_positions_ids, setHiddenPositionsIds] = React.useState([]); const { isMobile, isTablet } = useDevice(); + const location = useLocation(); + const pathname = location?.pathname; + const is_hidden_landscape_blocker = isDisabledLandscapeBlockerRoute(pathname); + const should_show_dtrader_tablet_view = pathname === routes.trade && isTabletOs; + + const show_blocker_dtrader_mobile_landscape_view = + !isMobile && + isMobileOs() && + (pathname.startsWith(routes.trade) || + pathname.startsWith(routes.reports) || + pathname.startsWith('/contract')); + + const hide_landscape_blocker = + !has_wallet && + !show_blocker_dtrader_mobile_landscape_view && + (is_hidden_landscape_blocker || should_show_dtrader_tablet_view); + const displayed_positions = filtered_positions .filter(p => hidden_positions_ids.every(hidden_position_id => hidden_position_id !== p.contract_info.contract_id) @@ -87,45 +105,47 @@ const TogglePositionsMobile = observer( togglePositions={togglePositionsDrawer} positions_count={active_positions_count} /> - - -
- - - {localize('Recent positions')} - -
- -
-
-
- {is_empty || !displayed_positions.length || error ? ( - - ) : ( - body_content - )} -
-
- - - {localize('Go to Reports')} + {hide_landscape_blocker && ( + + +
+ + + {localize('Recent positions')} - -
-
-
+
+ +
+
+
+ {is_empty || !displayed_positions.length || error ? ( + + ) : ( + body_content + )} +
+
+ + + {localize('Go to Reports')} + + +
+
+
+ )} ); } From bce1cc19271d8cad7b096708a668f5c72d938d19 Mon Sep 17 00:00:00 2001 From: kate-deriv <121025168+kate-deriv@users.noreply.github.com> Date: Mon, 29 Jul 2024 05:49:31 +0300 Subject: [PATCH 21/40] DTRA / Kate / DTRA-1542 / [DTreader-V2]: Guide and Allow equal changes (#16215) * refactor: remove some tradr params for multipliers and accumulators * refactor: update quill and refactor purchase btn * refactor: allow equals * refactor: guide style * Revert "refactor: remove some tradr params for multipliers and accumulators" This reverts commit f0686ed235a63634297aef0d0d2a86c530a22079. * refactor: hide scrollbar for safari * refactor: update type * chore: remove px --- package-lock.json | 162 +++++++++++++++++- packages/account/package.json | 2 +- packages/core/package.json | 2 +- packages/trader/package.json | 2 +- .../src/AppV2/Components/Guide/guide.scss | 11 ++ .../purchase-button-content.tsx | 29 ++-- .../__tests__/allow-equals.spec.tsx | 7 +- .../AllowEquals/allow-equals-header.tsx | 26 --- .../AllowEquals/allow-equals.scss | 9 +- .../AllowEquals/allow-equals.tsx | 72 ++------ .../last-digit-prediction.tsx | 3 +- .../TradeParameters/trade-parameters.scss | 3 + .../src/AppV2/Containers/Trade/trade.scss | 4 + 13 files changed, 218 insertions(+), 114 deletions(-) delete mode 100644 packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals-header.tsx diff --git a/package-lock.json b/package-lock.json index 22c0862b23f8..497f96bcc57f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@datadog/browser-rum": "^5.11.0", "@deriv-com/analytics": "1.10.0", "@deriv-com/quill-tokens": "^2.0.4", - "@deriv-com/quill-ui": "1.13.22", + "@deriv-com/quill-ui": "1.13.23", "@deriv-com/translations": "1.3.4", "@deriv-com/ui": "1.29.9", "@deriv-com/utils": "^0.0.25", @@ -2959,9 +2959,9 @@ } }, "node_modules/@deriv-com/quill-ui": { - "version": "1.13.22", - "resolved": "https://registry.npmjs.org/@deriv-com/quill-ui/-/quill-ui-1.13.22.tgz", - "integrity": "sha512-1xUmNkS898TxfmnepYBLFVBMoIvu5fGlcY4xdXX1C2xw3Y1+6RP8xxqVIqt/paJAAbIq3WStp/CM6BZPyWvMWg==", + "version": "1.13.23", + "resolved": "https://registry.npmjs.org/@deriv-com/quill-ui/-/quill-ui-1.13.23.tgz", + "integrity": "sha512-jzg2z/3u0A7mLcEbrw8EZBpyE005x1xAyeIccER8xKY8ejmu9cMIFl8pe6UlQGUNBHpL2GFowTXY0kO4CZn+/Q==", "dependencies": { "@deriv-com/quill-tokens": "^2.0.8", "@deriv/quill-icons": "^1.22.10", @@ -3897,6 +3897,7 @@ }, "node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", + "dev": true, "license": "ISC" }, "node_modules/@istanbuljs/load-nyc-config": { @@ -7348,6 +7349,7 @@ }, "node_modules/@npmcli/arborist": { "version": "5.3.0", + "dev": true, "license": "ISC", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", @@ -7394,6 +7396,7 @@ }, "node_modules/@npmcli/arborist/node_modules/hosted-git-info": { "version": "5.2.1", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -7404,6 +7407,7 @@ }, "node_modules/@npmcli/arborist/node_modules/npm-package-arg": { "version": "9.1.2", + "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -7417,6 +7421,7 @@ }, "node_modules/@npmcli/arborist/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -7430,6 +7435,7 @@ }, "node_modules/@npmcli/arborist/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -7440,6 +7446,7 @@ }, "node_modules/@npmcli/fs": { "version": "2.1.2", + "dev": true, "license": "ISC", "dependencies": { "@gar/promisify": "^1.1.3", @@ -7451,6 +7458,7 @@ }, "node_modules/@npmcli/fs/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -7461,6 +7469,7 @@ }, "node_modules/@npmcli/fs/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -7474,6 +7483,7 @@ }, "node_modules/@npmcli/git": { "version": "3.0.2", + "dev": true, "license": "ISC", "dependencies": { "@npmcli/promise-spawn": "^3.0.0", @@ -7492,6 +7502,7 @@ }, "node_modules/@npmcli/git/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -7505,6 +7516,7 @@ }, "node_modules/@npmcli/git/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -7515,6 +7527,7 @@ }, "node_modules/@npmcli/installed-package-contents": { "version": "1.0.7", + "dev": true, "license": "ISC", "dependencies": { "npm-bundled": "^1.1.1", @@ -7529,6 +7542,7 @@ }, "node_modules/@npmcli/map-workspaces": { "version": "2.0.4", + "dev": true, "license": "ISC", "dependencies": { "@npmcli/name-from-folder": "^1.0.1", @@ -7542,6 +7556,7 @@ }, "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -7549,6 +7564,7 @@ }, "node_modules/@npmcli/map-workspaces/node_modules/glob": { "version": "8.0.3", + "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -7566,6 +7582,7 @@ }, "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { "version": "5.1.1", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -7576,6 +7593,7 @@ }, "node_modules/@npmcli/metavuln-calculator": { "version": "3.1.1", + "dev": true, "license": "ISC", "dependencies": { "cacache": "^16.0.0", @@ -7589,6 +7607,7 @@ }, "node_modules/@npmcli/metavuln-calculator/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -7599,6 +7618,7 @@ }, "node_modules/@npmcli/metavuln-calculator/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -7612,6 +7632,7 @@ }, "node_modules/@npmcli/move-file": { "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { "mkdirp": "^1.0.4", @@ -7623,10 +7644,12 @@ }, "node_modules/@npmcli/name-from-folder": { "version": "1.0.1", + "dev": true, "license": "ISC" }, "node_modules/@npmcli/node-gyp": { "version": "2.0.0", + "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -7634,6 +7657,7 @@ }, "node_modules/@npmcli/package-json": { "version": "2.0.0", + "dev": true, "license": "ISC", "dependencies": { "json-parse-even-better-errors": "^2.3.1" @@ -7644,6 +7668,7 @@ }, "node_modules/@npmcli/promise-spawn": { "version": "3.0.0", + "dev": true, "license": "ISC", "dependencies": { "infer-owner": "^1.0.4" @@ -7654,6 +7679,7 @@ }, "node_modules/@npmcli/run-script": { "version": "4.2.1", + "dev": true, "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^2.0.0", @@ -20690,6 +20716,7 @@ }, "node_modules/abbrev": { "version": "1.1.1", + "dev": true, "license": "ISC" }, "node_modules/accepts": { @@ -20810,6 +20837,7 @@ }, "node_modules/agentkeepalive": { "version": "4.2.1", + "dev": true, "license": "MIT", "dependencies": { "debug": "^4.1.0", @@ -21029,6 +21057,7 @@ }, "node_modules/are-we-there-yet": { "version": "3.0.1", + "dev": true, "license": "ISC", "dependencies": { "delegates": "^1.0.0", @@ -22398,6 +22427,7 @@ }, "node_modules/bin-links": { "version": "3.0.3", + "dev": true, "license": "ISC", "dependencies": { "cmd-shim": "^5.0.0", @@ -22413,6 +22443,7 @@ }, "node_modules/bin-links/node_modules/npm-normalize-package-bin": { "version": "2.0.0", + "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -22420,6 +22451,7 @@ }, "node_modules/bin-links/node_modules/write-file-atomic": { "version": "4.0.2", + "dev": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", @@ -23016,6 +23048,7 @@ }, "node_modules/builtins": { "version": "5.0.1", + "dev": true, "license": "MIT", "dependencies": { "semver": "^7.0.0" @@ -23023,6 +23056,7 @@ }, "node_modules/builtins/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -23033,6 +23067,7 @@ }, "node_modules/builtins/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -23130,6 +23165,7 @@ }, "node_modules/cacache": { "version": "16.1.3", + "dev": true, "license": "ISC", "dependencies": { "@npmcli/fs": "^2.1.0", @@ -23157,6 +23193,7 @@ }, "node_modules/cacache/node_modules/brace-expansion": { "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -23164,6 +23201,7 @@ }, "node_modules/cacache/node_modules/glob": { "version": "8.0.3", + "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -23181,6 +23219,7 @@ }, "node_modules/cacache/node_modules/minimatch": { "version": "5.1.1", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -23959,6 +23998,7 @@ }, "node_modules/cmd-shim": { "version": "5.0.0", + "dev": true, "license": "ISC", "dependencies": { "mkdirp-infer-owner": "^2.0.0" @@ -24079,6 +24119,7 @@ }, "node_modules/common-ancestor-path": { "version": "1.0.1", + "dev": true, "license": "ISC" }, "node_modules/common-tags": { @@ -26310,6 +26351,7 @@ }, "node_modules/debuglog": { "version": "1.0.1", + "dev": true, "license": "MIT", "engines": { "node": "*" @@ -27070,6 +27112,7 @@ }, "node_modules/dezalgo": { "version": "1.0.4", + "dev": true, "license": "ISC", "dependencies": { "asap": "^2.0.0", @@ -27858,6 +27901,7 @@ }, "node_modules/err-code": { "version": "2.0.3", + "dev": true, "license": "MIT" }, "node_modules/errno": { @@ -31292,6 +31336,7 @@ }, "node_modules/gauge": { "version": "4.0.4", + "dev": true, "license": "ISC", "dependencies": { "aproba": "^1.0.3 || ^2.0.0", @@ -32477,6 +32522,7 @@ }, "node_modules/hosted-git-info": { "version": "4.1.0", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -32487,6 +32533,7 @@ }, "node_modules/hosted-git-info/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -32894,7 +32941,8 @@ "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true }, "node_modules/http-deceiver": { "version": "1.2.7", @@ -33120,6 +33168,7 @@ }, "node_modules/humanize-ms": { "version": "1.2.1", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.0.0" @@ -33285,6 +33334,7 @@ }, "node_modules/ignore-walk": { "version": "5.0.1", + "dev": true, "license": "ISC", "dependencies": { "minimatch": "^5.0.1" @@ -33295,6 +33345,7 @@ }, "node_modules/ignore-walk/node_modules/brace-expansion": { "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -33302,6 +33353,7 @@ }, "node_modules/ignore-walk/node_modules/minimatch": { "version": "5.1.1", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -33448,6 +33500,7 @@ }, "node_modules/init-package-json": { "version": "3.0.2", + "dev": true, "license": "ISC", "dependencies": { "npm-package-arg": "^9.0.1", @@ -33464,6 +33517,7 @@ }, "node_modules/init-package-json/node_modules/hosted-git-info": { "version": "5.2.1", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -33474,6 +33528,7 @@ }, "node_modules/init-package-json/node_modules/npm-package-arg": { "version": "9.1.2", + "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -33487,6 +33542,7 @@ }, "node_modules/init-package-json/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -33500,6 +33556,7 @@ }, "node_modules/init-package-json/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -34006,6 +34063,7 @@ }, "node_modules/is-lambda": { "version": "1.0.1", + "dev": true, "license": "MIT" }, "node_modules/is-lite": { @@ -38088,6 +38146,7 @@ }, "node_modules/json-stringify-nice": { "version": "1.1.4", + "dev": true, "license": "ISC", "funding": { "url": "https://github.com/sponsors/isaacs" @@ -38202,10 +38261,12 @@ }, "node_modules/just-diff": { "version": "5.1.1", + "dev": true, "license": "MIT" }, "node_modules/just-diff-apply": { "version": "5.4.1", + "dev": true, "license": "MIT" }, "node_modules/just-extend": { @@ -38461,6 +38522,7 @@ }, "node_modules/libnpmaccess": { "version": "6.0.4", + "dev": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", @@ -38474,6 +38536,7 @@ }, "node_modules/libnpmaccess/node_modules/hosted-git-info": { "version": "5.2.1", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -38484,6 +38547,7 @@ }, "node_modules/libnpmaccess/node_modules/npm-package-arg": { "version": "9.1.2", + "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -38497,6 +38561,7 @@ }, "node_modules/libnpmaccess/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -38510,6 +38575,7 @@ }, "node_modules/libnpmaccess/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -38520,6 +38586,7 @@ }, "node_modules/libnpmpublish": { "version": "6.0.5", + "dev": true, "license": "ISC", "dependencies": { "normalize-package-data": "^4.0.0", @@ -38534,6 +38601,7 @@ }, "node_modules/libnpmpublish/node_modules/hosted-git-info": { "version": "5.2.1", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -38544,6 +38612,7 @@ }, "node_modules/libnpmpublish/node_modules/normalize-package-data": { "version": "4.0.1", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^5.0.0", @@ -38557,6 +38626,7 @@ }, "node_modules/libnpmpublish/node_modules/npm-package-arg": { "version": "9.1.2", + "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -38570,6 +38640,7 @@ }, "node_modules/libnpmpublish/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -38583,6 +38654,7 @@ }, "node_modules/libnpmpublish/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -39219,6 +39291,7 @@ }, "node_modules/lru-cache": { "version": "7.14.1", + "dev": true, "license": "ISC", "engines": { "node": ">=12" @@ -39259,6 +39332,7 @@ }, "node_modules/make-fetch-happen": { "version": "10.2.1", + "dev": true, "license": "ISC", "dependencies": { "agentkeepalive": "^4.2.1", @@ -39858,6 +39932,7 @@ }, "node_modules/minipass-fetch": { "version": "2.1.2", + "dev": true, "license": "MIT", "dependencies": { "minipass": "^3.1.6", @@ -39883,6 +39958,7 @@ }, "node_modules/minipass-json-stream": { "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { "jsonparse": "^1.3.1", @@ -39901,6 +39977,7 @@ }, "node_modules/minipass-sized": { "version": "1.0.3", + "dev": true, "license": "ISC", "dependencies": { "minipass": "^3.0.0" @@ -40023,6 +40100,7 @@ }, "node_modules/mkdirp-infer-owner": { "version": "2.0.0", + "dev": true, "license": "ISC", "dependencies": { "chownr": "^2.0.0", @@ -40237,6 +40315,7 @@ }, "node_modules/mute-stream": { "version": "0.0.8", + "dev": true, "license": "ISC" }, "node_modules/mz": { @@ -40491,6 +40570,7 @@ }, "node_modules/node-gyp": { "version": "9.3.0", + "dev": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", @@ -40523,6 +40603,7 @@ }, "node_modules/node-gyp/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -40533,6 +40614,7 @@ }, "node_modules/node-gyp/node_modules/nopt": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "abbrev": "^1.0.0" @@ -40546,6 +40628,7 @@ }, "node_modules/node-gyp/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -40706,6 +40789,7 @@ }, "node_modules/nopt": { "version": "5.0.0", + "dev": true, "license": "ISC", "dependencies": { "abbrev": "1" @@ -40719,6 +40803,7 @@ }, "node_modules/normalize-package-data": { "version": "3.0.3", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", @@ -40732,6 +40817,7 @@ }, "node_modules/normalize-package-data/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -40742,6 +40828,7 @@ }, "node_modules/normalize-package-data/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -40937,6 +41024,7 @@ }, "node_modules/npm-bundled": { "version": "1.1.2", + "dev": true, "license": "ISC", "dependencies": { "npm-normalize-package-bin": "^1.0.1" @@ -40944,6 +41032,7 @@ }, "node_modules/npm-install-checks": { "version": "5.0.0", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "semver": "^7.1.1" @@ -40954,6 +41043,7 @@ }, "node_modules/npm-install-checks/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -40964,6 +41054,7 @@ }, "node_modules/npm-install-checks/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -40977,10 +41068,12 @@ }, "node_modules/npm-normalize-package-bin": { "version": "1.0.1", + "dev": true, "license": "ISC" }, "node_modules/npm-package-arg": { "version": "8.1.1", + "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^3.0.6", @@ -40993,10 +41086,12 @@ }, "node_modules/npm-package-arg/node_modules/builtins": { "version": "1.0.3", + "dev": true, "license": "MIT" }, "node_modules/npm-package-arg/node_modules/hosted-git-info": { "version": "3.0.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -41007,6 +41102,7 @@ }, "node_modules/npm-package-arg/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -41017,6 +41113,7 @@ }, "node_modules/npm-package-arg/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -41030,6 +41127,7 @@ }, "node_modules/npm-package-arg/node_modules/validate-npm-package-name": { "version": "3.0.0", + "dev": true, "license": "ISC", "dependencies": { "builtins": "^1.0.3" @@ -41037,6 +41135,7 @@ }, "node_modules/npm-packlist": { "version": "5.1.3", + "dev": true, "license": "ISC", "dependencies": { "glob": "^8.0.1", @@ -41053,6 +41152,7 @@ }, "node_modules/npm-packlist/node_modules/brace-expansion": { "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -41060,6 +41160,7 @@ }, "node_modules/npm-packlist/node_modules/glob": { "version": "8.0.3", + "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -41077,6 +41178,7 @@ }, "node_modules/npm-packlist/node_modules/minimatch": { "version": "5.1.1", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -41087,6 +41189,7 @@ }, "node_modules/npm-packlist/node_modules/npm-bundled": { "version": "2.0.1", + "dev": true, "license": "ISC", "dependencies": { "npm-normalize-package-bin": "^2.0.0" @@ -41097,6 +41200,7 @@ }, "node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { "version": "2.0.0", + "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -41104,6 +41208,7 @@ }, "node_modules/npm-pick-manifest": { "version": "7.0.2", + "dev": true, "license": "ISC", "dependencies": { "npm-install-checks": "^5.0.0", @@ -41117,6 +41222,7 @@ }, "node_modules/npm-pick-manifest/node_modules/hosted-git-info": { "version": "5.2.1", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -41127,6 +41233,7 @@ }, "node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { "version": "2.0.0", + "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -41134,6 +41241,7 @@ }, "node_modules/npm-pick-manifest/node_modules/npm-package-arg": { "version": "9.1.2", + "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -41147,6 +41255,7 @@ }, "node_modules/npm-pick-manifest/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -41160,6 +41269,7 @@ }, "node_modules/npm-pick-manifest/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -41170,6 +41280,7 @@ }, "node_modules/npm-registry-fetch": { "version": "13.3.1", + "dev": true, "license": "ISC", "dependencies": { "make-fetch-happen": "^10.0.6", @@ -41186,6 +41297,7 @@ }, "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { "version": "5.2.1", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -41196,6 +41308,7 @@ }, "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { "version": "9.1.2", + "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -41209,6 +41322,7 @@ }, "node_modules/npm-registry-fetch/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -41222,6 +41336,7 @@ }, "node_modules/npm-registry-fetch/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -43440,6 +43555,7 @@ }, "node_modules/npmlog": { "version": "6.0.2", + "dev": true, "license": "ISC", "dependencies": { "are-we-there-yet": "^3.0.0", @@ -44427,6 +44543,7 @@ }, "node_modules/pacote": { "version": "13.6.2", + "dev": true, "license": "ISC", "dependencies": { "@npmcli/git": "^3.0.0", @@ -44460,6 +44577,7 @@ }, "node_modules/pacote/node_modules/hosted-git-info": { "version": "5.2.1", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -44470,6 +44588,7 @@ }, "node_modules/pacote/node_modules/npm-package-arg": { "version": "9.1.2", + "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^5.0.0", @@ -44483,6 +44602,7 @@ }, "node_modules/pacote/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -44496,6 +44616,7 @@ }, "node_modules/pacote/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -44588,6 +44709,7 @@ }, "node_modules/parse-conflict-json": { "version": "2.0.2", + "dev": true, "license": "ISC", "dependencies": { "json-parse-even-better-errors": "^2.3.1", @@ -46744,6 +46866,7 @@ }, "node_modules/proc-log": { "version": "2.0.1", + "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -46779,6 +46902,7 @@ }, "node_modules/promise-all-reject-late": { "version": "1.0.1", + "dev": true, "license": "ISC", "funding": { "url": "https://github.com/sponsors/isaacs" @@ -46786,6 +46910,7 @@ }, "node_modules/promise-call-limit": { "version": "1.0.1", + "dev": true, "license": "ISC", "funding": { "url": "https://github.com/sponsors/isaacs" @@ -46802,6 +46927,7 @@ }, "node_modules/promise-retry": { "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { "err-code": "^2.0.2", @@ -46861,6 +46987,7 @@ }, "node_modules/promzard": { "version": "0.3.0", + "dev": true, "license": "ISC", "dependencies": { "read": "1" @@ -48230,6 +48357,7 @@ }, "node_modules/read": { "version": "1.0.7", + "dev": true, "license": "ISC", "dependencies": { "mute-stream": "~0.0.4" @@ -48240,6 +48368,7 @@ }, "node_modules/read-cmd-shim": { "version": "3.0.1", + "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -48247,6 +48376,7 @@ }, "node_modules/read-package-json": { "version": "5.0.2", + "dev": true, "license": "ISC", "dependencies": { "glob": "^8.0.1", @@ -48260,6 +48390,7 @@ }, "node_modules/read-package-json-fast": { "version": "2.0.3", + "dev": true, "license": "ISC", "dependencies": { "json-parse-even-better-errors": "^2.3.0", @@ -48271,6 +48402,7 @@ }, "node_modules/read-package-json/node_modules/brace-expansion": { "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -48278,6 +48410,7 @@ }, "node_modules/read-package-json/node_modules/glob": { "version": "8.0.3", + "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -48295,6 +48428,7 @@ }, "node_modules/read-package-json/node_modules/hosted-git-info": { "version": "5.2.1", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^7.5.1" @@ -48305,6 +48439,7 @@ }, "node_modules/read-package-json/node_modules/minimatch": { "version": "5.1.1", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -48315,6 +48450,7 @@ }, "node_modules/read-package-json/node_modules/normalize-package-data": { "version": "4.0.1", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^5.0.0", @@ -48328,6 +48464,7 @@ }, "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { "version": "2.0.0", + "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -48335,6 +48472,7 @@ }, "node_modules/read-package-json/node_modules/semver": { "version": "7.3.8", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -48348,6 +48486,7 @@ }, "node_modules/read-package-json/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -48676,6 +48815,7 @@ }, "node_modules/readdir-scoped-modules": { "version": "1.1.0", + "dev": true, "license": "ISC", "dependencies": { "debuglog": "^1.0.1", @@ -51413,6 +51553,7 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 6.0.0", @@ -51636,6 +51777,7 @@ }, "node_modules/socks": { "version": "2.7.1", + "dev": true, "license": "MIT", "dependencies": { "ip": "^2.0.0", @@ -51648,6 +51790,7 @@ }, "node_modules/socks-proxy-agent": { "version": "7.0.0", + "dev": true, "license": "MIT", "dependencies": { "agent-base": "^6.0.2", @@ -51896,6 +52039,7 @@ }, "node_modules/ssri": { "version": "9.0.1", + "dev": true, "license": "ISC", "dependencies": { "minipass": "^3.1.1" @@ -53844,7 +53988,8 @@ }, "node_modules/text-table": { "version": "0.2.0", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/thenify": { "version": "3.3.1", @@ -54092,6 +54237,7 @@ }, "node_modules/treeverse": { "version": "2.0.0", + "dev": true, "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -54754,6 +54900,7 @@ }, "node_modules/unique-filename": { "version": "2.0.1", + "dev": true, "license": "ISC", "dependencies": { "unique-slug": "^3.0.0" @@ -54764,6 +54911,7 @@ }, "node_modules/unique-slug": { "version": "3.0.0", + "dev": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" @@ -55282,6 +55430,7 @@ }, "node_modules/validate-npm-package-name": { "version": "4.0.0", + "dev": true, "license": "ISC", "dependencies": { "builtins": "^5.0.0" @@ -55390,6 +55539,7 @@ }, "node_modules/walk-up-path": { "version": "1.0.0", + "dev": true, "license": "ISC" }, "node_modules/walker": { diff --git a/packages/account/package.json b/packages/account/package.json index 989f9a68f5a0..65eb08576dd2 100644 --- a/packages/account/package.json +++ b/packages/account/package.json @@ -35,7 +35,7 @@ "@deriv-com/utils": "^0.0.25", "@deriv-com/ui": "1.29.9", "@deriv/api": "^1.0.0", - "@deriv-com/quill-ui": "1.13.22", + "@deriv-com/quill-ui": "1.13.23", "@deriv/components": "^1.0.0", "@deriv/hooks": "^1.0.0", "@deriv/integration": "1.0.0", diff --git a/packages/core/package.json b/packages/core/package.json index 13c1c3a7294d..785670632628 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -98,7 +98,7 @@ "@datadog/browser-rum": "^5.11.0", "@deriv-com/analytics": "1.10.0", "@deriv-com/quill-tokens": "^2.0.4", - "@deriv-com/quill-ui": "1.13.22", + "@deriv-com/quill-ui": "1.13.23", "@deriv-com/translations": "1.3.4", "@deriv-com/ui": "1.29.9", "@deriv-com/utils": "^0.0.25", diff --git a/packages/trader/package.json b/packages/trader/package.json index bc3db2b28b1a..19979a0dff6d 100644 --- a/packages/trader/package.json +++ b/packages/trader/package.json @@ -90,7 +90,7 @@ "@cloudflare/stream-react": "^1.9.1", "@deriv-com/analytics": "1.10.0", "@deriv-com/quill-tokens": "^2.0.4", - "@deriv-com/quill-ui": "1.13.22", + "@deriv-com/quill-ui": "1.13.23", "@deriv-com/utils": "^0.0.25", "@deriv-com/ui": "1.29.9", "@deriv/api-types": "1.0.172", diff --git a/packages/trader/src/AppV2/Components/Guide/guide.scss b/packages/trader/src/AppV2/Components/Guide/guide.scss index a8b56d3369a9..684b362734f6 100644 --- a/packages/trader/src/AppV2/Components/Guide/guide.scss +++ b/packages/trader/src/AppV2/Components/Guide/guide.scss @@ -4,6 +4,8 @@ } &__menu { + position: relative; + width: calc(100vw - var(--component-actionSheet-spacing-padding-lg)); padding-inline-end: var(--component-actionSheet-spacing-padding-lg); margin-block-end: var(--component-actionSheet-spacing-padding-md); display: flex; @@ -14,6 +16,10 @@ -ms-overflow-style: none; scrollbar-width: none; + &::-webkit-scrollbar { + display: none; + } + button { background-color: transparent; } @@ -22,6 +28,7 @@ &__wrapper { &--content { padding: var(--component-actionSheet-spacing-padding-lg) var(--component-actionSheet-spacing-padding-lg) 0; + overflow-x: hidden; } } @@ -30,6 +37,10 @@ height: calc(90dvh - 23rem); -ms-overflow-style: none; scrollbar-width: none; + + &::-webkit-scrollbar { + display: none; + } } &__button { diff --git a/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button-content.tsx b/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button-content.tsx index 19c091b71d28..e420f49e8497 100644 --- a/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button-content.tsx +++ b/packages/trader/src/AppV2/Components/PurchaseButton/purchase-button-content.tsx @@ -7,7 +7,7 @@ import { Money } from '@deriv/components'; type TPurchaseButtonContent = { current_stake?: number | null; - info: ReturnType['proposal_info'][0]; + info: ReturnType['proposal_info'][0] | Record; is_reverse?: boolean; } & Pick< ReturnType, @@ -32,19 +32,28 @@ const PurchaseButtonContent = ({ is_vanilla_fx, is_reverse, }: TPurchaseButtonContent) => { - const localized_basis = getLocalizedBasis(); + const { + current_stake: localized_current_stake, + max_payout, + payout, + payout_per_point, + payout_per_pip, + stake, + } = getLocalizedBasis(); const getAmount = () => { - if (is_multiplier) return info.stake; - if (is_accumulator) return has_open_accu_contract ? Number(current_stake) : info.maximum_payout; - return info?.obj_contract_basis?.value; + const { stake, maximum_payout, obj_contract_basis } = info; + + if (is_multiplier) return stake; + if (is_accumulator) return has_open_accu_contract ? Number(current_stake) : maximum_payout; + return obj_contract_basis?.value; }; const getTextBasis = () => { - if (is_turbos || (is_vanilla && !is_vanilla_fx)) return localized_basis.payout_per_point; - if (is_vanilla_fx) return localized_basis.payout_per_pip; - if (is_multiplier) return localized_basis.stake; - if (is_accumulator) return has_open_accu_contract ? localized_basis.current_stake : localized_basis.max_payout; - return localized_basis.payout; + if (is_turbos || (is_vanilla && !is_vanilla_fx)) return payout_per_point; + if (is_vanilla_fx) return payout_per_pip; + if (is_multiplier) return stake; + if (is_accumulator) return has_open_accu_contract ? localized_current_stake : max_payout; + return payout; }; const text_basis = getTextBasis(); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/__tests__/allow-equals.spec.tsx b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/__tests__/allow-equals.spec.tsx index d9b5e8d33a02..9e9246e20db3 100644 --- a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/__tests__/allow-equals.spec.tsx +++ b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/__tests__/allow-equals.spec.tsx @@ -76,17 +76,14 @@ describe('AllowEquals', () => { expect(screen.getByRole('dialog')).toHaveAttribute('data-state', 'open'); }); - it('should call onChange function if user opens ActionSheet, changes ToggleSwitch and clicks on "Save" button', () => { + it('should call onChange function if user opens ActionSheet and clicks on ToggleSwitch', () => { render(mockAllowEquals()); userEvent.click(screen.getByRole('textbox')); - const [toggle_switch_button, save_button] = screen.getAllByRole('button'); - expect(toggle_switch_button).toHaveAttribute('aria-pressed', 'false'); + const toggle_switch_button = screen.getByRole('button'); userEvent.click(toggle_switch_button); - expect(toggle_switch_button).toHaveAttribute('aria-pressed', 'true'); - userEvent.click(save_button); expect(default_mock_store.modules.trade.onChange).toBeCalled(); }); }); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals-header.tsx b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals-header.tsx deleted file mode 100644 index b545c11ec624..000000000000 --- a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals-header.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import React from 'react'; -import { ActionSheet } from '@deriv-com/quill-ui'; -import { LabelPairedArrowLeftMdRegularIcon, LabelPairedCircleInfoMdRegularIcon } from '@deriv/quill-icons'; -import { Localize } from '@deriv/translations'; - -type TAllowEqualsProps = { - current_index: number; - onNextClick: () => void; - onPrevClick: () => void; -}; - -const AllowEqualsHeader = ({ current_index, onNextClick, onPrevClick }: TAllowEqualsProps) => ( - } - icon={ - current_index ? ( - - ) : ( - - ) - } - iconPosition={current_index ? 'left' : 'right'} - /> -); - -export default AllowEqualsHeader; diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.scss b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.scss index 2e8cc14fbae3..ef1917e674a8 100644 --- a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.scss +++ b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.scss @@ -1,19 +1,16 @@ $HANDLEBAR_HEIGHT: var(--core-size-1000); $HEADER_TITLE_HEIGHT: var(--core-size-3200); -$FOOTER_BUTTON_HEIGHT: var(--core-size-4000); .allow-equals { &__wrapper { - height: calc(40dvh - $HANDLEBAR_HEIGHT - $HEADER_TITLE_HEIGHT - $FOOTER_BUTTON_HEIGHT); - - &--definition { - height: calc(40dvh - $HANDLEBAR_HEIGHT - $HEADER_TITLE_HEIGHT); - } + height: calc(400px - $HANDLEBAR_HEIGHT - $HEADER_TITLE_HEIGHT); + padding-block-start: 0; } &__content { display: flex; justify-content: space-between; align-items: center; + padding-block: var(--core-spacing-400); } } diff --git a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.tsx b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.tsx index e3f857a100ab..240f87dc26e4 100644 --- a/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.tsx +++ b/packages/trader/src/AppV2/Components/TradeParameters/AllowEquals/allow-equals.tsx @@ -1,12 +1,10 @@ import React from 'react'; import { observer } from 'mobx-react'; import clsx from 'clsx'; -import { ActionSheet, ToggleSwitch, Text, TextField } from '@deriv-com/quill-ui'; +import { ActionSheet, CaptionText, ToggleSwitch, Text, TextField } from '@deriv-com/quill-ui'; import { Localize, localize } from '@deriv/translations'; import { hasCallPutEqual, hasDurationForCallPutEqual } from 'Stores/Modules/Trading/Helpers/allow-equals'; import { useTraderStore } from 'Stores/useTraderStores'; -import Carousel from 'AppV2/Components/Carousel'; -import AllowEqualsHeader from './allow-equals-header'; type TAllowEqualsProps = { is_minimized?: boolean; @@ -17,7 +15,6 @@ const AllowEquals = observer(({ is_minimized }: TAllowEqualsProps) => { useTraderStore(); const [is_open, setIsOpen] = React.useState(false); - const [is_allow_equal_enabled, setIsAllowEqualEnabled] = React.useState(!!is_equal); const has_callputequal_duration = hasDurationForCallPutEqual( contract_types_list, @@ -27,59 +24,11 @@ const AllowEquals = observer(({ is_minimized }: TAllowEqualsProps) => { const has_callputequal = hasCallPutEqual(contract_types_list); const has_allow_equals = (has_callputequal_duration || expiry_type === 'endtime') && has_callputequal; - const onSaveButtonClick = () => { - if (!!is_equal !== is_allow_equal_enabled) - onChange({ target: { name: 'is_equal', value: Number(is_allow_equal_enabled) } }); - }; - const onActionSheetClose = () => { + const onToggleSwitch = (is_enabled: boolean) => { + onChange({ target: { name: 'is_equal', value: Number(is_enabled) } }); setIsOpen(false); - setIsAllowEqualEnabled(!!is_equal); }; - const action_sheet_content = [ - { - id: 1, - component: ( - - -
- - - - setIsAllowEqualEnabled(is_enabled)} - /> -
-
- , - onAction: onSaveButtonClick, - }} - /> -
- ), - }, - { - id: 2, - component: ( - -
- - - -
-
- ), - }, - ]; - - React.useEffect(() => { - setIsAllowEqualEnabled(!!is_equal); - }, [is_equal]); - if (!has_allow_equals) return null; return ( @@ -97,9 +46,20 @@ const AllowEquals = observer(({ is_minimized }: TAllowEqualsProps) => { className={clsx('trade-params__option', is_minimized && 'trade-params__option--minimized')} onClick={() => setIsOpen(true)} /> - + setIsOpen(false)} position='left' expandable={false}> - + } /> + +
+ + + + +
+ + + +
diff --git a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx index ba015a0820b4..4c0a8dfe4f5b 100644 --- a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx +++ b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx @@ -31,7 +31,6 @@ const LastDigitPrediction = observer(({ is_minimized, is_stats_mode }: TLastDigi }; const onActionSheetClose = () => { setIsOpen(false); - //TODO: check if we need these 2 resets below after latest Quill Action sheet changes will be in our branch setSelectedDigit(last_digit); }; @@ -47,7 +46,7 @@ const LastDigitPrediction = observer(({ is_minimized, is_stats_mode }: TLastDigi key={`last-digit-prediction${is_minimized ? '-minimized' : ''}`} /> } - value={last_digit.toString()} // TODO: remove toString after TextField supports a numeric 0 value in quill-ui + value={last_digit} className={clsx('trade-params__option', 'trade-params__option--minimized')} onClick={() => setIsOpen(true)} /> diff --git a/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss b/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss index 4cd690126210..cb6404b48955 100644 --- a/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss +++ b/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss @@ -32,6 +32,9 @@ padding: 0px; transition: transform 0.5s, opacity 0.5s, max-height 0.5s, padding 0.1s; + &::-webkit-scrollbar { + display: none; + } &--enter, &--exit { opacity: 0; diff --git a/packages/trader/src/AppV2/Containers/Trade/trade.scss b/packages/trader/src/AppV2/Containers/Trade/trade.scss index 28efc5f2d4de..a1072eaefa73 100644 --- a/packages/trader/src/AppV2/Containers/Trade/trade.scss +++ b/packages/trader/src/AppV2/Containers/Trade/trade.scss @@ -18,6 +18,10 @@ white-space: nowrap; scrollbar-width: none; + &::-webkit-scrollbar { + display: none; + } + button { background-color: transparent; } From 9b2220e11c034362ef116e61138072fe05820b8b Mon Sep 17 00:00:00 2001 From: vinu-deriv <100689171+vinu-deriv@users.noreply.github.com> Date: Mon, 29 Jul 2024 06:56:27 +0400 Subject: [PATCH 22/40] fix: fixed the issue of digit contract tick count value getting truncated in responsive view (#16110) --- packages/trader/src/sass/app/modules/contract/digits.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/trader/src/sass/app/modules/contract/digits.scss b/packages/trader/src/sass/app/modules/contract/digits.scss index 13796054ec58..594a178fe9f7 100644 --- a/packages/trader/src/sass/app/modules/contract/digits.scss +++ b/packages/trader/src/sass/app/modules/contract/digits.scss @@ -235,7 +235,7 @@ top: 1.6rem; left: 0; right: 0; - margin-top: 4.8rem; + margin-top: 6rem; pointer-events: none; &-value, From 1f8e870c192d1c58b67caefb88d3e74c5363c933 Mon Sep 17 00:00:00 2001 From: kate-deriv <121025168+kate-deriv@users.noreply.github.com> Date: Mon, 29 Jul 2024 06:01:10 +0300 Subject: [PATCH 23/40] DTRA / Kate / DTRA-1432 / Account switcher DTrader-V2 fixes (#16165) * fix: account disabled state * fix: button style --- .../dtrader-v2/account-switcher-account-list-dtrader-v2.tsx | 4 ++-- .../Layout/Header/dtrader-v2/account-switcher-dtrader-v2.tsx | 4 ++-- .../app/_common/components/real-signup-banner-dtrader-v2.scss | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/core/src/App/Components/Layout/Header/dtrader-v2/account-switcher-account-list-dtrader-v2.tsx b/packages/core/src/App/Components/Layout/Header/dtrader-v2/account-switcher-account-list-dtrader-v2.tsx index 376db0bfa819..9feb3a850db3 100644 --- a/packages/core/src/App/Components/Layout/Header/dtrader-v2/account-switcher-account-list-dtrader-v2.tsx +++ b/packages/core/src/App/Components/Layout/Header/dtrader-v2/account-switcher-account-list-dtrader-v2.tsx @@ -14,7 +14,7 @@ type TAccountListDTraderV2 = { currency?: string; has_balance?: boolean; has_reset_balance?: boolean; - is_disabled?: boolean | number; + is_disabled?: boolean; is_virtual?: boolean | number; loginid?: string; onClickResetVirtualBalance?: () => Promise; @@ -53,7 +53,7 @@ const AccountListDTraderV2 = ({
{has_reset_balance ? ( + + + ) : ( + + + + } + > + + + )} + + ); +}); + +export default CryptoTransactionProcessingModal; diff --git a/packages/core/src/App/Containers/Modals/crypto-transaction-processing-modal/index.ts b/packages/core/src/App/Containers/Modals/crypto-transaction-processing-modal/index.ts new file mode 100644 index 000000000000..908f41a26d4e --- /dev/null +++ b/packages/core/src/App/Containers/Modals/crypto-transaction-processing-modal/index.ts @@ -0,0 +1,3 @@ +import CryptoTransactionProcessingModal from './crypto-transaction-processing-modal'; + +export default CryptoTransactionProcessingModal; diff --git a/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/__test__/deposit-now-or-later-modal.spec.tsx b/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/__test__/deposit-now-or-later-modal.spec.tsx new file mode 100644 index 000000000000..2be8b20ac9da --- /dev/null +++ b/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/__test__/deposit-now-or-later-modal.spec.tsx @@ -0,0 +1,128 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { useDevice } from '@deriv-com/ui'; +import { StoreProvider, mockStore } from '@deriv/stores'; +import DepositNowOrLaterModal from '../deposit-now-or-later-modal'; + +jest.mock('@deriv-com/ui', () => ({ + ...jest.requireActual('@deriv-com/ui'), + useDevice: jest.fn(() => ({ isMobile: false })), +})); + +describe('', () => { + let modal_root_el: HTMLDivElement; + + const setShouldShowDepositNowOrLaterModal = jest.fn(); + const setShouldShowOneTimeDepositModal = jest.fn(); + const toggleAccountSuccessModal = jest.fn(); + + const mockDefault = mockStore({ + client: { + is_mf_account: true, + }, + ui: { + should_show_deposit_now_or_later_modal: true, + setShouldShowDepositNowOrLaterModal, + setShouldShowOneTimeDepositModal, + toggleAccountSuccessModal, + }, + }); + + const wrapper = (mock: ReturnType = mockDefault) => { + const Component = ({ children }: { children: JSX.Element }) => ( + {children} + ); + return Component; + }; + + beforeEach(() => { + jest.clearAllMocks(); + }); + + beforeAll(() => { + modal_root_el = document.createElement('div'); + modal_root_el.setAttribute('id', 'modal_root'); + modal_root_el.setAttribute('data-testid', 'dt_test_modal'); + document.body.appendChild(modal_root_el); + }); + + afterAll(() => { + document.body.removeChild(modal_root_el); + }); + + it('should render modal with correct title for desktop', () => { + render(, { + wrapper: wrapper(), + }); + + expect(screen.getByTestId('dt_test_modal')).toBeInTheDocument(); + expect(screen.getByText(/Add funds and start trading/)).toBeInTheDocument(); + }); + + it('should render modal with correct title for mobile', () => { + (useDevice as jest.Mock).mockReturnValueOnce({ isMobile: true }); + + render(, { + wrapper: wrapper(), + }); + + expect(screen.getByTestId('dt_test_modal')).toBeInTheDocument(); + expect(screen.getByText(/Add funds and start trading/)).toBeInTheDocument(); + }); + + it('should call setShouldShowDepositNowOrLaterModal with false when try to click confirm button', () => { + render(, { + wrapper: wrapper(), + }); + + const close_button = screen.getByRole('button', { + name: /Deposit now/, + }); + userEvent.click(close_button); + + expect(setShouldShowDepositNowOrLaterModal).toHaveBeenCalledWith(false); + }); + + it('should call setShouldShowDepositNowOrLaterModal, setShouldShowOneTimeDepositModal and toggleAccountSuccessModal for MF account when try to click cancel or close button', () => { + render(, { + wrapper: wrapper(), + }); + + const close_button = screen.getByRole('button', { + name: /Deposit later/, + }); + userEvent.click(close_button); + + expect(setShouldShowDepositNowOrLaterModal).toHaveBeenCalledWith(false); + expect(setShouldShowOneTimeDepositModal).toHaveBeenCalledWith(false); + expect(toggleAccountSuccessModal).toHaveBeenCalledTimes(1); + }); + + it('should call setShouldShowDepositNowOrLaterModal, setShouldShowOneTimeDepositModal and toggleAccountSuccessModal for not MF account when try to click cancel or close button', () => { + const mock = mockStore({ + client: { + is_mf_account: false, + }, + ui: { + should_show_deposit_now_or_later_modal: true, + setShouldShowDepositNowOrLaterModal, + setShouldShowOneTimeDepositModal, + toggleAccountSuccessModal, + }, + }); + + render(, { + wrapper: wrapper(mock), + }); + + const close_button = screen.getByRole('button', { + name: /Deposit later/, + }); + userEvent.click(close_button); + + expect(setShouldShowDepositNowOrLaterModal).toHaveBeenCalledWith(false); + expect(setShouldShowOneTimeDepositModal).toHaveBeenCalledWith(false); + expect(toggleAccountSuccessModal).toHaveBeenCalledTimes(0); + }); +}); diff --git a/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/deposit-now-or-later-modal.scss b/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/deposit-now-or-later-modal.scss new file mode 100644 index 000000000000..cede029154da --- /dev/null +++ b/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/deposit-now-or-later-modal.scss @@ -0,0 +1,18 @@ +.deposit-now-or-later-modal { + &.dc-dialog__wrapper { + z-index: 99999; + } + + .dc-dialog { + @include mobile-screen { + &__dialog { + padding: 1.6rem; + margin: 0 1.6rem; + } + } + } + + .dc-dialog__header-wrapper { + margin-top: unset; + } +} diff --git a/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/deposit-now-or-later-modal.tsx b/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/deposit-now-or-later-modal.tsx new file mode 100644 index 000000000000..6e2592ba1cf0 --- /dev/null +++ b/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/deposit-now-or-later-modal.tsx @@ -0,0 +1,96 @@ +import React from 'react'; +import { Analytics } from '@deriv-com/analytics'; +import { useDevice } from '@deriv-com/ui'; +import { Dialog, Text } from '@deriv/components'; +import { Localize, localize } from '@deriv/translations'; +import { useStore, observer } from '@deriv/stores'; +import './deposit-now-or-later-modal.scss'; + +const DepositNowOrLaterModal = observer(() => { + const { isMobile } = useDevice(); + const { client, ui } = useStore(); + const { is_mf_account } = client; + const { + should_show_deposit_now_or_later_modal, + setShouldShowDepositNowOrLaterModal, + setShouldShowOneTimeDepositModal, + toggleAccountSuccessModal, + } = ui; + + const onConfirmModal = () => { + Analytics.trackEvent('ce_tradershub_popup', { + // @ts-expect-error 'click_download' property is changed to 'click_cta' + action: 'click_cta', + form_name: 'traders_hub_default', + account_mode: 'real', + popup_name: 'deposit_now_or_later', + popup_type: 'with_cta', + // 'cta_name' property type will be added later + cta_name: 'deposit_now', + }); + + setShouldShowDepositNowOrLaterModal(false); + }; + + const onClose = (is_click_on_cancel_button = false) => { + if (is_click_on_cancel_button) + Analytics.trackEvent('ce_tradershub_popup', { + // @ts-expect-error 'click_download' property is changed to 'click_cta' + action: 'click_cta', + form_name: 'traders_hub_default', + account_mode: 'real', + popup_name: 'deposit_now_or_later', + popup_type: 'with_cta', + // 'cta_name' property type will be added later + cta_name: 'deposit_later', + }); + else + Analytics.trackEvent('ce_tradershub_popup', { + action: 'close', + form_name: 'traders_hub_default', + account_mode: 'real', + popup_name: 'deposit_now_or_later', + popup_type: 'with_cta', + }); + + setShouldShowDepositNowOrLaterModal(false); + setShouldShowOneTimeDepositModal(false); + + // for MF accounts we need to show success modal + if (is_mf_account) toggleAccountSuccessModal(); + }; + + React.useEffect(() => { + if (should_show_deposit_now_or_later_modal) { + Analytics.trackEvent('ce_tradershub_popup', { + action: 'open', + form_name: 'traders_hub_default', + account_mode: 'real', + popup_name: 'deposit_now_or_later', + popup_type: 'with_cta', + }); + } + }, [should_show_deposit_now_or_later_modal]); + + return ( + } + confirm_button_text={localize('Deposit now')} + onConfirm={onConfirmModal} + cancel_button_text={localize('Deposit later')} + onCancel={() => onClose(true)} + onClose={onClose} + is_visible={should_show_deposit_now_or_later_modal} + has_close_icon + is_closed_on_cancel={false} + onEscapeButtonCancel={onClose} + > + + + + + ); +}); + +export default DepositNowOrLaterModal; diff --git a/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/index.ts b/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/index.ts new file mode 100644 index 000000000000..dd20075992f7 --- /dev/null +++ b/packages/core/src/App/Containers/Modals/deposit-now-or-later-modal/index.ts @@ -0,0 +1,3 @@ +import DepositNowOrLaterModal from './deposit-now-or-later-modal'; + +export default DepositNowOrLaterModal; diff --git a/packages/core/src/App/Containers/OneTimeDepositModal/__test__/one-time-deposit-modal-content.spec.tsx b/packages/core/src/App/Containers/OneTimeDepositModal/__test__/one-time-deposit-modal-content.spec.tsx new file mode 100644 index 000000000000..51f523468b02 --- /dev/null +++ b/packages/core/src/App/Containers/OneTimeDepositModal/__test__/one-time-deposit-modal-content.spec.tsx @@ -0,0 +1,82 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { useDevice } from '@deriv-com/ui'; +import { StoreProvider, mockStore } from '@deriv/stores'; +import { OneTimeDepositModalContent } from '../one-time-deposit-modal-content'; + +jest.mock('@deriv-com/ui', () => ({ + ...jest.requireActual('@deriv-com/ui'), + useDevice: jest.fn(() => ({ isDesktop: true })), +})); + +jest.mock('@deriv/cashier/src/modules/deposit-fiat/components/deposit-fiat-iframe/deposit-fiat-iframe', () => + jest.fn(() =>
FiatIframe
) +); +jest.mock( + '@deriv/cashier/src/modules/deposit-crypto/components/deposit-crypto-wallet-address/deposit-crypto-wallet-address', + () => jest.fn(() =>
CryptoWallet
) +); + +describe('', () => { + const mockDefault = mockStore({}); + + const wrapper = (mock: ReturnType = mockDefault) => { + const Component = ({ children }: { children: JSX.Element }) => ( + {children} + ); + return Component; + }; + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should render one time deposit modal content with correct title', () => { + render(, { + wrapper: wrapper(), + }); + + expect(screen.getByText(/Deposit/)).toBeInTheDocument(); + }); + + it('should render one time deposit modal content with correct title in responsive mode', () => { + (useDevice as jest.Mock).mockReturnValueOnce({ isDesktop: false }); + + render(, { + wrapper: wrapper(), + }); + + expect(screen.getByText(/Deposit/)).toBeInTheDocument(); + }); + + it('should render one time deposit modal content with fiat iframe', () => { + render(, { + wrapper: wrapper(), + }); + + expect(screen.getByText(/Select a payment method to make a deposit into your account/)).toBeInTheDocument(); + expect(screen.getByText(/FiatIframe/)).toBeInTheDocument(); + }); + + it('should render one time deposit modal content with crypto wallet', () => { + render(, { + wrapper: wrapper(), + }); + + expect( + screen.queryByText(/Select a payment method to make a deposit into your account/) + ).not.toBeInTheDocument(); + expect(screen.getByText(/CryptoWallet/)).toBeInTheDocument(); + }); + + it('should open live chat widget on click', () => { + render(, { + wrapper: wrapper(), + }); + + const live_chat = screen.getByTestId('dt_live_chat'); + expect(live_chat).toBeInTheDocument(); + userEvent.click(live_chat); + }); +}); diff --git a/packages/core/src/App/Containers/OneTimeDepositModal/__test__/one-time-deposit-modal.spec.tsx b/packages/core/src/App/Containers/OneTimeDepositModal/__test__/one-time-deposit-modal.spec.tsx new file mode 100644 index 000000000000..c71d794bf244 --- /dev/null +++ b/packages/core/src/App/Containers/OneTimeDepositModal/__test__/one-time-deposit-modal.spec.tsx @@ -0,0 +1,193 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { useDevice } from '@deriv-com/ui'; +import { StoreProvider, mockStore } from '@deriv/stores'; +import OneTimeDepositModal from '../one-time-deposit-modal'; +import { useCryptoTransactions, useCurrentCurrencyConfig } from '@deriv/hooks'; + +jest.mock('@deriv/hooks', () => ({ + ...jest.requireActual('@deriv/hooks'), + useCurrentCurrencyConfig: jest.fn(() => ({ is_crypto: false })), + useCryptoTransactions: jest.fn(() => ({ data: [], has_transactions: false })), +})); + +jest.mock('@deriv-com/ui', () => ({ + ...jest.requireActual('@deriv-com/ui'), + useDevice: jest.fn(() => ({ isDesktop: true })), +})); + +jest.mock('../one-time-deposit-modal-content', () => ({ + __esModule: true, + default: () => undefined, + OneTimeDepositModalContent: () =>
Content
, +})); + +jest.mock('../../Modals/deposit-now-or-later-modal', () => jest.fn(() =>
DepositNowOrLater
)); +jest.mock('../../Modals/crypto-transaction-processing-modal', () => jest.fn(() =>
Crypto
)); + +describe('', () => { + let modal_root_el: HTMLDivElement; + + const setIsAccountDeposited = jest.fn(); + const setShouldShowOneTimeDepositModal = jest.fn(); + const setShouldShowCryptoTransactionProcessingModal = jest.fn(); + const setShouldShowDepositNowOrLaterModal = jest.fn(); + + const mockDefault = mockStore({ + ui: { + should_show_one_time_deposit_modal: true, + setShouldShowOneTimeDepositModal, + setShouldShowCryptoTransactionProcessingModal, + setShouldShowDepositNowOrLaterModal, + }, + }); + + const wrapper = (mock: ReturnType = mockDefault) => { + const Component = ({ children }: { children: JSX.Element }) => ( + {children} + ); + return Component; + }; + + beforeEach(() => { + jest.clearAllMocks(); + jest.spyOn(React, 'useState').mockRestore(); + }); + + beforeAll(() => { + modal_root_el = document.createElement('div'); + modal_root_el.setAttribute('id', 'modal_root'); + modal_root_el.setAttribute('data-testid', 'dt_test_modal'); + document.body.appendChild(modal_root_el); + }); + + afterAll(() => { + document.body.removeChild(modal_root_el); + }); + + it('should render one time deposit modal for desktop', () => { + render(, { + wrapper: wrapper(), + }); + + expect(screen.getByTestId('dt_test_modal')).toBeInTheDocument(); + expect(screen.getByText('Content')).toBeInTheDocument(); + }); + + it('should render one time deposit modal for responsive', () => { + (useDevice as jest.Mock).mockReturnValueOnce({ isDesktop: false }); + + render(, { + wrapper: wrapper(), + }); + + expect(screen.getByTestId('dt_test_modal')).toBeInTheDocument(); + expect(screen.getByText('Content')).toBeInTheDocument(); + }); + + it('should set is_account_deposited to true if balance more than 0', () => { + const mockUseState = jest.spyOn(React, 'useState'); + (mockUseState as jest.Mock).mockImplementation(initial_value => [initial_value, setIsAccountDeposited]); + + const mock = mockStore({ client: { balance: 10 } }); + + render(, { + wrapper: wrapper(mock), + }); + + expect(setIsAccountDeposited).toHaveBeenCalledWith(true); + }); + + it('should set is_account_deposited to true if is_cr_account && currency_config?.is_crypto && crypto_transactions && has_transactions', () => { + const mockUseState = jest.spyOn(React, 'useState'); + (mockUseState as jest.Mock).mockImplementation(initial_value => [initial_value, setIsAccountDeposited]); + + (useCryptoTransactions as jest.Mock).mockReturnValue({ + data: [{ transaction_type: 'deposit', status_code: 'SUCCESS', is_deposit: true }], + has_transactions: true, + }); + (useCurrentCurrencyConfig as jest.Mock).mockReturnValueOnce({ + is_crypto: true, + }); + + const mock = mockStore({ + client: { is_logged_in: true, is_cr_account: true }, + ui: { + setShouldShowOneTimeDepositModal, + setShouldShowCryptoTransactionProcessingModal, + }, + }); + + render(, { + wrapper: wrapper({ ...mockDefault, ...mock }), + }); + + expect(setIsAccountDeposited).toHaveBeenCalledWith(true); + expect(setShouldShowOneTimeDepositModal).toHaveBeenCalledTimes(0); + expect(setShouldShowCryptoTransactionProcessingModal).toHaveBeenCalledTimes(0); + }); + + it('should open show-crypto-transaction-processing-modal and close current modal', () => { + const mockUseState = jest.spyOn(React, 'useState'); + (mockUseState as jest.Mock).mockImplementation(initial_value => [initial_value, setIsAccountDeposited]); + + (useCryptoTransactions as jest.Mock).mockReturnValueOnce({ + data: [{ transaction_type: 'deposit', status_code: 'PENDING', is_deposit: true }], + has_transactions: true, + }); + (useCurrentCurrencyConfig as jest.Mock).mockReturnValueOnce({ + is_crypto: true, + }); + + const mock = mockStore({ + client: { is_logged_in: true, is_cr_account: true }, + ui: { + setShouldShowOneTimeDepositModal, + setShouldShowCryptoTransactionProcessingModal, + }, + }); + + render(, { + wrapper: wrapper(mock), + }); + + expect(setIsAccountDeposited).toHaveBeenCalledWith(true); + expect(setShouldShowOneTimeDepositModal).toHaveBeenCalledWith(false); + expect(setShouldShowCryptoTransactionProcessingModal).toHaveBeenCalledWith(true); + }); + + it('should call setShouldShowDepositNowOrLaterModal with true if is_account_deposited = false, when try to close modal', () => { + const mockUseState = jest.spyOn(React, 'useState'); + (mockUseState as jest.Mock).mockImplementation(initial_value => [initial_value, setIsAccountDeposited]); + + render(, { + wrapper: wrapper(), + }); + + const close_button = screen.getByRole('button'); + + userEvent.click(close_button); + + expect(setShouldShowDepositNowOrLaterModal).toHaveBeenCalledWith(true); + }); + + it('should call setShouldShowOneTimeDepositModal with false if is_account_deposited = true, when try to close modal', async () => { + const mock = mockStore({ + client: { balance: 10 }, + ui: { + should_show_one_time_deposit_modal: true, + setShouldShowOneTimeDepositModal, + }, + }); + + render(, { + wrapper: wrapper(mock), + }); + + const close_button = screen.getByRole('button'); + userEvent.click(close_button); + + expect(setShouldShowOneTimeDepositModal).toHaveBeenCalledWith(false); + }); +}); diff --git a/packages/core/src/App/Containers/OneTimeDepositModal/index.ts b/packages/core/src/App/Containers/OneTimeDepositModal/index.ts index 26849cb9884b..78a9840801f5 100644 --- a/packages/core/src/App/Containers/OneTimeDepositModal/index.ts +++ b/packages/core/src/App/Containers/OneTimeDepositModal/index.ts @@ -1,4 +1,3 @@ import OneTimeDepositModal from './one-time-deposit-modal'; -import './one-time-deposit-modal.scss'; export default OneTimeDepositModal; diff --git a/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal-content.tsx b/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal-content.tsx new file mode 100644 index 000000000000..577152ad9da3 --- /dev/null +++ b/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal-content.tsx @@ -0,0 +1,67 @@ +import React from 'react'; +import classNames from 'classnames'; +import { useDevice } from '@deriv-com/ui'; +import { Text } from '@deriv/components'; +import { observer, useStore } from '@deriv/stores'; +import { Localize } from '@deriv/translations'; +import DepositFiatIframe from '@deriv/cashier/src/modules/deposit-fiat/components/deposit-fiat-iframe/deposit-fiat-iframe'; +import DepositCrypto from '@deriv/cashier/src/modules/deposit-crypto/components/deposit-crypto-wallet-address/deposit-crypto-wallet-address'; +import useLiveChat from 'App/Components/Elements/LiveChat/use-livechat'; + +export const OneTimeDepositModalContent = observer(({ is_crypto_account = false }: { is_crypto_account?: boolean }) => { + const { isDesktop } = useDevice(); + const { client } = useStore(); + const { loginid } = client; + const liveChat = useLiveChat(false, loginid); + + const onLiveChatClick = () => { + liveChat.widget?.call('maximize'); + }; + + return ( +
+
+ + + + + {is_crypto_account ? ( + , + ]} + /> + ) : ( + , + , + ]} + /> + )} + +
+ {is_crypto_account ? : } +
+ ); +}); diff --git a/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal.scss b/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal.scss index c91354835a5f..a76161806f46 100644 --- a/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal.scss +++ b/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal.scss @@ -6,8 +6,9 @@ display: flex; justify-content: center; height: 80vh; + width: 90vw; - @include mobile { + @include mobile-or-tablet-screen { height: 100%; } } @@ -18,31 +19,24 @@ flex-direction: column; align-items: center; - @include mobile { + @include mobile-or-tablet-screen { width: 100%; padding: 2rem; } - } - &__description { - display: grid; - grid-template-columns: 78fr 22fr; - gap: 0.8rem; - place-items: center; - margin-block: 2rem; + &-crypto { + gap: 2.4rem; - &--livechat { - cursor: pointer; - width: max-content; - display: flex; - align-items: center; - - &-icon { - margin: 0.2rem 0.8rem 0 0; + @include mobile-or-tablet-screen { + gap: 1.6rem; } } } + &__livechat { + cursor: pointer; + } + &__deposit-fiat-iframe { width: 100%; height: 100%; @@ -53,11 +47,13 @@ flex-direction: column; align-items: center; gap: 0.8rem; + margin-block-end: 2.4rem; } -} -.dc-modal__container_one-time-deposit-modal { - .dc-modal-header { - border-bottom: 2px solid var(--general-section-1); + .dc-mobile-full-page-modal { + @include mobile-or-tablet-screen { + display: flex; + justify-content: center; + } } } diff --git a/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal.spec.tsx b/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal.spec.tsx deleted file mode 100644 index 87f8f7e3eadb..000000000000 --- a/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal.spec.tsx +++ /dev/null @@ -1,145 +0,0 @@ -import React from 'react'; -import { Router } from 'react-router'; -import { render, screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import { createBrowserHistory } from 'history'; -import { useDepositFiatAddress, useHasMFAccountDeposited } from '@deriv/hooks'; -import { StoreProvider, mockStore, useStore } from '@deriv/stores'; -import OneTimeDepositModal from './one-time-deposit-modal'; - -let mock_store: ReturnType; - -jest.mock('@deriv/hooks', () => ({ - useDepositFiatAddress: jest.fn(() => ({ - data: 'https://www.binary.com', - isSuccess: true, - })), - useHasMFAccountDeposited: jest.fn(), -})); - -describe('', () => { - let modal_root_el: HTMLDivElement; - - beforeAll(() => { - modal_root_el = document.createElement('div'); - modal_root_el.setAttribute('id', 'modal_root'); - document.body.appendChild(modal_root_el); - }); - - beforeEach(() => { - mock_store = mockStore({ - ui: { - should_show_one_time_deposit_modal: true, - setShouldShowOneTimeDepositModal: jest.fn(), - toggleAccountSuccessModal: jest.fn(), - }, - client: { - loginid: 'MX12345', - updateAccountStatus: jest.fn(), - }, - }); - }); - - afterAll(() => { - document.body.removeChild(modal_root_el); - }); - - it('should render one time deposit modal', () => { - const history = createBrowserHistory(); - (useHasMFAccountDeposited as jest.Mock).mockReturnValueOnce({ has_mf_account_deposited: false }); - const wrapper = ({ children }: { children: JSX.Element }) => ( - {children} - ); - - render( - - - , - { - wrapper, - } - ); - expect(screen.getByText('Deposit')).toBeInTheDocument(); - expect(screen.getByText('Account created. Select payment method for deposit.')).toBeInTheDocument(); - expect(screen.getByTestId('dt_deposit_fiat_iframe_iframe')).toBeInTheDocument(); - }); - - it('should render loading component if iframe has not loaded', () => { - const history = createBrowserHistory(); - (useHasMFAccountDeposited as jest.Mock).mockReturnValueOnce({ has_mf_account_deposited: false }); - (useDepositFiatAddress as jest.Mock).mockReturnValueOnce({ - data: '', - isSuccess: false, - }); - const wrapper = ({ children }: { children: JSX.Element }) => ( - {children} - ); - - render( - - - , - { - wrapper, - } - ); - expect(screen.getByTestId('dt_initial_loader')).toBeInTheDocument(); - }); - - it('should close modal if user unable to deposit because they have deposited', () => { - const history = createBrowserHistory(); - (useHasMFAccountDeposited as jest.Mock).mockReturnValueOnce({ has_mf_account_deposited: true }); - const wrapper = ({ children }: { children: JSX.Element }) => ( - {children} - ); - - render( - - - , - { - wrapper, - } - ); - expect(mock_store.ui.setShouldShowOneTimeDepositModal).toHaveBeenCalled(); - expect(mock_store.ui.toggleAccountSuccessModal).toHaveBeenCalled(); - }); - - it('should close modal after cllicking ESC key', () => { - const history = createBrowserHistory(); - (useHasMFAccountDeposited as jest.Mock).mockReturnValueOnce({ has_mf_account_deposited: false }); - const wrapper = ({ children }: { children: JSX.Element }) => ( - {children} - ); - render( - - - , - { - wrapper, - } - ); - userEvent.keyboard('{esc}'); - expect(mock_store.ui.setShouldShowOneTimeDepositModal).toHaveBeenCalled(); - expect(mock_store.ui.toggleAccountSuccessModal).toHaveBeenCalled(); - }); - - it('should open live chat widget on click', () => { - const history = createBrowserHistory(); - (useHasMFAccountDeposited as jest.Mock).mockReturnValueOnce({ has_mf_account_deposited: false }); - const wrapper = ({ children }: { children: JSX.Element }) => ( - {children} - ); - render( - - - , - { - wrapper, - } - ); - const live_chat = screen.getByTestId('dt_live_chat'); - expect(live_chat).toBeInTheDocument(); - userEvent.click(live_chat); - }); -}); diff --git a/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal.tsx b/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal.tsx index 2744eee82a62..0533ce026a09 100644 --- a/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal.tsx +++ b/packages/core/src/App/Containers/OneTimeDepositModal/one-time-deposit-modal.tsx @@ -1,89 +1,79 @@ import React from 'react'; -import { - Button, - DesktopWrapper, - Icon, - InlineMessage, - MobileFullPageModal, - MobileWrapper, - Modal, - Text, -} from '@deriv/components'; -import { useHasMFAccountDeposited } from '@deriv/hooks'; +import { Analytics } from '@deriv-com/analytics'; +import { useDevice } from '@deriv-com/ui'; +import { MobileFullPageModal, Modal } from '@deriv/components'; +import { useCryptoTransactions, useCurrentCurrencyConfig } from '@deriv/hooks'; import { observer, useStore } from '@deriv/stores'; -import { Localize } from '@deriv/translations'; -import DepositFiatIframe from '@deriv/cashier/src/modules/deposit-fiat/components/deposit-fiat-iframe/deposit-fiat-iframe'; -import useLiveChat from 'App/Components/Elements/LiveChat/use-livechat'; +import DepositNowOrLaterModal from '../Modals/deposit-now-or-later-modal'; +import { OneTimeDepositModalContent } from './one-time-deposit-modal-content'; +import CryptoTransactionProcessingModal from '../Modals/crypto-transaction-processing-modal'; +import './one-time-deposit-modal.scss'; const OneTimeDepositModal = observer(() => { + const { isDesktop } = useDevice(); const { client, ui } = useStore(); - const { loginid } = client; + const { is_cr_account, is_logged_in, balance, currency } = client; const { - is_mobile, should_show_one_time_deposit_modal, setShouldShowOneTimeDepositModal, - toggleAccountSuccessModal, + setShouldShowDepositNowOrLaterModal, + setShouldShowCryptoTransactionProcessingModal, } = ui; - const liveChat = useLiveChat(false, loginid); - const { has_mf_account_deposited } = useHasMFAccountDeposited(); + const currency_config = useCurrentCurrencyConfig(); + const is_crypto_account = is_cr_account && currency_config?.is_crypto; + const { data: crypto_transactions, has_transactions } = useCryptoTransactions(is_logged_in && is_crypto_account); + const [is_account_deposited, setIsAccountDeposited] = React.useState(false); + + const onCloseModal = () => { + if (is_account_deposited) setShouldShowOneTimeDepositModal(false); + else setShouldShowDepositNowOrLaterModal(true); + }; + + // check the user already made a deposit React.useEffect(() => { - if (has_mf_account_deposited) { - onCloseModal(); + if (balance && Number(balance) > 0) { + setIsAccountDeposited(true); } - }, [has_mf_account_deposited]); - const onLiveChatClick = () => { - liveChat.widget?.call('maximize'); - }; + // check crypto transactions + if (is_cr_account && currency_config?.is_crypto && crypto_transactions && has_transactions) { + if (crypto_transactions?.some(tx => tx.is_deposit)) { + setIsAccountDeposited(true); + } - const onCloseModal = () => { - setShouldShowOneTimeDepositModal(false); - toggleAccountSuccessModal(); - }; + if (crypto_transactions?.some(tx => tx.is_deposit && tx.status_code === 'PENDING')) { + setShouldShowOneTimeDepositModal(false); + setShouldShowCryptoTransactionProcessingModal(true); + } + } + }, [ + balance, + crypto_transactions, + currency_config, + is_cr_account, + has_transactions, + setIsAccountDeposited, + setShouldShowOneTimeDepositModal, + setShouldShowCryptoTransactionProcessingModal, + ]); - const getModalContent = () => ( -
-
- - - - - - -
-
- - } - /> - -
- -
- ); + React.useEffect(() => { + if (should_show_one_time_deposit_modal) { + Analytics.trackEvent('ce_tradershub_popup', { + action: 'open', + form_name: 'traders_hub_default', + account_mode: 'real', + popup_name: 'direct_deposit', + // @ts-expect-error currency propery will be added later + currency, + }); + } + }, [should_show_one_time_deposit_modal]); return ( - + {isDesktop ? ( { toggleModal={onCloseModal} height='auto' has_close_icon + should_header_stick_body={false} > - {getModalContent()} + + + - - + ) : ( { is_modal_open={should_show_one_time_deposit_modal} onClickClose={onCloseModal} > - {getModalContent()} + - + )} + + ); }); diff --git a/packages/core/src/App/Containers/RealAccountSignup/account-wizard.jsx b/packages/core/src/App/Containers/RealAccountSignup/account-wizard.jsx index 47c487e6f62a..675dd3df2803 100644 --- a/packages/core/src/App/Containers/RealAccountSignup/account-wizard.jsx +++ b/packages/core/src/App/Containers/RealAccountSignup/account-wizard.jsx @@ -10,7 +10,7 @@ import { observer, useStore } from '@deriv/stores'; import AcceptRiskForm from './accept-risk-form.jsx'; import LoadingModal from './real-account-signup-loader.jsx'; import { getItems } from './account-wizard-form'; -import { useResidenceSelfDeclaration } from '@deriv/hooks'; +import { useResidenceSelfDeclaration, useGrowthbookGetFeatureValue } from '@deriv/hooks'; import 'Sass/details-form.scss'; import { Analytics } from '@deriv-com/analytics'; @@ -104,6 +104,11 @@ const AccountWizard = observer(props => { const [should_accept_financial_risk, setShouldAcceptFinancialRisk] = React.useState(false); const { is_residence_self_declaration_required } = useResidenceSelfDeclaration(); + const [direct_deposit_flow] = useGrowthbookGetFeatureValue({ + featureFlag: 'direct-deposit-flow', + defaultValue: false, + }); + const trackEvent = React.useCallback( payload => { if (modifiedProps.real_account_signup_target === 'maltainvest') return; @@ -406,6 +411,9 @@ const AccountWizard = observer(props => { } else if (modifiedProps.real_account_signup_target === 'samoa') { modifiedProps.onOpenWelcomeModal(response.new_account_samoa.currency.toLowerCase()); } else { + if (direct_deposit_flow) { + modifiedProps.onOpenDepositModal(); + } modifiedProps.onFinishSuccess(response.new_account_real.currency.toLowerCase()); } const country_code = modifiedProps.account_settings.citizen || modifiedProps.residence; @@ -537,6 +545,7 @@ AccountWizard.propTypes = { onClose: PropTypes.func, onError: PropTypes.func, onFinishSuccess: PropTypes.func, + onNewFinishSuccess: PropTypes.func, onLoading: PropTypes.func, onOpenWelcomeModal: PropTypes.func, real_account_signup_target: PropTypes.string, diff --git a/packages/core/src/App/Containers/RealAccountSignup/new-status-dialog-container.jsx b/packages/core/src/App/Containers/RealAccountSignup/new-status-dialog-container.jsx new file mode 100644 index 000000000000..51421997a7c4 --- /dev/null +++ b/packages/core/src/App/Containers/RealAccountSignup/new-status-dialog-container.jsx @@ -0,0 +1,91 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { withRouter } from 'react-router-dom'; +import { useDevice } from '@deriv-com/ui'; +import { localize, Localize } from '@deriv/translations'; +import { Div100vhContainer, Icon, Button, Text } from '@deriv/components'; +import { observer, useStore } from '@deriv/stores'; +import { EXPERIAN, getExperianResult } from './helpers/constants'; +import './new-status-dialog-container.scss'; + +const StatusIcon = ({ icon, color }) => ( + +); + +const NewStatusDialogContainer = observer(({ closeModal, currency }) => { + const { isDesktop } = useDevice(); + const { client, ui } = useStore(); + const { landing_company_shortcode } = client; + const { setShouldShowOneTimeDepositModal } = ui; + + const onOpenDepositModal = () => { + closeModal(); + setShouldShowOneTimeDepositModal(true); + }; + + /** + * Get the status for the current account + * + * @readonly + * @return {EXPERIAN} status + */ + const getStatus = () => + getExperianResult({ + landing_company_shortcode, + }); + + return ( + + {isDesktop && ( +
+ +
+ )} + +
+
+ + {getStatus() === EXPERIAN.SUCCESS && } + {getStatus() === EXPERIAN.WARN && } + {getStatus() === EXPERIAN.DANGER && } +
+ + + + + + + + +
+ +
+ {getStatus() !== EXPERIAN.PENDING && ( +
+
+ ); +}); + +NewStatusDialogContainer.propTypes = { + closeModal: PropTypes.func, + currency: PropTypes.string, + closeModalAndOpenDeposit: PropTypes.func, +}; + +export default withRouter(NewStatusDialogContainer); diff --git a/packages/core/src/App/Containers/RealAccountSignup/new-status-dialog-container.scss b/packages/core/src/App/Containers/RealAccountSignup/new-status-dialog-container.scss new file mode 100644 index 000000000000..340752d12739 --- /dev/null +++ b/packages/core/src/App/Containers/RealAccountSignup/new-status-dialog-container.scss @@ -0,0 +1,62 @@ +.status-container { + display: flex; + flex-direction: column; + width: 44rem; + min-height: 35.2rem; + + @include mobile-or-tablet-screen { + width: 100%; + } + + &__header { + cursor: pointer; + display: flex; + align-items: center; + justify-content: flex-end; + padding: 8px 16px; + height: 56px; + border-bottom: 2px solid var(--general-section-1); + } + + &__body { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + padding: 7rem 0; + + &-icon { + position: relative; + } + + &-status-icon { + position: absolute; + bottom: 0; + right: 0; + } + + &-text { + margin-top: 2.4rem; + margin-bottom: 0.8rem; + } + } + + &__button { + margin-left: 0.8rem; + } + + &__footer { + height: 7.2rem; + padding: 0 2.4rem; + display: flex; + align-items: center; + justify-content: flex-end; + border-top: 2px solid var(--general-section-1); + + @include mobile-or-tablet-screen { + padding: 1.6rem; + justify-content: center; + } + } +} diff --git a/packages/core/src/App/Containers/RealAccountSignup/real-account-signup.jsx b/packages/core/src/App/Containers/RealAccountSignup/real-account-signup.jsx index 730a30bb959c..420a23d9938c 100644 --- a/packages/core/src/App/Containers/RealAccountSignup/real-account-signup.jsx +++ b/packages/core/src/App/Containers/RealAccountSignup/real-account-signup.jsx @@ -16,6 +16,7 @@ import FinishedSetCurrency from './finished-set-currency.jsx'; import SetCurrency from './set-currency.jsx'; import SignupErrorContent from './signup-error-content.jsx'; import StatusDialogContainer from './status-dialog-container.jsx'; +import NewStatusDialogContainer from './new-status-dialog-container.jsx'; import { Analytics } from '@deriv-com/analytics'; import 'Sass/account-wizard.scss'; @@ -28,6 +29,7 @@ const modal_pages_indices = { add_or_manage_account: 1, finished_set_currency: 2, status_dialog: 3, + new_status_dialog: 11, set_currency: 4, signup_error: 5, choose_crypto_currency: 6, @@ -105,6 +107,7 @@ const RealAccountSignup = observer(({ history, state_index, is_trading_experienc ), }, + { + body: local_props => ( + + ), + }, ]); const [assessment_decline, setAssessmentDecline] = React.useState(false); @@ -287,7 +298,8 @@ const RealAccountSignup = observer(({ history, state_index, is_trading_experienc const getModalHeight = () => { if (is_from_restricted_country) return '304px'; - else if ([invalid_input_error, status_dialog, signup_error].includes(getActiveModalIndex())) return 'auto'; + else if ([invalid_input_error, status_dialog, new_status_dialog, signup_error].includes(getActiveModalIndex())) + return 'auto'; if (!currency || getActiveModalIndex() === modal_pages_indices.set_currency) return '688px'; // Set currency modal if (has_real_account && currency) { if (show_eu_related_content && getActiveModalIndex() === modal_pages_indices.add_or_manage_account) { @@ -324,6 +336,14 @@ const RealAccountSignup = observer(({ history, state_index, is_trading_experienc currency: curr, }); }; + + const showNewStatusDialog = curr => { + setParams({ + active_modal_index: modal_pages_indices.new_status_dialog, + currency: curr, + }); + }; + const closeModalthenOpenWelcomeModal = curr => { closeRealAccountSignup(); setParams({ @@ -416,7 +436,10 @@ const RealAccountSignup = observer(({ history, state_index, is_trading_experienc ) { return; } - if (getActiveModalIndex() !== modal_pages_indices.status_dialog) { + if ( + getActiveModalIndex() !== modal_pages_indices.status_dialog || + getActiveModalIndex() !== modal_pages_indices.new_status_dialog + ) { sessionStorage.removeItem('post_real_account_signup'); localStorage.removeItem('real_account_signup_wizard'); } @@ -433,7 +456,10 @@ const RealAccountSignup = observer(({ history, state_index, is_trading_experienc ) { return; } - if (getActiveModalIndex() !== modal_pages_indices.status_dialog) { + if ( + getActiveModalIndex() !== modal_pages_indices.status_dialog || + getActiveModalIndex() !== modal_pages_indices.new_status_dialog + ) { sessionStorage.removeItem('post_real_account_signup'); localStorage.removeItem('real_account_signup_wizard'); } @@ -493,6 +519,7 @@ const RealAccountSignup = observer(({ history, state_index, is_trading_experienc add_or_manage_account, finished_set_currency, status_dialog, + new_status_dialog, set_currency, signup_error, restricted_country_signup_error, @@ -517,6 +544,7 @@ const RealAccountSignup = observer(({ history, state_index, is_trading_experienc closeModalthenOpenDepositModal(); } else { showStatusDialog(response?.new_account_maltainvest?.currency.toLowerCase()); + showNewStatusDialog(response?.new_account_maltainvest?.currency.toLowerCase()); } }); } catch (sign_up_error) { diff --git a/packages/core/src/Stores/client-store.js b/packages/core/src/Stores/client-store.js index 7227d7c22208..aaa078648f81 100644 --- a/packages/core/src/Stores/client-store.js +++ b/packages/core/src/Stores/client-store.js @@ -416,6 +416,8 @@ export default class ClientStore extends BaseStore { unsubscribeFromExchangeRate: action.bound, unsubscribeFromAllExchangeRates: action.bound, setExchangeRates: action.bound, + is_cr_account: computed, + is_mf_account: computed, }); reaction( @@ -2869,4 +2871,12 @@ export default class ClientStore extends BaseStore { }); this.setExchangeRates({}); }; + + get is_cr_account() { + return this.loginid?.startsWith('CR'); + } + + get is_mf_account() { + return this.loginid?.startsWith('MF'); + } } diff --git a/packages/core/src/Stores/ui-store.js b/packages/core/src/Stores/ui-store.js index d6e5fe5d5256..2dd38a2a5441 100644 --- a/packages/core/src/Stores/ui-store.js +++ b/packages/core/src/Stores/ui-store.js @@ -152,6 +152,8 @@ export default class UIStore extends BaseStore { // add crypto accounts should_show_cancel = false; + should_show_deposit_now_or_later_modal = false; + should_show_crypto_transaction_processing_modal = false; should_show_risk_warning_modal = false; should_show_appropriateness_warning_modal = false; should_show_risk_accept_modal = false; @@ -296,6 +298,8 @@ export default class UIStore extends BaseStore { real_account_signup: observable, reports_route_tab_index: observable, settings_extension: observable, + should_show_deposit_now_or_later_modal: observable, + should_show_crypto_transaction_processing_modal: observable, should_show_appropriateness_warning_modal: observable, should_show_assessment_complete_modal: observable, should_show_cancel: observable, @@ -418,6 +422,8 @@ export default class UIStore extends BaseStore { toggleKycInformationSubmittedModal: action.bound, toggleMT5MigrationModal: action.bound, toggleUrlUnavailableModal: action.bound, + setShouldShowDepositNowOrLaterModal: action.bound, + setShouldShowCryptoTransactionProcessingModal: action.bound, }); window.addEventListener('resize', this.handleResize); @@ -969,4 +975,12 @@ export default class UIStore extends BaseStore { toggleUrlUnavailableModal(value) { this.isUrlUnavailableModalVisible = value; } + + setShouldShowDepositNowOrLaterModal(value) { + this.should_show_deposit_now_or_later_modal = value; + } + + setShouldShowCryptoTransactionProcessingModal(value) { + this.should_show_crypto_transaction_processing_modal = value; + } } diff --git a/packages/hooks/src/useCryptoTransactions.ts b/packages/hooks/src/useCryptoTransactions.ts index 61c4fe8d955e..c88deaa11503 100644 --- a/packages/hooks/src/useCryptoTransactions.ts +++ b/packages/hooks/src/useCryptoTransactions.ts @@ -20,13 +20,13 @@ export type TModifiedTransaction = Omit { +const useCryptoTransactions = (allowToMakeSubscription = true) => { const { subscribe, data, ...rest } = useSubscription('cashier_payments'); const [transactions, setTransactions] = useState(); useEffect(() => { - subscribe(); - }, [subscribe]); + allowToMakeSubscription && subscribe(); + }, [subscribe, allowToMakeSubscription]); useEffect(() => { setTransactions(old_transactions => { diff --git a/packages/stores/src/mockStore.ts b/packages/stores/src/mockStore.ts index 0d4a0b9b4056..c8b895ce52f3 100644 --- a/packages/stores/src/mockStore.ts +++ b/packages/stores/src/mockStore.ts @@ -303,6 +303,9 @@ const mock = (): TStores & { is_mock: boolean } => { subscribeToExchangeRate: jest.fn(), unsubscribeFromExchangeRate: jest.fn(), unsubscribeFromAllExchangeRates: jest.fn(), + virtual_account_loginid: '', + is_cr_account: false, + is_mf_account: false, }, common: { error: common_store_error, @@ -472,6 +475,10 @@ const mock = (): TStores & { is_mock: boolean } => { setAccountSwitcherDisabledMessage: jest.fn(), toggleUrlUnavailableModal: jest.fn(), is_set_currency_modal_visible: false, + should_show_deposit_now_or_later_modal: false, + setShouldShowDepositNowOrLaterModal: jest.fn(), + should_show_crypto_transaction_processing_modal: false, + setShouldShowCryptoTransactionProcessingModal: jest.fn(), }, traders_hub: { getAccount: jest.fn(), diff --git a/packages/stores/types.ts b/packages/stores/types.ts index 9d9d81254fa6..3da57594649b 100644 --- a/packages/stores/types.ts +++ b/packages/stores/types.ts @@ -613,6 +613,8 @@ type TClientStore = { unsubscribeFromExchangeRate: (base_currency: string, target_currency: string) => Promise; unsubscribeFromAllExchangeRates: () => void; virtual_account_loginid?: string; + is_cr_account: boolean; + is_mf_account: boolean; }; type TCommonStoreError = { @@ -817,6 +819,10 @@ type TUiStore = { toggleKycInformationSubmittedModal: () => void; setAccountSwitcherDisabledMessage: (message?: string) => void; is_set_currency_modal_visible: boolean; + should_show_deposit_now_or_later_modal: boolean; + setShouldShowDepositNowOrLaterModal: (value: boolean) => void; + should_show_crypto_transaction_processing_modal: boolean; + setShouldShowCryptoTransactionProcessingModal: (value: boolean) => void; }; type TPortfolioStore = { From 0290b587fa6e82e2fec9db6eb6d30e274bc744ff Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 16:53:13 +0800 Subject: [PATCH 29/40] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20tra?= =?UTF-8?q?nslations=20with=20crowdin=20(#16238)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE --- packages/translations/crowdin/messages.json | 2 +- .../translations/src/translations/ach.json | 12 +- .../translations/src/translations/ar.json | 12 +- .../translations/src/translations/bn.json | 142 +++++++++--------- .../translations/src/translations/de.json | 12 +- .../translations/src/translations/es.json | 12 +- .../translations/src/translations/fr.json | 12 +- .../translations/src/translations/it.json | 12 +- .../translations/src/translations/km.json | 12 +- .../translations/src/translations/ko.json | 12 +- .../translations/src/translations/mn.json | 12 +- .../translations/src/translations/pl.json | 12 +- .../translations/src/translations/pt.json | 12 +- .../translations/src/translations/ru.json | 12 +- .../translations/src/translations/si.json | 12 +- .../translations/src/translations/sw.json | 16 +- .../translations/src/translations/th.json | 12 +- .../translations/src/translations/tr.json | 14 +- .../translations/src/translations/uz.json | 12 +- .../translations/src/translations/vi.json | 12 +- .../translations/src/translations/zh_cn.json | 12 +- .../translations/src/translations/zh_tw.json | 12 +- 22 files changed, 258 insertions(+), 132 deletions(-) diff --git a/packages/translations/crowdin/messages.json b/packages/translations/crowdin/messages.json index ba92567abb71..f0d5447f3614 100644 --- a/packages/translations/crowdin/messages.json +++ b/packages/translations/crowdin/messages.json @@ -1 +1 @@ -{"0":"","1485191":"1:1000","2082741":"additional document number","2091451":"Deriv Bot - your automated trading partner","3125515":"Your Deriv MT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","3215342":"Last 30 days","3420069":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your identity document.","4547840":"<0>Verify your account to transfer funds. <1>Verify now","5149403":"Learn more about trade types","7100308":"Hour must be between 0 and 23.","9488203":"Deriv Bot is a web-based strategy builder for trading digital options. It’s a platform where you can build your own automated trading bot using drag-and-drop 'blocks'.","9757544":"Please submit your proof of address","11533428":"Trade bigger positions with less capital on a wide range of global markets. <0>Learn more","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11706633":"Loss threshold: The bot will stop trading if your total loss exceeds this amount.","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","23745193":"Take me to demo","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582393":"Example :","27582767":"{{amount}} {{currency}}","27731356":"Your account is temporarily disabled. Please contact us via <0>live chat to enable deposits and withdrawals again.","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","40632954":"Why is my card/e-wallet not working?","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45821474":"Proof of income","46523711":"Your proof of identity is verified","49404821":"If you buy a \"<0>{{trade_type}}\" option, you receive a payout at expiry if the final price is {{payout_status}} the strike price. Otherwise, your “<0>{{trade_type}}” option will expire worthless.","53801223":"Hong Kong 50","53964766":"5. Hit Save to download your bot. You can choose to download your bot to your device or your Google Drive.","54185751":"Less than $100,000","55340304":"Keep your current contract?","55916349":"All","57362642":"Closed","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","62910715":"You already have an open position for this contract type, retrying in {{ delay }}s","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","66610627":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there’s enough light where you are and that your entire face is in the frame.","67923436":"No, Deriv Bot will stop running when your web browser is closed.","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71232823":"Manage funds","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74963864":"Under","76635112":"To proceed, resubmit these documents","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","76925355":"Check your bot’s performance","77982950":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a \"Call\" or a \"Put\".","81009535":"Potential profit/loss","81091424":"To complete the upgrade, please log out and log in again to add more accounts and make transactions with your Wallets.","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","84402478":"Where do I find the blocks I need?","84924586":"To trade options and multipliers, get a Deriv Apps account first.","85343079":"Financial assessment","85359122":"40 or more","85389154":"Steps required to continue verification on your mobile","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","93154671":"1. Hit Reset at the bottom of stats panel.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","105871033":"Your age in the document you provided appears to be below 18 years. We’re only allowed to offer our services to clients above 18 years old, so we’ll need to close your account. If you have a balance in your account, contact us via live chat and we’ll help to withdraw your funds before your account is closed.","107537692":"These limits apply to your options trades only. For example, <0>maximum total loss refers to the losses on all your trades on options trading platforms.","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113378532":"ETH/USD","115032488":"Buy price and P/L","116005488":"Indicators","117056711":"We’re updating our site","117318539":"Password should have lower and uppercase English letters with numbers.","117366356":"Turbo options allow you to predict the direction of the underlying asset’s movements.","118727646":"{{new_account_title}}","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","122617359":"View tutorial","122993457":"This is to confirm that it's you making the withdrawal request.","123454801":"{{withdraw_amount}} {{currency_symbol}}","124723298":"Upload a proof of address to verify your address","125354367":"An example of D’Alembert's Grind strategy","125443840":"6. Restart last trade on error","125842960":"{{name}} is required.","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","129005644":"The idea is that successful trades may recoup previous losses. However, it is crucial to exercise caution as the risk can quickly increase with this strategy. With Deriv Bot, you can minimise your risk by setting a maximum stake. This is an optional risk management feature. Let’s say a maximum stake of 3 USD. If your stake for the next trade is set to exceed 3 USD, your stake will reset to the initial stake of 1 USD. If you didn't set a maximum stake, it would have increased beyond 3 USD.","129137937":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or resume trading after a 24-hour cooling-off period. If you don’t want to set a specific limit, leave the field empty.","129729742":"Tax Identification Number*","130567238":"THEN","132596476":"In providing our services to you, we are required to ask you for some information to assess if a given product or service is appropriate for you and whether you have the experience and knowledge to understand the risks involved.<0/><0/>","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","133655768":"Note: If you wish to learn more about the Bot Builder, you can proceed to the <0>Tutorials tab.","134126193":"Try searching for markets or keywords","136790425":"Try changing or removing filters to view available positions.","137589354":"To assess your trading experience and if our products are suitable for you. Please provide accurate and complete answers, as they may affect the outcome of this assessment.","138055021":"Synthetic indices","139454343":"Confirm my limits","141265840":"Funds transfer information","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145511192":"s is the initial stake.","145633981":"Unavailable as your documents are still under review","145736466":"Take a selfie","147327552":"No favourites","150156106":"Save changes","150486954":"Token name","151279367":"2. Set the Purchase conditions. In this example, your bot will purchase a Rise contract when it starts and after a contract closes.","151646545":"Unable to read file {{name}}","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","153485708":"Zero Spread - BVI","154274415":"The payout at expiry is equal to the payout per point multiplied by the distance between the final price and the barrier.","157593038":"random integer from {{ start_number }} to {{ end_number }}","157871994":"Link expired","158355408":"Some services may be temporarily unavailable.","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","167094229":"• Current stake: Use this variable to store the stake amount. You can assign any amount you want, but it must be a positive number.","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","174793462":"Strike","176078831":"Added","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","177467242":"Define your trade options such as accumulator and stake. This block can only be used with the accumulator trade type. If you select another trade type, this block will be replaced with the Trade options block.","179083332":"Date","181107754":"Your new <0>{{platform}} {{eligible_account_to_migrate}} account(s) are ready for trading.","181346014":"Notes ","181881956":"Contract Type: {{ contract_type }}","182630355":"Thank you for submitting your information.","184024288":"lower case","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","190834737":"Guide","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195136585":"Trading View Chart","195972178":"Get character","196810983":"If the duration is more than 24 hours, the Cut-off time and Expiry date will apply instead.","196998347":"We hold customer funds in bank accounts separate from our operational accounts which would not, in the event of insolvency, form part of the company's assets. This meets the <0>Gambling Commission's requirements for the segregation of customer funds at the level: <1>medium protection.","197190401":"Expiry date","201016731":"<0>View more","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","203297887":"The Quick Strategy you just created will be loaded to the workspace.","203924654":"Hit the <0>Start button to begin and follow the tutorial.","204797764":"Transfer to client","204863103":"Exit time","207521645":"Reset Time","207824122":"Please withdraw your funds from the following Deriv account(s):","209533725":"You’ve transferred {{amount}} {{currency}}","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","210872733":"The verification status is not available, provider says: Malformed JSON.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211487193":"Document number (e.g. identity card, passport, driver's license)","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216114973":"Stocks & indices","216650710":"You are using a demo account","217377529":"5. If the next trades are profitable, the stake for the following trade will be reduced by 2 USD. This can be shown above where the stake of 3 USD is reduced to 1 USD. See A3.","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","221261209":"A Deriv account will allow you to fund (and withdraw from) your CFDs account(s).","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","233500222":"- High: the highest price","235244966":"Return to Trader's Hub","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","235994721":"Forex (standard/exotic) and cryptocurrencies","236642001":"Journal","238496287":"Leverage trading is high-risk, so it's a good idea to use risk management features such as stop loss. Stop loss allows you to","242028165":"Pay a small fee to prioritise your withdrawal, this fee will be deducted from the withdrawal amount.","243537306":"1. Under the Blocks menu, go to Utility > Variables.","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","246428134":"Step-by-step guides","248153700":"Reset your password","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","251134918":"Account Information","251445658":"Dark theme","251882697":"Thank you! Your response has been recorded into our system.<0/><0/>Please click ‘OK’ to continue.","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258448370":"MT5","258912192":"Trading assessment","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","260393332":"You cannot make further deposits as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","261074187":"4. Once the blocks are loaded onto the workspace, tweak the parameters if you want, or hit Run to start trading.","261250441":"Drag the <0>Trade again block and add it into the <0>do part of the <0>Repeat until block.","262095250":"If you select <0>\"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","266455247":"Standard Vanuatu","267992618":"The platforms lack key features or functionality.","268254263":"Open a real account now","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269322978":"Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270396691":"<0>Your Wallets are ready!","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","271637055":"Download is unavailable while your bot is running.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","276770377":"New MT5 account(s) under the {{to_account}} jurisdiction will be created for new trades.","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","280021988":"Use these shortcuts","281110034":"Effective trading with the D'Alembert system requires careful consideration of its stake progression and risk management. Traders can automate this approach using Deriv Bot, setting profit and loss thresholds to ensure balanced and controlled trading. However, it is crucial for traders to assess their risk appetite, test strategies on a demo account, and align with their own trading style before transitioning to real money trading. This optimization process helps strike a balance between potential gains and losses while managing risk prudently.","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283830551":"Your address doesn’t match your profile","284527272":"antimode","284772879":"Contract","284809500":"Financial Demo","287934290":"Are you sure you want to cancel this transaction?","289731075":"Get Started","291344459":"The table illustrates this principle in the second session. After a trade resulting in loss in round 4 followed by a successful trade in round 5, the stake will increase to 2 USD for round 6. This is in line with the strategy's rule of raising the stake only after a loss is followed by a successful trade.","291744889":"<0>1. Trade parameters:<0>","291817757":"Go to our Deriv community and learn about APIs, API tokens, ways to use Deriv APIs, and more.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","293250845":"Are you sure you want to continue?","294043810":"I confirm that my tax information is accurate and complete.","294305803":"Manage account settings","294335229":"Sell at market price","296017162":"Back to Bot","301441673":"Select your citizenship/nationality as it appears on your passport or other government-issued ID.","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","304506198":"Total balance:","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","316694303":"Is candle black?","318705408":"Demo Zero Spread","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","321457615":"Oops, something went wrong!","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","323360883":"Baskets","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329353047":"Malta Financial Services Authority (MFSA) (licence no. IS/70156)","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","330384187":"Enable trading with your first transfer.","333456603":"Withdrawal limits","333807745":"Click on the block you want to remove and press Delete on your keyboard.","334942497":"Buy time","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345320063":"Invalid timestamp","345818851":"Sorry, an internal error occurred. Hit the above checkbox to try again.","346070861":"Zero Spread","346843343":"CFDs on financial and derived instruments with copy trading.","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","349110642":"<0>{{payment_agent}}<1>'s contact details","350602311":"Stats show the history of consecutive tick counts, i.e. the number of ticks the price remained within range continuously.","351744408":"Tests if a given text string is empty","353731490":"Job done","354945172":"Submit document","357477280":"No face found","357672069":"Income verification failed","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","360773403":"Bot Builder","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","367801124":"Total assets in your Deriv accounts.","368160866":"in list","369035361":"<0>•Your account number","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","372805409":"You should enter 9-35 characters.","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","377225569":"<0>Do not honour: Please contact your bank for further assistance.","377538732":"Key parameters","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","380606668":"tick","380694312":"Maximum consecutive trades","381972464":"Your document has expired.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","384707870":"CRS confirmation","386278304":"Install the {{platform_name_trader}} web app","386502387":"Bot is not running","389923099":"Zoom in","390890891":"Last quarter","391685252":"Revoke","391915203":"Hedging","392582370":"Fall Equals","393789743":"Letters, spaces, periods, hyphens, apostrophes only.","396418990":"Offline","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","401345454":"Head to the Tutorials tab to do so.","403456289":"The formula for SMA is:","403936913":"An introduction to Deriv Bot","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","417864079":"You’ll not be able to change currency once you have made a deposit.","419485005":"Spot","419496000":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the multipliers trade type.","420072489":"CFD trading frequency","422055502":"From","423682863":"When your loss reaches or exceeds the set amount, your trade will be closed automatically.","424101652":"Quick strategy guides >","424272085":"We take your financial well-being seriously and want to ensure you are fully aware of the risks before trading.<0/><0/>","424897068":"Do you understand that you could potentially lose 100% of the money you use to trade?","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428380816":"If you select “<0>Matches”, you will win the payout if the last digit of the last tick is the same as your prediction.","429505586":"If you select \"<0>Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","429970999":"To avoid delays, enter your <0>name exactly as it appears on your {{document_name}}.","431267979":"Here’s a quick guide on how to use Deriv Bot on the go.","432273174":"1:100","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433237511":"Notify Telegram %1 Access Token: %2 Chat ID: %3 Message: %4","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","436534334":"<0>We've sent you an email.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","439398769":"This strategy is currently not compatible with Deriv Bot.","442281706":"You’ve just deleted a block.","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","445419365":"1 - 2 years","447548846":"SSNIT number","447907000":"If you select \"<0>Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","452949978":"The 1-3-2-6 strategy is designed to capitalise on consecutive successful trades while minimising losses during losing streaks. The rationale behind this strategy lies in statistical probabilities, with adjustments to stake sizes based on the perceived likelihood of success. There is a higher likelihood of success in the second trade after one successful trade. Hence the stake adjusts to 3 in the second trade. In the third trade, the stake adjusts to 2 units due to a lower probability of a successful trade. If the third trade is also successful, the strategy then allocates all the previous gains (a total of 6 units of initial stake) into the fourth trade with the aim of doubling the potential profits. If the fourth trade results in a positive outcome, the strategy helps achieve a total gain of 12 units. However, it is crucial to exercise caution, as the risk can escalate quickly with this strategy, and any loss in the fourth trade forfeits all previous gains.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","454196938":"Regulation:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459612953":"Select account","459817765":"Pending","460070238":"Congratulations","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","463361726":"Select an item","465993338":"Oscar's Grind","466424460":"Oscar’s Grind","466837068":"Yes, increase my limits","467839232":"I trade forex CFDs and other complex financial instruments regularly on other platforms.","471402292":"Your bot uses a single trade type for each run.","471667879":"Cut off time:","473154195":"Settings","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","478827886":"We calculate this based on the barrier you’ve selected.","479420576":"Tertiary","480356486":"*Boom 300 and Crash 300 Index","481276888":"Goes Outside","481564514":"If you select “<0>Up”, you’ll earn a payout if the spot price never drops below the barrier.","483279638":"Assessment Completed<0/><0/>","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","490053735":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your loss reaches or exceeds the stop loss amount. Your loss may be more than the amount you entered depending on the market price at closing.","491603904":"Unsupported browser","492198410":"Make sure everything is clear","492566838":"Taxpayer identification number","497518317":"Function that returns a value","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501284861":"Watch this video to learn how to build a trading bot on Deriv Bot. Also, check out this blog post on building a trading bot.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502007051":"Demo Swap-Free SVG","502041595":"This block gives you a specific candle from within the selected time interval.","505793554":"last letter","508390614":"Demo Financial STP","511679687":"Accumulators allow you to express a view on the range of movement of an index and grow your stake exponentially at a fixed <0>growth rate.","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","517631043":"We’ve sent your e-book. Check your email to download it.","517833647":"Volatility 50 (1s) Index","518955798":"7. Run Once at Start","519205761":"You can no longer open new positions with this account.","520136698":"Boom 500 Index","520458365":"Last used: ","521872670":"item","522703281":"divisible by","523123321":"- 10 to the power of a given number","524459540":"How do I create variables?","527329988":"This is a top-100 common password","529056539":"Options","531114081":"3. Contract Type","531675669":"Euro","532724086":"Employment contract","533403953":"Your existing <0>{{platform}} {{type}} {{from_account}} account(s) will remain accessible.","535041346":"Max. total stake per day","536277802":"TP & SL history","537788407":"Other CFDs Platform","538017420":"0.5 pips","538042340":"Principle 2: The stake only increases when a loss trade is followed by a successful trade","538228086":"Close-Low","539352212":"Tick {{current_tick}}","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","545323805":"Filter by trade types","547029855":"If you select this feature, you can cancel your trade within a chosen time frame if the asset price moves against your favour. You will get your stake back without profit/loss. We charge a small fee for this. Take profit and stop loss are disabled when deal cancellation is active.","549479175":"Deriv Multipliers","549799607":"Go to LiveChat","551569133":"Learn more about trading limits","551958626":"Excellent","554135844":"Edit","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","555881991":"National Identity Number Slip","558866810":"Run your bot","559224320":"Our classic “drag-and-drop” tool for creating trading bots, featuring pop-up trading charts, for advanced users.","560759471":"You'll see these details once the contract starts.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565356380":"Added to favorites","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","571921777":"Funds protection level","572576218":"Languages","573173477":"Is candle {{ input_candle }} black?","575668969":"3. For trades that result in a profit, the stake for the next trade will be increased by 2 USD. Deriv Bot will continue to add 2 USD for every successful trade. See A1.","575702000":"Remember, selfies, pictures of houses, or non-related images will be rejected.","575968081":"Account created. Select payment method for deposit.","576355707":"Select your country and citizenship:","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","587577347":"Take Profit (Accumulator)","587577425":"Secure my account","587856857":"Want to know more about APIs?","592087722":"Employment status is required.","592964176":"Join over 2.5 million traders","593459109":"Try a different currency","595080994":"Example: CR123456789","596165833":"Your withdrawal will be processed internally in one business day. After that, for debit/credit cards, it takes 1-15 working days, and for e-wallets, it's 1-3 working days. If there's a delay beyond these periods, please contact us via live chat.","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","602278674":"Verify identity","603849445":"Strike price","603849863":"Look for the <0>Repeat While/Until, and click the + icon to add the block to the workspace area.","603899222":"Distance to current spot","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","613418320":"<0>Setup unsuccessful","613877038":"Chart","615156635":"Your selfie does not match your document.","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","619407328":"Are you sure you want to unlink from {{identifier_title}}?","621829484":"{{days_passed}}d ago","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623316736":"{{ message }}, retrying in {{ delay }}s","623542160":"Exponential Moving Average Array (EMAA)","625571750":"Entry spot:","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","628193133":"Account ID","629003252":"If your current password doesn't match these requirements, you'll need to create a new one in the next step.","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","629395043":"All growth rates","632398049":"This block assigns a null value to an item or statement.","632897893":"If any of the above applies to you, select <0>Yes. Otherwise, select <0>No.","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","634274250":"How long each trade takes to expire.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","636427296":"Need help with tax info? Let us know via <0>live chat.","636579615":"Number of unit(s) to be added to the next trade after a losing trade. One unit is equivalent to the amount of initial stake.","639382772":"Please upload supported file type.","640249298":"Normal","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642393128":"Enter amount","642546661":"Upload back of license from your computer","644150241":"The number of contracts you have won since you last cleared your stats.","645902266":"EUR/NZD","646773081":"Profit threshold: The bot will stop trading if your total profit exceeds this amount.","647039329":"Proof of address required","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","650836587":"This article explores the Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","651284052":"Low Tick","651684094":"Notify","652298946":"Date of birth","654422099":"CRS confirmation is required.","654507872":"True-False","654924603":"Martingale","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","656893085":"Timestamp","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","658745169":"You may sell the contract up to 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","661759508":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><0/>","662953503":"Your contract will be closed when the <0>stop out level is reached.","664779910":"3. If the first trade results in profit, the stake for the following trade will not reduce but remain at the initial stake. The strategy minimally trades at the initial stake of 1 USD. See A1.","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","666158951":"Your contract will be closed when the <0>stop out level is reached.","666724936":"Please enter a valid ID number.","669494711":"1.4 pips","671630762":"We accept only these types of documents as proof of your address. The document must be recent (issued within last {{expiry_in_months}} months) and include your name and address:","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","676675313":"Authy","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678031950":"Candles List with interval here 2: {{ candle_interval_type }}","679199080":"Why passkeys?","680334348":"This block was required to correctly convert your old strategy.","681108680":"Additional information required for {{platform}} account(s)","681808253":"Previous spot price","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","686387939":"How do I clear my transaction log?","687193018":"Slippage risk","687212287":"Amount is a required field.","688510664":"You've {{two_fa_status}} 2FA on this device. You'll be logged out of your account on other devices (if any). Use your password and a 2FA code to log back in.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","692354762":"Please enter your {{document_name}}. {{example_format}}","693396140":"Deal cancellation (expired)","693933036":"Exploring the Oscar’s Grind strategy in Deriv Bot","694035561":"Trade options multipliers","696157141":"Low spot","696735942":"Enter your National Identification Number (NIN)","696870196":"- Open time: the opening time stamp","698037001":"National Identity Number","699159918":"1. Filing complaints","699646180":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, the funds will be lost and cannot be recovered.","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","702451070":"National ID (No Photo)","702561961":"Change theme","705262734":"Your Wallets are ready","705299518":"Next, upload the page of your passport that contains your photo.","705697927":"2. Set your preferred unit. In this example, it is 2 units or 2 USD.","705821926":"Learn about this trade type","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","706960383":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 60 seconds.","707189572":"Your email address has changed.<0/>Now, log in with your new email address.","707662672":"{{unblock_date}} at {{unblock_time}}","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711580196":"Why can't I use a payment agent to withdraw my funds?","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","718509613":"Maximum duration: {{ value }}","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724526379":"Learn more with our tutorials","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","729251105":"Range: {{min}} - {{max}} {{duration_unit_text}} ","729651741":"Choose a photo","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","732828463":"Standing instructions to transfer funds to an account maintained in the United States, or directions regularly received from a US address","734298230":"Just a reminder","734390964":"Insufficient balance","734881840":"false","735907651":"A US residence address or a US correspondence address (including a US PO box)","737751617":"<0>Explore our website to see what’s available.","739126643":"Indicative high spot","742469109":"Reset Balance","743623600":"Reference","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","749336930":"Secure alternative to passwords.","750886728":"Switch to your real account to submit your documents","751468800":"Start now","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755138488":"We’re unable to verify the document you provided because it contains markings or text that should not be on your document. Please provide a clear photo or a scan of your original identity document.","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","758492962":"210+","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762926186":"A quick strategy is a ready-made strategy that you can use in Deriv Bot. There are 3 quick strategies you can choose from: Martingale, D'Alembert, and Oscar's Grind.","764366329":"Trading limits","766317539":"Language","768301339":"Delete Blocks","772520934":"You may sell the contract up to 24 hours before expiry. If you do, we’ll pay you the <0>contract value.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","775706054":"Do you sell trading bots?","776085955":"Strategies","776432808":"Select the country where you currently live.","778172770":"Deriv CFDs","780009485":"About D'Alembert","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787727156":"Barrier","788005234":"NA","789013690":"This is the corresponding price level based on the payout per point you’ve selected. If this barrier is ever breached, your contract would be terminated.","792164271":"This is when your contract will expire based on the Duration or End time you’ve selected.","792622364":"Negative balance protection","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794682658":"Copy the link to your phone","795859446":"Password saved","795992899":"The amount you choose to receive at expiry for every point of change between the final price and the barrier. ","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","806165583":"Australia 200","807499069":"Financial commission complaints procedure","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","812430133":"Spot price on the previous tick.","815925952":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open Deriv Bot.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820877027":"Please verify your proof of identity","821163626":"Server maintenance occurs every first Saturday of the month from 7 to 10 GMT time. You may experience service disruption during this time.","823186089":"A block that can contain text.","823279888":"The {{block_type}} block is missing.","824797920":"Is list empty?","825042307":"Let’s try again","825179913":"This document number was already submitted for a different account. It seems you have an account with us that doesn't need further verification. Please contact us via <0>live chat if you need help.","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","829970143":"If you've hit the deposit limit, please wait 1-2 hours before trying again. Check that your browser is up to date and use incognito mode. If you still have problems, please contact us via <0>live chat.","830164967":"Last name","830703311":"My profile","830993327":"No current transactions available","831344594":"If you select “<0>Lower”, you win the payout if the exit spot is strictly lower than the barrier.","832053636":"Document submission","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835336137":"View Detail","835350845":"Add another word or two. Uncommon words are better.","836097457":"I am interested in trading but have very little experience.","837063385":"Do not send other currencies to this address.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839158849":"4. If the second trade results in a loss, the Deriv Bot will automatically increase your stake for the next trade by 2 USD. Deriv Bot will continue to add 2 USD to the previous round’s stake after every losing trade. See A2.","839805709":"To smoothly verify you, we need a better photo","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845106422":"Last digit prediction","845304111":"Slow EMA Period {{ input_number }}","848083350":"Your payout is equal to the <0>payout per point multiplied by the difference between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852527030":"Step 2","852583045":"Tick List String","852627184":"document number","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","858663703":"For new trades, please transfer your funds into the new <0>{{platform}} {{eligible_account_to_migrate}} account(s).","860319618":"Tourism","862283602":"Phone number*","863023016":"For instance, if a trader has a loss threshold (B) of 100 USD, with an initial stake (s) of 1 USD and 2 units of increment (f), the calculation would be as follows:","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864655280":"You can continue to hold your current open positions in your existing MT5 account(s).","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869068127":"The cashier is temporarily down due to maintenance. It will be available as soon as the maintenance is complete.","869823595":"Function","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872721776":"2. Select your XML file and hit Select.","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","873387641":"If you have open positions","874461655":"Scan the QR code with your phone","874472715":"Your funds will remain in your existing MT5 account(s).","874484887":"Take profit must be a positive number.","875101277":"If I close my web browser, will Deriv Bot continue to run?","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","879014472":"Reached maximum number of decimals","879647892":"You may sell the contract up until 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","881963105":"(XAUUSD, XAGUSD)","882423592":"The amount that you stake for the first trade. Note that this is the minimum stake amount.","885065431":"Get a Deriv account","888274063":"Town/City","888924866":"We don’t accept the following inputs for:","890299833":"Go to Reports","891337947":"Select country","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","896790627":"A US birthplace","897597439":"Changes saved.","898457777":"You have added a Deriv Financial account.","898904393":"Barrier:","899342595":"NIN","900646972":"page.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","904696726":"API token","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","906789729":"Your verification documents were already used for another account.","907680782":"Proof of ownership verification failed","909272635":"Financial - SVG","910888293":"Too many attempts","911048905":"(BTCUSD, ETHUSD)","912257733":"The workspace will be reset to the default strategy and any unsaved changes will be lost. <0>Note: This will not affect your running bot.","912406629":"Follow these steps:","912967164":"Import from your computer","915735109":"Back to {{platform_name}}","918447723":"Real","920125517":"Add demo account","921857297":"Enter a value from 0 to {{ value }}.","921901739":"- your account details of the bank linked to your account","922313275":"You're back online","924046954":"Upload a document showing your name and bank account number or account details.","924912760":"Your document appears to be a digital document.","929608744":"You are unable to make withdrawals","930255747":"Please enter your {{document_name}}. ","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","936393760":"You receive a <0>payout at <1>expiry if the spot price never touches or breaches the <2>barrier during the contract period. If it does, your contract will be terminated early.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938500877":"{{ text }}. <0>You can view the summary of this transaction in your email.","938947787":"Withdrawal {{currency}}","938988777":"High barrier","942015028":"Step 500 Index","944499219":"Max. open positions","945532698":"Contract sold","945753712":"Back to Trader’s Hub","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947602200":"Save this strategy as an XML file from Deriv Bot for faster re-imports.","947704973":"Reverse D’Alembert","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","949859957":"Submit","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","958503488":"Search markets on ","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961266215":"140+","961327418":"My computer","961692401":"Bot","962251615":"If you want to adjust your self-exclusion limits, <0>contact us via live chat.","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","968576099":"Up/Down","969858761":"Principle 1: Strategy aims to potentially make one unit of profit per session","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975608902":"To trade CFDs, get a Deriv Apps account first.","975668699":"I confirm and accept {{company}} 's <0>Terms and Conditions","975747761":"Ongoing","975950139":"Country of Residence","977929335":"Go to my account settings","979713491":"Zero Spread BVI","980050614":"Update now","981138557":"Redirect","981568830":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via <0>live chat.","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982146443":"WhatsApp","982402892":"First line of address","982829181":"Barriers","983295075":"Why can't I see the funds on my card/e-wallet balance after I've made a withdrawal?","983451828":"2. Select the asset and trade type.","984175243":"Expand Blocks","986565137":"We've received your proof of income","987053672":"You can continue with the open positions on your current <0>{{platform}} {{existing_account}} account(s).","987224688":"How many trades have you placed with other financial instruments in the past 12 months?","988064913":"4. Come back to Deriv Bot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","989840364":"You’re under legal age.","990739582":"170+","992294492":"Your postal code is invalid","992677950":"Logging out on other devices","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","997276809":"I confirm that the name and date of birth above match my chosen identity document","997311089":"Change my password","999008199":"text","1001160515":"Sell","1002989598":"iOS: iCloud keychain.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006069082":"The objective of Martingale strategy is to take advantage of consecutive successful trades and maximise potential profits from them. This strategy is beneficial only if there are consecutive successful trades. Therefore, it is important to set a maximum stake to secure all the potential profits gained from a number of consecutive successful trades, or you could lose all the profits you have accumulated, including your initial stake. For example, if your goal is to maximise profits within 2 consecutive successful trades, you set a maximum stake of 2 USD, given your initial stake is 1 USD. Similarly, if your goal is to maximise profits within 3 consecutive successful trades, you set a maximum stake of 4 USD, given your initial stake is 1 USD.","1006458411":"Errors","1006664890":"Silent","1008151470":"Unit: The number of units that are added in the event of successful trades or the number of units removed in the event of losing trades. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1010337648":"We were unable to verify your proof of ownership.","1011424042":"{{text}}. stake<0/>","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1017081936":"If you select “<0>Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1021090237":"Upgrade your <0>{{account_1}} <1/>and <0>{{account_2}} {{platform}} account(s)","1021679446":"Multipliers only","1022934784":"1 minute","1022971288":"Payout per pip","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1026289179":"Trade on the go","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1029641567":"{{label}} must be less than 30 characters.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1033253221":"Confirm your identity to make a withdrawal.","1035893169":"Delete","1036116144":"Speculate on the price movement of an asset without actually owning it.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039428638":"EU regulation","1039476188":"The size used to multiply the stake after a losing trade for the next trade.","1039755542":"Use a few words, avoid common phrases","1040472990":"1. Go to Bot Builder.","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1047644783":"Enable screen lock on your device.","1047881477":"Unfortunately, your browser does not support the video.","1048687543":"Labuan Financial Services Authority","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050063303":"Videos on Deriv Bot","1050128247":"I confirm that I have verified the payment agent’s transfer information.","1050844889":"Reports","1052779010":"You are on your demo account","1052921318":"{{currency}} Wallet","1053153674":"Jump 50 Index","1053159279":"Level of education","1053556481":"Once you submit your complaint, we will send you an acknowledgement email to confirm that we have received it.","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057519018":"4. If a trade ends in a profit, the stake for the following trade will be reset to the initial stake amount of 1 USD.","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1058804653":"Expiry","1058905535":"Tutorial","1060231263":"When are you required to pay an initial margin?","1061308507":"Purchase {{ contract_type }}","1062423382":"Explore the video guides and FAQs to build your bot in the tutorials tab.","1062536855":"Equals","1062569830":"The <0>name on your identity document doesn't match your profile.","1065498209":"Iterate (1)","1065766135":"You have {{remaining_transfers}} {{transfer_text}} remaining for today.","1066235879":"Transferring funds will require you to create a second account.","1066459293":"4.3. Acknowledging your complaint","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1070323991":"6. If consecutive successful trades were to happen, the stake would follow a sequence of adjustment from 1 to 3, then 2, and 6 units of initial stake. After 4 consecutive successful trades, it completes one cycle and then the strategy will repeat itself for another cycle. If any trade results in a loss, your stake will reset back to the initial stake for the next trade.","1070624871":"Check proof of address document verification status","1073261747":"Verifications","1073611269":"A copy of your identity document (e.g. identity card, passport, driver's license)","1073711308":"Trade closed","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1078189922":"You can make a new deposit once the verification of your account is complete.","1078221772":"Leverage prevents you from opening large positions.","1078303105":"Stop out","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1087112394":"You must select the strike price before entering the contract.","1088031284":"Strike:","1088138125":"Tick {{current_tick}} - ","1089085289":"Mobile number","1089436811":"Tutorials","1089687322":"Stop your current bot?","1090041864":"The {{block_type}} block is mandatory and cannot be deleted/disabled.","1090802140":"Additional Information","1095295626":"<0>•The Arbiter for Financial Services will determine whether the complaint can be accepted and is in accordance with the law.","1096078516":"We’ll review your documents and notify you of its status within 3 days.","1096175323":"You’ll need a Deriv account","1098147569":"Purchase commodities or shares of a company.","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100133959":"National ID","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109182113":"Note: Deal cancellation is only available for Volatility Indices on Multipliers.","1109217274":"Success!","1110102997":"Statement","1111743543":"Stop loss (Multiplier)","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113227831":"Yes, you can. However, there are limits on your account, such as maximum number of open positions and maximum aggregate payouts on open positions. So, just keep these limits in mind when opening multiple positions. You can find more info about these limits at Settings > Account limits.","1113292761":"Less than 8MB","1113390200":"Your open trades will appear here.","1114679006":"You have successfully created your bot using a simple strategy.","1117281935":"Sell conditions (optional)","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1121050010":"Transaction fee: {{amount}} {{currency}}","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1124382808":"Please enter the expiry time in the format \"HH:MM\".","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127224297":"Sorry for the interruption","1127884488":"cTrader MacOS app","1128139358":"How many CFD trades have you placed in the past 12 months?","1128321947":"Clear All","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129842439":"Please enter a take profit amount.","1133651559":"Live chat","1134879544":"Example of a document with glare","1134883120":"Use your Deriv account email and password to log in to cTrader.","1138126442":"Forex: standard","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1150637063":"*Volatility 150 Index and Volatility 250 Index","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1155143434":"By clicking on <0>Next you agree to move your {{platform}} {{type}} {{from_account}} account(s) under <2/>Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","1155626418":"below","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163771266":"The third block is <0>optional. You may use this block if you want to sell your contract before it expires. For now, leave the block as it is. ","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166023941":"New password","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1166916934":"Demo Standard SVG","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1171765024":"Step 3","1171961126":"trade parameters","1172230903":"• Stop loss threshold: Use this variable to store your loss limit. You can assign any amount you want. Your bot will stop when your losses hits or exceeds this amount.","1172524677":"CFDs Demo","1173957529":"Go to ‘Account Settings’ on Deriv.","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174689133":"3. Set your trade parameters and hit Run.","1174748431":"Payment channel","1175183064":"Vanuatu","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1183448523":"<0>We're setting up your Wallets","1184968647":"Close your contract now or keep it running. If you decide to keep it running, you can check and close it later on the ","1186687280":"Question {{ current }} of {{ total }}","1188316409":"To receive your funds, contact the payment agent with the details below","1188980408":"5 minutes","1189249001":"4.1. What is considered a complaint?","1189368976":"Please complete your personal details before you verify your identity.","1190226567":"Standard - Vanuatu","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197649109":"No results for {{searchTerm}}","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1203380736":"The D’Alembert strategy is less risky than Martingale, but you can still determine how long your funds will last with this strategy before trading. Simply use this formula.","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1204459171":"Your existing <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s) will remain accessible.","1206227936":"How to mask your card?","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1211912982":"Bot is starting","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217159705":"Bank account number","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1223993374":"For entry spot, we use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers.","1225874865":"The stake adjustment: target session profit (1 USD) - current session profit (0 USD) = 1 USD","1227074958":"random fraction","1227132397":"4. For trades that result in a loss, there are two outcomes. If it was traded at the initial stake, the next trade will remain at the same amount as the strategy trades minimally at the initial stake, see A2. If it was traded with a higher amount, the stake for the next trade would be reduced by 2 USD, see A3.","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233178579":"Our customers say","1233300532":"Payout","1233910495":"If you select \"<0>Down\", your total profit/loss will be the percentage decrease in the underlying asset price, times the multiplier and stake, minus commissions.","1234292259":"Source of wealth","1234764730":"Upload a screenshot of your name and email address from the personal details section.","1236527126":"(Transaction fee: {{transaction_fee}} {{currency_symbol}})","1237330017":"Pensioner","1238311538":"Admin","1239752061":"In your cryptocurrency wallet, make sure to select the <0>{{network_name}} network when you transfer funds to Deriv.","1239760289":"Complete your trading assessment","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1240688917":"Glossary","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1242288838":"Hit the checkbox above to choose your document.","1242994921":"Click here to start building your Deriv Bot.","1243064300":"Local","1243287470":"Transaction status","1246207976":"Enter the authentication code generated by your 2FA app:","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250113042":"This device doesn't support passkeys.","1250495155":"Token copied!","1252669321":"Import from your Google Drive","1253531007":"Confirmed","1253636052":"MetaTrader5 web terminal","1254565203":"set {{ variable }} to create list with","1255827200":"You can also import or build your bot using any of these shortcuts.","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259145708":"Let’s try again. Choose another document and enter the corresponding details.","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1264096613":"Search for a given string","1265317149":"A recent utility bill (e.g. electricity, water or gas) or recent bank statement or government-issued letter with your name and address.","1265704976":"","1266728508":"Proof of income verification passed","1269296089":"Let's build a Bot!","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274380814":"Your payout is equal to the <0>payout per pip multiplied by the difference, <1>in pips, between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","1274819385":"3. Complaints and Disputes","1276660852":"Submit your proof of identity","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1283418744":"Additional features are available to manage your positions: “<0>Take profit”, “<1>Stop loss” and “<2>Deal cancellation” allow you to adjust your level of risk aversion.","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1286094280":"Withdraw","1286384690":"If you select “<0>Even”, you will win the payout if the last digit of the last tick is an even number (i.e. 2, 4, 6, 8, or 0).","1286507651":"Close identity verification screen","1288965214":"Passport","1289146554":"British Virgin Islands Financial Services Commission","1289650867":"The Oscar’s Grind strategy is designed to potentially gain a modest yet steady profit in each trading session. This strategy splits trades into sessions and has three principles.","1290525720":"Example: ","1291997417":"Contracts will expire at exactly 23:59:59 GMT on your selected expiry date.","1292179259":"No open trades","1292188546":"Reset Deriv MT5 investor password","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294553728":"We’re unable to verify the document you provided because it appears to be a blank image. Please try again or upload another document.","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1298254025":"Standard - BVI","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1305217290":"Upload the back of your identity card.","1306976251":"Standard SVG","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1314572331":"Your document failed our verification checks.","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320715220":"<0>Account closed","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324922837":"2. The new variable will appear as a block under Set variable.","1325514262":"(licence no. MB/18/0024)","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1339613797":"Regulator/External dispute resolution","1340286510":"The bot has stopped, but your trade may still be running. You can check it on the Reports page.","1341840346":"View in Journal","1341921544":"Trading accounts and funds","1344696151":"Forex, stocks, stock indices, commodities, cryptocurrencies and synthetic indices.","1346038489":"Should be less than 70.","1346204508":"Take profit","1346339408":"Managers","1346947293":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there's enough light where you are and that your entire face is in the frame.","1347071802":"{{minutePast}}m ago","1349133669":"Try changing your search criteria.","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351906264":"This feature is not available for payment agents.","1352234202":"Last {{positionsCount}} contracts:","1352413406":"Define your trade options, such as accumulator and stake.","1353197182":"Please select","1354288636":"Based on your answers, it looks like you have insufficient knowledge and experience in trading CFDs. CFD trading is risky and you could potentially lose all of your capital.<0/><0/>","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357213116":"Identity card","1358543466":"Not available","1358543748":"enabled","1360929368":"Add a Deriv account","1362029761":"Exploring the Reverse Martingale strategy in Deriv Bot","1362578283":"High","1363645836":"Derived FX","1363675688":"Duration is a required field.","1364879837":"The verification is passed but the personal info is not available to compare.","1364958515":"Stocks","1366244749":"Limits","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1370647009":"Enjoy higher daily limits","1371193412":"Cancel","1371555192":"Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1373949314":"The Reverse Martingale strategy involves increasing your stake after each successful trade and resets to the initial stake for every losing trade as it aims to secure potential profits from consecutive wins.","1374627690":"Max. account balance","1374902304":"Your document appears to be damaged or cropped.","1375884086":"Financial, legal, or government document: recent bank statement, affidavit, or government-issued letter.","1376329801":"Last 60 days","1378419333":"Ether","1380349261":"Range","1383017005":"You have switched accounts.","1384127719":"You should enter {{min}}-{{max}} numbers.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1388770399":"Proof of identity required","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396217283":"{{transaction_amount}} {{currency_symbol}}","1396417530":"Bear Market Index","1397628594":"Insufficient funds","1400341216":"We’ll review your documents and notify you of its status within 1 to 3 days.","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1402224124":"Hit the button below, and we'll email you a verification link.","1402300547":"Lets get your address verified","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1407191858":"DTrader","1408844944":"Click the plus icon to extend the functionality of this block.","1411373212":"Strong passwords contain at least 8 characters. combine uppercase and lowercase letters, numbers, and symbols.","1411419173":"Growth Rate: {{ accumulator }}","1412405902":"See important notes","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1414366321":"An uppercase letter","1414918420":"We'll review your proof of identity again and will give you an update as soon as possible.","1415006332":"get sub-list from first","1415513655":"Download cTrader on your phone to trade with the Deriv cTrader account","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1416521695":"Positions","1417558007":"Max. total loss over 7 days","1417907460":"No problem! Your passkey still works.","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1419330165":"Forex, stocks, stock indices, commodities, cryptocurrencies, ETFs and synthetic indices","1421046084":"Setup your account","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1423296980":"Enter your SSNIT number","1424741507":"See more","1424763981":"1-3-2-6","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1428657171":"You can only make deposits. Please contact us via <0>live chat for more information.","1430221139":"Verify now","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434767075":"Get started on Deriv Bot","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1437529196":"Payslip","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1444066971":"It seems you’ve submitted this document before. Upload a new document.","1444843056":"Corporate Affairs Commission","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1447698999":"Withdrawals can be cancelled if they're still in the 'Requested' status (you can check your status under Pending payout). Once the status changes to 'Authorised', in 'Progress', or 'Processed', cancellation isn't possible.","1449462402":"In review","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1454406889":"Choose <0>until as the repeat option.","1454648764":"deal reference id","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1458160370":"Enter your {{platform}} password to add a {{platform_name}} {{account}} {{jurisdiction_shortcode}} account.","1459761348":"Submit proof of identity","1461323093":"Display messages in the developer’s console.","1462238858":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465084972":"How much experience do you have with other financial instruments?","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467880277":"3. General queries","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468508098":"Slippage happens when the asset price changes by the time it reaches our servers.","1469133110":"cTrader Windows app","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1470565177":"Article of association","1471008053":"Deriv Bot isn't quite ready for real accounts","1471070549":"Can contract be sold?","1471741480":"Severe error","1473369747":"Synthetics only","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1480915523":"Skip","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1488548367":"Upload again","1490509675":"Options accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499080621":"Tried to perform an invalid operation.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503419760":"Swap-free CFDs on selected financial and derived instruments.","1503618738":"- Deal reference ID: the reference ID of the contract","1505420815":"No payment agents found for your search","1505927599":"Our servers hit a bump. Let’s refresh to move on.","1507554225":"Submit your proof of address","1509559328":"cTrader","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1513771077":"We're processing your withdrawal.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1520332426":"Net annual income","1521546070":"Download Block","1524636363":"Authentication failed","1526012495":"This could be because:","1526483456":"2. Enter a name for your variable, and hit Create. New blocks containing your new variable will appear below.","1527251898":"Unsuccessful","1527664853":"Your payout is equal to the payout per point multiplied by the difference between the final price and the strike price.","1527906715":"This block adds the given number to the selected variable.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534796105":"Gets variable value","1537192641":"Unable to process your request","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1540585098":"Decline","1541508606":"Looking for CFDs? Go to Trader's Hub","1541770236":"The 1-3-2-6 strategy aims to maximise potential profits with four consecutive successful trades. One unit is equal to the amount of the initial stake. The stake will adjust from 1 unit to 3 units after the first successful trade, then to 2 units after your second successful trade, and to 6 units after the third successful trade. The stake for the next trade will reset to the initial stake if there is a losing trade or a completion of the trade cycle.","1541969455":"Both","1542742708":"Synthetics, Forex, Stocks, Stock indices, Commodities, and Cryptocurrencies","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1547148381":"That file is too big (only up to 8MB allowed). Please upload another file.","1548185597":"Step 200 Index","1549098835":"Total withdrawn","1551172020":"AUD Basket","1551689907":"Enhance your trading experience by upgrading your <0/><1>{{platform}} {{type}} {{from_account}} account(s).","1555345325":"User Guide","1556391770":"You cannot make a withdrawal as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1562374116":"Students","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1566717687":"We also provide a guide on the Tutorial tab to show you how you can build and execute a simple strategy.","1567745852":"Bot name","1569527365":"Verification failed. Resubmit your details.","1569624004":"Dismiss alert","1570484627":"Ticks list","1570495551":"For exit spot, the latest asset price when the trade closure is processed by our servers.","1571575776":"Accepted formats: pdf, jpeg, jpg, and png. Max file size: 8MB","1572504270":"Rounding operation","1572982976":"Server","1573429525":"Call/Put","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1580498808":"Multiple faces found","1584109614":"Ticks String List","1584936297":"XML file contains unsupported elements. Please check or modify file.","1587046102":"Documents from that country are not currently supported — try another document type","1589148299":"Start","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1589863913":"These are the trade parameters used for D’Alembert strategy in Deriv Bot.","1590400723":"Total assets in all your accounts","1591933071":"Resubmit document","1593010588":"Login now","1594147169":"Please come back in","1594322503":"Sell is available","1595295238":"3. Use a logic block to check if Total profit/loss is more than the Stop loss threshold amount. You can find the Total profit/loss variable under Analysis > Stats on the Blocks menu on the left. Your bot will continue to purchase new contracts until the Total profit/loss amount exceeds the Stop loss threshold amount.","1597672660":"Deriv MT5 Password","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1598789539":"Here are some common card/e-wallet errors and their solutions:","1599743312":"An example of Reverse Martingale strategy","1602894348":"Create a password","1604916224":"Absolute","1605222432":"I have no knowledge and experience in trading at all.","1605292429":"Max. total loss","1612105450":"Get substring","1612638396":"Cancel your trade at any time within a specified timeframe.","1615897837":"Signal EMA Period {{ input_number }}","1618652381":"For instance, if a trader has a loss threshold (B) is 1000 USD, with an initial stake (s) is 1 USD, and the Martingale multiplier (m) is 2, the calculation would be as follows:","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1622944161":"Now, go to the <0>Restart trading conditions block.","1623706874":"Use this block when you want to use multipliers as your trade type.","1628981793":"Can I trade cryptocurrencies on Deriv Bot?","1630317389":"If you select “<0>No Touch”, you win the payout if the market never touches the barrier at any time during the contract period.","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1633661992":"Tick {{current_tick}}/{{tick_count}}","1634016345":"2. If the trade is successful, this strategy will automatically adjust your stake to 3 units of your initial stake for the next trade. In this case, the stake adjustment is 3 units and the initial stake is 1 USD, hence the next trade will start at 3 USD.","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1635628424":"An envelope with your name and address.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644636153":"Transaction hash: <0>{{value}}","1644703962":"Looking for CFD accounts? Go to Trader's Hub","1644864436":"You’ll need to authenticate your account before requesting to become a professional client. <0>Authenticate my account","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1648938920":"Netherlands 25","1649239667":"2. Under the Blocks menu, you'll see a list of categories. Blocks are grouped within these categories. Choose the block you want and drag them to the workspace.","1650963565":"Introducing Wallets","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653136377":"copied!","1653180917":"We cannot verify you without using your camera","1653999225":"Forex: major/minor","1654365787":"Unknown","1654529197":"Purchase condition","1654721858":"Upload anyway","1655372864":"Your contract will expire on this date (in GMT), based on the end time you’ve selected.","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1659327870":"How do I cancel my withdrawal?","1659352235":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited, regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","1661126218":"Expiry date:","1665272539":"Remember: You cannot log in to your account until the selected date.","1665718170":"The document must contain a letterhead.","1665738338":"Balance","1665756261":"Go to live chat","1668138872":"Modify account settings","1669062316":"The payout at expiry is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1676549796":"Dynamic Leverage","1677027187":"Forex","1679743486":"1. Go to Quick strategy and select the strategy you want.","1680666439":"Upload your bank statement showing your name, account number, and transaction history.","1681765749":"Martingale formula 2","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683383299":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the accumulator trade type.","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1690746575":"Enhance your trading experience by upgrading your <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s).","1691335819":"To continue trading with us, please confirm who you are.","1691536201":"If you choose your duration in number of ticks, you won’t be able to terminate your contract early.","1691765860":"- Negation","1692912479":"Deriv MT5, Deriv X","1693614409":"Start time","1694517345":"Enter a new email address","1694888104":"The products offered on our website are complex derivative products that carry a significant risk of potential loss. CFDs are complex instruments with a high risk of losing money rapidly due to leverage. 70.78% of retail investor accounts lose money when trading CFDs with this provider. You should consider whether you understand how these products work and whether you can afford to take the high risk of losing your money.","1696190747":"Trading inherently involves risks, and actual profits can fluctuate due to various factors, including market volatility and other unforeseen variables. As such, exercise caution and conduct thorough research before engaging in any trading activities.","1698624570":"2. Hit Ok to confirm.","1699606318":"You've reached the limit of uploading your documents.","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1701447705":"Please update your address","1702339739":"Common mistakes","1703091957":"We collect information about your employment as part of our due diligence obligations, as required by anti-money laundering legislation.","1703712522":"Your payout is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1704656659":"How much experience do you have in CFD trading?","1707264798":"Why can't I see deposited funds in my Deriv account?","1707758392":"Step 100 Index","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1711013665":"Anticipated account turnover","1711016273":"<0>This may take up to 2 minutes. During this time, some services may be unavailable.","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1713633297":"3. If the second trade is also successful, your stake will adjust to 2 USD or 2 units of the initial stake for the next trade.","1714255392":"To enable withdrawals, please complete your financial assessment.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1715680813":"Your contract will expire at exactly 23:59:59 GMT +0 on your selected expiry date.","1717023554":"Resubmit documents","1717474982":"CFDs on financial and derived instruments via a customisable platform.","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1721295446":"Favorites","1722056905":"The document you provided is not supported for your country. Please provide a supported document for your country.","1722888575":"{{mt5_migration_error}}","1723390945":"Your demo {{deriv}} {{type}} account is ready.","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724367774":"You can make a funds transfer once the verification of your account is complete.","1724696797":"You are limited to one fiat account only.","1725958461":"Account number","1726472773":"Function with no return value","1726565314":"Close my account","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732891201":"Sell price","1733711201":"Regulators/external dispute resolution","1734185104":"Balance: %1","1734264460":"Disclaimer","1734521537":"The document you provided appears to be two different types. Please try again or provide another document.","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738094481":"<0>Duration: Ticks 1","1738611950":"About Reverse Martingale","1738681493":"Remove your glasses, if necessary","1739086943":"Wall Street 30","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1741006997":"Yesterday","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743679873":"If you select <0>\"Call\", you’ll earn a <1>payout if the <1>final price is above the <1>strike price at <1>expiry. Otherwise, you won’t receive a payout.","1743902050":"Complete your financial assessment","1744509610":"Just drag the XML file from your computer onto the workspace, and your bot will be loaded accordingly. Alternatively, you can hit Import in Bot Builder, and choose to import your bot from your computer or from your Google Drive.","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747652849":"If you select the take profit feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount throughout the contract duration. Your profit may be more than the amount you entered depending on the market price at closing. You may change your take profit amount up to 15 seconds before expiry.","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1753082252":"This article explores the strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as Forex, Commodities, and Derived Indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","1753183432":"We take all complaints seriously and aim to resolve them as quickly and fairly as possible. If you are unhappy with any aspect of our service, please let us know by submitting a complaint using the guidance below:","1753226544":"remove","1753975551":"Upload passport photo page","1754256229":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_ctrader }} transfers between your Deriv and {{platform_name_ctrader}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1756678453":"break out","1761038852":"Let’s continue with providing proofs of address and identity.","1761254001":"A number","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1768293340":"Contract value","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1770041368":"Experience safer logins","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772396880":"The date of birth on your document doesn’t match your profile.","1777847421":"This is a very common password","1778893716":"Click here","1779144409":"Account verification required","1779519903":"Should be a valid number.","1779801832":"Please update your password accordingly.","1779872677":"Download e-book","1780442963":"Scan the QR code to download {{ platform }}.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783526986":"How do I build a trading bot?","1783740125":"Upload your selfie","1785298924":"D’Alembert formula 1","1786644593":"Supported formats: JPEG, JPG, PNG, PDF, and GIF only","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788515547":"<0/>For more information on submitting a complaint with the Office of the Arbiter for Financial Services, please <1>see their guidance.","1788966083":"01-07-1999","1789273878":"Payout per point","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1791432284":"Search for country","1791926890":"If you select “<0>Higher”, you win the payout if the exit spot is strictly higher than the barrier.","1791971912":"Recent","1792037169":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your {{document_name}}.","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1796787905":"Please upload the following document(s).","1798943788":"You can only make deposits.","1801093206":"Get candle list","1801270786":"Ready to automate your trading strategy without writing any code? You’ve come to the right place.","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806017862":"Max. ticks","1808058682":"Blocks are loaded successfully","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811138041":"Enter a value from {{ value }} to 9.","1811343027":"2. Select your Martingale multiplier. In this example, it is 2.","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812006199":"Identity verification","1812582011":"Connecting to server","1813700208":"Boom 300 Index","1815034361":"alphabetic","1815905959":"DTrader, DBot, SmartTrader, and Binary Bot","1815995250":"Buying contract","1817006592":"All trade types","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1821818748":"Enter Driver License Reference number","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1824292864":"Call","1827607208":"File not uploaded.","1828370654":"Onboarding","1828856382":"If you select “<0>Differs”, you will win the payout if the last digit of the last tick is not the same as your prediction.","1830520348":"{{platform_name_dxtrade}} Password","1831847842":"I confirm that the name and date of birth above match my chosen identity document (see below)","1833499833":"Proof of identity documents upload failed","1836767074":"Search payment agent name","1837533589":"Stop Loss","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1839021527":"Please enter a valid account number. Example: CR123456789","1840721160":"Deriv MT5 latest password requirements","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1843336754":"Select document","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845598565":"The second session concludes upon reaching the aim of one unit of potential profit per session, equivalent to 1 USD. If trading continues, a new session will commence again.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846588117":"Your contract will be closed automatically when your loss reaches {{stop_out_percentage}}% of your stake.","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1851052337":"Place of birth is required.","1851776924":"upper","1854480511":"Cashier is locked","1854874899":"Back to list","1854909245":"Multiplier:","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1856755117":"Pending action required","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1863731653":"To receive your funds, contact the payment agent","1865525612":"No recent transactions.","1866244589":"The entry spot is the first tick for High/Low Ticks.","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869315006":"See how we protect your funds to unlock the cashier.","1869486036":"You receive a <0>payout at <0>expiry if the spot price never touches or breaches the <0>barrier during the contract period. If it does, your contract will be terminated early.","1869787212":"Even","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871377550":"Do you offer pre-built trading bots on Deriv Bot?","1871664426":"Note","1873376454":"This is a price level that you choose. If this barrier is ever crossed, your contract would be terminated.","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874737957":"To trade multipliers, get a Deriv Apps account first.","1874756442":"BVI","1875090343":"Choose a date range","1875702561":"Load or build your bot","1876015808":"Social Security and National Insurance Trust","1876325183":"Minutes","1876333357":"Tax Identification Number is invalid.","1877225775":"Your proof of address is verified","1877832150":"# from end","1878172674":"No, we don't. However, you'll find quick strategies on Deriv Bot that'll help you build your own trading bot for free.","1878189977":"The Martingale strategy involves increasing your stake after each loss to recoup prior losses with a single successful trade.","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1879651964":"<0>Pending verification","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880227067":"Submit passport photo pages","1880377568":"An example of D’Alembert strategy","1880875522":"Create \"get %1\"","1881018702":"hour","1881380263":"Total assets in your account.","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887257727":"R is the number of rounds a trader can sustain given a specific loss threshold.","1887925280":"The document must be recent and include your name and address:","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1893869876":"(lots)","1894667135":"Please verify your proof of address","1896269665":"CFDs on derived and financial instruments.","1899898605":"Maximum size: 8MB","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1904665809":"The Reverse Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","1905032541":"We're now ready to verify your identity","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906213000":"Our system will finish any Deriv Bot trades that are running, and Deriv Bot will not place any new trades.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907423697":"Earn more with Deriv API","1907499654":"Deriv App","1907899646":"Take profit can't be adjusted for ongoing accumulator contracts.","1908023954":"Sorry, an error occurred while processing your request.","1908239019":"Make sure all of the document is in the photo","1908686066":"Appropriateness Test Warning","1909647105":"TRX/USD","1909769048":"median","1910533633":"Get a real account to deposit money and start trading.","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1916129921":"Reverse Martingale","1917178459":"Bank Verification Number","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1918796823":"Please enter a stop loss amount.","1918832194":"No experience","1919030163":"Tips to take a good selfie","1919296368":"2. Select your unit. In this example, it is 2 units or 2 USD.","1919594496":"{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.","1919694313":"To start trading, transfer funds from your Deriv account into this account.","1920217537":"Compare","1920468180":"How to use the SMA block","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1924365090":"Maybe later","1924765698":"Place of birth*","1928930389":"GBP/NOK","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1934450653":"For <0>Contract type, set it to Both.","1938327673":"Deriv {{platform}} <0>{{is_demo}}","1939014728":"How do I remove blocks from the workspace?","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1955219734":"Town/City*","1957759876":"Upload identity document","1958788790":"This is the amount you’ll receive at expiry for every point of change in the underlying price, if the spot price never touches or breaches the barrier throughout the contract duration.","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960240336":"first letter","1964165648":"Connection lost","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1966855430":"Account already exists","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1970060713":"You’ve successfully deleted a bot.","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973910243":"Manage your accounts","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1978218112":"Google Authenticator","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982790875":"Upgrade your <0/><1>{{account_title}} {{platform}} account(s)","1982796981":"Declarations","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983358602":"This policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","1983387308":"Preview","1983480826":"Sign in","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986322868":"When your loss reaches or exceeds this amount, your trade will be closed automatically.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1990331072":"Proof of ownership","1990735316":"Rise Equals","1991055223":"View the market price of your favourite assets.","1991448657":"Don't know your tax identification number? Click <0>here to learn more.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1997313835":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <0>previous spot price. Otherwise, you lose your stake and the trade is terminated.","1999213036":"Enhanced security is just a tap away.","1999346412":"For faster verification, input the same address here as in your proof of address document (see section below)","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2001361785":"1. Start with the initial stake. Let’s say 1 USD.","2001717886":"Demo Standard","2004052487":"Estimating the lifespan of your trades","2007028410":"market, trade type, contract type","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2012139674":"Android: Google password manager.","2014536501":"Card number","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2017672013":"Please select the country of document issuance.","2018044371":"Multipliers let you trade with leverage and limit your risk to your stake. <0>Learn more","2019596693":"The document was rejected by the Provider.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023546580":"Your account will be available for trading once the verification of your account is complete.","2023659183":"Student","2023762268":"I prefer another trading website.","2025339348":"Move away from direct light — no glare","2027441253":"Why do we collect this?","2027625329":"Simple Moving Average Array (SMAA)","2027638150":"Upgrade","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037906477":"get sub-list from #","2038562422":"TIN is required.","2039198937":"Maximum stake: The maximum amount you are willing to pay to enter a single trade. The stake for your next trade will reset to the initial stake if it exceeds this value. This is an optional risk management parameter.","2042023623":"We’re reviewing your documents. This should take about 5 minutes.","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042115724":"Upload a screenshot of your account and personal details page with your name, account number, phone number, and email address.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2046273837":"Last tick","2046577663":"Import or choose your bot","2048110615":"Email address*","2048134463":"File size exceeded.","2049386104":"We need you to submit these in order to get this account:","2050170533":"Tick list","2051558666":"View transaction history","2051596653":"Demo Zero Spread BVI","2052022586":"To enhance your MT5 account security we have upgraded our password policy.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2056369950":"<0>To complete your Wallet setup, log out and then log in again.","2056526458":"Get real account","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2059365224":"Yes, you can get started with a pre-built bot using the Quick strategy feature. You’ll find some of the most popular trading strategies here: Martingale, D'Alembert, and Oscar's Grind. Just select the strategy, enter your trade parameters, and your bot will be created for you. You can always tweak the parameters later.","2059753381":"Why did my verification fail?","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063812316":"Text Statement","2063890788":"Cancelled","2066978677":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0 /> {{opening_date}}.","2067903936":"Driving licence","2070002739":"Don’t accept","2070345146":"When opening a leveraged CFD trade.","2070518923":"Import your bot or tap Quick Strategies to choose from the ready-to-use bot templates.","2070752475":"Regulatory Information","2070858497":"Your document appears to be a screenshot.","2071043849":"Browse","2074207096":"How to create a passkey?","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2074713563":"4.2. Submission of a complaint","2079925695":"Unit: The number of units that are added in the event of a trade resulting in loss or the number of units removed in the event of a trade resulting in profit. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2081622549":"Must be a number higher than {{ min }}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086048243":"Certificate of incorporation","2086792088":"Both barriers should be relative or absolute","2088344208":"Forex (standard), stock indices, commodities, cryptocurrencies, stocks, ETFs, synthetic indices, basket indices and derived FX","2088735355":"Your session and login limits","2089087110":"Basket indices","2089395053":"Unit","2089581483":"Expires on","2090650973":"The spot price may change by the time your order reaches our servers. When this happens, your payout may be affected.","2091671594":"Status","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2097815211":"Number of rounds (R) = 10","2097932389":"Upload 2 separate screenshots from the personal details page and the account page via <0>https://app.astropay.com/profile","2100713124":"account","2100912278":"4. If a trade ends in a loss, the stake for the following trade will be reset to the initial stake amount of 1 USD.","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104364680":"Please switch to your demo account to run your Deriv Bot.","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2107882050":"The back of your document appears to be missing. Please include both sides of your identity document.","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2113321581":"Add a Deriv Gaming account","2114766645":"Some trade types are unavailable for {{symbol}}.","2115223095":"Loss","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117489390":"Auto update in {{ remaining }} seconds","2118292085":"<0>Note: You’ll receive an email when your deposit starts being processed.","2119449126":"Example output of the below example will be:","2119710534":"FAQ","2121227568":"NEO/USD","2122152120":"Assets","2127564856":"Withdrawals are locked","2128919448":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price. We won’t offer a contract value if the remaining duration is below 15 seconds or if the contract duration is in ticks.","2129807378":"Update profile","2133075559":"This means after 10 rounds of consecutive losses, this trader will lose 100 USD. This reaches the loss threshold of 100 USD, stopping the bot.","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2136480755":"Some details in your document appear to be invalid, missing, or unclear.","2137645254":"If you select “<0>Call”, you’ll earn a <1>payout if the <2>final price is above the <3>strike price at <4>expiry. Otherwise, you won’t receive a payout.","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146698770":"Pro tip: You can also click and drag out the desired block","2146751355":"We use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers for Volatility Index, Basket Indices, Jump Indices and Crash/Boom Indices.","2146892766":"Binary options trading experience","2147244655":"How do I import my own trading bot into Deriv Bot?","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-826420669":"Make sure","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-1120954663":"First name*","-1659980292":"First name","-962979523":"Your {{ field_name }} as in your identity document","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-32386760":"Name","-766265812":"first name","-1857534296":"John","-1282749116":"last name","-1485480657":"Other details","-1784741577":"date of birth","-1702919018":"Second line of address (optional)","-1315410953":"State/Province","-2040322967":"Citizenship","-344715612":"Employment status*","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-946282997":"Additional information","-1315571766":"Place of birth","-789291456":"Tax residence*","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1387062433":"Account opening reason","-222283483":"Account opening reason*","-307865807":"Risk Tolerance Warning","-690100729":"Yes, I understand the risk.","-2010628430":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, you must confirm that you understand your capital is at risk.","-863770104":"Please note that by clicking ‘OK’, you may be exposing yourself to risks. You may not have the knowledge or experience to properly assess or mitigate these risks, which may be significant, including the risk of losing the entire sum you have invested.","-684271315":"OK","-1292808093":"Trading Experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-816263501":"Only letters, numbers, space and hyphen are allowed.","-755626951":"Complete your address details","-1024240099":"Address","-1534917661":"Select your preferred currency","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-1030759620":"Government Officers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-654781670":"Primary","-1717373258":"Secondary","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-477761028":"Voter ID","-1466346630":"CPF","-1161338910":"First name is required.","-1629185446":"Enter no more than 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-212167954":"Tax Identification Number is not properly formatted.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-204765990":"Terms of use","-739367071":"Employed","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-1116008222":"You should enter 9-35 numbers.","-1995979930":"First line of address is required.","-703454156":"Please enter a Postal/ZIP code under 20 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-1103497546":"Tax return","-700600899":"Business proof of address","-1073862586":"Memorandum","-1823328095":"Authorization letter","-397487797":"Enter your full card number","-1376950117":"That file format isn't supported. Please upload .pdf, .png, .jpg, or .jpeg files only.","-612752984":"These are default limits that we apply to your accounts.","-1498206510":"Account limits","-1411635770":"Learn more about account limits","-1340125291":"Done","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-976258774":"Not set","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-173346300":"Maximum daily turnover","-138380129":"Total withdrawal allowed","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-506122621":"Please take a moment to update your information now.","-1106259572":"Don't know your tax identification number? <1 />Click <0>here to learn more.","-252665911":"Place of birth{{required}}","-859814496":"Tax residence{{required}}","-237940902":"Tax Identification number{{required}}","-919191810":"Please fill in tax residence.","-270569590":"Intended use of account{{required}}","-2120290581":"Intended use of account is required.","-594456225":"Second line of address","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-1076138910":"Trade","-1666909852":"Payments","-488597603":"Trading information","-605778668":"Never","-1628008897":"Token","-1238499897":"Last Used","-2087317410":"Oops, something went wrong.","-184202848":"Upload file","-863586176":"Drag and drop a file or click to browse your files.","-370334393":"Click here to browse your files.","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-509054266":"Anticipated annual turnover","-1117345066":"Choose the document type","-1634507018":"Enter your {{document_name}}","-1237846864":"Verify again","-39187636":"{{index}}.","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1113902570":"Details","-2142540205":"It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.","-1451334536":"Continue trading","-251603364":"Your document for proof of address is expired. <0/>Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-329713179":"Ok","-2145244263":"This field is required","-1500958859":"Verify","-839094775":"Back","-1813671961":"Your identity verification failed because:","-2097808873":"We were unable to verify your ID with the details you provided. ","-1652371224":"Your profile is updated","-504784172":"Your document has been submitted","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1044962593":"Upload Document","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-155705811":"A clear colour photo or scanned image","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-1949501500":"First, enter your {{label}}.","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-841187054":"Try Again","-856213726":"You must also submit a proof of address.","-552371330":"We were unable to verify your income. <0 /> Please check the email we've sent you for further information.","-978467455":"Limit reached","-361316523":"You have reached the maximum number of allowed attempts for submitting proof of income. <0 /> Please check the email we've sent you for further information.","-1785967427":"We'll review your documents and notify you of its status within 7 working days.","-987011273":"Your proof of ownership isn't required.","-808299796":"You are not required to submit proof of ownership at this time. We will inform you if proof of ownership is required in the future.","-179726573":"We’ve received your proof of ownership.","-813779897":"Proof of ownership verification passed.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-47815161":"Please include at least 1 special character such as ( _ @ ? ! / # ) in your password.","-1313806160":"Please request a new password and check your email for the new token.","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-507633532":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character such as ( _ @ ? ! / # ).","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-2005211699":"Create","-1597186502":"Reset {{platform}} password","-638756912":"Black out digits 7 to 12 of the card number that’s shown on the front of your debit/credit card.⁤","-996691262":"We’ve introduced these limits to encourage <0>responsible trading. They are optional, and you can adjust them anytime.","-2079276011":"These limits apply to your multipliers trades only. For example, <0>maximum total loss refers to the losses on your multipliers trades.","-2116570030":"If you want to adjust your limits, <0>contact us via live chat. We’ll make the adjustments within 24 hours.","-1389915983":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or log in to resume trading. If you don’t want to set a specific limit, leave the field empty.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-1088698009":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-142444667":"Please click on the link in the email to change your Deriv MT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-474419287":"FATCA declaration","-1101737402":"Please select*","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1035494182":"You acknowledge that, subject to the Company's discretion, applicable regulations, and internal checks being fulfilled, we will open an account for you and allow you to deposit funds during the client acceptance procedure. However, until the verification of your account is completed, you will not be able to trade, withdraw or make further deposits. If you do not provide relevant documents within 30-days, we will refund the deposited amount through the same payment method you used to deposit.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-1209644365":"I hereby confirm that my request for opening an account with Deriv Investments (Europe) Ltd is made on my own initiative.","-740157281":"Trading Experience Assessment","-1720468017":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you.","-1685104463":"* This is required","-186841084":"Change your login email","-907403572":"To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.","-1850792730":"Unlink from {{identifier_title}}","-428335668":"You will need to set a password to complete the process.","-1232613003":"<0>Verification failed. <1>Why?","-805775852":"<0>Needs verification.<1>Verify now","-1983989074":"<0>No new positions","-1196936955":"Upload a screenshot of your name and email address from the personal information section.","-1286823855":"Upload your mobile bill statement showing your name and phone number.","-1309548471":"Upload your bank statement showing your name and account details.","-1410396115":"Upload a photo showing your name and the first six and last four digits of your card number. If the card does not display your name, upload the bank statement showing your name and card number in the transaction history.","-3805155":"Upload a screenshot of either of the following to process the transaction:","-1523487566":"- your account profile section on the website","-613062596":"- the Account Information page on the app","-1718304498":"User ID","-609424336":"Upload a screenshot of your name, account number, and email address from the personal details section of the app or profile section of your account on the website.","-1954436643":"Upload a screenshot of your username on the General Information page at <0>https://onlinenaira.com/members/index.htm","-79853954":"Upload a screenshot of your account number and phone number on the Bank Account/Mobile wallet page at <0>https://onlinenaira.com/members/bank.htm","-1192882870":"Upload a screenshot of your name and account number from the personal details section.","-818898181":"Name in document doesn’t match your Deriv profile.","-310316375":"Address in document doesn’t match address you entered above.","-485368404":"Document issued more than 6-months ago.","-91160765":"Document issued more than 12-months ago.","-367016488":"Blurry document. All information must be clear and visible.","-1957076143":"Cropped document. All information must be clear and visible.","-1576856758":"An account with these details already exists. Please make sure the details you entered are correct as only one real account is allowed per client. If this is a mistake, contact us via <0>live chat.","-1792723131":"To avoid delays, enter your <0>date of birth exactly as it appears on your {{document_name}}.","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-1231402474":"Connected apps are authorised applications associated with your account through your API token or the OAuth authorisation process. They can act on your behalf within the limitations that you have set.","-506083843":"As a user, you are responsible for sharing access and for actions that occur in your account (even if they were initiated by a third-party app on your behalf).","-831752682":"Please note that only third-party apps will be displayed on this page. Official Deriv apps will not appear here.","-915844096":"US citizenship or lawful permanent resident (green card) status","-208714573":"An “in care of” address or a “hold mail” address that is the sole address with respect to the client","-1082633433":"A power of attorney or signatory authority granted to a person with a US address.","-231863107":"No","-1858215754":"The document must be up-to-date and signed by the issuance authority.","-718917527":"Invalid or incomplete documents shall be rejected.","-1526404112":"Utility bill: electricity, water, gas, or landline phone bill.","-537552700":"Home rental agreement: valid and current agreement.","-506510414":"Date and time","-1708927037":"IP address","-189310067":"Account closed","-849320995":"Assessments","-773766766":"Email and passwords","-1144318594":"Passkeys","-1466827732":"Self exclusion","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-526636259":"Error 404","-870902742":"How much knowledge and experience do you have in relation to online trading?","-1929477717":"I have an academic degree, professional certification, and/or work experience related to financial services.","-1540148863":"I have attended seminars, training, and/or workshops related to trading.","-922751756":"Less than a year","-542986255":"None","-1337206552":"In your understanding, CFD trading allows you to","-456863190":"Place a position on the price movement of an asset where the outcome is a fixed return or nothing at all.","-1314683258":"Make a long-term investment for a guaranteed profit.","-1546090184":"How does leverage affect CFD trading?","-1636427115":"Leverage helps to mitigate risk.","-800221491":"Leverage guarantees profits.","-811839563":"Leverage lets you open large positions for a fraction of trade value, which may result in increased profit or loss.","-1185193552":"Close your trade automatically when the loss is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1046354":"Close your trade automatically when the profit is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1842858448":"Make a guaranteed profit on your trade.","-860053164":"When trading multipliers.","-1250327770":"When buying shares of a company.","-1222388581":"All of the above.","-1592318047":"See example","-1694758788":"Enter your document number","-1176889260":"Please select a document type.","-274764613":"Driver License Reference number","-1265050949":"identity document","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-254792921":"You can only make deposits at the moment. To enable withdrawals, please complete your financial assessment.","-1437017790":"Financial information","-70342544":"We’re legally obliged to ask for your financial information.","-39038029":"Trading experience","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-136976514":"Country of residence*","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2068064150":"Get updates about Deriv products, services and events.","-1558679249":"Please make sure your information is correct or it may affect your trading experience.","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-807767876":"Note:","-1117963487":"Name your token and click on 'Create' to generate your token.","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-2125635811":"Please withdraw your funds from the following {{platform_name}} account(s):","-577445413":"Please close your positions in the following {{platform_name}} account(s):","-1219849101":"Please select at least one reason","-9323953":"Remaining characters: {{remaining_characters}}","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-937707753":"Go Back","-771109503":"Use our powerful, flexible, and free API to build a custom trading platform for yourself or for your business.","-1815044949":"You currently don't have any third-party authorised apps associated with your account.","-1699100421":"What are connected apps?","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-1468863262":"{{action}}","-727433417":"{{status}}","-1814836151":"What are passkeys?","-1275937234":"Unlock your account like your phone - with biometrics, face scan or PIN.","-587750445":"Extra security layer.","-642452561":"Shields against unauthorised access and phishing.","-1654043401":"You can create one passkey per device.","-1411242065":"Where are passkeys saved?","-258752017":"What happens if my Deriv account email is changed?","-634268263":"Sign in to Deriv with your existing passkey.","-1700177761":"Create passkey","-1405679241":"Stored on: ","-567193224":"Rename","-1140319320":"Your account is now secured with a passkey.<0/>Manage your passkey through your<0/>Deriv account settings.","-592543249":"Add more passkeys","-331060101":"Passkey setup failed","-1036903080":"We’re experiencing a temporary issue in processing your request. Please try again later.","-713875531":"Enable bluetooth.","-1729774899":"Sign in to your Google or iCloud account.","-684009726":"Edit passkey","-1004529240":"Passkey name","-1728732301":"Effortless login with passkeys","-1708254107":"Enable Bluetooth.","-613368504":"Tips:","-1897886029":"Before using passkey:","-1893497054":"Only 3-30 characters allowed.","-80717068":"Apps you have linked to your <0>Deriv password:","-340060402":"Your Deriv X password is for logging in to your Deriv X accounts on the web and mobile apps.","-619126443":"Use the <0>Deriv password to log in to {{brand_website_name}} and {{platform_name_trader}}.","-623760979":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_trader}} and {{platform_name_go}}.","-459147994":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, {{platform_name_dbot}} and {{platform_name_ctrader}}.","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-2131200819":"Disable","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-2067796458":"Authentication code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-1043340733":"Proof of address documents upload failed","-890084320":"Save and submit","-30772747":"Your personal details have been saved successfully.","-2021135479":"This field is required.","-1002044401":"Select your document*","-1272489896":"Please complete this field.","-721346138":"The options and multipliers trading platform.","-1874136267":"The ultimate bot trading platform.","-415943890":"The legacy options trading platform.","-673722343":"The legacy bot trading platform.","-2018495421":"The mobile app for trading multipliers and accumulators.","-897826065":"The multipliers trading platform.","-2115275974":"CFDs","-1585707873":"Financial Commission","-199154602":"Vanuatu Financial Services Commission","-191165775":"Malta Financial Services Authority","-194969520":"Counterparty company","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1131400885":"Deriv Investments (Europe) Limited","-1471207907":"All assets","-781132577":"Leverage","-1591882610":"Synthetics","-543177967":"Stock indices","-362324454":"Commodities","-1959484303":"Cryptocurrencies","-1071336803":"Platform","-1879666853":"Deriv MT5","-820028470":"Options & Multipliers","-1210359945":"Transfer funds to your accounts","-1926387364":"We’ve sent your e-book to your email. You can also download it here.","-1057002564":"<0>We’re unable to upgrade you to Wallets at this time and are working to get this fixed as soon as we can. Please <1>try again<0>.","-1424352390":"<0>Wallets<1> — A smarter way to manage your funds","-1749409935":"Let's go","-145462920":"Deriv cTrader","-982095728":"Get","-1790089996":"NEW!","-1473281803":"Predict the market, profit if you’re right, risk only what you put in. <0>Learn more","-2134770229":"Total assets in your Deriv Apps and Deriv MT5 CFDs demo account.","-1277942366":"Total assets","-1255879419":"Trader's Hub","-493788773":"Non-EU","-673837884":"EU","-230566990":"The following documents you submitted did not pass our checks:","-846812148":"Proof of address.","-1146027991":"If you’d like to get the {{from_account}} account, resubmit these documents.","-710685402":"No new positions","-1445744852":"You can no longer open new positions with your {{from_account}} account. Please use your {{to_account}} account to open new positions.","-1699909965":"or ","-2127865736":"Your {{from_account}} account will be archived after 30 days of inactivity. You can still access your trade history until the account is archived.","-2055865877":"Non-EU regulation","-643108528":"Non-EU and EU regulation","-1815067117":"Start your trading journey","-1807332199":"Set up your real account","-1002556560":"We’re unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-90090878":"Use Wallets to manage your funds across different currencies effortlessly.","-280236366":"Enable now","-1186807402":"Transfer","-744999940":"Deriv account","-766186087":"{{trustScore}} out of 5 based on {{numberOfReviews}} reviews","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1975494965":"Cashier","-42592103":"Deposit cryptocurrencies","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-520142572":"Cashier is currently down for maintenance","-1552080215":"Please check back in a few minutes.<0>Thank you for your patience.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-954082208":"Your cashier is currently locked. Please contact us via <0>live chat to find out how to unlock it.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-2027907316":"You can make a withdrawal once the verification of your account is complete.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-599998434":"You cannot make a fund transfer as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-1443721737":"Your cashier is locked. See <0>how we protect your funds before you proceed.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-1923809087":"Unfortunately, you can only make deposits. Please contact us via <0>live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-1272778997":"We've sent you an email.","-89973258":"Resend email in {{seconds}}s","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1294455996":"Deriv P2P unavailable","-1838982691":"UNKNOWN","-532693866":"Something went wrong. Please refresh the page and try again.","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-203002433":"Deposit now","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-379487596":"{{selected_percentage}}% of available balance ({{format_amount}} {{currency__display_code}})","-1957498244":"more","-1059419768":"Notes","-646217148":"We process your deposits internally within 24 hours (depending on internal checks and your payment method). If you don't see your funds reflected after this time, please contact us via <0>live chat with proof of your transaction, including the amount, date, and time.","-1901728198":"What do I do if I have reached my deposit limit?","-631829734":"<0>Insufficient balance: Please ensure you have sufficient funds in your card/e-wallet. If the problem persists, please contact your bank for help.","-1072505739":"<0>3D secure invalid/redirected: Please contact your bank for an OTP.","-180339757":"<0>Restricted card: Please use a locally issued card. ","-645281699":"<0>Customer cancelled payment: Please try again after 1 hour.","-102611677":"Can I use someone else's payment method?","-951380652":"No, you cannot use someone else's payment method to deposit into Deriv. If you use another person's payment method, your account will be suspended (if they are on Deriv, their account will also be suspended). If you suspect that someone has used your payment method, let us know through <0>live chat with your proof of ownership.","-819152742":"If you have used a different payment method to make your deposit, you cannot withdraw via a payment agent. However, if you have used both a payment agent and another payment method (for example, an e-wallet) to deposit, you have to withdraw via the e-wallet first up to your original deposited amount. After that, you can use a payment agent to make a withdrawal. If your original payment method is not available for withdrawals, please let us know through <0>live chat for assistance.","-820131811":"Can I withdraw using a different method?","-1656533423":"No, withdrawals must be made using the same method you used for your deposit.","-190084602":"Transaction","-1995606668":"Amount","-2024290965":"Confirmations","-811190405":"Time","-728508487":"{{currency}} recent transactions","-1984478597":"The details of this transaction is available on CoinsPaid.","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-1787304306":"Deriv P2P","-174976899":"P2P verification","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-922143389":"Deriv P2P is currently unavailable in this currency.","-1310327711":"Deriv P2P is currently unavailable in your country.","-1463156905":"Learn more about payment methods","-685073712":"This is your <0>{{currency}} account {{loginid}}.","-1547606079":"We accept the following cryptocurrencies:","-1517325716":"Deposit via the following payment methods:","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-917092420":"To change your account currency, contact us via <0>live chat.","-515809216":"Send only {{currency_name}} ({{currency_code}}) to this address.","-748636591":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, a fee is applied.","-1589407981":"To avoid loss of funds:","-1042704302":"Make sure to copy your Deriv account address correctly into your crypto wallet.","-2108344100":"Looking for a way to buy cryptocurrencies? <0>Try Fiat onramp.","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-91824739":"Deposit {{currency}}","-523804269":"{{amount}} {{currency}} on {{date}}","-494847428":"Address: <0>{{value}}","-1117977576":"Confirmations: <0>{{value}}","-1935946851":"View more","-1744490898":"Unfortunately, we cannot retrieve the information at this time. ","-338505133":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, between your Deriv fiat and {{platform_name_ctrader}} accounts, and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1339063554":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_ctrader}}, and {{platform_name_dxtrade}} accounts.","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-855721928":"Needs verification","-908402700":"Verification failed","-1866405488":"Deriv cTrader accounts","-1344870129":"Deriv accounts","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-1155970854":"You have reached the maximum daily transfers. Please try again tomorrow.","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1949883551":"You only have one account","-1149845849":"Back to Trader's Hub","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1254233806":"You've transferred","-953082600":"Some payment methods may not be listed here but payment agents may still offer them. If you can’t find your favourite method, contact the payment agents directly to check further.","-1491457729":"All payment methods","-142563298":"Contact your preferred payment agent for payment instructions and make your deposit.","-352134412":"Transfer limit","-1023961762":"Commission on deposits","-552873274":"Commission on withdrawal","-880645086":"Withdrawal amount","-118683067":"Withdrawal limits: <0 />-<1 />","-1125090734":"Important notice to receive your funds","-1924707324":"View transaction","-1474202916":"Make a new withdrawal","-511423158":"Enter the payment agent account number","-2059278156":"Note: {{website_name}} does not charge any transfer fees.","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-873886836":"Do not enter an address linked to an initial coin offering (ICO) purchase or crowdsale. If you do, the initial coin offering (ICO) tokens will not be credited into your account.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-1430080977":"Priority withdrawal","-1046088265":"Withdrawal amount:","-694919384":"Transaction fee","-1358465817":"Fee calculated at {{ time_stamp }}","-1744540779":"Amount received:","-38063175":"{{account_text}} wallet","-652125858":"Amount received","-705272444":"Upload a proof of identity to verify your identity","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-2067572496":"You’ve just stopped the bot. Any open contracts can be viewed on the Reports page.","-992003496":"Changes you make will not affect your running bot.","-1778025545":"You’ve successfully imported a bot.","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-179005984":"Save","-610059687":"Exploring the D’Alembert strategy in Deriv Bot","-1226666341":"The D'Alembert strategy involves increasing your stake after a losing trade and reducing it after a successful trade by a predetermined number of units.","-312844882":"Initial stake: The amount that you are willing to place as a stake to enter a trade. This is the starting point for any changes in stake depending on the dynamic of the strategy being used.","-1173302981":"1. Start with the initial stake. In this example, we’ll use 1 USD.","-1540106116":"Profit and loss thresholds","-894905768":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss thresholds are reached. It's a form of risk management that can potentially enhance returns. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1946134465":"Where:","-248283982":"B is the loss threshold.","-1148521416":"f is the unit increment.","-211800490":"D’Alembert formula 2","-1772692202":"This formula helps you plan your trades by considering the amount of money you have and your comfort level with risk. It involves determining your loss threshold and the initial stake you want to trade with. Then, you use this formula to calculate the number of rounds you can trade. This process provides insight into stake sizing and expectations.","-2107238266":"The D'Alembert system offers more balanced trading through controlled stake progression. With prudent risk management like stake limits, it can be effectively automated in Deriv Bot. However, traders should thoroughly assess their risk appetite, test strategies on a demo account to align with their trading style before trading with real money. This allows optimising the approach and striking a balance between potential gains and losses whilst managing risk.","-500873566":"Disclaimer:","-344769349":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-818800551":"Exploring the Martingale strategy in Deriv Bot","-533490374":"These are the trade parameters used in Deriv Bot with Martingale strategy.","-1507161059":"Multiplier: The multiplier used to increase your stake if you're losing a trade. The value must be greater than 1.","-1333404686":"An example of Martingale strategy","-1755877136":"3. If the first trade ends in a loss, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every losing trade.","-1297651002":"If you're about to start trading and haven't established a Maximum Stake as part of your risk management strategy, you can determine how long your funds will last by employing the Martingale strategy. Simply use this formula.","-46865201":"Martingale formula 1","-116397598":"m is the Martingale multiplier.","-658161609":"Number of rounds, R ≈ 9.965","-288082521":"This means that after 10 rounds of consecutive losses, this trader will lose 1023 USD which exceeds the loss threshold of 1000 USD, stopping the bot.","-770387160":"The Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","-1901073152":"These are the trade parameters used for Oscar’s Grind strategy in Deriv Bot.","-1575153036":"An example of Oscar’s Grind strategy","-732418614":"The table above demonstrates this principle by showing that when a successful trade occurs and meets the target of one unit of potential profit which is 1 USD in this example, the session ends. If trading continues, a new session will begin.","-106266344":"Principle 3: The stake adjusts to the gap size between current loss and the target profit for the session","-492908094":"In round 7, the stake is adjusted downwards from 2 USD to 1 USD, to meet the target profit of 1 USD.","-90079299":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss threshold is reached. This is a form of risk management that can potentially boost successful trades whilst limiting the impact of loss. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1549673884":"The Oscar's Grind strategy provides a disciplined approach for incremental gains through systematic stake progression. When integrated into Deriv Bot with proper risk management like profit or loss thresholds, it offers traders a potentially powerful automated trading technique. However, traders should first thoroughly assess their risk tolerance and first try trading on a demo account in order to familiarise with the strategy before trading with real funds.","-655650222":"Exploring the Reverse D’Alembert strategy in Deriv Bot","-1864807973":"The Reverse D'Alembert strategy involves increasing your stake after a successful trade and reducing it after a losing trade by a predetermined number of units.","-809681645":"These are the trade parameters used in Deriv Bot with Reverse D’Alembert strategy.","-1239374257":"An example of Reverse D’Alembert strategy","-309821442":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-1576691912":"This article explores the Reverse Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","-1934849823":"These are the trade parameters used in Deriv Bot with Reverse Martingale strategy.","-1021919630":"Multiplier: The multiplier used to increase your stake if your trade is successful. The value must be greater than 1.","-760516362":"3. If the first trade is a successful trade, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every successful trade.","-1410950365":"Exploring the 1-3-2-6 strategy in Deriv Bot","-1175255072":"These are the trade parameters used in Deriv Bot with 1-3-2-6 strategy.","-183884527":"An example of 1-3-2-6 strategy","-275617819":"4. However, if any trade results in a loss, your stake will reset back to the initial stake of 1 USD for the next trade. The third trade results in a loss hence the stake resets to the initial stake of 1 USD for the next trade.","-719846465":"5. Upon reaching the initial stake, if the next trade still results in a loss, your stake will remain at the initial stake of 1 USD. This strategy will minimally trade at the initial stake. Refer to the fourth and fifth trade.","-1452746011":"The 1-3-2-6 strategy in trading may offer substantial gains but also comes with significant risks. Each stake is independent, and the strategy does not increase your chances of successful trades in the long run. If you encounter a series of losses, the strategy can lead to significant losses. Therefore, it is crucial for traders to assess their risk tolerance, practice in a demo account, utilise profit and loss thresholds, and fully comprehend the strategy before engaging in real-money trading.","-1016171176":"Asset","-138833194":"The underlying market your bot will trade with this strategy.","-621128676":"Trade type","-399349239":"Your bot will use this trade type for every run","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-447853970":"Loss threshold","-33106112":"The size used to multiply the stake after a successful trade for the next trade.","-1503301801":"The value must be equal or greater than {{ min }}","-1596504046":"Number of unit(s) to be added to the next trade after a successful trade. One unit is equivalent to the amount of initial stake.","-1521098535":"Max stake","-1448426542":"The stake for your next trade will reset to the initial stake if it exceeds this value.","-993953307":"Your prediction of the last digit of the asset price.","-1305281529":"D’Alembert","-1842451303":"Welcome to Deriv Bot!","-1391310674":"Check out these guides and FAQs to learn more about building your bot:","-2066779239":"FAQs","-280324365":"What is Deriv Bot?","-155173714":"Let’s build a bot!","-2093569327":"How to build a basic trading bot with Deriv Bot","-2072114761":"How to use Martingale strategy on Deriv Bot","-1919212468":"3. You can also search for the blocks you want using the search bar above the categories.","-1800386057":"For more info, check out this blog post on the basics of building a trading bot.","-980360663":"3. Choose the block you want and drag it to the workspace.","-1493168314":"What is a quick strategy?","-1680391945":"Using a quick strategy","-1177914473":"How do I save my strategy?","-271986909":"In Bot Builder, hit Save on the toolbar at the top to download your bot. Give your bot a name, and choose to download your bot to your device or Google Drive. Your bot will be downloaded as an XML file.","-1149045595":"1. After hitting Import, select Local and click Continue.","-288041546":"2. Select your XML file and hit Open.","-2127548288":"3. Your bot will be loaded accordingly.","-1311297611":"1. After hitting Import, select Google Drive and click Continue.","-1549564044":"How do I reset the workspace?","-1127331928":"In Bot Builder, hit Reset on the toolbar at the top. This will clear the workspace. Please note that any unsaved changes will be lost.","-1720444288":"How do I control my losses with Deriv Bot?","-1142295124":"There are several ways to control your losses with Deriv Bot. Here’s a simple example of how you can implement loss control in your strategy:","-2129119462":"1. Create the following variables and place them under Run once at start:","-1918487001":"Example:","-468926787":"This is how your trade parameters, variables, and trade options should look like:","-1565344891":"Can I run Deriv Bot on multiple tabs in my web browser?","-213872712":"No, we don't offer cryptocurrencies on Deriv Bot.","-2147346223":"In which countries is Deriv Bot available?","-792737139":"We offer our services in all countries, except for the ones mentioned in our terms and conditions.","-352345777":"What are the most popular strategies for automated trading?","-552392096":"Three of the most commonly used strategies in automated trading are Martingale, D'Alembert, and Oscar's Grind — you can find them all ready-made and waiting for you in Deriv Bot.","-1630262763":"About Martingale","-413928457":"About Oscar's Grind","-1497015866":"About Reverse D’Alembert","-437005403":"About 1-3-2-6","-590765322":"Unfortunately, this trading platform is not available for EU Deriv account. Please switch to a non-EU account to continue trading.","-2110207996":"Deriv Bot is unavailable for this account","-971295844":"Switch to another account","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-1223145005":"Loss amount: {{profit}}","-1206212388":"Welcome back! Your messages have been restored. You are using your {{current_currency}} account.","-1724342053":"You are using your {{current_currency}} account.","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-555886064":"Won","-529060972":"Lost","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-224804428":"Transactions","-287223248":"No transaction or activity yet.","-418247251":"Download your journal.","-2123571162":"Download","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-558594655":"The bot is not running","-478946875":"The stats are cleared","-999254545":"All messages are filtered out","-934909826":"Load strategy","-2005347537":"Importing XML files from Binary Bot and other third-party platforms may take longer.","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-24780060":"When you’re ready to trade, hit ","-2147110353":". You’ll be able to track your bot’s performance here.","-1442034178":"Contract bought","-2020280751":"Bot is stopping","-1436403979":"Contract closed","-411060180":"TradingView Chart","-627895223":"Exit spot","-2140412463":"Buy price","-1299484872":"Account","-2004386410":"Win","-266502731":"Transactions detailed summary","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-596238067":"Entry/Exit spot","-1823621139":"Quick Strategy","-1782602933":"Choose a template below and set your trade parameters.","-315611205":"Strategy","-1524489375":"(optional)","-150224710":"Yes, continue","-475765963":"Edit the amount","-1349897832":"Do not show this message again.","-984512425":"Minimum duration: {{ value }}","-2084091453":"The value must be equal or greater than {{ value }}","-657364297":"The value must be equal or less than {{ value }}","-1696412885":"Import","-320197558":"Sort blocks","-939764287":"Charts","-1566369363":"Zoom out","-1285759343":"Search","-1291088318":"Purchase conditions","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1692205739":"Import a bot from your computer or Google Drive, build it from scratch, or start with a quick strategy.","-1150390589":"Last modified","-1393876942":"Your bots:","-1545070554":"Delete bot","-1972599670":"Your bot will be permanently deleted when you hit ","-1692956623":"Yes, delete.","-573479616":"Are you sure you want to delete it?","-786915692":"You are connected to Google Drive","-1256971627":"To import your bot from your Google Drive, you'll need to sign in to your Google account.","-1233084347":"To know how Google Drive handles your data, please review Deriv’s <0>Privacy policy.","-1150107517":"Connect","-767342552":"Enter your bot name, choose to save on your computer or Google Drive, and hit ","-1372891985":"Save.","-1003476709":"Save as collection","-636521735":"Save strategy","-1953880747":"Stop my bot","-1899230001":"Stopping the current bot will load the Quick Strategy you just created to the workspace.","-2131847097":"Any open contracts can be viewed on the ","-563774117":"Dashboard","-683790172":"Now, <0>run the bot to test out the strategy.","-1127164953":"Hi! Hit <0>Start for a quick tour.","-358288026":"Note: You can also find this tutorial in the <0>Tutorials tab.","-129587613":"Got it, thanks!","-1793577405":"Build from scratch","-358753028":"Create your bot using our drag-and-drop blocks or click Quick Strategy to choose from the ready-to-use bot templates.","-1212601535":"Monitor the market","-21136101":"See how your bot is doing in real-time.","-631097919":"Click <0>Run when you want to start trading, and click <0>Stop when you want to stop.","-1999747212":"Want to retake the tour?","-782992165":"Step 1 :","-1207872534":"First, set the <0>Trade parameters block.","-1656388044":"First, set <0>Market to Derived > Continuous Indices > Volatility 100 (1s) Index.","-1706298865":"Then, set <0>Trade type to Up/Down > Rise/Fall.","-1834358537":"For <0>Default candle interval, set it to 1 minute","-1940971254":"For <0>Trade options, set it as below:","-512839354":"<0>Stake: USD 10 (min: 0.35 - max: 50000)","-753745278":"Step 2 :","-1056713679":"Then, set the <0>Purchase conditions block.","-245497823":"<0>2. Purchase conditions:","-916770284":"<0>Purchase: Rise","-758077259":"Step 3 :","-677396944":"Step 4 :","-295975118":"Next, go to <0>Utility tab under the Blocks menu. Tap the drop-down arrow and hit <0>Loops.","-698493945":"Step 5 :","-1992994687":"Now, tap the <0>Analysis drop-down arrow and hit <0>Contract.","-1844492873":"Go to the <0>Last trade result block and click + icon to add the <0>Result is Win block to the workspace.","-1547091772":"Then, drag the <0>Result is win into the empty slot next to <0>repeat until block.","-736400802":"Step 6 :","-732067680":"Finally, drag and add the whole <0>Repeat block to the <0>Restart trading conditions block.","-1411787252":"Step 1","-1109392787":"Learn how to build your bot from scratch using a simple strategy.","-1263822623":"You can import a bot from your mobile device or from Google drive, see a preview in the bot builder, and start trading by running the bot.","-563921656":"Bot Builder guide","-1596172043":"Quick strategy guides","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-1717650468":"Online","-1309011360":"Open positions","-1597214874":"Trade table","-1929724703":"Compare CFD accounts","-883103549":"Account deactivated","-45873457":"NEW","-1837059346":"Buy / Sell","-1845037007":"Advertiser's page","-494667560":"Orders","-679691613":"My ads","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-377375279":"Standard","-1582979384":"Standard Demo","-1212531781":"Standard BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-291535132":"Swap-Free Demo","-499019612":"Zero Spread Demo","-1472945832":"Swap-Free SVG","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-2063700253":"disabled","-1585069798":"Please click the following link to complete your Appropriateness Test.","-1287141934":"Find out more","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1601813176":"Would you like to increase your daily limits to {{max_daily_buy}} {{currency}} (buy) and {{max_daily_sell}} {{currency}} (sell)?","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1744163489":"Please verify your proof of income","-382676325":"To continue trading with us, please submit your proof of income.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-493564794":"Please complete your financial assessment.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-1728185398":"Resubmit proof of address","-612396514":"Please resubmit your proof of address.","-1519764694":"Your proof of address is verified.","-1629185222":"Submit now","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-1392958585":"Please check your email.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-2136953532":"Scheduled cashier maintenance","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-949074612":"Please contact us via live chat.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1706642239":"<0>Proof of ownership <1>required","-553262593":"<0><1>Your account is currently locked <2><3>Please upload your proof of <4>ownership to unlock your account. <5>","-1834929362":"Upload my document","-1043638404":"<0>Proof of ownership <1>verification failed","-1766760306":"<0><1>Please upload your document <2>with the correct details. <3>","-8892474":"Start assessment","-1330929685":"Please submit your proof of identity and proof of address to verify your account and continue trading.","-99461057":"Please submit your proof of address to verify your account and continue trading.","-577279362":"Please submit your proof of identity to verify your account and continue trading.","-197134911":"Your proof of identity is expired","-152823394":"Your proof of identity has expired. Please submit a new proof of identity to verify your account and continue trading.","-822813736":"We're unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-978414767":"We require additional information for your Deriv MT5 account(s). Please take a moment to update your information now.","-482715448":"Go to Personal details","-2072411961":"Your proof of address has been verified","-384887227":"Update the address in your profile.","-1470677931":"CFDs on financial instruments.","-1595662064":"Zero spread CFDs on financial and derived instruments","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-1591792668":"Account Limits","-34495732":"Regulatory information","-1323441180":"I hereby confirm that my request for opening an account with Deriv to trade OTC products issued and offered exclusively outside Brazil was initiated by me. I fully understand that Deriv is not regulated by CVM and by approaching Deriv I intend to set up a relation with a foreign company.","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-288996254":"Unavailable","-1308346982":"Derived","-1019903756":"Synthetic","-735306327":"Manage accounts","-1813972756":"Account creation paused for 24 hours","-366030582":"Sorry, you're unable to create an account at this time. As you declined our previous risk warnings, we need you to wait for 24 hours after your first account creation attempt before you can proceed.<0/><0/>","-534047566":"Thank you for your understanding. You can create your account on {{real_account_unblock_date}} or later.","-399816343":"Trading Experience Assessment<0/>","-1822498621":"As per our regulatory obligations, we are required to assess your trading knowledge and experience.<0/><0/>Please click ‘OK’ to continue","-71049153":"Keep your account secure with a password","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1146960797":"Fiat currencies","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1740162250":"Manage account","-1016775979":"Choose an account","-1362081438":"Adding more real accounts has been restricted for your country.","-1602122812":"24-hour Cool Down Warning","-1519791480":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the risk of losing your money. <0/><0/>\n As you have declined our previous warning, you would need to wait 24 hours before you can proceed further.","-1010875436":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, kindly note that you would need to wait 24 hours before you can proceed further.","-1725418054":"By clicking ‘Accept’ and proceeding with the account opening, you should note that you may be exposing yourself to risks. These risks, which may be significant, include the risk of losing the entire sum invested, and you may not have the knowledge and experience to properly assess or mitigate them.","-730377053":"You can’t add another real account","-2100785339":"Invalid inputs","-2061807537":"Something’s not right","-272953725":"Your details match an existing account. If you need help, contact us via <0>live chat.","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-437918412":"No currency assigned to your account","-1193651304":"Country of residence","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1976089791":"Your Deriv account has been unlinked from your {{social_identity_provider}} account. You can now log in to Deriv using your new email address and password.","-505449293":"Enter a new password for your Deriv account.","-243732824":"Take me to Demo account","-1269078299":"I will setup my real account later.","-1342699195":"Total profit/loss:","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-813256361":"We are committed to treating our clients fairly and providing them with excellent service.<0/><1/>We would love to hear from you on how we can improve our services to you. Any information you provide will be treated in the strictest confidence. Rest assured that you will be heard, valued, and always treated fairly.","-1622847732":"If you have an inquiry regarding your trading account with {{legal_entity_name}}, you can contact us through our <0>Help centre or by chatting with a representative via <1>Live Chat.<2/><3/>We are committed to resolving your query in the quickest time possible and appreciate your patience in allowing us time to resolve the matter.<4/><5/>We strive to provide the best possible service and support to our customers. However, in the event that we are unable to resolve your query or if you feel that our response is unsatisfactory, we want to hear from you. We welcome and encourage you to submit an official complaint to us so that we can review your concerns and work towards a resolution.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-1280998762":"4. Complaints","-1886635232":"A complaint is any expression of dissatisfaction by a client regarding our products or services that requires a formal response.<0/><1/>If what you submit does not fall within the scope of a complaint, we may reclassify it as a query and forward it to the relevant department for handling. However, if you believe that your query should be classified as a complaint due to its relevance to the investment services provided by {{legal_entity_name}}, you may request that we reclassify it accordingly.","-1771496016":"To submit a complaint, please send an email to <0>complaints@deriv.com, providing as much detail as possible. To help us investigate and resolve your complaint more efficiently, please include the following information:","-1197243525":"<0>•A clear and detailed description of your complaint, including any relevant dates, times, and transactions","-1795134892":"<0>•Any relevant screenshots or supporting documentation that will assist us in understanding the issue","-2053887036":"4.4. Handling your complaint","-717170429":"Once we have received the details of your complaint, we shall review it carefully and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","-1841922393":"4.5. Resolving your complaint","-1327119795":"4.6. Your decision","-2019654103":"If we are unable to resolve your complaint or you are not satisfied with the outcome, you can escalate your complaint to the Office of the Arbiter for Financial Services.<0/><1/><2>Filing complaints with the Office of the Arbiter for Financial Services","-687172857":"<0>•You may file a complaint with the Arbiter for Financial Services only if you are not satisfied with our decision or the decision wasn’t made within 15 business days.","-262934706":"<0>•If the complaint is accepted by the Arbiter, you will receive another email with further details relating to the payment of the €25 complaint fee and the processes that follow.","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-583559763":"Menu","-673424733":"Demo account","-162753510":"Add real account","-1685795001":"Demo Wallet","-319395348":"Looking for CFDs? Go to Trader’s Hub","-554054753":"Get started","-1364763296":"No need to remember a password","-1274467503":"Sync across devices","-2036288743":"Enhanced security with biometrics or screen lock ","-143216768":"Learn more about passkeys <0> here.","-778309978":"The link you clicked has expired. Ensure to click the link in the latest email in your inbox. Alternatively, enter your email below and click <0>Resend email for a new link.","-2007055538":"Information updated","-941870889":"The cashier is for real accounts only","-352838513":"It looks like you don’t have a real {{regulation}} account. To use the cashier, switch to your {{active_real_regulation}} real account, or get an {{regulation}} real account.","-1858915164":"Ready to deposit and trade for real?","-1208519001":"You need a real Deriv account to access the cashier.","-715867914":"Successfully deposited","-1271218821":"Account added","-197631101":"Your funds will be available for trading once the verification of your account is complete.","-835056719":"We’ve received your documents","-55435892":"We’ll need 1 - 3 days to review your documents and notify you by email. You can practice with demo accounts in the meantime.","-1916578937":"<0>Explore the exciting new features that your Wallet offers.","-1724438599":"<0>You're almost there!","-1089300025":"We don’t charge deposit fees! Once your account is verified, you will be able to trade, make additional deposits, or withdraw funds.","-476018343":"Live Chat","-310434518":"The email input should not be empty.","-1471705969":"<0>{{title}}: {{trade_type_name}} on {{symbol}}","-1771117965":"Trade opened","-1856112961":"The URL you requested isn’t available","-304807228":"<0>You’re not logged in, or<0>Our services are unavailable in your country.","-1567989247":"Submit your proof of identity and address","-523602297":"Forex majors","-1303090739":"Up to 1:1500","-19213603":"Metals","-1264604378":"Up to 1:1000","-1728334460":"Up to 1:300","-646902589":"(US_30, US_100, US_500)","-705682181":"Malta","-1835174654":"1:30","-1647612934":"Spreads from","-1912437030":"about required verifications.","-466784048":"Regulator/EDR","-2098459063":"British Virgin Islands","-1326848138":"British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","-1711743223":"Forex (standard/micro), stocks, stock indices, commodities, cryptocurrencies and ETFs","-1372141447":"Straight-through processing","-1969608084":"Forex and Cryptocurrencies","-800771713":"Labuan Financial Services Authority (licence no. MB/18/0024)","-1497128311":"80+","-1689815930":"You will need to submit proof of identity and address once you reach certain thresholds.","-1175785439":"Deriv (SVG) LLC (company no. 273 LLC 2020)","-1344709651":"40+","-139026353":"A selfie of yourself.","-1228847561":"Verification in review.","-618322245":"Verification successful.","-149461870":"Forex: standard/exotic","-1995163270":"ETFs","-1220727671":"Standard - SVG","-865172869":"Financial - BVI","-1851765767":"Financial - Vanuatu","-558597854":"Financial - Labuan","-2052425142":"Swap-Free - SVG","-1192904361":"Deriv X Demo","-283929334":"Deriv cTrader Demo","-1269597956":"MT5 Platform","-1302404116":"Maximum leverage","-239789243":"(License no. SIBA/L/18/1114)","-941636117":"MetaTrader 5 Linux app","-1434036215":"Demo Financial","-659955365":"Swap-Free","-1416247163":"Financial STP","-1637969571":"Demo Swap-Free","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-860609405":"Password","-742647506":"Fund transfer","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-790488576":"Forgot password?","-476558960":"If you don’t have open positions","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-12535938":"*Volatility 250 Index, Volatility 150 Index, Boom 300 and Crash 300 Index","-2104148631":"Commissions apply","-201485855":"Up to","-700260448":"demo","-1769158315":"real","-1922462747":"Trader's hub","-16858060":"You have a new Deriv MT5 password to log in to your Deriv MT5 accounts on the web and mobile apps.","-1868608634":"Current password","-2092058806":"8 to 16 characters","-2051033705":"A special character such as ( _ @ ? ! / # )","-1762249687":"A lowercase letter","-1123437857":"You are adding your {{platform}} {{product}} account under {{company}}, regulated by the British Virgin\n Islands Financial Services Commission (licence no. SIBA/L/18/1114).","-535365199":"Enter your {{platform}} password to add a {{platform_name}} {{account}} account.","-184453418":"Enter your {{platform}} password","-393388362":"We’re reviewing your documents. This should take about 1 to 3 days.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-267598687":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. To start trading, <1 />transfer funds <2 />from your Deriv account into this account.","-1475660820":"Your Deriv MT5 {{type}} account is ready. ","-1184248732":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. ","-1928229820":"Reset Deriv X investor password","-1969916895":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character ( _ @ ? ! / # ).","-1087845020":"main","-1950683866":"investor","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-1615126227":"Manage up to {{max_count}} Deriv cTrader accounts. While you can convert any of your Deriv cTrader accounts into a strategy account, please take note of the following:","-1547739386":"To ensure you can always create and manage strategies with fees, <0>keep at least one account free from being a strategy provider. This way, you’ll always have an account ready for collecting fees, allowing you to have up to four strategies where you may impose fees.","-2145356061":"Download Deriv X on your phone to trade with the Deriv X account","-1547458328":"Run cTrader on your browser","-747382643":"Get another cTrader account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-499504077":"Choose a cTrader account to transfer","-251202291":"Broker","-678964540":"to","-206829624":"(1:x)","-616293830":"Enjoy dynamic leverage of <0>up to 1:1500 when trading selected instruments in the forex, commodities, cryptocurrencies, and stock indices markets. Our dynamic leverage adjusts automatically to your trading position, based on asset type and trading volume.","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-21438174":"Add your Deriv cTrader account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-271828350":"Get more out of Deriv MT5 Financial","-2125860351":"Choose a jurisdiction for your Deriv MT5 CFDs account","-1460321521":"Choose a jurisdiction for your {{account_type}} account","-637537305":"Download {{ platform }} on your phone to trade with the {{ platform }} {{ account }} account","-964130856":"{{existing_account_title}}","-879259635":"Enter your Deriv MT5 password to upgrade your account(s).","-1504907646":"Deriv MT5 password","-361998267":"We've introduced additional password requirements to increase your account security. Your password should:","-996995493":"Be between 8 to 16 characters.","-219163415":"Contain at least one special character.","-1446636186":"By clicking on <0>Next you agree to move your {{platform}} {{type_1}} and {{type_2}} {{from_account}} account(s) under Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","-1766387013":"Upgrade your MT5 account(s)","-990927225":"Enter your Deriv MT5 password","-1486399361":"Trade with MT5 mobile app","-301350824":"Note: Don't have the MT5 app? Tap the <0>Trade with MT5 mobile app button to download. Once you have\n installed the app, return to this screen and hit the same button to log in.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-601303096":"Scan the QR code to download Deriv {{ platform }}.","-1357917360":"Web terminal","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-1386326276":"Barrier is a required field.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-256210543":"Trading is unavailable at this time.","-1150099396":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a Deriv MT5 Financial.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-1013917510":"The reset time is {{ reset_time }}","-925402280":"Indicative low spot","-1075414250":"High spot","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1371082433":"Reset barrier","-1402197933":"Reset time","-2035315547":"Low barrier","-1745835713":"Selected tick","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-104603605":"You cannot trade as your documents are still under review. We will notify you by email once your verification is approved.","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-347156282":"Submit Proof","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-1043795232":"Recent positions","-153220091":"{{display_value}} Tick","-802374032":"Hour","-1700010072":"This feature is unavailable for tick intervals. Switch to minutes, hours, or days.","-663862998":"Markets","-1341681145":"When this is active, you can cancel your trade within the chosen time frame. Your stake will be returned without loss.","-2069438609":"No matches found","-97673874":"No closed trades","-1727419550":"Your closed trades will be shown here.","-225500551":"Entry & exit details","-1022682526":"Your favourite markets will appear here.","-315741954":"{{amount}} trade types","-232254547":"Custom","-1251526905":"Last 7 days","-1539223392":"Last 90 days","-1123299427":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <1>previous spot price. Otherwise, you lose your stake and the trade is terminated.","-1052279158":"Your <0>payout is the sum of your initial stake and profit.","-274058583":"<0>Take profit is an additional feature that lets you manage your risk by automatically closing the trade when your profit reaches the target amount. This feature is unavailable for ongoing accumulator contracts.","-1819891401":"You can close your trade anytime. However, be aware of <0>slippage risk.","-859589563":"If you select “<0>Odd”, you will win the payout if the last digit of the last tick is an odd number (i.e. 1, 3, 5, 7, or 9).","-1911850849":"If the exit spot is equal to the barrier, you don’t win the payout.","-618782785":"Use multipliers to leverage your potential returns. Predict if the asset price will move upward (bullish) or downward (bearish). We’ll charge a commission when you open a multipliers trade.","-565391674":"If you select \"<0>Up\", your total profit/loss will be the percentage increase in the underlying asset price, times the multiplier and stake, minus commissions.","-1158764468":"If you select “<0>Over”, you will win the payout if the last digit of the last tick is greater than your prediction.","-1268105691":"If you select “<0>Under”, you will win the payout if the last digit of the last tick is less than your prediction.","-444119935":"If you select \"<0>Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-521457890":"If you select “<0>Touch”, you win the payout if the market touches the barrier at any time during the contract period.","-1020271578":"If you select “<0>Down”, you’ll earn a payout if the spot price never rises above the barrier.","-403573339":"Your payout is equal to the <0>payout per point multiplied by the difference between the <1>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","-1307465836":"You may sell the contract up to 15 seconds before expiry. If you do, we’ll pay you the <0>contract value.","-1121315439":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a “Call” or a “Put”.","-1763848396":"Put","-1119872505":"How to trade ","-586636553":"Watch this video to learn about this trade type.","-2017825013":"Got it","-1117111580":"Removed from favorites","-197162398":"CLOSED","-1913695340":"Order Details","-1882287418":"How do I earn a payout?","-725670935":"Take profit and stop loss are unavailable while deal cancellation is enabled.","-1331298683":"Take profit can’t be adjusted for ongoing accumulator contracts.","-509210647":"Try searching for something else.","-99964540":"When your profit reaches or exceeds the set amount, your trade will be closed automatically.","-542594338":"Max. payout","-1622900200":"Enabled","-2131851017":"Growth rate","-339236213":"Multiplier","-1396928673":"Risk Management","-1358367903":"Stake","-1853307892":"Set your trade","-1221049974":"Final price","-843831637":"Stop loss","-583023237":"This is the resale value of your contract, based on the prevailing market conditions (e.g, the current spot), including additional commissions if any.","-1476381873":"The latest asset price when the trade closure is processed by our servers.","-584445859":"This is when your contract will expire based on the duration or end time you’ve selected. If the duration is more than 24 hours, the cut-off time and expiry date will apply instead.","-1247327943":"This is the spot price of the last tick at expiry.","-1422269966":"You can choose a growth rate with values of 1%, 2%, 3%, 4%, and 5%.","-1186791513":"Payout is the sum of your initial stake and profit.","-1482134885":"We calculate this based on the strike price and duration you’ve selected.","-1682624802":"It is a percentage of the previous spot price. The percentage rate is based on your choice of the index and the growth rate.","-1545819495":"Your trade will be closed automatically at the nearest available asset price when your loss reaches a certain percentage of your stake, but your loss never exceeds your stake. This percentage depends on the chosen underlying asset and the Multiplier.","-1293590531":"If you select “Call”, you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1432332852":"If you select ‘Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-468501352":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount. Your profit may be more than the amount you entered depending on the market price at closing.","-993480898":"Accumulators","-123659792":"Vanillas","-1226595254":"Turbos","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-1691868913":"Touch/No Touch","-330437517":"Matches/Differs","-657360193":"Over/Under","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-93996528":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1722190480":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1113825265":"Additional features are available to manage your positions: “<0>Take profit” and “<0>Stop loss” allow you to adjust your level of risk aversion.","-1104397398":"Additional features are available to manage your positions: “<0>Take profit”, “<0>Stop loss” and “<0>Deal cancellation” allow you to adjust your level of risk aversion.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1565216130":"If you select <0>\"Up\", you’ll earn a payout if the spot price never drops below the barrier.","-1336860323":"If you select <0>\"Down\", you’ll earn a payout if the spot price never rises above the barrier.","-1547935605":"Your payout is equal to the <0>payout per point multiplied by the difference between the <0>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","-351875097":"Number of ticks","-729830082":"View less","-1649593758":"Trade info","-1382749084":"Go back to trading","-1239477911":"second","-1585766960":"min","-1652791614":"mins","-1977959027":"hours","-442488432":"day","-337314714":"days","-1435392215":"About deal cancellation","-1192773792":"Don't show this again","-471757681":"Risk management","-771725194":"Deal Cancellation","-1669741470":"The payout at expiry is equal to the payout per point multiplied by the difference between the final price and the strike price.","-1186082278":"Your payout is equal to the payout per point multiplied by the difference between the final price and barrier.","-1890561510":"Cut-off time","-878534036":"If you select \"Call\", you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1587076792":"If you select \"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-565990678":"Your contract will expire on this date (in GMT), based on the End time you’ve selected.","-477936848":"We use next-tick-execution mechanism, which is the next asset price when the trade opening is processed by our servers.","-148680560":"Spot price of the last tick upon reaching expiry.","-1123926839":"Contracts will expire at exactly 14:00:00 GMT on your selected expiry date.","-1904828224":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 24 hours.","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-8998663":"Digit: {{last_digit}} ","-718750246":"Your stake will grow at {{growth_rate}}% per tick as long as the current spot price remains within ±{{tick_size_barrier_percentage}} from the previous spot price.","-690963898":"Your contract will be automatically closed when your payout reaches this amount.","-511541916":"Your contract will be automatically closed upon reaching this number of ticks.","-438655760":"<0>Note: You can close your trade anytime. Be aware of slippage risk.","-774638412":"Stake must be between {{min_stake}} {{currency}} and {{max_stake}} {{currency}}","-434270664":"Current Price","-1956787775":"Barrier Price:","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-1231210510":"Tick","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-1804019534":"Expiry: {{date}}","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-732683018":"When your profit reaches or exceeds this amount, your trade will be closed automatically.","-989393637":"Take profit can't be adjusted after your contract starts.","-194424366":"above","-857660728":"Strike Prices","-1346404690":"You receive a payout at expiry if the spot price never touches or breaches the barrier throughout the contract duration. Otherwise, your contract will be terminated early.","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-420223912":"Clean up Blocks","-301596978":"Collapse Blocks","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-985351204":"Trade again","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-1738427539":"Purchase","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1374685318":"Your contract is closed automatically when your loss is more than or equals to this amount. This block can only be used with the multipliers trade type.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-1626615625":"Take Profit (Multiplier)","-1871944173":"Accumulator trade options","-625636913":"Amount must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1631669591":"string","-1768939692":"number","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1750478127":"New variable name","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-260939264":"Collapsed","-894560707":"function","-1867119688":"Duplicate","-1710107207":"Add Comment","-1549535410":"Remove Comment","-918450098":"Blocks","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-339973827":"The market is closed","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1919680487":"workspace","-1703118772":"The {{block_type}} block is misplaced from {{missing_space}}.","-1785726890":"purchase conditions","-1993203952":"Trade options accumulators","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-1072292603":"No Change","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-137444201":"Buy","-841561409":"Put Spread","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-462715374":"Untitled Bot","-280147477":"All transactions","-130601012":"Please select duration","-1577570698":"Start date","-1904030160":"Transaction performed by (App ID: {{app_id}})","-1876891031":"Currency","-513103225":"Transaction time","-2066666313":"Credit/Debit","-1981004241":"Sell time","-1196431745":"Contract cost","-3423966":"Take profit<0 />Stop loss","-1131753095":"The {{trade_type_name}} contract details aren't currently available. We're working on making them available soon.","-360975483":"You've made no transactions of this type during this period.","-2082644096":"Current stake","-1942828391":"Max payout","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-558031309":"High Tick/Low Tick","-447037544":"Buy price:","-737348236":"Contract cost:","-1694314813":"Contract value:","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-155989831":"Decrement value","-338379841":"Indicative price:","-2027409966":"Initial stake:","-1769852749":"N/A","-726626679":"Potential profit/loss:","-1511825574":"Profit/Loss:","-499175967":"Strike Price","-706219815":"Indicative price","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-853582174":"France 40","-1096386695":"UK 100","-617646862":"Germany 40","-2077690248":"Japan 225","-512194910":"US Tech 100","-381746202":"US 500","-1935463381":"Swiss 20","-1941767726":"Euro 50","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-82971929":"Volatility 25 (1s) Index","-433962508":"Volatility 75 (1s) Index","-764111252":"Volatility 100 (1s) Index","-816110209":"Volatility 150 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1288044380":"Volatility 250 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-132112961":"Sharkfin","-1715390759":"I want to do this later","-56163366":"I don't have any of these","-175164838":"{{seconds_passed}}s ago","-514136557":"{{minutes_passed}}m ago","-1420737287":"{{hours_passed}}h ago","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-1603581277":"minutes","-886317740":"The <0>date of birth on your identity document doesn't match your profile.","-1606307809":"We were unable to verify the identity document with the details provided.","-475787720":"The verification status was empty, rejected for lack of information.","-1627868670":"Your identity document has expired.","-1302288704":"The document’s owner is deceased.","-895884696":"The <0>name and <0>date of birth on your identity document don't match your profile.","-1231856133":"The verification status is not available, provider says: Needs Technical Investigation.","-433687715":"For enhanced security, we need to reverify your identity. Kindly resubmit your proof of identity to unlock your account.","-1637538521":"Your document appears to be invalid.","-876579004":"The name on your document doesn’t match your profile.","-746520172":"Some details on your document appear to be invalid, missing, or unclear.","-2146200521":"The serial number of your document couldn’t be verified.","-1945323197":"Your document appears to be in black and white. Please upload a colour photo of your document.","-631393256":"Your document contains markings or text that should not be on your document.","-609103016":"The image quality of your document is too low. Please provide a hi-res photo of your identity document.","-530935718":"We’re unable to verify the document you provided because some details appear to be missing. Please try again or provide another document.","-1027031626":"We’re unable to verify the document you provided because it appears to be damaged. Please try again or upload another document.","-1671621833":"The front of your document appears to be missing. Please provide both sides of your identity document.","-727588232":"Your document appears to be a scanned copy that contains markings or text that shouldn’t be on your document.","-1435064387":"Your document appears to be a printed copy.","-624316211":"Your document appears to be a photo of a device screen.","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled"} \ No newline at end of file +{"0":"","1485191":"1:1000","2082741":"additional document number","2091451":"Deriv Bot - your automated trading partner","3125515":"Your Deriv MT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","3215342":"Last 30 days","3420069":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your identity document.","4547840":"<0>Verify your account to transfer funds. <1>Verify now","5149403":"Learn more about trade types","7100308":"Hour must be between 0 and 23.","9488203":"Deriv Bot is a web-based strategy builder for trading digital options. It’s a platform where you can build your own automated trading bot using drag-and-drop 'blocks'.","9757544":"Please submit your proof of address","11533428":"Trade bigger positions with less capital on a wide range of global markets. <0>Learn more","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11706633":"Loss threshold: The bot will stop trading if your total loss exceeds this amount.","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","23745193":"Take me to demo","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582393":"Example :","27582767":"{{amount}} {{currency}}","27731356":"Your account is temporarily disabled. Please contact us via <0>live chat to enable deposits and withdrawals again.","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","40632954":"Why is my card/e-wallet not working?","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45821474":"Proof of income","46523711":"Your proof of identity is verified","49404821":"If you buy a \"<0>{{trade_type}}\" option, you receive a payout at expiry if the final price is {{payout_status}} the strike price. Otherwise, your “<0>{{trade_type}}” option will expire worthless.","53801223":"Hong Kong 50","53964766":"5. Hit Save to download your bot. You can choose to download your bot to your device or your Google Drive.","54185751":"Less than $100,000","55340304":"Keep your current contract?","55916349":"All","57362642":"Closed","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","62910715":"You already have an open position for this contract type, retrying in {{ delay }}s","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","66610627":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there’s enough light where you are and that your entire face is in the frame.","67923436":"No, Deriv Bot will stop running when your web browser is closed.","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71232823":"Manage funds","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74963864":"Under","76635112":"To proceed, resubmit these documents","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","76925355":"Check your bot’s performance","77982950":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a \"Call\" or a \"Put\".","81009535":"Potential profit/loss","81091424":"To complete the upgrade, please log out and log in again to add more accounts and make transactions with your Wallets.","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","84402478":"Where do I find the blocks I need?","84924586":"To trade options and multipliers, get a Deriv Apps account first.","85343079":"Financial assessment","85359122":"40 or more","85389154":"Steps required to continue verification on your mobile","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","93154671":"1. Hit Reset at the bottom of stats panel.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","105871033":"Your age in the document you provided appears to be below 18 years. We’re only allowed to offer our services to clients above 18 years old, so we’ll need to close your account. If you have a balance in your account, contact us via live chat and we’ll help to withdraw your funds before your account is closed.","107537692":"These limits apply to your options trades only. For example, <0>maximum total loss refers to the losses on all your trades on options trading platforms.","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113378532":"ETH/USD","115032488":"Buy price and P/L","116005488":"Indicators","117056711":"We’re updating our site","117318539":"Password should have lower and uppercase English letters with numbers.","117366356":"Turbo options allow you to predict the direction of the underlying asset’s movements.","118727646":"{{new_account_title}}","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","122617359":"View tutorial","122993457":"This is to confirm that it's you making the withdrawal request.","123454801":"{{withdraw_amount}} {{currency_symbol}}","124723298":"Upload a proof of address to verify your address","125354367":"An example of D’Alembert's Grind strategy","125443840":"6. Restart last trade on error","125842960":"{{name}} is required.","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","129005644":"The idea is that successful trades may recoup previous losses. However, it is crucial to exercise caution as the risk can quickly increase with this strategy. With Deriv Bot, you can minimise your risk by setting a maximum stake. This is an optional risk management feature. Let’s say a maximum stake of 3 USD. If your stake for the next trade is set to exceed 3 USD, your stake will reset to the initial stake of 1 USD. If you didn't set a maximum stake, it would have increased beyond 3 USD.","129137937":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or resume trading after a 24-hour cooling-off period. If you don’t want to set a specific limit, leave the field empty.","129729742":"Tax Identification Number*","130567238":"THEN","132596476":"In providing our services to you, we are required to ask you for some information to assess if a given product or service is appropriate for you and whether you have the experience and knowledge to understand the risks involved.<0/><0/>","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","133655768":"Note: If you wish to learn more about the Bot Builder, you can proceed to the <0>Tutorials tab.","134126193":"Try searching for markets or keywords","136790425":"Try changing or removing filters to view available positions.","137589354":"To assess your trading experience and if our products are suitable for you. Please provide accurate and complete answers, as they may affect the outcome of this assessment.","138055021":"Synthetic indices","139454343":"Confirm my limits","141265840":"Funds transfer information","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145511192":"s is the initial stake.","145633981":"Unavailable as your documents are still under review","145736466":"Take a selfie","147327552":"No favourites","150156106":"Save changes","150486954":"Token name","151279367":"2. Set the Purchase conditions. In this example, your bot will purchase a Rise contract when it starts and after a contract closes.","151646545":"Unable to read file {{name}}","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","153485708":"Zero Spread - BVI","154274415":"The payout at expiry is equal to the payout per point multiplied by the distance between the final price and the barrier.","157593038":"random integer from {{ start_number }} to {{ end_number }}","157871994":"Link expired","158355408":"Some services may be temporarily unavailable.","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","167094229":"• Current stake: Use this variable to store the stake amount. You can assign any amount you want, but it must be a positive number.","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","174793462":"Strike","176078831":"Added","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","177467242":"Define your trade options such as accumulator and stake. This block can only be used with the accumulator trade type. If you select another trade type, this block will be replaced with the Trade options block.","179083332":"Date","181107754":"Your new <0>{{platform}} {{eligible_account_to_migrate}} account(s) are ready for trading.","181346014":"Notes ","181881956":"Contract Type: {{ contract_type }}","182630355":"Thank you for submitting your information.","184024288":"lower case","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","190834737":"Guide","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195136585":"Trading View Chart","195972178":"Get character","196810983":"If the duration is more than 24 hours, the Cut-off time and Expiry date will apply instead.","196998347":"We hold customer funds in bank accounts separate from our operational accounts which would not, in the event of insolvency, form part of the company's assets. This meets the <0>Gambling Commission's requirements for the segregation of customer funds at the level: <1>medium protection.","197190401":"Expiry date","201016731":"<0>View more","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","203297887":"The Quick Strategy you just created will be loaded to the workspace.","203924654":"Hit the <0>Start button to begin and follow the tutorial.","204797764":"Transfer to client","204863103":"Exit time","207521645":"Reset Time","207824122":"Please withdraw your funds from the following Deriv account(s):","209533725":"You’ve transferred {{amount}} {{currency}}","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","210872733":"The verification status is not available, provider says: Malformed JSON.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211487193":"Document number (e.g. identity card, passport, driver's license)","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216114973":"Stocks & indices","216650710":"You are using a demo account","217377529":"5. If the next trades are profitable, the stake for the following trade will be reduced by 2 USD. This can be shown above where the stake of 3 USD is reduced to 1 USD. See A3.","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","221261209":"A Deriv account will allow you to fund (and withdraw from) your CFDs account(s).","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","233500222":"- High: the highest price","235244966":"Return to Trader's Hub","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","235994721":"Forex (standard/exotic) and cryptocurrencies","236642001":"Journal","238496287":"Leverage trading is high-risk, so it's a good idea to use risk management features such as stop loss. Stop loss allows you to","242028165":"Pay a small fee to prioritise your withdrawal, this fee will be deducted from the withdrawal amount.","243537306":"1. Under the Blocks menu, go to Utility > Variables.","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","246428134":"Step-by-step guides","248153700":"Reset your password","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","251134918":"Account Information","251445658":"Dark theme","251882697":"Thank you! Your response has been recorded into our system.<0/><0/>Please click ‘OK’ to continue.","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258448370":"MT5","258912192":"Trading assessment","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","260393332":"You cannot make further deposits as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","261074187":"4. Once the blocks are loaded onto the workspace, tweak the parameters if you want, or hit Run to start trading.","261250441":"Drag the <0>Trade again block and add it into the <0>do part of the <0>Repeat until block.","262095250":"If you select <0>\"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","266455247":"Standard Vanuatu","267992618":"The platforms lack key features or functionality.","268254263":"Open a real account now","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269322978":"Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270396691":"<0>Your Wallets are ready!","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","271637055":"Download is unavailable while your bot is running.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","276770377":"New MT5 account(s) under the {{to_account}} jurisdiction will be created for new trades.","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","280021988":"Use these shortcuts","281110034":"Effective trading with the D'Alembert system requires careful consideration of its stake progression and risk management. Traders can automate this approach using Deriv Bot, setting profit and loss thresholds to ensure balanced and controlled trading. However, it is crucial for traders to assess their risk appetite, test strategies on a demo account, and align with their own trading style before transitioning to real money trading. This optimization process helps strike a balance between potential gains and losses while managing risk prudently.","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283830551":"Your address doesn’t match your profile","284527272":"antimode","284772879":"Contract","284809500":"Financial Demo","287934290":"Are you sure you want to cancel this transaction?","289731075":"Get Started","291344459":"The table illustrates this principle in the second session. After a trade resulting in loss in round 4 followed by a successful trade in round 5, the stake will increase to 2 USD for round 6. This is in line with the strategy's rule of raising the stake only after a loss is followed by a successful trade.","291744889":"<0>1. Trade parameters:<0>","291817757":"Go to our Deriv community and learn about APIs, API tokens, ways to use Deriv APIs, and more.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","293250845":"Are you sure you want to continue?","294043810":"I confirm that my tax information is accurate and complete.","294305803":"Manage account settings","294335229":"Sell at market price","296017162":"Back to Bot","301441673":"Select your citizenship/nationality as it appears on your passport or other government-issued ID.","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","304506198":"Total balance:","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","316694303":"Is candle black?","318705408":"Demo Zero Spread","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","321457615":"Oops, something went wrong!","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","323360883":"Baskets","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329353047":"Malta Financial Services Authority (MFSA) (licence no. IS/70156)","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","330384187":"Enable trading with your first transfer.","333456603":"Withdrawal limits","333807745":"Click on the block you want to remove and press Delete on your keyboard.","334942497":"Buy time","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345320063":"Invalid timestamp","345818851":"Sorry, an internal error occurred. Hit the above checkbox to try again.","346070861":"Zero Spread","346843343":"CFDs on financial and derived instruments with copy trading.","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","349110642":"<0>{{payment_agent}}<1>'s contact details","350602311":"Stats show the history of consecutive tick counts, i.e. the number of ticks the price remained within range continuously.","351744408":"Tests if a given text string is empty","353731490":"Job done","354945172":"Submit document","357477280":"No face found","357672069":"Income verification failed","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","360773403":"Bot Builder","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","367801124":"Total assets in your Deriv accounts.","368160866":"in list","369035361":"<0>•Your account number","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","372805409":"You should enter 9-35 characters.","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","377225569":"<0>Do not honour: Please contact your bank for further assistance.","377538732":"Key parameters","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","380606668":"tick","380694312":"Maximum consecutive trades","381972464":"Your document has expired.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","384707870":"CRS confirmation","386278304":"Install the {{platform_name_trader}} web app","386502387":"Bot is not running","389923099":"Zoom in","390890891":"Last quarter","391685252":"Revoke","391915203":"Hedging","392582370":"Fall Equals","393789743":"Letters, spaces, periods, hyphens, apostrophes only.","396418990":"Offline","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","401345454":"Head to the Tutorials tab to do so.","403456289":"The formula for SMA is:","403936913":"An introduction to Deriv Bot","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","417864079":"You’ll not be able to change currency once you have made a deposit.","419485005":"Spot","419496000":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the multipliers trade type.","420072489":"CFD trading frequency","422055502":"From","423682863":"When your loss reaches or exceeds the set amount, your trade will be closed automatically.","424101652":"Quick strategy guides >","424272085":"We take your financial well-being seriously and want to ensure you are fully aware of the risks before trading.<0/><0/>","424897068":"Do you understand that you could potentially lose 100% of the money you use to trade?","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428380816":"If you select “<0>Matches”, you will win the payout if the last digit of the last tick is the same as your prediction.","429505586":"If you select \"<0>Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","429970999":"To avoid delays, enter your <0>name exactly as it appears on your {{document_name}}.","431267979":"Here’s a quick guide on how to use Deriv Bot on the go.","432273174":"1:100","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433237511":"Notify Telegram %1 Access Token: %2 Chat ID: %3 Message: %4","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","436534334":"<0>We've sent you an email.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","439398769":"This strategy is currently not compatible with Deriv Bot.","442281706":"You’ve just deleted a block.","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","445419365":"1 - 2 years","447548846":"SSNIT number","447907000":"If you select \"<0>Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","452949978":"The 1-3-2-6 strategy is designed to capitalise on consecutive successful trades while minimising losses during losing streaks. The rationale behind this strategy lies in statistical probabilities, with adjustments to stake sizes based on the perceived likelihood of success. There is a higher likelihood of success in the second trade after one successful trade. Hence the stake adjusts to 3 in the second trade. In the third trade, the stake adjusts to 2 units due to a lower probability of a successful trade. If the third trade is also successful, the strategy then allocates all the previous gains (a total of 6 units of initial stake) into the fourth trade with the aim of doubling the potential profits. If the fourth trade results in a positive outcome, the strategy helps achieve a total gain of 12 units. However, it is crucial to exercise caution, as the risk can escalate quickly with this strategy, and any loss in the fourth trade forfeits all previous gains.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","454196938":"Regulation:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459612953":"Select account","459817765":"Pending","460070238":"Congratulations","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","463361726":"Select an item","465993338":"Oscar's Grind","466424460":"Oscar’s Grind","466837068":"Yes, increase my limits","467839232":"I trade forex CFDs and other complex financial instruments regularly on other platforms.","471402292":"Your bot uses a single trade type for each run.","471667879":"Cut off time:","471994882":"Your {{ currency }} account is ready.","473154195":"Settings","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","478827886":"We calculate this based on the barrier you’ve selected.","479420576":"Tertiary","480356486":"*Boom 300 and Crash 300 Index","481276888":"Goes Outside","481564514":"If you select “<0>Up”, you’ll earn a payout if the spot price never drops below the barrier.","483279638":"Assessment Completed<0/><0/>","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","490053735":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your loss reaches or exceeds the stop loss amount. Your loss may be more than the amount you entered depending on the market price at closing.","491603904":"Unsupported browser","492198410":"Make sure everything is clear","492566838":"Taxpayer identification number","497518317":"Function that returns a value","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501284861":"Watch this video to learn how to build a trading bot on Deriv Bot. Also, check out this blog post on building a trading bot.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502007051":"Demo Swap-Free SVG","502041595":"This block gives you a specific candle from within the selected time interval.","505793554":"last letter","508390614":"Demo Financial STP","511679687":"Accumulators allow you to express a view on the range of movement of an index and grow your stake exponentially at a fixed <0>growth rate.","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","517631043":"We’ve sent your e-book. Check your email to download it.","517833647":"Volatility 50 (1s) Index","518955798":"7. Run Once at Start","519205761":"You can no longer open new positions with this account.","520136698":"Boom 500 Index","520458365":"Last used: ","521872670":"item","522703281":"divisible by","523123321":"- 10 to the power of a given number","524459540":"How do I create variables?","527329988":"This is a top-100 common password","529056539":"Options","531114081":"3. Contract Type","531675669":"Euro","532724086":"Employment contract","533403953":"Your existing <0>{{platform}} {{type}} {{from_account}} account(s) will remain accessible.","535041346":"Max. total stake per day","536277802":"TP & SL history","537788407":"Other CFDs Platform","538017420":"0.5 pips","538042340":"Principle 2: The stake only increases when a loss trade is followed by a successful trade","538228086":"Close-Low","539352212":"Tick {{current_tick}}","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","545323805":"Filter by trade types","547029855":"If you select this feature, you can cancel your trade within a chosen time frame if the asset price moves against your favour. You will get your stake back without profit/loss. We charge a small fee for this. Take profit and stop loss are disabled when deal cancellation is active.","549479175":"Deriv Multipliers","549799607":"Go to LiveChat","551569133":"Learn more about trading limits","551958626":"Excellent","554135844":"Edit","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","555881991":"National Identity Number Slip","558866810":"Run your bot","559224320":"Our classic “drag-and-drop” tool for creating trading bots, featuring pop-up trading charts, for advanced users.","560759471":"You'll see these details once the contract starts.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565356380":"Added to favorites","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","571921777":"Funds protection level","572576218":"Languages","573173477":"Is candle {{ input_candle }} black?","575668969":"3. For trades that result in a profit, the stake for the next trade will be increased by 2 USD. Deriv Bot will continue to add 2 USD for every successful trade. See A1.","575702000":"Remember, selfies, pictures of houses, or non-related images will be rejected.","576355707":"Select your country and citizenship:","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","587577347":"Take Profit (Accumulator)","587577425":"Secure my account","587856857":"Want to know more about APIs?","592087722":"Employment status is required.","592964176":"Join over 2.5 million traders","593459109":"Try a different currency","595080994":"Example: CR123456789","596165833":"Your withdrawal will be processed internally in one business day. After that, for debit/credit cards, it takes 1-15 working days, and for e-wallets, it's 1-3 working days. If there's a delay beyond these periods, please contact us via live chat.","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","602278674":"Verify identity","603849445":"Strike price","603849863":"Look for the <0>Repeat While/Until, and click the + icon to add the block to the workspace area.","603899222":"Distance to current spot","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","613418320":"<0>Setup unsuccessful","613877038":"Chart","615156635":"Your selfie does not match your document.","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","619407328":"Are you sure you want to unlink from {{identifier_title}}?","621829484":"{{days_passed}}d ago","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623316736":"{{ message }}, retrying in {{ delay }}s","623542160":"Exponential Moving Average Array (EMAA)","625571750":"Entry spot:","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","628193133":"Account ID","629003252":"If your current password doesn't match these requirements, you'll need to create a new one in the next step.","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","629395043":"All growth rates","632398049":"This block assigns a null value to an item or statement.","632897893":"If any of the above applies to you, select <0>Yes. Otherwise, select <0>No.","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","634274250":"How long each trade takes to expire.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","636427296":"Need help with tax info? Let us know via <0>live chat.","636579615":"Number of unit(s) to be added to the next trade after a losing trade. One unit is equivalent to the amount of initial stake.","639382772":"Please upload supported file type.","640249298":"Normal","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642393128":"Enter amount","642546661":"Upload back of license from your computer","644150241":"The number of contracts you have won since you last cleared your stats.","645902266":"EUR/NZD","646773081":"Profit threshold: The bot will stop trading if your total profit exceeds this amount.","647039329":"Proof of address required","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","650836587":"This article explores the Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","651284052":"Low Tick","651684094":"Notify","652298946":"Date of birth","654422099":"CRS confirmation is required.","654507872":"True-False","654924603":"Martingale","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","656893085":"Timestamp","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","658745169":"You may sell the contract up to 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","661759508":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><0/>","662953503":"Your contract will be closed when the <0>stop out level is reached.","664779910":"3. If the first trade results in profit, the stake for the following trade will not reduce but remain at the initial stake. The strategy minimally trades at the initial stake of 1 USD. See A1.","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","666158951":"Your contract will be closed when the <0>stop out level is reached.","666724936":"Please enter a valid ID number.","669494711":"1.4 pips","671630762":"We accept only these types of documents as proof of your address. The document must be recent (issued within last {{expiry_in_months}} months) and include your name and address:","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","676675313":"Authy","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678031950":"Candles List with interval here 2: {{ candle_interval_type }}","679199080":"Why passkeys?","680334348":"This block was required to correctly convert your old strategy.","681108680":"Additional information required for {{platform}} account(s)","681808253":"Previous spot price","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","686387939":"How do I clear my transaction log?","687193018":"Slippage risk","687212287":"Amount is a required field.","688510664":"You've {{two_fa_status}} 2FA on this device. You'll be logged out of your account on other devices (if any). Use your password and a 2FA code to log back in.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","692354762":"Please enter your {{document_name}}. {{example_format}}","693396140":"Deal cancellation (expired)","693933036":"Exploring the Oscar’s Grind strategy in Deriv Bot","694035561":"Trade options multipliers","696157141":"Low spot","696735942":"Enter your National Identification Number (NIN)","696870196":"- Open time: the opening time stamp","698037001":"National Identity Number","699159918":"1. Filing complaints","699646180":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, the funds will be lost and cannot be recovered.","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","702451070":"National ID (No Photo)","702561961":"Change theme","705262734":"Your Wallets are ready","705299518":"Next, upload the page of your passport that contains your photo.","705697927":"2. Set your preferred unit. In this example, it is 2 units or 2 USD.","705821926":"Learn about this trade type","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","706960383":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 60 seconds.","707189572":"Your email address has changed.<0/>Now, log in with your new email address.","707662672":"{{unblock_date}} at {{unblock_time}}","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711580196":"Why can't I use a payment agent to withdraw my funds?","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","718509613":"Maximum duration: {{ value }}","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724526379":"Learn more with our tutorials","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","729251105":"Range: {{min}} - {{max}} {{duration_unit_text}} ","729651741":"Choose a photo","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","732828463":"Standing instructions to transfer funds to an account maintained in the United States, or directions regularly received from a US address","734298230":"Just a reminder","734390964":"Insufficient balance","734881840":"false","735907651":"A US residence address or a US correspondence address (including a US PO box)","737751617":"<0>Explore our website to see what’s available.","739126643":"Indicative high spot","742469109":"Reset Balance","743623600":"Reference","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","749336930":"Secure alternative to passwords.","750886728":"Switch to your real account to submit your documents","751468800":"Start now","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755138488":"We’re unable to verify the document you provided because it contains markings or text that should not be on your document. Please provide a clear photo or a scan of your original identity document.","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","758492962":"210+","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762926186":"A quick strategy is a ready-made strategy that you can use in Deriv Bot. There are 3 quick strategies you can choose from: Martingale, D'Alembert, and Oscar's Grind.","764366329":"Trading limits","766317539":"Language","768301339":"Delete Blocks","772520934":"You may sell the contract up to 24 hours before expiry. If you do, we’ll pay you the <0>contract value.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","775706054":"Do you sell trading bots?","776085955":"Strategies","776432808":"Select the country where you currently live.","778172770":"Deriv CFDs","780009485":"About D'Alembert","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787727156":"Barrier","788005234":"NA","789013690":"This is the corresponding price level based on the payout per point you’ve selected. If this barrier is ever breached, your contract would be terminated.","792164271":"This is when your contract will expire based on the Duration or End time you’ve selected.","792622364":"Negative balance protection","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794682658":"Copy the link to your phone","794778483":"Deposit later","795859446":"Password saved","795992899":"The amount you choose to receive at expiry for every point of change between the final price and the barrier. ","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","806165583":"Australia 200","807499069":"Financial commission complaints procedure","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","812430133":"Spot price on the previous tick.","815925952":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open Deriv Bot.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820877027":"Please verify your proof of identity","821163626":"Server maintenance occurs every first Saturday of the month from 7 to 10 GMT time. You may experience service disruption during this time.","823186089":"A block that can contain text.","823279888":"The {{block_type}} block is missing.","824797920":"Is list empty?","825042307":"Let’s try again","825179913":"This document number was already submitted for a different account. It seems you have an account with us that doesn't need further verification. Please contact us via <0>live chat if you need help.","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","829970143":"If you've hit the deposit limit, please wait 1-2 hours before trying again. Check that your browser is up to date and use incognito mode. If you still have problems, please contact us via <0>live chat.","830164967":"Last name","830703311":"My profile","830993327":"No current transactions available","831344594":"If you select “<0>Lower”, you win the payout if the exit spot is strictly lower than the barrier.","832053636":"Document submission","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835336137":"View Detail","835350845":"Add another word or two. Uncommon words are better.","836097457":"I am interested in trading but have very little experience.","837063385":"Do not send other currencies to this address.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839158849":"4. If the second trade results in a loss, the Deriv Bot will automatically increase your stake for the next trade by 2 USD. Deriv Bot will continue to add 2 USD to the previous round’s stake after every losing trade. See A2.","839805709":"To smoothly verify you, we need a better photo","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845106422":"Last digit prediction","845304111":"Slow EMA Period {{ input_number }}","848083350":"Your payout is equal to the <0>payout per point multiplied by the difference between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852527030":"Step 2","852583045":"Tick List String","852627184":"document number","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","858663703":"For new trades, please transfer your funds into the new <0>{{platform}} {{eligible_account_to_migrate}} account(s).","860319618":"Tourism","862283602":"Phone number*","863023016":"For instance, if a trader has a loss threshold (B) of 100 USD, with an initial stake (s) of 1 USD and 2 units of increment (f), the calculation would be as follows:","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864655280":"You can continue to hold your current open positions in your existing MT5 account(s).","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869068127":"The cashier is temporarily down due to maintenance. It will be available as soon as the maintenance is complete.","869823595":"Function","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872721776":"2. Select your XML file and hit Select.","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","873387641":"If you have open positions","874461655":"Scan the QR code with your phone","874472715":"Your funds will remain in your existing MT5 account(s).","874484887":"Take profit must be a positive number.","875101277":"If I close my web browser, will Deriv Bot continue to run?","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","879014472":"Reached maximum number of decimals","879647892":"You may sell the contract up until 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","881963105":"(XAUUSD, XAGUSD)","882423592":"The amount that you stake for the first trade. Note that this is the minimum stake amount.","885065431":"Get a Deriv account","888274063":"Town/City","888924866":"We don’t accept the following inputs for:","890299833":"Go to Reports","891337947":"Select country","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","896790627":"A US birthplace","897597439":"Changes saved.","898457777":"You have added a Deriv Financial account.","898904393":"Barrier:","899342595":"NIN","900646972":"page.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","904696726":"API token","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","906789729":"Your verification documents were already used for another account.","907680782":"Proof of ownership verification failed","909272635":"Financial - SVG","910888293":"Too many attempts","911048905":"(BTCUSD, ETHUSD)","912257733":"The workspace will be reset to the default strategy and any unsaved changes will be lost. <0>Note: This will not affect your running bot.","912406629":"Follow these steps:","912967164":"Import from your computer","915735109":"Back to {{platform_name}}","918447723":"Real","920125517":"Add demo account","921857297":"Enter a value from 0 to {{ value }}.","921901739":"- your account details of the bank linked to your account","922313275":"You're back online","924046954":"Upload a document showing your name and bank account number or account details.","924912760":"Your document appears to be a digital document.","929608744":"You are unable to make withdrawals","930255747":"Please enter your {{document_name}}. ","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","936393760":"You receive a <0>payout at <1>expiry if the spot price never touches or breaches the <2>barrier during the contract period. If it does, your contract will be terminated early.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938500877":"{{ text }}. <0>You can view the summary of this transaction in your email.","938947787":"Withdrawal {{currency}}","938988777":"High barrier","942015028":"Step 500 Index","944499219":"Max. open positions","945532698":"Contract sold","945753712":"Back to Trader’s Hub","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947602200":"Save this strategy as an XML file from Deriv Bot for faster re-imports.","947704973":"Reverse D’Alembert","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","949859957":"Submit","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","958503488":"Search markets on ","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961266215":"140+","961327418":"My computer","961692401":"Bot","962251615":"If you want to adjust your self-exclusion limits, <0>contact us via live chat.","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","968576099":"Up/Down","969858761":"Principle 1: Strategy aims to potentially make one unit of profit per session","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975608902":"To trade CFDs, get a Deriv Apps account first.","975668699":"I confirm and accept {{company}} 's <0>Terms and Conditions","975747761":"Ongoing","975950139":"Country of Residence","977929335":"Go to my account settings","979713491":"Zero Spread BVI","980050614":"Update now","981138557":"Redirect","981568830":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via <0>live chat.","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982146443":"WhatsApp","982402892":"First line of address","982829181":"Barriers","983295075":"Why can't I see the funds on my card/e-wallet balance after I've made a withdrawal?","983451828":"2. Select the asset and trade type.","984175243":"Expand Blocks","986565137":"We've received your proof of income","987053672":"You can continue with the open positions on your current <0>{{platform}} {{existing_account}} account(s).","987224688":"How many trades have you placed with other financial instruments in the past 12 months?","988064913":"4. Come back to Deriv Bot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","989840364":"You’re under legal age.","990739582":"170+","992294492":"Your postal code is invalid","992677950":"Logging out on other devices","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","997276809":"I confirm that the name and date of birth above match my chosen identity document","997311089":"Change my password","999008199":"text","1001160515":"Sell","1002989598":"iOS: iCloud keychain.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006069082":"The objective of Martingale strategy is to take advantage of consecutive successful trades and maximise potential profits from them. This strategy is beneficial only if there are consecutive successful trades. Therefore, it is important to set a maximum stake to secure all the potential profits gained from a number of consecutive successful trades, or you could lose all the profits you have accumulated, including your initial stake. For example, if your goal is to maximise profits within 2 consecutive successful trades, you set a maximum stake of 2 USD, given your initial stake is 1 USD. Similarly, if your goal is to maximise profits within 3 consecutive successful trades, you set a maximum stake of 4 USD, given your initial stake is 1 USD.","1006458411":"Errors","1006664890":"Silent","1008151470":"Unit: The number of units that are added in the event of successful trades or the number of units removed in the event of losing trades. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1010337648":"We were unable to verify your proof of ownership.","1011424042":"{{text}}. stake<0/>","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1017081936":"If you select “<0>Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1021090237":"Upgrade your <0>{{account_1}} <1/>and <0>{{account_2}} {{platform}} account(s)","1021679446":"Multipliers only","1022934784":"1 minute","1022971288":"Payout per pip","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1026289179":"Trade on the go","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1029641567":"{{label}} must be less than 30 characters.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1033253221":"Confirm your identity to make a withdrawal.","1035893169":"Delete","1036116144":"Speculate on the price movement of an asset without actually owning it.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039428638":"EU regulation","1039476188":"The size used to multiply the stake after a losing trade for the next trade.","1039755542":"Use a few words, avoid common phrases","1040472990":"1. Go to Bot Builder.","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1047644783":"Enable screen lock on your device.","1047881477":"Unfortunately, your browser does not support the video.","1048687543":"Labuan Financial Services Authority","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050063303":"Videos on Deriv Bot","1050128247":"I confirm that I have verified the payment agent’s transfer information.","1050844889":"Reports","1052779010":"You are on your demo account","1052921318":"{{currency}} Wallet","1053153674":"Jump 50 Index","1053159279":"Level of education","1053556481":"Once you submit your complaint, we will send you an acknowledgement email to confirm that we have received it.","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057519018":"4. If a trade ends in a profit, the stake for the following trade will be reset to the initial stake amount of 1 USD.","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1058804653":"Expiry","1058905535":"Tutorial","1060231263":"When are you required to pay an initial margin?","1061308507":"Purchase {{ contract_type }}","1062423382":"Explore the video guides and FAQs to build your bot in the tutorials tab.","1062536855":"Equals","1062569830":"The <0>name on your identity document doesn't match your profile.","1065498209":"Iterate (1)","1065766135":"You have {{remaining_transfers}} {{transfer_text}} remaining for today.","1066235879":"Transferring funds will require you to create a second account.","1066459293":"4.3. Acknowledging your complaint","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1070323991":"6. If consecutive successful trades were to happen, the stake would follow a sequence of adjustment from 1 to 3, then 2, and 6 units of initial stake. After 4 consecutive successful trades, it completes one cycle and then the strategy will repeat itself for another cycle. If any trade results in a loss, your stake will reset back to the initial stake for the next trade.","1070624871":"Check proof of address document verification status","1073261747":"Verifications","1073611269":"A copy of your identity document (e.g. identity card, passport, driver's license)","1073711308":"Trade closed","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1078189922":"You can make a new deposit once the verification of your account is complete.","1078221772":"Leverage prevents you from opening large positions.","1078303105":"Stop out","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1087112394":"You must select the strike price before entering the contract.","1088031284":"Strike:","1088138125":"Tick {{current_tick}} - ","1089085289":"Mobile number","1089436811":"Tutorials","1089687322":"Stop your current bot?","1090041864":"The {{block_type}} block is mandatory and cannot be deleted/disabled.","1090802140":"Additional Information","1095295626":"<0>•The Arbiter for Financial Services will determine whether the complaint can be accepted and is in accordance with the law.","1096078516":"We’ll review your documents and notify you of its status within 3 days.","1096175323":"You’ll need a Deriv account","1098147569":"Purchase commodities or shares of a company.","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100133959":"National ID","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109182113":"Note: Deal cancellation is only available for Volatility Indices on Multipliers.","1109217274":"Success!","1110102997":"Statement","1111743543":"Stop loss (Multiplier)","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113227831":"Yes, you can. However, there are limits on your account, such as maximum number of open positions and maximum aggregate payouts on open positions. So, just keep these limits in mind when opening multiple positions. You can find more info about these limits at Settings > Account limits.","1113292761":"Less than 8MB","1113390200":"Your open trades will appear here.","1114679006":"You have successfully created your bot using a simple strategy.","1117281935":"Sell conditions (optional)","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1121050010":"Transaction fee: {{amount}} {{currency}}","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1124382808":"Please enter the expiry time in the format \"HH:MM\".","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127224297":"Sorry for the interruption","1127884488":"cTrader MacOS app","1128139358":"How many CFD trades have you placed in the past 12 months?","1128321947":"Clear All","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129842439":"Please enter a take profit amount.","1133651559":"Live chat","1134879544":"Example of a document with glare","1134883120":"Use your Deriv account email and password to log in to cTrader.","1138126442":"Forex: standard","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1150637063":"*Volatility 150 Index and Volatility 250 Index","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1155143434":"By clicking on <0>Next you agree to move your {{platform}} {{type}} {{from_account}} account(s) under <2/>Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","1155626418":"below","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163771266":"The third block is <0>optional. You may use this block if you want to sell your contract before it expires. For now, leave the block as it is. ","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166023941":"New password","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1166916934":"Demo Standard SVG","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1171765024":"Step 3","1171961126":"trade parameters","1172230903":"• Stop loss threshold: Use this variable to store your loss limit. You can assign any amount you want. Your bot will stop when your losses hits or exceeds this amount.","1172524677":"CFDs Demo","1173957529":"Go to ‘Account Settings’ on Deriv.","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174689133":"3. Set your trade parameters and hit Run.","1174748431":"Payment channel","1175183064":"Vanuatu","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1183448523":"<0>We're setting up your Wallets","1184968647":"Close your contract now or keep it running. If you decide to keep it running, you can check and close it later on the ","1186687280":"Question {{ current }} of {{ total }}","1188316409":"To receive your funds, contact the payment agent with the details below","1188980408":"5 minutes","1189249001":"4.1. What is considered a complaint?","1189368976":"Please complete your personal details before you verify your identity.","1190226567":"Standard - Vanuatu","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197649109":"No results for {{searchTerm}}","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1203380736":"The D’Alembert strategy is less risky than Martingale, but you can still determine how long your funds will last with this strategy before trading. Simply use this formula.","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1204459171":"Your existing <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s) will remain accessible.","1206227936":"How to mask your card?","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1211912982":"Bot is starting","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217159705":"Bank account number","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1223993374":"For entry spot, we use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers.","1225874865":"The stake adjustment: target session profit (1 USD) - current session profit (0 USD) = 1 USD","1227074958":"random fraction","1227132397":"4. For trades that result in a loss, there are two outcomes. If it was traded at the initial stake, the next trade will remain at the same amount as the strategy trades minimally at the initial stake, see A2. If it was traded with a higher amount, the stake for the next trade would be reduced by 2 USD, see A3.","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233178579":"Our customers say","1233300532":"Payout","1233910495":"If you select \"<0>Down\", your total profit/loss will be the percentage decrease in the underlying asset price, times the multiplier and stake, minus commissions.","1234292259":"Source of wealth","1234764730":"Upload a screenshot of your name and email address from the personal details section.","1236527126":"(Transaction fee: {{transaction_fee}} {{currency_symbol}})","1237330017":"Pensioner","1238311538":"Admin","1239752061":"In your cryptocurrency wallet, make sure to select the <0>{{network_name}} network when you transfer funds to Deriv.","1239760289":"Complete your trading assessment","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1240688917":"Glossary","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1242288838":"Hit the checkbox above to choose your document.","1242994921":"Click here to start building your Deriv Bot.","1243064300":"Local","1243287470":"Transaction status","1246207976":"Enter the authentication code generated by your 2FA app:","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250113042":"This device doesn't support passkeys.","1250495155":"Token copied!","1252669321":"Import from your Google Drive","1253531007":"Confirmed","1253636052":"MetaTrader5 web terminal","1254565203":"set {{ variable }} to create list with","1255827200":"You can also import or build your bot using any of these shortcuts.","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259145708":"Let’s try again. Choose another document and enter the corresponding details.","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1264096613":"Search for a given string","1265317149":"A recent utility bill (e.g. electricity, water or gas) or recent bank statement or government-issued letter with your name and address.","1265704976":"","1266728508":"Proof of income verification passed","1269296089":"Let's build a Bot!","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274380814":"Your payout is equal to the <0>payout per pip multiplied by the difference, <1>in pips, between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","1274819385":"3. Complaints and Disputes","1276660852":"Submit your proof of identity","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1283418744":"Additional features are available to manage your positions: “<0>Take profit”, “<1>Stop loss” and “<2>Deal cancellation” allow you to adjust your level of risk aversion.","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1286094280":"Withdraw","1286384690":"If you select “<0>Even”, you will win the payout if the last digit of the last tick is an even number (i.e. 2, 4, 6, 8, or 0).","1286507651":"Close identity verification screen","1288965214":"Passport","1289146554":"British Virgin Islands Financial Services Commission","1289650867":"The Oscar’s Grind strategy is designed to potentially gain a modest yet steady profit in each trading session. This strategy splits trades into sessions and has three principles.","1290525720":"Example: ","1291997417":"Contracts will expire at exactly 23:59:59 GMT on your selected expiry date.","1292179259":"No open trades","1292188546":"Reset Deriv MT5 investor password","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294553728":"We’re unable to verify the document you provided because it appears to be a blank image. Please try again or upload another document.","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1298254025":"Standard - BVI","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1305217290":"Upload the back of your identity card.","1306976251":"Standard SVG","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1314572331":"Your document failed our verification checks.","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320715220":"<0>Account closed","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324922837":"2. The new variable will appear as a block under Set variable.","1325514262":"(licence no. MB/18/0024)","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1339565304":"Deposit now to start trading","1339613797":"Regulator/External dispute resolution","1340286510":"The bot has stopped, but your trade may still be running. You can check it on the Reports page.","1341840346":"View in Journal","1341921544":"Trading accounts and funds","1344696151":"Forex, stocks, stock indices, commodities, cryptocurrencies and synthetic indices.","1346038489":"Should be less than 70.","1346204508":"Take profit","1346339408":"Managers","1346947293":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there's enough light where you are and that your entire face is in the frame.","1347071802":"{{minutePast}}m ago","1349133669":"Try changing your search criteria.","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351906264":"This feature is not available for payment agents.","1352234202":"Last {{positionsCount}} contracts:","1352413406":"Define your trade options, such as accumulator and stake.","1353197182":"Please select","1354288636":"Based on your answers, it looks like you have insufficient knowledge and experience in trading CFDs. CFD trading is risky and you could potentially lose all of your capital.<0/><0/>","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357213116":"Identity card","1358543466":"Not available","1358543748":"enabled","1360929368":"Add a Deriv account","1362029761":"Exploring the Reverse Martingale strategy in Deriv Bot","1362578283":"High","1363645836":"Derived FX","1363675688":"Duration is a required field.","1364879837":"The verification is passed but the personal info is not available to compare.","1364958515":"Stocks","1366244749":"Limits","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1370647009":"Enjoy higher daily limits","1371193412":"Cancel","1371555192":"Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1373949314":"The Reverse Martingale strategy involves increasing your stake after each successful trade and resets to the initial stake for every losing trade as it aims to secure potential profits from consecutive wins.","1374627690":"Max. account balance","1374902304":"Your document appears to be damaged or cropped.","1375884086":"Financial, legal, or government document: recent bank statement, affidavit, or government-issued letter.","1376329801":"Last 60 days","1378419333":"Ether","1380349261":"Range","1383017005":"You have switched accounts.","1384127719":"You should enter {{min}}-{{max}} numbers.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1388770399":"Proof of identity required","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396217283":"{{transaction_amount}} {{currency_symbol}}","1396417530":"Bear Market Index","1397628594":"Insufficient funds","1400341216":"We’ll review your documents and notify you of its status within 1 to 3 days.","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1402224124":"Hit the button below, and we'll email you a verification link.","1402300547":"Lets get your address verified","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1407191858":"DTrader","1408844944":"Click the plus icon to extend the functionality of this block.","1411373212":"Strong passwords contain at least 8 characters. combine uppercase and lowercase letters, numbers, and symbols.","1411419173":"Growth Rate: {{ accumulator }}","1412405902":"See important notes","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1414366321":"An uppercase letter","1414918420":"We'll review your proof of identity again and will give you an update as soon as possible.","1415006332":"get sub-list from first","1415513655":"Download cTrader on your phone to trade with the Deriv cTrader account","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1416521695":"Positions","1417558007":"Max. total loss over 7 days","1417907460":"No problem! Your passkey still works.","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1419330165":"Forex, stocks, stock indices, commodities, cryptocurrencies, ETFs and synthetic indices","1421046084":"Setup your account","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1423296980":"Enter your SSNIT number","1424741507":"See more","1424763981":"1-3-2-6","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1428657171":"You can only make deposits. Please contact us via <0>live chat for more information.","1430221139":"Verify now","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434767075":"Get started on Deriv Bot","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1437529196":"Payslip","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1444066971":"It seems you’ve submitted this document before. Upload a new document.","1444843056":"Corporate Affairs Commission","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1447698999":"Withdrawals can be cancelled if they're still in the 'Requested' status (you can check your status under Pending payout). Once the status changes to 'Authorised', in 'Progress', or 'Processed', cancellation isn't possible.","1449462402":"In review","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1454406889":"Choose <0>until as the repeat option.","1454648764":"deal reference id","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1458160370":"Enter your {{platform}} password to add a {{platform_name}} {{account}} {{jurisdiction_shortcode}} account.","1459761348":"Submit proof of identity","1461323093":"Display messages in the developer’s console.","1462238858":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465084972":"How much experience do you have with other financial instruments?","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467880277":"3. General queries","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468508098":"Slippage happens when the asset price changes by the time it reaches our servers.","1469133110":"cTrader Windows app","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1470565177":"Article of association","1471008053":"Deriv Bot isn't quite ready for real accounts","1471070549":"Can contract be sold?","1471741480":"Severe error","1473369747":"Synthetics only","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1480915523":"Skip","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1488548367":"Upload again","1490509675":"Options accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499080621":"Tried to perform an invalid operation.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503419760":"Swap-free CFDs on selected financial and derived instruments.","1503618738":"- Deal reference ID: the reference ID of the contract","1505420815":"No payment agents found for your search","1505927599":"Our servers hit a bump. Let’s refresh to move on.","1507554225":"Submit your proof of address","1509559328":"cTrader","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1513771077":"We're processing your withdrawal.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1520332426":"Net annual income","1521546070":"Download Block","1524636363":"Authentication failed","1526012495":"This could be because:","1526483456":"2. Enter a name for your variable, and hit Create. New blocks containing your new variable will appear below.","1527251898":"Unsuccessful","1527664853":"Your payout is equal to the payout per point multiplied by the difference between the final price and the strike price.","1527906715":"This block adds the given number to the selected variable.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534796105":"Gets variable value","1537192641":"Unable to process your request","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1540585098":"Decline","1541508606":"Looking for CFDs? Go to Trader's Hub","1541770236":"The 1-3-2-6 strategy aims to maximise potential profits with four consecutive successful trades. One unit is equal to the amount of the initial stake. The stake will adjust from 1 unit to 3 units after the first successful trade, then to 2 units after your second successful trade, and to 6 units after the third successful trade. The stake for the next trade will reset to the initial stake if there is a losing trade or a completion of the trade cycle.","1541969455":"Both","1542742708":"Synthetics, Forex, Stocks, Stock indices, Commodities, and Cryptocurrencies","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1547148381":"That file is too big (only up to 8MB allowed). Please upload another file.","1548185597":"Step 200 Index","1549098835":"Total withdrawn","1551172020":"AUD Basket","1551689907":"Enhance your trading experience by upgrading your <0/><1>{{platform}} {{type}} {{from_account}} account(s).","1555345325":"User Guide","1556391770":"You cannot make a withdrawal as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1562374116":"Students","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1566717687":"We also provide a guide on the Tutorial tab to show you how you can build and execute a simple strategy.","1567745852":"Bot name","1569527365":"Verification failed. Resubmit your details.","1569624004":"Dismiss alert","1570484627":"Ticks list","1570495551":"For exit spot, the latest asset price when the trade closure is processed by our servers.","1571575776":"Accepted formats: pdf, jpeg, jpg, and png. Max file size: 8MB","1572504270":"Rounding operation","1572982976":"Server","1573429525":"Call/Put","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1580498808":"Multiple faces found","1584109614":"Ticks String List","1584936297":"XML file contains unsupported elements. Please check or modify file.","1587046102":"Documents from that country are not currently supported — try another document type","1589148299":"Start","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1589863913":"These are the trade parameters used for D’Alembert strategy in Deriv Bot.","1590400723":"Total assets in all your accounts","1591933071":"Resubmit document","1593010588":"Login now","1594147169":"Please come back in","1594322503":"Sell is available","1595295238":"3. Use a logic block to check if Total profit/loss is more than the Stop loss threshold amount. You can find the Total profit/loss variable under Analysis > Stats on the Blocks menu on the left. Your bot will continue to purchase new contracts until the Total profit/loss amount exceeds the Stop loss threshold amount.","1597672660":"Deriv MT5 Password","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1598789539":"Here are some common card/e-wallet errors and their solutions:","1599743312":"An example of Reverse Martingale strategy","1602894348":"Create a password","1604916224":"Absolute","1605222432":"I have no knowledge and experience in trading at all.","1605292429":"Max. total loss","1612105450":"Get substring","1612638396":"Cancel your trade at any time within a specified timeframe.","1615897837":"Signal EMA Period {{ input_number }}","1618652381":"For instance, if a trader has a loss threshold (B) is 1000 USD, with an initial stake (s) is 1 USD, and the Martingale multiplier (m) is 2, the calculation would be as follows:","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1622944161":"Now, go to the <0>Restart trading conditions block.","1623706874":"Use this block when you want to use multipliers as your trade type.","1628981793":"Can I trade cryptocurrencies on Deriv Bot?","1630317389":"If you select “<0>No Touch”, you win the payout if the market never touches the barrier at any time during the contract period.","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1633661992":"Tick {{current_tick}}/{{tick_count}}","1634016345":"2. If the trade is successful, this strategy will automatically adjust your stake to 3 units of your initial stake for the next trade. In this case, the stake adjustment is 3 units and the initial stake is 1 USD, hence the next trade will start at 3 USD.","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1635628424":"An envelope with your name and address.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644636153":"Transaction hash: <0>{{value}}","1644703962":"Looking for CFD accounts? Go to Trader's Hub","1644864436":"You’ll need to authenticate your account before requesting to become a professional client. <0>Authenticate my account","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1648938920":"Netherlands 25","1649239667":"2. Under the Blocks menu, you'll see a list of categories. Blocks are grouped within these categories. Choose the block you want and drag them to the workspace.","1650963565":"Introducing Wallets","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653136377":"copied!","1653180917":"We cannot verify you without using your camera","1653999225":"Forex: major/minor","1654365787":"Unknown","1654529197":"Purchase condition","1654721858":"Upload anyway","1655372864":"Your contract will expire on this date (in GMT), based on the end time you’ve selected.","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1659327870":"How do I cancel my withdrawal?","1659352235":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited, regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","1661126218":"Expiry date:","1665272539":"Remember: You cannot log in to your account until the selected date.","1665718170":"The document must contain a letterhead.","1665738338":"Balance","1665756261":"Go to live chat","1668138872":"Modify account settings","1669062316":"The payout at expiry is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1676549796":"Dynamic Leverage","1677027187":"Forex","1679743486":"1. Go to Quick strategy and select the strategy you want.","1680666439":"Upload your bank statement showing your name, account number, and transaction history.","1681765749":"Martingale formula 2","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683383299":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the accumulator trade type.","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1690746575":"Enhance your trading experience by upgrading your <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s).","1691335819":"To continue trading with us, please confirm who you are.","1691536201":"If you choose your duration in number of ticks, you won’t be able to terminate your contract early.","1691765860":"- Negation","1692912479":"Deriv MT5, Deriv X","1693614409":"Start time","1694517345":"Enter a new email address","1694888104":"The products offered on our website are complex derivative products that carry a significant risk of potential loss. CFDs are complex instruments with a high risk of losing money rapidly due to leverage. 70.78% of retail investor accounts lose money when trading CFDs with this provider. You should consider whether you understand how these products work and whether you can afford to take the high risk of losing your money.","1696190747":"Trading inherently involves risks, and actual profits can fluctuate due to various factors, including market volatility and other unforeseen variables. As such, exercise caution and conduct thorough research before engaging in any trading activities.","1698624570":"2. Hit Ok to confirm.","1699606318":"You've reached the limit of uploading your documents.","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1701447705":"Please update your address","1702339739":"Common mistakes","1703091957":"We collect information about your employment as part of our due diligence obligations, as required by anti-money laundering legislation.","1703712522":"Your payout is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1704656659":"How much experience do you have in CFD trading?","1707264798":"Why can't I see deposited funds in my Deriv account?","1707758392":"Step 100 Index","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1711013665":"Anticipated account turnover","1711016273":"<0>This may take up to 2 minutes. During this time, some services may be unavailable.","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1713633297":"3. If the second trade is also successful, your stake will adjust to 2 USD or 2 units of the initial stake for the next trade.","1714255392":"To enable withdrawals, please complete your financial assessment.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1715680813":"Your contract will expire at exactly 23:59:59 GMT +0 on your selected expiry date.","1717023554":"Resubmit documents","1717474982":"CFDs on financial and derived instruments via a customisable platform.","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1721295446":"Favorites","1722056905":"The document you provided is not supported for your country. Please provide a supported document for your country.","1722888575":"{{mt5_migration_error}}","1723390945":"Your demo {{deriv}} {{type}} account is ready.","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724367774":"You can make a funds transfer once the verification of your account is complete.","1724696797":"You are limited to one fiat account only.","1725958461":"Account number","1726472773":"Function with no return value","1726565314":"Close my account","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732891201":"Sell price","1733711201":"Regulators/external dispute resolution","1734185104":"Balance: %1","1734264460":"Disclaimer","1734521537":"The document you provided appears to be two different types. Please try again or provide another document.","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738094481":"<0>Duration: Ticks 1","1738611950":"About Reverse Martingale","1738681493":"Remove your glasses, if necessary","1739086943":"Wall Street 30","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1741006997":"Yesterday","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743679873":"If you select <0>\"Call\", you’ll earn a <1>payout if the <1>final price is above the <1>strike price at <1>expiry. Otherwise, you won’t receive a payout.","1743902050":"Complete your financial assessment","1744509610":"Just drag the XML file from your computer onto the workspace, and your bot will be loaded accordingly. Alternatively, you can hit Import in Bot Builder, and choose to import your bot from your computer or from your Google Drive.","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747652849":"If you select the take profit feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount throughout the contract duration. Your profit may be more than the amount you entered depending on the market price at closing. You may change your take profit amount up to 15 seconds before expiry.","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1753082252":"This article explores the strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as Forex, Commodities, and Derived Indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","1753183432":"We take all complaints seriously and aim to resolve them as quickly and fairly as possible. If you are unhappy with any aspect of our service, please let us know by submitting a complaint using the guidance below:","1753226544":"remove","1753975551":"Upload passport photo page","1754256229":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_ctrader }} transfers between your Deriv and {{platform_name_ctrader}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1756678453":"break out","1761038852":"Let’s continue with providing proofs of address and identity.","1761254001":"A number","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1768293340":"Contract value","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1770041368":"Experience safer logins","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772396880":"The date of birth on your document doesn’t match your profile.","1777847421":"This is a very common password","1778893716":"Click here","1779144409":"Account verification required","1779519903":"Should be a valid number.","1779801832":"Please update your password accordingly.","1779872677":"Download e-book","1780442963":"Scan the QR code to download {{ platform }}.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783526986":"How do I build a trading bot?","1783740125":"Upload your selfie","1785298924":"D’Alembert formula 1","1786644593":"Supported formats: JPEG, JPG, PNG, PDF, and GIF only","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788515547":"<0/>For more information on submitting a complaint with the Office of the Arbiter for Financial Services, please <1>see their guidance.","1788966083":"01-07-1999","1789273878":"Payout per point","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1791432284":"Search for country","1791926890":"If you select “<0>Higher”, you win the payout if the exit spot is strictly higher than the barrier.","1791971912":"Recent","1792037169":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your {{document_name}}.","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1796787905":"Please upload the following document(s).","1798943788":"You can only make deposits.","1801093206":"Get candle list","1801270786":"Ready to automate your trading strategy without writing any code? You’ve come to the right place.","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806017862":"Max. ticks","1808058682":"Blocks are loaded successfully","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811138041":"Enter a value from {{ value }} to 9.","1811343027":"2. Select your Martingale multiplier. In this example, it is 2.","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812006199":"Identity verification","1812582011":"Connecting to server","1813700208":"Boom 300 Index","1815034361":"alphabetic","1815905959":"DTrader, DBot, SmartTrader, and Binary Bot","1815995250":"Buying contract","1817006592":"All trade types","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1821818748":"Enter Driver License Reference number","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1824292864":"Call","1827607208":"File not uploaded.","1828370654":"Onboarding","1828856382":"If you select “<0>Differs”, you will win the payout if the last digit of the last tick is not the same as your prediction.","1830520348":"{{platform_name_dxtrade}} Password","1831847842":"I confirm that the name and date of birth above match my chosen identity document (see below)","1833499833":"Proof of identity documents upload failed","1836767074":"Search payment agent name","1837533589":"Stop Loss","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1839021527":"Please enter a valid account number. Example: CR123456789","1840721160":"Deriv MT5 latest password requirements","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1843336754":"Select document","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845598565":"The second session concludes upon reaching the aim of one unit of potential profit per session, equivalent to 1 USD. If trading continues, a new session will commence again.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846588117":"Your contract will be closed automatically when your loss reaches {{stop_out_percentage}}% of your stake.","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1851052337":"Place of birth is required.","1851776924":"upper","1854480511":"Cashier is locked","1854874899":"Back to list","1854909245":"Multiplier:","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1856755117":"Pending action required","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1863731653":"To receive your funds, contact the payment agent","1865525612":"No recent transactions.","1866244589":"The entry spot is the first tick for High/Low Ticks.","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869315006":"See how we protect your funds to unlock the cashier.","1869486036":"You receive a <0>payout at <0>expiry if the spot price never touches or breaches the <0>barrier during the contract period. If it does, your contract will be terminated early.","1869787212":"Even","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871377550":"Do you offer pre-built trading bots on Deriv Bot?","1871664426":"Note","1873376454":"This is a price level that you choose. If this barrier is ever crossed, your contract would be terminated.","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874737957":"To trade multipliers, get a Deriv Apps account first.","1874756442":"BVI","1875090343":"Choose a date range","1875702561":"Load or build your bot","1876015808":"Social Security and National Insurance Trust","1876325183":"Minutes","1876333357":"Tax Identification Number is invalid.","1877225775":"Your proof of address is verified","1877832150":"# from end","1878172674":"No, we don't. However, you'll find quick strategies on Deriv Bot that'll help you build your own trading bot for free.","1878189977":"The Martingale strategy involves increasing your stake after each loss to recoup prior losses with a single successful trade.","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1879651964":"<0>Pending verification","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880227067":"Submit passport photo pages","1880377568":"An example of D’Alembert strategy","1880875522":"Create \"get %1\"","1881018702":"hour","1881380263":"Total assets in your account.","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887257727":"R is the number of rounds a trader can sustain given a specific loss threshold.","1887925280":"The document must be recent and include your name and address:","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1893869876":"(lots)","1894667135":"Please verify your proof of address","1896269665":"CFDs on derived and financial instruments.","1899898605":"Maximum size: 8MB","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1904665809":"The Reverse Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","1905032541":"We're now ready to verify your identity","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906213000":"Our system will finish any Deriv Bot trades that are running, and Deriv Bot will not place any new trades.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907423697":"Earn more with Deriv API","1907499654":"Deriv App","1907899646":"Take profit can't be adjusted for ongoing accumulator contracts.","1908023954":"Sorry, an error occurred while processing your request.","1908239019":"Make sure all of the document is in the photo","1908686066":"Appropriateness Test Warning","1909647105":"TRX/USD","1909769048":"median","1910533633":"Get a real account to deposit money and start trading.","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1916129921":"Reverse Martingale","1917178459":"Bank Verification Number","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1918796823":"Please enter a stop loss amount.","1918832194":"No experience","1919030163":"Tips to take a good selfie","1919296368":"2. Select your unit. In this example, it is 2 units or 2 USD.","1919594496":"{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.","1919694313":"To start trading, transfer funds from your Deriv account into this account.","1920217537":"Compare","1920468180":"How to use the SMA block","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1924365090":"Maybe later","1924765698":"Place of birth*","1928930389":"GBP/NOK","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1934450653":"For <0>Contract type, set it to Both.","1938327673":"Deriv {{platform}} <0>{{is_demo}}","1939014728":"How do I remove blocks from the workspace?","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1955219734":"Town/City*","1957759876":"Upload identity document","1958788790":"This is the amount you’ll receive at expiry for every point of change in the underlying price, if the spot price never touches or breaches the barrier throughout the contract duration.","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960240336":"first letter","1964165648":"Connection lost","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1966855430":"Account already exists","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1970060713":"You’ve successfully deleted a bot.","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973910243":"Manage your accounts","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1978218112":"Google Authenticator","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982790875":"Upgrade your <0/><1>{{account_title}} {{platform}} account(s)","1982796981":"Declarations","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983358602":"This policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","1983387308":"Preview","1983480826":"Sign in","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986322868":"When your loss reaches or exceeds this amount, your trade will be closed automatically.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1990331072":"Proof of ownership","1990735316":"Rise Equals","1991055223":"View the market price of your favourite assets.","1991448657":"Don't know your tax identification number? Click <0>here to learn more.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1997313835":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <0>previous spot price. Otherwise, you lose your stake and the trade is terminated.","1999213036":"Enhanced security is just a tap away.","1999346412":"For faster verification, input the same address here as in your proof of address document (see section below)","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2001361785":"1. Start with the initial stake. Let’s say 1 USD.","2001717886":"Demo Standard","2004052487":"Estimating the lifespan of your trades","2007028410":"market, trade type, contract type","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2012139674":"Android: Google password manager.","2014536501":"Card number","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2015878683":"Need help? Contact us via <0>live chat","2017672013":"Please select the country of document issuance.","2018044371":"Multipliers let you trade with leverage and limit your risk to your stake. <0>Learn more","2019596693":"The document was rejected by the Provider.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023546580":"Your account will be available for trading once the verification of your account is complete.","2023659183":"Student","2023762268":"I prefer another trading website.","2025339348":"Move away from direct light — no glare","2027441253":"Why do we collect this?","2027625329":"Simple Moving Average Array (SMAA)","2027638150":"Upgrade","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037906477":"get sub-list from #","2038562422":"TIN is required.","2039198937":"Maximum stake: The maximum amount you are willing to pay to enter a single trade. The stake for your next trade will reset to the initial stake if it exceeds this value. This is an optional risk management parameter.","2042023623":"We’re reviewing your documents. This should take about 5 minutes.","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042115724":"Upload a screenshot of your account and personal details page with your name, account number, phone number, and email address.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2046273837":"Last tick","2046577663":"Import or choose your bot","2048110615":"Email address*","2048134463":"File size exceeded.","2049386104":"We need you to submit these in order to get this account:","2050170533":"Tick list","2051249190":"Add funds and start trading","2051558666":"View transaction history","2051596653":"Demo Zero Spread BVI","2052022586":"To enhance your MT5 account security we have upgraded our password policy.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2056369950":"<0>To complete your Wallet setup, log out and then log in again.","2056526458":"Get real account","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2059365224":"Yes, you can get started with a pre-built bot using the Quick strategy feature. You’ll find some of the most popular trading strategies here: Martingale, D'Alembert, and Oscar's Grind. Just select the strategy, enter your trade parameters, and your bot will be created for you. You can always tweak the parameters later.","2059753381":"Why did my verification fail?","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063812316":"Text Statement","2063890788":"Cancelled","2066978677":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0 /> {{opening_date}}.","2067903936":"Driving licence","2070002739":"Don’t accept","2070345146":"When opening a leveraged CFD trade.","2070518923":"Import your bot or tap Quick Strategies to choose from the ready-to-use bot templates.","2070752475":"Regulatory Information","2070858497":"Your document appears to be a screenshot.","2071043849":"Browse","2074207096":"How to create a passkey?","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2074713563":"4.2. Submission of a complaint","2079925695":"Unit: The number of units that are added in the event of a trade resulting in loss or the number of units removed in the event of a trade resulting in profit. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2081622549":"Must be a number higher than {{ min }}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086048243":"Certificate of incorporation","2086792088":"Both barriers should be relative or absolute","2088344208":"Forex (standard), stock indices, commodities, cryptocurrencies, stocks, ETFs, synthetic indices, basket indices and derived FX","2088735355":"Your session and login limits","2089087110":"Basket indices","2089395053":"Unit","2089581483":"Expires on","2090650973":"The spot price may change by the time your order reaches our servers. When this happens, your payout may be affected.","2091671594":"Status","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2097815211":"Number of rounds (R) = 10","2097932389":"Upload 2 separate screenshots from the personal details page and the account page via <0>https://app.astropay.com/profile","2100713124":"account","2100912278":"4. If a trade ends in a loss, the stake for the following trade will be reset to the initial stake amount of 1 USD.","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104364680":"Please switch to your demo account to run your Deriv Bot.","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2107882050":"The back of your document appears to be missing. Please include both sides of your identity document.","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2113321581":"Add a Deriv Gaming account","2114766645":"Some trade types are unavailable for {{symbol}}.","2115223095":"Loss","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117489390":"Auto update in {{ remaining }} seconds","2118292085":"<0>Note: You’ll receive an email when your deposit starts being processed.","2119449126":"Example output of the below example will be:","2119710534":"FAQ","2121227568":"NEO/USD","2122152120":"Assets","2127564856":"Withdrawals are locked","2128919448":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price. We won’t offer a contract value if the remaining duration is below 15 seconds or if the contract duration is in ticks.","2129807378":"Update profile","2133075559":"This means after 10 rounds of consecutive losses, this trader will lose 100 USD. This reaches the loss threshold of 100 USD, stopping the bot.","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2136480755":"Some details in your document appear to be invalid, missing, or unclear.","2137645254":"If you select “<0>Call”, you’ll earn a <1>payout if the <2>final price is above the <3>strike price at <4>expiry. Otherwise, you won’t receive a payout.","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146698770":"Pro tip: You can also click and drag out the desired block","2146751355":"We use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers for Volatility Index, Basket Indices, Jump Indices and Crash/Boom Indices.","2146892766":"Binary options trading experience","2147244655":"How do I import my own trading bot into Deriv Bot?","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-826420669":"Make sure","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-1120954663":"First name*","-1659980292":"First name","-962979523":"Your {{ field_name }} as in your identity document","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-32386760":"Name","-766265812":"first name","-1857534296":"John","-1282749116":"last name","-1485480657":"Other details","-1784741577":"date of birth","-1702919018":"Second line of address (optional)","-1315410953":"State/Province","-2040322967":"Citizenship","-344715612":"Employment status*","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-946282997":"Additional information","-1315571766":"Place of birth","-789291456":"Tax residence*","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1387062433":"Account opening reason","-222283483":"Account opening reason*","-307865807":"Risk Tolerance Warning","-690100729":"Yes, I understand the risk.","-2010628430":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, you must confirm that you understand your capital is at risk.","-863770104":"Please note that by clicking ‘OK’, you may be exposing yourself to risks. You may not have the knowledge or experience to properly assess or mitigate these risks, which may be significant, including the risk of losing the entire sum you have invested.","-684271315":"OK","-1292808093":"Trading Experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-816263501":"Only letters, numbers, space and hyphen are allowed.","-755626951":"Complete your address details","-1024240099":"Address","-1534917661":"Select your preferred currency","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-1030759620":"Government Officers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-654781670":"Primary","-1717373258":"Secondary","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-477761028":"Voter ID","-1466346630":"CPF","-1161338910":"First name is required.","-1629185446":"Enter no more than 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-212167954":"Tax Identification Number is not properly formatted.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-204765990":"Terms of use","-739367071":"Employed","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-1116008222":"You should enter 9-35 numbers.","-1995979930":"First line of address is required.","-703454156":"Please enter a Postal/ZIP code under 20 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-1103497546":"Tax return","-700600899":"Business proof of address","-1073862586":"Memorandum","-1823328095":"Authorization letter","-397487797":"Enter your full card number","-1376950117":"That file format isn't supported. Please upload .pdf, .png, .jpg, or .jpeg files only.","-612752984":"These are default limits that we apply to your accounts.","-1498206510":"Account limits","-1411635770":"Learn more about account limits","-1340125291":"Done","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-976258774":"Not set","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-173346300":"Maximum daily turnover","-138380129":"Total withdrawal allowed","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-506122621":"Please take a moment to update your information now.","-1106259572":"Don't know your tax identification number? <1 />Click <0>here to learn more.","-252665911":"Place of birth{{required}}","-859814496":"Tax residence{{required}}","-237940902":"Tax Identification number{{required}}","-919191810":"Please fill in tax residence.","-270569590":"Intended use of account{{required}}","-2120290581":"Intended use of account is required.","-594456225":"Second line of address","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-1076138910":"Trade","-1666909852":"Payments","-488597603":"Trading information","-605778668":"Never","-1628008897":"Token","-1238499897":"Last Used","-2087317410":"Oops, something went wrong.","-184202848":"Upload file","-863586176":"Drag and drop a file or click to browse your files.","-370334393":"Click here to browse your files.","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-509054266":"Anticipated annual turnover","-1117345066":"Choose the document type","-1634507018":"Enter your {{document_name}}","-1237846864":"Verify again","-39187636":"{{index}}.","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1113902570":"Details","-2142540205":"It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.","-1451334536":"Continue trading","-251603364":"Your document for proof of address is expired. <0/>Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-329713179":"Ok","-2145244263":"This field is required","-1500958859":"Verify","-839094775":"Back","-1813671961":"Your identity verification failed because:","-2097808873":"We were unable to verify your ID with the details you provided. ","-1652371224":"Your profile is updated","-504784172":"Your document has been submitted","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1044962593":"Upload Document","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-155705811":"A clear colour photo or scanned image","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-1949501500":"First, enter your {{label}}.","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-841187054":"Try Again","-856213726":"You must also submit a proof of address.","-552371330":"We were unable to verify your income. <0 /> Please check the email we've sent you for further information.","-978467455":"Limit reached","-361316523":"You have reached the maximum number of allowed attempts for submitting proof of income. <0 /> Please check the email we've sent you for further information.","-1785967427":"We'll review your documents and notify you of its status within 7 working days.","-987011273":"Your proof of ownership isn't required.","-808299796":"You are not required to submit proof of ownership at this time. We will inform you if proof of ownership is required in the future.","-179726573":"We’ve received your proof of ownership.","-813779897":"Proof of ownership verification passed.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-47815161":"Please include at least 1 special character such as ( _ @ ? ! / # ) in your password.","-1313806160":"Please request a new password and check your email for the new token.","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-507633532":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character such as ( _ @ ? ! / # ).","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-2005211699":"Create","-1597186502":"Reset {{platform}} password","-638756912":"Black out digits 7 to 12 of the card number that’s shown on the front of your debit/credit card.⁤","-996691262":"We’ve introduced these limits to encourage <0>responsible trading. They are optional, and you can adjust them anytime.","-2079276011":"These limits apply to your multipliers trades only. For example, <0>maximum total loss refers to the losses on your multipliers trades.","-2116570030":"If you want to adjust your limits, <0>contact us via live chat. We’ll make the adjustments within 24 hours.","-1389915983":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or log in to resume trading. If you don’t want to set a specific limit, leave the field empty.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-1088698009":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-142444667":"Please click on the link in the email to change your Deriv MT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-474419287":"FATCA declaration","-1101737402":"Please select*","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1035494182":"You acknowledge that, subject to the Company's discretion, applicable regulations, and internal checks being fulfilled, we will open an account for you and allow you to deposit funds during the client acceptance procedure. However, until the verification of your account is completed, you will not be able to trade, withdraw or make further deposits. If you do not provide relevant documents within 30-days, we will refund the deposited amount through the same payment method you used to deposit.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-1209644365":"I hereby confirm that my request for opening an account with Deriv Investments (Europe) Ltd is made on my own initiative.","-740157281":"Trading Experience Assessment","-1720468017":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you.","-1685104463":"* This is required","-186841084":"Change your login email","-907403572":"To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.","-1850792730":"Unlink from {{identifier_title}}","-428335668":"You will need to set a password to complete the process.","-1232613003":"<0>Verification failed. <1>Why?","-805775852":"<0>Needs verification.<1>Verify now","-1983989074":"<0>No new positions","-1196936955":"Upload a screenshot of your name and email address from the personal information section.","-1286823855":"Upload your mobile bill statement showing your name and phone number.","-1309548471":"Upload your bank statement showing your name and account details.","-1410396115":"Upload a photo showing your name and the first six and last four digits of your card number. If the card does not display your name, upload the bank statement showing your name and card number in the transaction history.","-3805155":"Upload a screenshot of either of the following to process the transaction:","-1523487566":"- your account profile section on the website","-613062596":"- the Account Information page on the app","-1718304498":"User ID","-609424336":"Upload a screenshot of your name, account number, and email address from the personal details section of the app or profile section of your account on the website.","-1954436643":"Upload a screenshot of your username on the General Information page at <0>https://onlinenaira.com/members/index.htm","-79853954":"Upload a screenshot of your account number and phone number on the Bank Account/Mobile wallet page at <0>https://onlinenaira.com/members/bank.htm","-1192882870":"Upload a screenshot of your name and account number from the personal details section.","-818898181":"Name in document doesn’t match your Deriv profile.","-310316375":"Address in document doesn’t match address you entered above.","-485368404":"Document issued more than 6-months ago.","-91160765":"Document issued more than 12-months ago.","-367016488":"Blurry document. All information must be clear and visible.","-1957076143":"Cropped document. All information must be clear and visible.","-1576856758":"An account with these details already exists. Please make sure the details you entered are correct as only one real account is allowed per client. If this is a mistake, contact us via <0>live chat.","-1792723131":"To avoid delays, enter your <0>date of birth exactly as it appears on your {{document_name}}.","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-1231402474":"Connected apps are authorised applications associated with your account through your API token or the OAuth authorisation process. They can act on your behalf within the limitations that you have set.","-506083843":"As a user, you are responsible for sharing access and for actions that occur in your account (even if they were initiated by a third-party app on your behalf).","-831752682":"Please note that only third-party apps will be displayed on this page. Official Deriv apps will not appear here.","-915844096":"US citizenship or lawful permanent resident (green card) status","-208714573":"An “in care of” address or a “hold mail” address that is the sole address with respect to the client","-1082633433":"A power of attorney or signatory authority granted to a person with a US address.","-231863107":"No","-1858215754":"The document must be up-to-date and signed by the issuance authority.","-718917527":"Invalid or incomplete documents shall be rejected.","-1526404112":"Utility bill: electricity, water, gas, or landline phone bill.","-537552700":"Home rental agreement: valid and current agreement.","-506510414":"Date and time","-1708927037":"IP address","-189310067":"Account closed","-849320995":"Assessments","-773766766":"Email and passwords","-1144318594":"Passkeys","-1466827732":"Self exclusion","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-526636259":"Error 404","-870902742":"How much knowledge and experience do you have in relation to online trading?","-1929477717":"I have an academic degree, professional certification, and/or work experience related to financial services.","-1540148863":"I have attended seminars, training, and/or workshops related to trading.","-922751756":"Less than a year","-542986255":"None","-1337206552":"In your understanding, CFD trading allows you to","-456863190":"Place a position on the price movement of an asset where the outcome is a fixed return or nothing at all.","-1314683258":"Make a long-term investment for a guaranteed profit.","-1546090184":"How does leverage affect CFD trading?","-1636427115":"Leverage helps to mitigate risk.","-800221491":"Leverage guarantees profits.","-811839563":"Leverage lets you open large positions for a fraction of trade value, which may result in increased profit or loss.","-1185193552":"Close your trade automatically when the loss is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1046354":"Close your trade automatically when the profit is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1842858448":"Make a guaranteed profit on your trade.","-860053164":"When trading multipliers.","-1250327770":"When buying shares of a company.","-1222388581":"All of the above.","-1592318047":"See example","-1694758788":"Enter your document number","-1176889260":"Please select a document type.","-274764613":"Driver License Reference number","-1265050949":"identity document","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-254792921":"You can only make deposits at the moment. To enable withdrawals, please complete your financial assessment.","-1437017790":"Financial information","-70342544":"We’re legally obliged to ask for your financial information.","-39038029":"Trading experience","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-136976514":"Country of residence*","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2068064150":"Get updates about Deriv products, services and events.","-1558679249":"Please make sure your information is correct or it may affect your trading experience.","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-807767876":"Note:","-1117963487":"Name your token and click on 'Create' to generate your token.","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-2125635811":"Please withdraw your funds from the following {{platform_name}} account(s):","-577445413":"Please close your positions in the following {{platform_name}} account(s):","-1219849101":"Please select at least one reason","-9323953":"Remaining characters: {{remaining_characters}}","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-937707753":"Go Back","-771109503":"Use our powerful, flexible, and free API to build a custom trading platform for yourself or for your business.","-1815044949":"You currently don't have any third-party authorised apps associated with your account.","-1699100421":"What are connected apps?","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-1468863262":"{{action}}","-727433417":"{{status}}","-1814836151":"What are passkeys?","-1275937234":"Unlock your account like your phone - with biometrics, face scan or PIN.","-587750445":"Extra security layer.","-642452561":"Shields against unauthorised access and phishing.","-1654043401":"You can create one passkey per device.","-1411242065":"Where are passkeys saved?","-258752017":"What happens if my Deriv account email is changed?","-634268263":"Sign in to Deriv with your existing passkey.","-1700177761":"Create passkey","-1405679241":"Stored on: ","-567193224":"Rename","-1140319320":"Your account is now secured with a passkey.<0/>Manage your passkey through your<0/>Deriv account settings.","-592543249":"Add more passkeys","-331060101":"Passkey setup failed","-1036903080":"We’re experiencing a temporary issue in processing your request. Please try again later.","-713875531":"Enable bluetooth.","-1729774899":"Sign in to your Google or iCloud account.","-684009726":"Edit passkey","-1004529240":"Passkey name","-1728732301":"Effortless login with passkeys","-1708254107":"Enable Bluetooth.","-613368504":"Tips:","-1897886029":"Before using passkey:","-1893497054":"Only 3-30 characters allowed.","-80717068":"Apps you have linked to your <0>Deriv password:","-340060402":"Your Deriv X password is for logging in to your Deriv X accounts on the web and mobile apps.","-619126443":"Use the <0>Deriv password to log in to {{brand_website_name}} and {{platform_name_trader}}.","-623760979":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_trader}} and {{platform_name_go}}.","-459147994":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, {{platform_name_dbot}} and {{platform_name_ctrader}}.","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-2131200819":"Disable","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-2067796458":"Authentication code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-1043340733":"Proof of address documents upload failed","-890084320":"Save and submit","-30772747":"Your personal details have been saved successfully.","-2021135479":"This field is required.","-1002044401":"Select your document*","-1272489896":"Please complete this field.","-721346138":"The options and multipliers trading platform.","-1874136267":"The ultimate bot trading platform.","-415943890":"The legacy options trading platform.","-673722343":"The legacy bot trading platform.","-2018495421":"The mobile app for trading multipliers and accumulators.","-897826065":"The multipliers trading platform.","-2115275974":"CFDs","-1585707873":"Financial Commission","-199154602":"Vanuatu Financial Services Commission","-191165775":"Malta Financial Services Authority","-194969520":"Counterparty company","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1131400885":"Deriv Investments (Europe) Limited","-1471207907":"All assets","-781132577":"Leverage","-1591882610":"Synthetics","-543177967":"Stock indices","-362324454":"Commodities","-1959484303":"Cryptocurrencies","-1071336803":"Platform","-1879666853":"Deriv MT5","-820028470":"Options & Multipliers","-1210359945":"Transfer funds to your accounts","-1926387364":"We’ve sent your e-book to your email. You can also download it here.","-1057002564":"<0>We’re unable to upgrade you to Wallets at this time and are working to get this fixed as soon as we can. Please <1>try again<0>.","-1424352390":"<0>Wallets<1> — A smarter way to manage your funds","-1749409935":"Let's go","-145462920":"Deriv cTrader","-982095728":"Get","-1790089996":"NEW!","-1473281803":"Predict the market, profit if you’re right, risk only what you put in. <0>Learn more","-2134770229":"Total assets in your Deriv Apps and Deriv MT5 CFDs demo account.","-1277942366":"Total assets","-1255879419":"Trader's Hub","-493788773":"Non-EU","-673837884":"EU","-230566990":"The following documents you submitted did not pass our checks:","-846812148":"Proof of address.","-1146027991":"If you’d like to get the {{from_account}} account, resubmit these documents.","-710685402":"No new positions","-1445744852":"You can no longer open new positions with your {{from_account}} account. Please use your {{to_account}} account to open new positions.","-1699909965":"or ","-2127865736":"Your {{from_account}} account will be archived after 30 days of inactivity. You can still access your trade history until the account is archived.","-2055865877":"Non-EU regulation","-643108528":"Non-EU and EU regulation","-1815067117":"Start your trading journey","-1807332199":"Set up your real account","-1002556560":"We’re unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-90090878":"Use Wallets to manage your funds across different currencies effortlessly.","-280236366":"Enable now","-1186807402":"Transfer","-744999940":"Deriv account","-766186087":"{{trustScore}} out of 5 based on {{numberOfReviews}} reviews","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1975494965":"Cashier","-42592103":"Deposit cryptocurrencies","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-520142572":"Cashier is currently down for maintenance","-1552080215":"Please check back in a few minutes.<0>Thank you for your patience.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-954082208":"Your cashier is currently locked. Please contact us via <0>live chat to find out how to unlock it.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-2027907316":"You can make a withdrawal once the verification of your account is complete.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-599998434":"You cannot make a fund transfer as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-1443721737":"Your cashier is locked. See <0>how we protect your funds before you proceed.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-1923809087":"Unfortunately, you can only make deposits. Please contact us via <0>live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-1272778997":"We've sent you an email.","-89973258":"Resend email in {{seconds}}s","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1294455996":"Deriv P2P unavailable","-1838982691":"UNKNOWN","-532693866":"Something went wrong. Please refresh the page and try again.","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-203002433":"Deposit now","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-379487596":"{{selected_percentage}}% of available balance ({{format_amount}} {{currency__display_code}})","-1957498244":"more","-1059419768":"Notes","-646217148":"We process your deposits internally within 24 hours (depending on internal checks and your payment method). If you don't see your funds reflected after this time, please contact us via <0>live chat with proof of your transaction, including the amount, date, and time.","-1901728198":"What do I do if I have reached my deposit limit?","-631829734":"<0>Insufficient balance: Please ensure you have sufficient funds in your card/e-wallet. If the problem persists, please contact your bank for help.","-1072505739":"<0>3D secure invalid/redirected: Please contact your bank for an OTP.","-180339757":"<0>Restricted card: Please use a locally issued card. ","-645281699":"<0>Customer cancelled payment: Please try again after 1 hour.","-102611677":"Can I use someone else's payment method?","-951380652":"No, you cannot use someone else's payment method to deposit into Deriv. If you use another person's payment method, your account will be suspended (if they are on Deriv, their account will also be suspended). If you suspect that someone has used your payment method, let us know through <0>live chat with your proof of ownership.","-819152742":"If you have used a different payment method to make your deposit, you cannot withdraw via a payment agent. However, if you have used both a payment agent and another payment method (for example, an e-wallet) to deposit, you have to withdraw via the e-wallet first up to your original deposited amount. After that, you can use a payment agent to make a withdrawal. If your original payment method is not available for withdrawals, please let us know through <0>live chat for assistance.","-820131811":"Can I withdraw using a different method?","-1656533423":"No, withdrawals must be made using the same method you used for your deposit.","-190084602":"Transaction","-1995606668":"Amount","-2024290965":"Confirmations","-811190405":"Time","-728508487":"{{currency}} recent transactions","-1984478597":"The details of this transaction is available on CoinsPaid.","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-1787304306":"Deriv P2P","-174976899":"P2P verification","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-922143389":"Deriv P2P is currently unavailable in this currency.","-1310327711":"Deriv P2P is currently unavailable in your country.","-1463156905":"Learn more about payment methods","-685073712":"This is your <0>{{currency}} account {{loginid}}.","-1547606079":"We accept the following cryptocurrencies:","-1517325716":"Deposit via the following payment methods:","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-917092420":"To change your account currency, contact us via <0>live chat.","-515809216":"Send only {{currency_name}} ({{currency_code}}) to this address.","-748636591":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, a fee is applied.","-1589407981":"To avoid loss of funds:","-1042704302":"Make sure to copy your Deriv account address correctly into your crypto wallet.","-2108344100":"Looking for a way to buy cryptocurrencies? <0>Try Fiat onramp.","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-91824739":"Deposit {{currency}}","-523804269":"{{amount}} {{currency}} on {{date}}","-494847428":"Address: <0>{{value}}","-1117977576":"Confirmations: <0>{{value}}","-1935946851":"View more","-1744490898":"Unfortunately, we cannot retrieve the information at this time. ","-338505133":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, between your Deriv fiat and {{platform_name_ctrader}} accounts, and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1339063554":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_ctrader}}, and {{platform_name_dxtrade}} accounts.","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-855721928":"Needs verification","-908402700":"Verification failed","-1866405488":"Deriv cTrader accounts","-1344870129":"Deriv accounts","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-1155970854":"You have reached the maximum daily transfers. Please try again tomorrow.","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1949883551":"You only have one account","-1149845849":"Back to Trader's Hub","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1254233806":"You've transferred","-953082600":"Some payment methods may not be listed here but payment agents may still offer them. If you can’t find your favourite method, contact the payment agents directly to check further.","-1491457729":"All payment methods","-142563298":"Contact your preferred payment agent for payment instructions and make your deposit.","-352134412":"Transfer limit","-1023961762":"Commission on deposits","-552873274":"Commission on withdrawal","-880645086":"Withdrawal amount","-118683067":"Withdrawal limits: <0 />-<1 />","-1125090734":"Important notice to receive your funds","-1924707324":"View transaction","-1474202916":"Make a new withdrawal","-511423158":"Enter the payment agent account number","-2059278156":"Note: {{website_name}} does not charge any transfer fees.","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-873886836":"Do not enter an address linked to an initial coin offering (ICO) purchase or crowdsale. If you do, the initial coin offering (ICO) tokens will not be credited into your account.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-1430080977":"Priority withdrawal","-1046088265":"Withdrawal amount:","-694919384":"Transaction fee","-1358465817":"Fee calculated at {{ time_stamp }}","-1744540779":"Amount received:","-38063175":"{{account_text}} wallet","-652125858":"Amount received","-705272444":"Upload a proof of identity to verify your identity","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-2067572496":"You’ve just stopped the bot. Any open contracts can be viewed on the Reports page.","-992003496":"Changes you make will not affect your running bot.","-1778025545":"You’ve successfully imported a bot.","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-179005984":"Save","-610059687":"Exploring the D’Alembert strategy in Deriv Bot","-1226666341":"The D'Alembert strategy involves increasing your stake after a losing trade and reducing it after a successful trade by a predetermined number of units.","-312844882":"Initial stake: The amount that you are willing to place as a stake to enter a trade. This is the starting point for any changes in stake depending on the dynamic of the strategy being used.","-1173302981":"1. Start with the initial stake. In this example, we’ll use 1 USD.","-1540106116":"Profit and loss thresholds","-894905768":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss thresholds are reached. It's a form of risk management that can potentially enhance returns. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1946134465":"Where:","-248283982":"B is the loss threshold.","-1148521416":"f is the unit increment.","-211800490":"D’Alembert formula 2","-1772692202":"This formula helps you plan your trades by considering the amount of money you have and your comfort level with risk. It involves determining your loss threshold and the initial stake you want to trade with. Then, you use this formula to calculate the number of rounds you can trade. This process provides insight into stake sizing and expectations.","-2107238266":"The D'Alembert system offers more balanced trading through controlled stake progression. With prudent risk management like stake limits, it can be effectively automated in Deriv Bot. However, traders should thoroughly assess their risk appetite, test strategies on a demo account to align with their trading style before trading with real money. This allows optimising the approach and striking a balance between potential gains and losses whilst managing risk.","-500873566":"Disclaimer:","-344769349":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-818800551":"Exploring the Martingale strategy in Deriv Bot","-533490374":"These are the trade parameters used in Deriv Bot with Martingale strategy.","-1507161059":"Multiplier: The multiplier used to increase your stake if you're losing a trade. The value must be greater than 1.","-1333404686":"An example of Martingale strategy","-1755877136":"3. If the first trade ends in a loss, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every losing trade.","-1297651002":"If you're about to start trading and haven't established a Maximum Stake as part of your risk management strategy, you can determine how long your funds will last by employing the Martingale strategy. Simply use this formula.","-46865201":"Martingale formula 1","-116397598":"m is the Martingale multiplier.","-658161609":"Number of rounds, R ≈ 9.965","-288082521":"This means that after 10 rounds of consecutive losses, this trader will lose 1023 USD which exceeds the loss threshold of 1000 USD, stopping the bot.","-770387160":"The Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","-1901073152":"These are the trade parameters used for Oscar’s Grind strategy in Deriv Bot.","-1575153036":"An example of Oscar’s Grind strategy","-732418614":"The table above demonstrates this principle by showing that when a successful trade occurs and meets the target of one unit of potential profit which is 1 USD in this example, the session ends. If trading continues, a new session will begin.","-106266344":"Principle 3: The stake adjusts to the gap size between current loss and the target profit for the session","-492908094":"In round 7, the stake is adjusted downwards from 2 USD to 1 USD, to meet the target profit of 1 USD.","-90079299":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss threshold is reached. This is a form of risk management that can potentially boost successful trades whilst limiting the impact of loss. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1549673884":"The Oscar's Grind strategy provides a disciplined approach for incremental gains through systematic stake progression. When integrated into Deriv Bot with proper risk management like profit or loss thresholds, it offers traders a potentially powerful automated trading technique. However, traders should first thoroughly assess their risk tolerance and first try trading on a demo account in order to familiarise with the strategy before trading with real funds.","-655650222":"Exploring the Reverse D’Alembert strategy in Deriv Bot","-1864807973":"The Reverse D'Alembert strategy involves increasing your stake after a successful trade and reducing it after a losing trade by a predetermined number of units.","-809681645":"These are the trade parameters used in Deriv Bot with Reverse D’Alembert strategy.","-1239374257":"An example of Reverse D’Alembert strategy","-309821442":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-1576691912":"This article explores the Reverse Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","-1934849823":"These are the trade parameters used in Deriv Bot with Reverse Martingale strategy.","-1021919630":"Multiplier: The multiplier used to increase your stake if your trade is successful. The value must be greater than 1.","-760516362":"3. If the first trade is a successful trade, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every successful trade.","-1410950365":"Exploring the 1-3-2-6 strategy in Deriv Bot","-1175255072":"These are the trade parameters used in Deriv Bot with 1-3-2-6 strategy.","-183884527":"An example of 1-3-2-6 strategy","-275617819":"4. However, if any trade results in a loss, your stake will reset back to the initial stake of 1 USD for the next trade. The third trade results in a loss hence the stake resets to the initial stake of 1 USD for the next trade.","-719846465":"5. Upon reaching the initial stake, if the next trade still results in a loss, your stake will remain at the initial stake of 1 USD. This strategy will minimally trade at the initial stake. Refer to the fourth and fifth trade.","-1452746011":"The 1-3-2-6 strategy in trading may offer substantial gains but also comes with significant risks. Each stake is independent, and the strategy does not increase your chances of successful trades in the long run. If you encounter a series of losses, the strategy can lead to significant losses. Therefore, it is crucial for traders to assess their risk tolerance, practice in a demo account, utilise profit and loss thresholds, and fully comprehend the strategy before engaging in real-money trading.","-1016171176":"Asset","-138833194":"The underlying market your bot will trade with this strategy.","-621128676":"Trade type","-399349239":"Your bot will use this trade type for every run","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-447853970":"Loss threshold","-33106112":"The size used to multiply the stake after a successful trade for the next trade.","-1503301801":"The value must be equal or greater than {{ min }}","-1596504046":"Number of unit(s) to be added to the next trade after a successful trade. One unit is equivalent to the amount of initial stake.","-1521098535":"Max stake","-1448426542":"The stake for your next trade will reset to the initial stake if it exceeds this value.","-993953307":"Your prediction of the last digit of the asset price.","-1305281529":"D’Alembert","-1842451303":"Welcome to Deriv Bot!","-1391310674":"Check out these guides and FAQs to learn more about building your bot:","-2066779239":"FAQs","-280324365":"What is Deriv Bot?","-155173714":"Let’s build a bot!","-2093569327":"How to build a basic trading bot with Deriv Bot","-2072114761":"How to use Martingale strategy on Deriv Bot","-1919212468":"3. You can also search for the blocks you want using the search bar above the categories.","-1800386057":"For more info, check out this blog post on the basics of building a trading bot.","-980360663":"3. Choose the block you want and drag it to the workspace.","-1493168314":"What is a quick strategy?","-1680391945":"Using a quick strategy","-1177914473":"How do I save my strategy?","-271986909":"In Bot Builder, hit Save on the toolbar at the top to download your bot. Give your bot a name, and choose to download your bot to your device or Google Drive. Your bot will be downloaded as an XML file.","-1149045595":"1. After hitting Import, select Local and click Continue.","-288041546":"2. Select your XML file and hit Open.","-2127548288":"3. Your bot will be loaded accordingly.","-1311297611":"1. After hitting Import, select Google Drive and click Continue.","-1549564044":"How do I reset the workspace?","-1127331928":"In Bot Builder, hit Reset on the toolbar at the top. This will clear the workspace. Please note that any unsaved changes will be lost.","-1720444288":"How do I control my losses with Deriv Bot?","-1142295124":"There are several ways to control your losses with Deriv Bot. Here’s a simple example of how you can implement loss control in your strategy:","-2129119462":"1. Create the following variables and place them under Run once at start:","-1918487001":"Example:","-468926787":"This is how your trade parameters, variables, and trade options should look like:","-1565344891":"Can I run Deriv Bot on multiple tabs in my web browser?","-213872712":"No, we don't offer cryptocurrencies on Deriv Bot.","-2147346223":"In which countries is Deriv Bot available?","-792737139":"We offer our services in all countries, except for the ones mentioned in our terms and conditions.","-352345777":"What are the most popular strategies for automated trading?","-552392096":"Three of the most commonly used strategies in automated trading are Martingale, D'Alembert, and Oscar's Grind — you can find them all ready-made and waiting for you in Deriv Bot.","-1630262763":"About Martingale","-413928457":"About Oscar's Grind","-1497015866":"About Reverse D’Alembert","-437005403":"About 1-3-2-6","-590765322":"Unfortunately, this trading platform is not available for EU Deriv account. Please switch to a non-EU account to continue trading.","-2110207996":"Deriv Bot is unavailable for this account","-971295844":"Switch to another account","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-1223145005":"Loss amount: {{profit}}","-1206212388":"Welcome back! Your messages have been restored. You are using your {{current_currency}} account.","-1724342053":"You are using your {{current_currency}} account.","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-555886064":"Won","-529060972":"Lost","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-224804428":"Transactions","-287223248":"No transaction or activity yet.","-418247251":"Download your journal.","-2123571162":"Download","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-558594655":"The bot is not running","-478946875":"The stats are cleared","-999254545":"All messages are filtered out","-934909826":"Load strategy","-2005347537":"Importing XML files from Binary Bot and other third-party platforms may take longer.","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-24780060":"When you’re ready to trade, hit ","-2147110353":". You’ll be able to track your bot’s performance here.","-1442034178":"Contract bought","-2020280751":"Bot is stopping","-1436403979":"Contract closed","-411060180":"TradingView Chart","-627895223":"Exit spot","-2140412463":"Buy price","-1299484872":"Account","-2004386410":"Win","-266502731":"Transactions detailed summary","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-596238067":"Entry/Exit spot","-1823621139":"Quick Strategy","-1782602933":"Choose a template below and set your trade parameters.","-315611205":"Strategy","-1524489375":"(optional)","-150224710":"Yes, continue","-475765963":"Edit the amount","-1349897832":"Do not show this message again.","-984512425":"Minimum duration: {{ value }}","-2084091453":"The value must be equal or greater than {{ value }}","-657364297":"The value must be equal or less than {{ value }}","-1696412885":"Import","-320197558":"Sort blocks","-939764287":"Charts","-1566369363":"Zoom out","-1285759343":"Search","-1291088318":"Purchase conditions","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1692205739":"Import a bot from your computer or Google Drive, build it from scratch, or start with a quick strategy.","-1150390589":"Last modified","-1393876942":"Your bots:","-1545070554":"Delete bot","-1972599670":"Your bot will be permanently deleted when you hit ","-1692956623":"Yes, delete.","-573479616":"Are you sure you want to delete it?","-786915692":"You are connected to Google Drive","-1256971627":"To import your bot from your Google Drive, you'll need to sign in to your Google account.","-1233084347":"To know how Google Drive handles your data, please review Deriv’s <0>Privacy policy.","-1150107517":"Connect","-767342552":"Enter your bot name, choose to save on your computer or Google Drive, and hit ","-1372891985":"Save.","-1003476709":"Save as collection","-636521735":"Save strategy","-1953880747":"Stop my bot","-1899230001":"Stopping the current bot will load the Quick Strategy you just created to the workspace.","-2131847097":"Any open contracts can be viewed on the ","-563774117":"Dashboard","-683790172":"Now, <0>run the bot to test out the strategy.","-1127164953":"Hi! Hit <0>Start for a quick tour.","-358288026":"Note: You can also find this tutorial in the <0>Tutorials tab.","-129587613":"Got it, thanks!","-1793577405":"Build from scratch","-358753028":"Create your bot using our drag-and-drop blocks or click Quick Strategy to choose from the ready-to-use bot templates.","-1212601535":"Monitor the market","-21136101":"See how your bot is doing in real-time.","-631097919":"Click <0>Run when you want to start trading, and click <0>Stop when you want to stop.","-1999747212":"Want to retake the tour?","-782992165":"Step 1 :","-1207872534":"First, set the <0>Trade parameters block.","-1656388044":"First, set <0>Market to Derived > Continuous Indices > Volatility 100 (1s) Index.","-1706298865":"Then, set <0>Trade type to Up/Down > Rise/Fall.","-1834358537":"For <0>Default candle interval, set it to 1 minute","-1940971254":"For <0>Trade options, set it as below:","-512839354":"<0>Stake: USD 10 (min: 0.35 - max: 50000)","-753745278":"Step 2 :","-1056713679":"Then, set the <0>Purchase conditions block.","-245497823":"<0>2. Purchase conditions:","-916770284":"<0>Purchase: Rise","-758077259":"Step 3 :","-677396944":"Step 4 :","-295975118":"Next, go to <0>Utility tab under the Blocks menu. Tap the drop-down arrow and hit <0>Loops.","-698493945":"Step 5 :","-1992994687":"Now, tap the <0>Analysis drop-down arrow and hit <0>Contract.","-1844492873":"Go to the <0>Last trade result block and click + icon to add the <0>Result is Win block to the workspace.","-1547091772":"Then, drag the <0>Result is win into the empty slot next to <0>repeat until block.","-736400802":"Step 6 :","-732067680":"Finally, drag and add the whole <0>Repeat block to the <0>Restart trading conditions block.","-1411787252":"Step 1","-1109392787":"Learn how to build your bot from scratch using a simple strategy.","-1263822623":"You can import a bot from your mobile device or from Google drive, see a preview in the bot builder, and start trading by running the bot.","-563921656":"Bot Builder guide","-1596172043":"Quick strategy guides","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-1717650468":"Online","-1309011360":"Open positions","-1597214874":"Trade table","-1929724703":"Compare CFD accounts","-883103549":"Account deactivated","-45873457":"NEW","-1837059346":"Buy / Sell","-1845037007":"Advertiser's page","-494667560":"Orders","-679691613":"My ads","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-377375279":"Standard","-1582979384":"Standard Demo","-1212531781":"Standard BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-291535132":"Swap-Free Demo","-499019612":"Zero Spread Demo","-1472945832":"Swap-Free SVG","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-2063700253":"disabled","-1585069798":"Please click the following link to complete your Appropriateness Test.","-1287141934":"Find out more","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1601813176":"Would you like to increase your daily limits to {{max_daily_buy}} {{currency}} (buy) and {{max_daily_sell}} {{currency}} (sell)?","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1744163489":"Please verify your proof of income","-382676325":"To continue trading with us, please submit your proof of income.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-493564794":"Please complete your financial assessment.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-1728185398":"Resubmit proof of address","-612396514":"Please resubmit your proof of address.","-1519764694":"Your proof of address is verified.","-1629185222":"Submit now","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-1392958585":"Please check your email.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-2136953532":"Scheduled cashier maintenance","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-949074612":"Please contact us via live chat.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1706642239":"<0>Proof of ownership <1>required","-553262593":"<0><1>Your account is currently locked <2><3>Please upload your proof of <4>ownership to unlock your account. <5>","-1834929362":"Upload my document","-1043638404":"<0>Proof of ownership <1>verification failed","-1766760306":"<0><1>Please upload your document <2>with the correct details. <3>","-8892474":"Start assessment","-1330929685":"Please submit your proof of identity and proof of address to verify your account and continue trading.","-99461057":"Please submit your proof of address to verify your account and continue trading.","-577279362":"Please submit your proof of identity to verify your account and continue trading.","-197134911":"Your proof of identity is expired","-152823394":"Your proof of identity has expired. Please submit a new proof of identity to verify your account and continue trading.","-822813736":"We're unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-978414767":"We require additional information for your Deriv MT5 account(s). Please take a moment to update your information now.","-482715448":"Go to Personal details","-2072411961":"Your proof of address has been verified","-384887227":"Update the address in your profile.","-1470677931":"CFDs on financial instruments.","-1595662064":"Zero spread CFDs on financial and derived instruments","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-1591792668":"Account Limits","-34495732":"Regulatory information","-1323441180":"I hereby confirm that my request for opening an account with Deriv to trade OTC products issued and offered exclusively outside Brazil was initiated by me. I fully understand that Deriv is not regulated by CVM and by approaching Deriv I intend to set up a relation with a foreign company.","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-288996254":"Unavailable","-1308346982":"Derived","-1019903756":"Synthetic","-735306327":"Manage accounts","-1813972756":"Account creation paused for 24 hours","-366030582":"Sorry, you're unable to create an account at this time. As you declined our previous risk warnings, we need you to wait for 24 hours after your first account creation attempt before you can proceed.<0/><0/>","-534047566":"Thank you for your understanding. You can create your account on {{real_account_unblock_date}} or later.","-399816343":"Trading Experience Assessment<0/>","-1822498621":"As per our regulatory obligations, we are required to assess your trading knowledge and experience.<0/><0/>Please click ‘OK’ to continue","-71049153":"Keep your account secure with a password","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1146960797":"Fiat currencies","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1740162250":"Manage account","-1016775979":"Choose an account","-1362081438":"Adding more real accounts has been restricted for your country.","-1602122812":"24-hour Cool Down Warning","-1519791480":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the risk of losing your money. <0/><0/>\n As you have declined our previous warning, you would need to wait 24 hours before you can proceed further.","-1010875436":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, kindly note that you would need to wait 24 hours before you can proceed further.","-1725418054":"By clicking ‘Accept’ and proceeding with the account opening, you should note that you may be exposing yourself to risks. These risks, which may be significant, include the risk of losing the entire sum invested, and you may not have the knowledge and experience to properly assess or mitigate them.","-730377053":"You can’t add another real account","-2100785339":"Invalid inputs","-2061807537":"Something’s not right","-272953725":"Your details match an existing account. If you need help, contact us via <0>live chat.","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-437918412":"No currency assigned to your account","-1193651304":"Country of residence","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1976089791":"Your Deriv account has been unlinked from your {{social_identity_provider}} account. You can now log in to Deriv using your new email address and password.","-505449293":"Enter a new password for your Deriv account.","-243732824":"Take me to Demo account","-1269078299":"I will setup my real account later.","-1342699195":"Total profit/loss:","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-813256361":"We are committed to treating our clients fairly and providing them with excellent service.<0/><1/>We would love to hear from you on how we can improve our services to you. Any information you provide will be treated in the strictest confidence. Rest assured that you will be heard, valued, and always treated fairly.","-1622847732":"If you have an inquiry regarding your trading account with {{legal_entity_name}}, you can contact us through our <0>Help centre or by chatting with a representative via <1>Live Chat.<2/><3/>We are committed to resolving your query in the quickest time possible and appreciate your patience in allowing us time to resolve the matter.<4/><5/>We strive to provide the best possible service and support to our customers. However, in the event that we are unable to resolve your query or if you feel that our response is unsatisfactory, we want to hear from you. We welcome and encourage you to submit an official complaint to us so that we can review your concerns and work towards a resolution.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-1280998762":"4. Complaints","-1886635232":"A complaint is any expression of dissatisfaction by a client regarding our products or services that requires a formal response.<0/><1/>If what you submit does not fall within the scope of a complaint, we may reclassify it as a query and forward it to the relevant department for handling. However, if you believe that your query should be classified as a complaint due to its relevance to the investment services provided by {{legal_entity_name}}, you may request that we reclassify it accordingly.","-1771496016":"To submit a complaint, please send an email to <0>complaints@deriv.com, providing as much detail as possible. To help us investigate and resolve your complaint more efficiently, please include the following information:","-1197243525":"<0>•A clear and detailed description of your complaint, including any relevant dates, times, and transactions","-1795134892":"<0>•Any relevant screenshots or supporting documentation that will assist us in understanding the issue","-2053887036":"4.4. Handling your complaint","-717170429":"Once we have received the details of your complaint, we shall review it carefully and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","-1841922393":"4.5. Resolving your complaint","-1327119795":"4.6. Your decision","-2019654103":"If we are unable to resolve your complaint or you are not satisfied with the outcome, you can escalate your complaint to the Office of the Arbiter for Financial Services.<0/><1/><2>Filing complaints with the Office of the Arbiter for Financial Services","-687172857":"<0>•You may file a complaint with the Arbiter for Financial Services only if you are not satisfied with our decision or the decision wasn’t made within 15 business days.","-262934706":"<0>•If the complaint is accepted by the Arbiter, you will receive another email with further details relating to the payment of the €25 complaint fee and the processes that follow.","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-583559763":"Menu","-673424733":"Demo account","-162753510":"Add real account","-1685795001":"Demo Wallet","-319395348":"Looking for CFDs? Go to Trader’s Hub","-554054753":"Get started","-1364763296":"No need to remember a password","-1274467503":"Sync across devices","-2036288743":"Enhanced security with biometrics or screen lock ","-143216768":"Learn more about passkeys <0> here.","-778309978":"The link you clicked has expired. Ensure to click the link in the latest email in your inbox. Alternatively, enter your email below and click <0>Resend email for a new link.","-2101368724":"Transaction processing","-1772981256":"We'll notify you when it's complete.","-198662988":"Make a deposit to trade the world's markets!","-2007055538":"Information updated","-941870889":"The cashier is for real accounts only","-352838513":"It looks like you don’t have a real {{regulation}} account. To use the cashier, switch to your {{active_real_regulation}} real account, or get an {{regulation}} real account.","-1858915164":"Ready to deposit and trade for real?","-1208519001":"You need a real Deriv account to access the cashier.","-715867914":"Successfully deposited","-1271218821":"Account added","-197631101":"Your funds will be available for trading once the verification of your account is complete.","-835056719":"We’ve received your documents","-55435892":"We’ll need 1 - 3 days to review your documents and notify you by email. You can practice with demo accounts in the meantime.","-1916578937":"<0>Explore the exciting new features that your Wallet offers.","-1724438599":"<0>You're almost there!","-32454015":"Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat","-310434518":"The email input should not be empty.","-1471705969":"<0>{{title}}: {{trade_type_name}} on {{symbol}}","-1771117965":"Trade opened","-1856112961":"The URL you requested isn’t available","-304807228":"<0>You’re not logged in, or<0>Our services are unavailable in your country.","-1567989247":"Submit your proof of identity and address","-523602297":"Forex majors","-1303090739":"Up to 1:1500","-19213603":"Metals","-1264604378":"Up to 1:1000","-1728334460":"Up to 1:300","-646902589":"(US_30, US_100, US_500)","-705682181":"Malta","-1835174654":"1:30","-1647612934":"Spreads from","-1912437030":"about required verifications.","-466784048":"Regulator/EDR","-2098459063":"British Virgin Islands","-1326848138":"British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","-1711743223":"Forex (standard/micro), stocks, stock indices, commodities, cryptocurrencies and ETFs","-1372141447":"Straight-through processing","-1969608084":"Forex and Cryptocurrencies","-800771713":"Labuan Financial Services Authority (licence no. MB/18/0024)","-1497128311":"80+","-1689815930":"You will need to submit proof of identity and address once you reach certain thresholds.","-1175785439":"Deriv (SVG) LLC (company no. 273 LLC 2020)","-1344709651":"40+","-139026353":"A selfie of yourself.","-1228847561":"Verification in review.","-618322245":"Verification successful.","-149461870":"Forex: standard/exotic","-1995163270":"ETFs","-1220727671":"Standard - SVG","-865172869":"Financial - BVI","-1851765767":"Financial - Vanuatu","-558597854":"Financial - Labuan","-2052425142":"Swap-Free - SVG","-1192904361":"Deriv X Demo","-283929334":"Deriv cTrader Demo","-1269597956":"MT5 Platform","-1302404116":"Maximum leverage","-239789243":"(License no. SIBA/L/18/1114)","-941636117":"MetaTrader 5 Linux app","-1434036215":"Demo Financial","-659955365":"Swap-Free","-1416247163":"Financial STP","-1637969571":"Demo Swap-Free","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-860609405":"Password","-742647506":"Fund transfer","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-790488576":"Forgot password?","-476558960":"If you don’t have open positions","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-12535938":"*Volatility 250 Index, Volatility 150 Index, Boom 300 and Crash 300 Index","-2104148631":"Commissions apply","-201485855":"Up to","-700260448":"demo","-1769158315":"real","-1922462747":"Trader's hub","-16858060":"You have a new Deriv MT5 password to log in to your Deriv MT5 accounts on the web and mobile apps.","-1868608634":"Current password","-2092058806":"8 to 16 characters","-2051033705":"A special character such as ( _ @ ? ! / # )","-1762249687":"A lowercase letter","-1123437857":"You are adding your {{platform}} {{product}} account under {{company}}, regulated by the British Virgin\n Islands Financial Services Commission (licence no. SIBA/L/18/1114).","-535365199":"Enter your {{platform}} password to add a {{platform_name}} {{account}} account.","-184453418":"Enter your {{platform}} password","-393388362":"We’re reviewing your documents. This should take about 1 to 3 days.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-267598687":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. To start trading, <1 />transfer funds <2 />from your Deriv account into this account.","-1475660820":"Your Deriv MT5 {{type}} account is ready. ","-1184248732":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. ","-1928229820":"Reset Deriv X investor password","-1969916895":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character ( _ @ ? ! / # ).","-1087845020":"main","-1950683866":"investor","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-1615126227":"Manage up to {{max_count}} Deriv cTrader accounts. While you can convert any of your Deriv cTrader accounts into a strategy account, please take note of the following:","-1547739386":"To ensure you can always create and manage strategies with fees, <0>keep at least one account free from being a strategy provider. This way, you’ll always have an account ready for collecting fees, allowing you to have up to four strategies where you may impose fees.","-2145356061":"Download Deriv X on your phone to trade with the Deriv X account","-1547458328":"Run cTrader on your browser","-747382643":"Get another cTrader account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-499504077":"Choose a cTrader account to transfer","-251202291":"Broker","-678964540":"to","-206829624":"(1:x)","-616293830":"Enjoy dynamic leverage of <0>up to 1:1500 when trading selected instruments in the forex, commodities, cryptocurrencies, and stock indices markets. Our dynamic leverage adjusts automatically to your trading position, based on asset type and trading volume.","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-21438174":"Add your Deriv cTrader account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-271828350":"Get more out of Deriv MT5 Financial","-2125860351":"Choose a jurisdiction for your Deriv MT5 CFDs account","-1460321521":"Choose a jurisdiction for your {{account_type}} account","-637537305":"Download {{ platform }} on your phone to trade with the {{ platform }} {{ account }} account","-964130856":"{{existing_account_title}}","-879259635":"Enter your Deriv MT5 password to upgrade your account(s).","-1504907646":"Deriv MT5 password","-361998267":"We've introduced additional password requirements to increase your account security. Your password should:","-996995493":"Be between 8 to 16 characters.","-219163415":"Contain at least one special character.","-1446636186":"By clicking on <0>Next you agree to move your {{platform}} {{type_1}} and {{type_2}} {{from_account}} account(s) under Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","-1766387013":"Upgrade your MT5 account(s)","-990927225":"Enter your Deriv MT5 password","-1486399361":"Trade with MT5 mobile app","-301350824":"Note: Don't have the MT5 app? Tap the <0>Trade with MT5 mobile app button to download. Once you have\n installed the app, return to this screen and hit the same button to log in.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-601303096":"Scan the QR code to download Deriv {{ platform }}.","-1357917360":"Web terminal","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-1386326276":"Barrier is a required field.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-256210543":"Trading is unavailable at this time.","-1150099396":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a Deriv MT5 Financial.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-1013917510":"The reset time is {{ reset_time }}","-925402280":"Indicative low spot","-1075414250":"High spot","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1371082433":"Reset barrier","-1402197933":"Reset time","-2035315547":"Low barrier","-1745835713":"Selected tick","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-104603605":"You cannot trade as your documents are still under review. We will notify you by email once your verification is approved.","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-347156282":"Submit Proof","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-1043795232":"Recent positions","-153220091":"{{display_value}} Tick","-802374032":"Hour","-1700010072":"This feature is unavailable for tick intervals. Switch to minutes, hours, or days.","-663862998":"Markets","-1341681145":"When this is active, you can cancel your trade within the chosen time frame. Your stake will be returned without loss.","-2069438609":"No matches found","-97673874":"No closed trades","-1727419550":"Your closed trades will be shown here.","-225500551":"Entry & exit details","-1022682526":"Your favourite markets will appear here.","-315741954":"{{amount}} trade types","-232254547":"Custom","-1251526905":"Last 7 days","-1539223392":"Last 90 days","-1123299427":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <1>previous spot price. Otherwise, you lose your stake and the trade is terminated.","-1052279158":"Your <0>payout is the sum of your initial stake and profit.","-274058583":"<0>Take profit is an additional feature that lets you manage your risk by automatically closing the trade when your profit reaches the target amount. This feature is unavailable for ongoing accumulator contracts.","-1819891401":"You can close your trade anytime. However, be aware of <0>slippage risk.","-859589563":"If you select “<0>Odd”, you will win the payout if the last digit of the last tick is an odd number (i.e. 1, 3, 5, 7, or 9).","-1911850849":"If the exit spot is equal to the barrier, you don’t win the payout.","-618782785":"Use multipliers to leverage your potential returns. Predict if the asset price will move upward (bullish) or downward (bearish). We’ll charge a commission when you open a multipliers trade.","-565391674":"If you select \"<0>Up\", your total profit/loss will be the percentage increase in the underlying asset price, times the multiplier and stake, minus commissions.","-1158764468":"If you select “<0>Over”, you will win the payout if the last digit of the last tick is greater than your prediction.","-1268105691":"If you select “<0>Under”, you will win the payout if the last digit of the last tick is less than your prediction.","-444119935":"If you select \"<0>Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-521457890":"If you select “<0>Touch”, you win the payout if the market touches the barrier at any time during the contract period.","-1020271578":"If you select “<0>Down”, you’ll earn a payout if the spot price never rises above the barrier.","-403573339":"Your payout is equal to the <0>payout per point multiplied by the difference between the <1>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","-1307465836":"You may sell the contract up to 15 seconds before expiry. If you do, we’ll pay you the <0>contract value.","-1121315439":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a “Call” or a “Put”.","-1763848396":"Put","-1119872505":"How to trade ","-586636553":"Watch this video to learn about this trade type.","-2017825013":"Got it","-1117111580":"Removed from favorites","-197162398":"CLOSED","-1913695340":"Order Details","-1882287418":"How do I earn a payout?","-725670935":"Take profit and stop loss are unavailable while deal cancellation is enabled.","-1331298683":"Take profit can’t be adjusted for ongoing accumulator contracts.","-509210647":"Try searching for something else.","-99964540":"When your profit reaches or exceeds the set amount, your trade will be closed automatically.","-542594338":"Max. payout","-1622900200":"Enabled","-2131851017":"Growth rate","-339236213":"Multiplier","-1396928673":"Risk Management","-1358367903":"Stake","-1853307892":"Set your trade","-1221049974":"Final price","-843831637":"Stop loss","-583023237":"This is the resale value of your contract, based on the prevailing market conditions (e.g, the current spot), including additional commissions if any.","-1476381873":"The latest asset price when the trade closure is processed by our servers.","-584445859":"This is when your contract will expire based on the duration or end time you’ve selected. If the duration is more than 24 hours, the cut-off time and expiry date will apply instead.","-1247327943":"This is the spot price of the last tick at expiry.","-1422269966":"You can choose a growth rate with values of 1%, 2%, 3%, 4%, and 5%.","-1186791513":"Payout is the sum of your initial stake and profit.","-1482134885":"We calculate this based on the strike price and duration you’ve selected.","-1682624802":"It is a percentage of the previous spot price. The percentage rate is based on your choice of the index and the growth rate.","-1545819495":"Your trade will be closed automatically at the nearest available asset price when your loss reaches a certain percentage of your stake, but your loss never exceeds your stake. This percentage depends on the chosen underlying asset and the Multiplier.","-1293590531":"If you select “Call”, you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1432332852":"If you select ‘Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-468501352":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount. Your profit may be more than the amount you entered depending on the market price at closing.","-993480898":"Accumulators","-123659792":"Vanillas","-1226595254":"Turbos","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-1691868913":"Touch/No Touch","-330437517":"Matches/Differs","-657360193":"Over/Under","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-93996528":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1722190480":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1113825265":"Additional features are available to manage your positions: “<0>Take profit” and “<0>Stop loss” allow you to adjust your level of risk aversion.","-1104397398":"Additional features are available to manage your positions: “<0>Take profit”, “<0>Stop loss” and “<0>Deal cancellation” allow you to adjust your level of risk aversion.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1565216130":"If you select <0>\"Up\", you’ll earn a payout if the spot price never drops below the barrier.","-1336860323":"If you select <0>\"Down\", you’ll earn a payout if the spot price never rises above the barrier.","-1547935605":"Your payout is equal to the <0>payout per point multiplied by the difference between the <0>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","-351875097":"Number of ticks","-729830082":"View less","-1649593758":"Trade info","-1382749084":"Go back to trading","-1239477911":"second","-1585766960":"min","-1652791614":"mins","-1977959027":"hours","-442488432":"day","-337314714":"days","-1435392215":"About deal cancellation","-1192773792":"Don't show this again","-471757681":"Risk management","-771725194":"Deal Cancellation","-1669741470":"The payout at expiry is equal to the payout per point multiplied by the difference between the final price and the strike price.","-1186082278":"Your payout is equal to the payout per point multiplied by the difference between the final price and barrier.","-1890561510":"Cut-off time","-878534036":"If you select \"Call\", you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1587076792":"If you select \"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-565990678":"Your contract will expire on this date (in GMT), based on the End time you’ve selected.","-477936848":"We use next-tick-execution mechanism, which is the next asset price when the trade opening is processed by our servers.","-148680560":"Spot price of the last tick upon reaching expiry.","-1123926839":"Contracts will expire at exactly 14:00:00 GMT on your selected expiry date.","-1904828224":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 24 hours.","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-8998663":"Digit: {{last_digit}} ","-718750246":"Your stake will grow at {{growth_rate}}% per tick as long as the current spot price remains within ±{{tick_size_barrier_percentage}} from the previous spot price.","-690963898":"Your contract will be automatically closed when your payout reaches this amount.","-511541916":"Your contract will be automatically closed upon reaching this number of ticks.","-438655760":"<0>Note: You can close your trade anytime. Be aware of slippage risk.","-774638412":"Stake must be between {{min_stake}} {{currency}} and {{max_stake}} {{currency}}","-434270664":"Current Price","-1956787775":"Barrier Price:","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-1231210510":"Tick","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-1804019534":"Expiry: {{date}}","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-732683018":"When your profit reaches or exceeds this amount, your trade will be closed automatically.","-989393637":"Take profit can't be adjusted after your contract starts.","-194424366":"above","-857660728":"Strike Prices","-1346404690":"You receive a payout at expiry if the spot price never touches or breaches the barrier throughout the contract duration. Otherwise, your contract will be terminated early.","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-420223912":"Clean up Blocks","-301596978":"Collapse Blocks","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-985351204":"Trade again","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-1738427539":"Purchase","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1374685318":"Your contract is closed automatically when your loss is more than or equals to this amount. This block can only be used with the multipliers trade type.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-1626615625":"Take Profit (Multiplier)","-1871944173":"Accumulator trade options","-625636913":"Amount must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1631669591":"string","-1768939692":"number","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1750478127":"New variable name","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-260939264":"Collapsed","-894560707":"function","-1867119688":"Duplicate","-1710107207":"Add Comment","-1549535410":"Remove Comment","-918450098":"Blocks","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-339973827":"The market is closed","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1919680487":"workspace","-1703118772":"The {{block_type}} block is misplaced from {{missing_space}}.","-1785726890":"purchase conditions","-1993203952":"Trade options accumulators","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-1072292603":"No Change","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-137444201":"Buy","-841561409":"Put Spread","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-462715374":"Untitled Bot","-280147477":"All transactions","-130601012":"Please select duration","-1577570698":"Start date","-1904030160":"Transaction performed by (App ID: {{app_id}})","-1876891031":"Currency","-513103225":"Transaction time","-2066666313":"Credit/Debit","-1981004241":"Sell time","-1196431745":"Contract cost","-3423966":"Take profit<0 />Stop loss","-1131753095":"The {{trade_type_name}} contract details aren't currently available. We're working on making them available soon.","-360975483":"You've made no transactions of this type during this period.","-2082644096":"Current stake","-1942828391":"Max payout","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-558031309":"High Tick/Low Tick","-447037544":"Buy price:","-737348236":"Contract cost:","-1694314813":"Contract value:","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-155989831":"Decrement value","-338379841":"Indicative price:","-2027409966":"Initial stake:","-1769852749":"N/A","-726626679":"Potential profit/loss:","-1511825574":"Profit/Loss:","-499175967":"Strike Price","-706219815":"Indicative price","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-853582174":"France 40","-1096386695":"UK 100","-617646862":"Germany 40","-2077690248":"Japan 225","-512194910":"US Tech 100","-381746202":"US 500","-1935463381":"Swiss 20","-1941767726":"Euro 50","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-82971929":"Volatility 25 (1s) Index","-433962508":"Volatility 75 (1s) Index","-764111252":"Volatility 100 (1s) Index","-816110209":"Volatility 150 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1288044380":"Volatility 250 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-132112961":"Sharkfin","-1715390759":"I want to do this later","-56163366":"I don't have any of these","-175164838":"{{seconds_passed}}s ago","-514136557":"{{minutes_passed}}m ago","-1420737287":"{{hours_passed}}h ago","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-1603581277":"minutes","-886317740":"The <0>date of birth on your identity document doesn't match your profile.","-1606307809":"We were unable to verify the identity document with the details provided.","-475787720":"The verification status was empty, rejected for lack of information.","-1627868670":"Your identity document has expired.","-1302288704":"The document’s owner is deceased.","-895884696":"The <0>name and <0>date of birth on your identity document don't match your profile.","-1231856133":"The verification status is not available, provider says: Needs Technical Investigation.","-433687715":"For enhanced security, we need to reverify your identity. Kindly resubmit your proof of identity to unlock your account.","-1637538521":"Your document appears to be invalid.","-876579004":"The name on your document doesn’t match your profile.","-746520172":"Some details on your document appear to be invalid, missing, or unclear.","-2146200521":"The serial number of your document couldn’t be verified.","-1945323197":"Your document appears to be in black and white. Please upload a colour photo of your document.","-631393256":"Your document contains markings or text that should not be on your document.","-609103016":"The image quality of your document is too low. Please provide a hi-res photo of your identity document.","-530935718":"We’re unable to verify the document you provided because some details appear to be missing. Please try again or provide another document.","-1027031626":"We’re unable to verify the document you provided because it appears to be damaged. Please try again or upload another document.","-1671621833":"The front of your document appears to be missing. Please provide both sides of your identity document.","-727588232":"Your document appears to be a scanned copy that contains markings or text that shouldn’t be on your document.","-1435064387":"Your document appears to be a printed copy.","-624316211":"Your document appears to be a photo of a device screen.","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled"} \ No newline at end of file diff --git a/packages/translations/src/translations/ach.json b/packages/translations/src/translations/ach.json index a0f7533dd5af..5ee7c27eb37a 100644 --- a/packages/translations/src/translations/ach.json +++ b/packages/translations/src/translations/ach.json @@ -454,6 +454,7 @@ "467839232": "crwdns1335109:0crwdne1335109:0", "471402292": "crwdns3783508:0crwdne3783508:0", "471667879": "crwdns5822234:0crwdne5822234:0", + "471994882": "crwdns5992346:0{{ currency }}crwdne5992346:0", "473154195": "crwdns1259635:0crwdne1259635:0", "474306498": "crwdns1259639:0crwdne1259639:0", "475492878": "crwdns1259641:0crwdne1259641:0", @@ -548,7 +549,6 @@ "573173477": "crwdns1259781:0{{ input_candle }}crwdne1259781:0", "575668969": "crwdns3891482:0crwdne3891482:0", "575702000": "crwdns2956309:0crwdne2956309:0", - "575968081": "crwdns3708344:0crwdne3708344:0", "576355707": "crwdns1822947:0crwdne1822947:0", "577215477": "crwdns1259783:0{{ variable }}crwdnd1259783:0{{ start_number }}crwdnd1259783:0{{ end_number }}crwdnd1259783:0{{ step_size }}crwdne1259783:0", "577779861": "crwdns1259785:0crwdne1259785:0", @@ -774,6 +774,7 @@ "793526589": "crwdns1260117:0crwdne1260117:0", "793531921": "crwdns1260119:0crwdne1260119:0", "794682658": "crwdns1260121:0crwdne1260121:0", + "794778483": "crwdns5992348:0crwdne5992348:0", "795859446": "crwdns1260123:0crwdne1260123:0", "795992899": "crwdns5822244:0crwdne5822244:0", "797007873": "crwdns1260125:0crwdne1260125:0", @@ -1346,6 +1347,7 @@ "1337846406": "crwdns1260975:0crwdne1260975:0", "1337864666": "crwdns1260977:0crwdne1260977:0", "1338496204": "crwdns1260979:0crwdne1260979:0", + "1339565304": "crwdns5992350:0crwdne5992350:0", "1339613797": "crwdns1787759:0crwdne1787759:0", "1340286510": "crwdns3031245:0crwdne3031245:0", "1341840346": "crwdns1260981:0crwdne1260981:0", @@ -2044,6 +2046,7 @@ "2012139674": "crwdns5141364:0crwdne5141364:0", "2014536501": "crwdns1445519:0crwdne1445519:0", "2014590669": "crwdns117834:0{{variable_name}}crwdnd117834:0{{variable_name}}crwdne117834:0", + "2015878683": "crwdns5992352:0crwdne5992352:0", "2017672013": "crwdns167277:0crwdne167277:0", "2018044371": "crwdns5285624:0crwdne5285624:0", "2019596693": "crwdns3645032:0crwdne3645032:0", @@ -2079,6 +2082,7 @@ "2048134463": "crwdns156506:0crwdne156506:0", "2049386104": "crwdns2154511:0crwdne2154511:0", "2050170533": "crwdns69622:0crwdne69622:0", + "2051249190": "crwdns5992354:0crwdne5992354:0", "2051558666": "crwdns165841:0crwdne165841:0", "2051596653": "crwdns5766528:0crwdne5766528:0", "2052022586": "crwdns4642902:0crwdne4642902:0", @@ -3549,6 +3553,9 @@ "-2036288743": "crwdns4944818:0crwdne4944818:0", "-143216768": "crwdns4944820:0crwdne4944820:0", "-778309978": "crwdns2738165:0crwdne2738165:0", + "-2101368724": "crwdns5992356:0crwdne5992356:0", + "-1772981256": "crwdns5992358:0crwdne5992358:0", + "-198662988": "crwdns5992360:0crwdne5992360:0", "-2007055538": "crwdns3228696:0crwdne3228696:0", "-941870889": "crwdns1855979:0crwdne1855979:0", "-352838513": "crwdns1855981:0{{regulation}}crwdnd1855981:0{{active_real_regulation}}crwdnd1855981:0{{regulation}}crwdne1855981:0", @@ -3561,8 +3568,7 @@ "-55435892": "crwdns3708400:0crwdne3708400:0", "-1916578937": "crwdns5018750:0crwdne5018750:0", "-1724438599": "crwdns5018752:0crwdne5018752:0", - "-1089300025": "crwdns3708402:0crwdne3708402:0", - "-476018343": "crwdns3708404:0crwdne3708404:0", + "-32454015": "crwdns5992362:0crwdne5992362:0", "-310434518": "crwdns171210:0crwdne171210:0", "-1471705969": "crwdns3698542:0{{title}}crwdnd3698542:0{{trade_type_name}}crwdnd3698542:0{{symbol}}crwdne3698542:0", "-1771117965": "crwdns3698544:0crwdne3698544:0", diff --git a/packages/translations/src/translations/ar.json b/packages/translations/src/translations/ar.json index 5490bbb02bee..9a44cd2323a5 100644 --- a/packages/translations/src/translations/ar.json +++ b/packages/translations/src/translations/ar.json @@ -454,6 +454,7 @@ "467839232": "أتداول عقود الفروقات على الفوركس والأدوات المالية المعقدة الأخرى بانتظام على منصات أخرى.", "471402292": "يستخدم الروبوت الخاص بك نوع تداول واحد لكل جولة.", "471667879": "وقت التوقف", + "471994882": "Your {{ currency }} account is ready.", "473154195": "إعدادات", "474306498": "نأسف لرؤيتك تغادر. تم إغلاق حسابك الآن.", "475492878": "جرب المؤشرات الاصطناعية", @@ -548,7 +549,6 @@ "573173477": "هل الشمعة {{ input_candle }} سوداء؟", "575668969": "3. بالنسبة للتداولات التي تؤدي إلى ربح، ستتم زيادة حصة الصفقة التالية بمقدار 2 دولار أمريكي. سيستمر Deriv Bot في إضافة 2 دولار أمريكي لكل صفقة ناجحة. انظر A1.", "575702000": "تذكر أنه سيتم رفض صور السيلفي أو صور المنازل أو الصور غير ذات الصلة.", - "575968081": "تم إنشاء الحساب. حدد طريقة الدفع للإيداع.", "576355707": "حدد بلدك وجنسيتك:", "577215477": "عد بـ {{ variable }} من {{ start_number }} إلى {{ end_number }} في {{ step_size }}", "577779861": "سحب", @@ -774,6 +774,7 @@ "793526589": "لتقديم شكوى حول خدمتنا، أرسل بريدًا إلكترونيًا إلى <0>complaints@deriv.com وحدد شكواك بالتفصيل. يرجى تقديم أي لقطات شاشة ذات صلة بالتداول أو النظام الخاص بك لفهمنا بشكل أفضل.", "793531921": "تعد شركتنا واحدة من أقدم شركات التداول عبر الإنترنت وأكثرها شهرة في العالم. نحن ملتزمون بمعاملة عملائنا بإنصاف وتزويدهم بخدمة ممتازة.<0/><1/> يرجى تزويدنا بالتعليقات حول كيفية تحسين خدماتنا لك. كن على يقين من أنه سيتم الاستماع إليك وتقديرك ومعاملتك بإنصاف في جميع الأوقات.", "794682658": "انسخ الرابط إلى هاتفك", + "794778483": "Deposit later", "795859446": "تم حفظ كلمة المرور", "795992899": "المبلغ الذي تختار الحصول عليه عند انتهاء الصلاحية لكل نقطة تغيير بين السعر النهائي والحاجز. ", "797007873": "اتبع هذه الخطوات لاستعادة الوصول إلى الكاميرا:", @@ -1346,6 +1347,7 @@ "1337846406": "تمنحك هذه المجموعة قيمة الشمعة المحددة من قائمة الشموع ضمن الفاصل الزمني المحدد.", "1337864666": "صورة للوثيقة الخاص بك", "1338496204": "الرقم المرجعي", + "1339565304": "Deposit now to start trading", "1339613797": "الجهة التنظيمية/حل النزاعات الخارجية", "1340286510": "لقد توقف الروبوت، ولكن ربما لا تزال تجارتك قيد التشغيل. يمكنك التحقق من ذلك في صفحة التقارير.", "1341840346": "عرض في المجلة", @@ -2044,6 +2046,7 @@ "2012139674": "أندرويد: مدير كلمات مرور Google.", "2014536501": "رقم البطاقة", "2014590669": "المتغير '{{variable_name}}' ليس له قيمة. يرجى تعيين قيمة للمتغير '{{variable_name}}' للإخطار.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "يرجى تحديد بلد إصدار المستند.", "2018044371": "تتيح لك Multipliers التداول باستخدام الرافعة المالية والحد من المخاطر التي يتعرض له مبلغ استثمارك. <0>قراءة المزيد", "2019596693": "تم رفض المستند من قبل المزود.", @@ -2079,6 +2082,7 @@ "2048134463": "تم تجاوز حجم الملف.", "2049386104": "نحتاج منك إرسالها للحصول على هذا الحساب:", "2050170533": "قائمة الاختيار", + "2051249190": "Add funds and start trading", "2051558666": "عرض سجل المعاملات", "2051596653": "حساب Demo Zero Spread BVI", "2052022586": "لتعزيز أمان حساب MT5 الخاص بك، قمنا بترقية سياسة كلمة المرور الخاصة بنا.", @@ -3549,6 +3553,9 @@ "-2036288743": "أمان محسّن باستخدام القياسات الحيوية أو قفل الشاشة ", "-143216768": "تعرف على المزيد حول passkeys <0>هنا.", "-778309978": "انتهت صلاحية الرابط الذي نقرت عليه. تأكد من النقر فوق الارتباط الموجود في أحدث بريد إلكتروني في صندوق الوارد الخاص بك. بدلاً من ذلك، أدخل بريدك الإلكتروني أدناه وانقر فوق <0>إعادة إرسال البريد الإلكتروني للحصول على رابط جديد.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "تم تحديث المعلومات", "-941870889": "الصراف للحسابات الحقيقية فقط", "-352838513": "يبدو أنه ليس لديك حساب {{تنظيم}} حقيقي. لاستخدام أمين الصندوق ، قم بالتبديل إلى حسابك الحقيقي {{active_real_regulation}} ، أو احصل على حساب حقيقي {{تنظيم}}.", @@ -3561,8 +3568,7 @@ "-55435892": "ستستغرق مراجعة مستنداتك من يوم إلى 3 أيام، وسنقوم بإعلامك عبر البريد الإلكتروني. يمكنك استخدام الحسابات التجريبية للتدرب على التداول خلال هذه الفترة.", "-1916578937": "<0>استكشف الميزات الجديدة والمثيرة التي توفرها لك محفظتك.", "-1724438599": "<0>لقد أوشكت على الانتهاء!", - "-1089300025": "نحن لا نفرض رسوم إيداع! بمجرد التحقق من حسابك، ستتمكن من التداول أو إجراء إيداعات إضافية أو سحب الأموال.", - "-476018343": "دردشة حية", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "يجب ألا يكون إدخال البريد الإلكتروني فارغًا.", "-1471705969": "<0>{{title}}: {{trade_type_name}} على {{symbol}}", "-1771117965": "تم فتح التجارة", diff --git a/packages/translations/src/translations/bn.json b/packages/translations/src/translations/bn.json index e5d8aa40ad2e..412823973c0a 100644 --- a/packages/translations/src/translations/bn.json +++ b/packages/translations/src/translations/bn.json @@ -7,7 +7,7 @@ "3215342": "গত 30 দিন", "3420069": "বিলম্ব এড়াতে, আপনার <0>নাম এবং <0>জন্ম তারিখ লিখুন ঠিক যেমনটি আপনার পরিচয় নথিতে দেখা যাচ্ছে।", "4547840": "<0>তহবিল স্থানান্তর করতে আপনার অ্যাকাউন্ট যাচাই করুন। <1>যাচাই এখন", - "5149403": "বাণিজ্যের ধরন সম্পর্কে আরও জানুন", + "5149403": "ট্রেডের ধরন সম্পর্কে আরও জানুন", "7100308": "ঘণ্টা 0 থেকে 23 এর মধ্যে হতে হবে।", "9488203": "Deriv Bot ট্রেডিং ডিজিটাল অপশনের জন্য একটি ওয়েব ভিত্তিক কৌশল নির্মাতা। এটি একটি প্ল্যাটফর্ম যেখানে আপনি ড্র্যাগ এবং ড্রপ 'ব্লক' ব্যবহার করে আপনার নিজস্ব ট্রেডিং বট তৈরি করতে পারেন।", "9757544": "অনুগ্রহ করে আপনার ঠিকানার প্রমাণ জমা দিন", @@ -118,7 +118,7 @@ "125842960": "{{name}} প্রয়োজন।", "127307725": "একজন রাজনৈতিকভাবে উন্মুক্ত ব্যক্তি (পিইপি) একজন বিশিষ্ট জনপদে নিযুক্ত হন। একটি পিইপির ঘনিষ্ঠ সহযোগী এবং পরিবারের সদস্যদেরও পিইপি বলে মনে করা হয়।", "129005644": "ধারণাটি হ'ল সফল ট্রেডগুলি পূর্ববর্তী ক্ষতি পুনরুদ্ধার করতে পারে। তবে সতর্কতা অবলম্বন করা অত্যন্ত গুরুত্বপূর্ণ কারণ এই কৌশলটির সাথে ঝুঁকি দ্রুত বাড়তে পারে। Deriv Bot এর সাহায্যে আপনি সর্বাধিক শেক নির্ধারণ করে আপনার ঝুঁকি হ্রাস করতে পারেন। এটি একটি ঐচ্ছিক ঝুঁকি ব্যবস্থাপনা বৈশিষ্ট্য। বলা যাক সর্বোচ্চ 3 মার্কিন ডলার শেক। যদি পরবর্তী ট্রেডের জন্য আপনার শেক 3 মার্কিন ডলার অতিক্রম করা হয় তবে আপনার শেক 1 ডলারের প্রাথমিক স্টেকে পুনরায় সেট হবে। আপনি যদি সর্বাধিক স্টেক সেট না করেন তবে এটি 3 ডলার এর বেশি বেড়ে যেত।", - "129137937": "আপনি সিদ্ধান্ত নিন কত এবং কত দিন বাণিজ্য করবেন। আপনি যখনই চান ট্রেডিং থেকে বিরতি নিতে পারেন। এই বিরতি 6 সপ্তাহ থেকে 5 বছর হতে পারে। এটি শেষ হয়ে গেলে, আপনি 24 ঘন্টা কুলিং-অফ পিরিয়ডের পরে এটি বাড়াতে বা ট্রেডিং পুনরায় শুরু করতে পারেন। আপনি যদি একটি নির্দিষ্ট সীমা নির্ধারণ করতে না চান তবে ক্ষেত্রটি খালি রেখে দিন।", + "129137937": "আপনি সিদ্ধান্ত নিন কত এবং কত দিন ট্রেড করবেন। আপনি যখনই চান ট্রেডিং থেকে বিরতি নিতে পারেন। এই বিরতি 6 সপ্তাহ থেকে 5 বছর হতে পারে। এটি শেষ হয়ে গেলে, আপনি 24 ঘন্টা কুলিং-অফ পিরিয়ডের পরে এটি বাড়াতে বা ট্রেডিং পুনরায় শুরু করতে পারেন। আপনি যদি একটি নির্দিষ্ট সীমা নির্ধারণ করতে না চান তবে ক্ষেত্রটি খালি রেখে দিন।", "129729742": "কর সনাক্তকরণ সংখ্যা*", "130567238": "তারপর", "132596476": "আপনাকে আমাদের পরিষেবা প্রদানের ক্ষেত্রে, প্রদত্ত পণ্য বা পরিষেবা আপনার জন্য উপযুক্ত কিনা এবং আপনার জড়িত ঝুঁকিগুলি বোঝার অভিজ্ঞতা এবং জ্ঞান আছে কিনা তা মূল্যায়ন করার জন্য আপনাকে কিছু তথ্য জিজ্ঞাসা করতে হবে।<0/><0/>", @@ -147,7 +147,7 @@ "152415091": "গণিত", "152524253": "আমাদের জনপ্রিয় ব্যবহারকারী-বন্ধুত্বপূর্ণ প্ল্যাটফর্মের সাথে বিশ্বের বাজারে ট্রেড করুন।", "153485708": "জিরো স্প্রেড - BVI", - "154274415": "মেয়াদ শেষ হওয়ার সময় পরিশোধটি চূড়ান্ত মূল্য এবং বাধার মধ্যে দূরত্ব দ্বারা গুণিত প্রতি পয়েন্টের পরিশোধের সমান।", + "154274415": "মেয়াদ শেষ হওয়ার সময় পে-আউট চূড়ান্ত মূল্য এবং বাধার মধ্যে দূরত্ব দ্বারা গুণিত প্রতি পয়েন্টের পেআউটের সমান।", "157593038": "{{ start_number }} থেকে {{ end_number }}র্যান্ডম পূর্ণসংখ্যা পর্যন্ত", "157871994": "লিংকের মেয়াদ শেষ", "158355408": "কিছু পরিষেবা সাময়িকভাবে অনুপলব্ধ হতে পারে।", @@ -170,7 +170,7 @@ "176319758": "সর্বোচ্চ 30 দিনের মধ্যে মোট ষ্টেক", "176654019": "$100,000 - $250,000", "177099483": "আপনার ঠিকানা যাচাইকরণ স্থগিত আছে, এবং আমরা আপনার অ্যাকাউন্টে কিছু সীমাবদ্ধতা রেখেছি। আপনার ঠিকানা যাচাই করা হলে বিধিনিষেধ উঠিয়ে নেওয়া হবে।", - "177467242": "আপনার বাণিজ্য বিকল্পগুলি যেমন অ্যাকুলেটর এবং স্টেক নির্ধারণ করুন। এই ব্লকটি শুধুমাত্র অ্যাকুলেটর ট্রেড টাইপের সাথে ব্যবহার করা যেতে পারে। আপনি যদি অন্য ট্রেড টাইপ নির্বাচন করেন তবে এই ব্লকটি ট্রেড অপশন ব্লক দিয়ে প্রতিস্থাপন করা হবে।", + "177467242": "আপনার ট্রেড অপশন যেমন অ্যাকিউমুলেটর এবং স্টেক সংজ্ঞায়িত করুন। এই ব্লকটি শুধুমাত্র অ্যাকুমুলেটর ট্রেড টাইপের সাথে ব্যবহার করা যেতে পারে। আপনি যদি অন্য ট্রেড টাইপ নির্বাচন করেন, তাহলে এই ব্লকটি ট্রেড অপশন ব্লক দিয়ে প্রতিস্থাপিত হবে।", "179083332": "তারিখ", "181107754": "আপনার নতুন <0>{{platform}} {{eligible_account_to_migrate}} অ্যাকাউন্ট (গুলি) ট্রেডিংয়ের জন্য প্রস্তুত।", "181346014": "নোটস ", @@ -207,7 +207,7 @@ "211847965": "আপনার <0>ব্যক্তিগত বিবরণ অসম্পূর্ণ। অনুগ্রহ করে আপনার অ্যাকাউন্ট সেটিংসে যান এবং উত্তোলনের জন্য আপনার ব্যক্তিগত বিবরণ সম্পূর্ণ করুন।", "216114973": "স্টক ও সূচক", "216650710": "আপনি একটি ডেমো অ্যাকাউন্ট ব্যবহার করছেন", - "217377529": "5। পরবর্তী ট্রেডগুলি যদি লাভজনক হয় তবে নিম্নলিখিত বাণিজ্যের জন্য শেয়ার 2 মার্কিন ডলার হ্রাস পাবে। এটি উপরে দেখানো যেতে পারে যেখানে 3 মার্কিন ডলারের শেয়ার হ্রাস করে 1 মার্কিন ডলারে। A3 দেখুন।", + "217377529": "5। পরবর্তী ট্রেডগুলি যদি লাভজনক হয় তবে নিম্নলিখিত ট্রেডের জন্য শেয়ার 2 মার্কিন ডলার হ্রাস পাবে। এটি উপরে দেখানো যেতে পারে যেখানে 3 মার্কিন ডলারের শেয়ার হ্রাস করে 1 মার্কিন ডলারে। A3 দেখুন।", "217403651": "সেন্ট ভিনসেন্ট ও গ্রেনাডাইনস", "217504255": "আর্থিক মূল্যায়ন সফলভাবে জমাকরণ হয়েছে", "218441288": "পরিচয়পত্র নাম্বার", @@ -284,7 +284,7 @@ "284809500": "আর্থিক ডেমো", "287934290": "আপনি কি নিশ্চিতরূপে এই লেনদেন বাতিল করতে চান?", "289731075": "শুরু করুন", - "291344459": "টেবিলটি দ্বিতীয় অধিবেশনে এই নীতিটি চিত্রিত করে। 4র্থ রাউন্ডে ক্ষতির ফলে বাণিজ্যের পরে 5ম রাউন্ডে সফল বাণিজ্য হওয়ার পরে, 6 রাউন্ডের জন্য ষ্টেক 2 USD বাড়বে। এটি একটি সফল বাণিজ্য অনুসরণ করে ক্ষতির পরেই ষ্টেক বাড়ানোর কৌশলের নিয়মের সাথে সামঞ্জস্যপূর্ণ।", + "291344459": "টেবিলটি দ্বিতীয় অধিবেশনে এই নীতিটি চিত্রিত করে। 4র্থ রাউন্ডে ক্ষতির ফলে ট্রেডের পরে 5ম রাউন্ডে সফল ট্রেড হওয়ার পরে, 6 রাউন্ডের জন্য ষ্টেক 2 USD বাড়বে। এটি একটি সফল ট্রেড অনুসরণ করে ক্ষতির পরেই ষ্টেক বাড়ানোর কৌশলের নিয়মের সাথে সামঞ্জস্যপূর্ণ।", "291744889": "<0>1। ট্রেড প্যারামিটার: <0>", "291817757": "আমাদের Deriv সম্প্রদায় যান এবং API গুলি, API টোকেন, Deriv API গুলি ব্যবহার করার উপায় এবং আরও অনেক কিছু সম্পর্কে শিখুন।", "292526130": "টিক এবং মোমবাতি বিশ্লেষণ", @@ -387,7 +387,7 @@ "401339495": "ঠিকানা যাচাই করুন", "401345454": "এটি করার জন্য টিউটোরিয়াল ট্যাবে যান।", "403456289": "এসএমএ জন্য সূত্র:", - "403936913": "ডেরিভ বটের একটি পরিচিতি", + "403936913": "Deriv Bot এর ভূমিকা", "406359555": "চুক্তির বিবরণ", "406497323": "প্রয়োজন হলে আপনার সক্রিয় চুক্তি বিক্রি করুন (ঐচ্ছিক)", "411482865": "{{deriv_account}} অ্যাকাউন্ট যোগ করুন", @@ -398,7 +398,7 @@ "419496000": "আপনার মুনাফা এই পরিমাণের চেয়ে বেশি বা সমান হলে আপনার চুক্তি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়। এই ব্লকটি শুধুমাত্র Multipliers ট্রেড টাইপের সাথে ব্যবহার করা যাবে।", "420072489": "CFD ট্রেডিং ফ্রিকোয়েন্সি", "422055502": "থেকে", - "423682863": "যখন আপনার ক্ষতি সেট পরিমাণ পৌঁছায় বা অতিক্রম করে, তখন আপনার বাণিজ্য স্বয়ংক্রিয়ভাবে বন্ধ হবে।", + "423682863": "যখন আপনার ক্ষতি সেট পরিমাণ পৌঁছায় বা অতিক্রম করে, তখন আপনার ট্রেড স্বয়ংক্রিয়ভাবে বন্ধ হবে।", "424101652": "দ্রুত কৌশল গাইড >", "424272085": "আমরা আপনার আর্থিক সুস্থতা গুরুত্ব সহকারে গ্রহণ করি এবং ট্রেডিং করার আগে আপনি ঝুঁকি সম্পর্কে সম্পূর্ণ সচেতন হন তা নিশ্চিত করতে চাই।<0/><0/>", "424897068": "আপনি বুঝতে পারেন যে আপনি সম্ভাব্য অর্থ আপনি ট্রেড করতে ব্যবহার 100% হারাতে পারে?", @@ -431,7 +431,7 @@ "444484637": "যুক্তি অস্বীকার", "445419365": "1 - 2 বছর", "447548846": "SSNIT নাম্বার", - "447907000": "আপনি যদি \"সমান <0>অনুমতি দিন “নির্বাচ ন করেন, তাহলে এক্সিট স্পট “রাইজ” এর এন্ট্রি স্পটের চেয়ে বেশি বা সমান হলে আপনি পেআউট জিতবেন। একইভাবে, যদি এক্সিট স্পট “ফল” এর এন্ট্রি স্পটের চেয়ে কম বা সমান হয় তবে আপনি পেআউট জিতেন।", + "447907000": "আপনি যদি \"<0>সমান মঞ্জুরি করুন\" নির্বাচন করেন, তাহলে আপনি পেআউট জিতবেন যদি প্রস্থান স্পট \"Rise\" এর জন্য প্রবেশের স্থানের চেয়ে বেশি বা সমান হয়। একইভাবে, আপনি পেআউট জিতবেন যদি প্রস্থান স্পট \"Fall\" এর এন্ট্রি স্পট থেকে কম বা সমান হয়।", "450983288": "ব্লককেনের একটি ত্রুটির কারণে আপনার আমানত অসফল। আরও তথ্যের জন্য আপনার ক্রিপ্টো Wallet পরিষেবা প্রদানকারীর সাথে যোগাযোগ করুন।", "451852761": "আপনার ফোনে চালিয়ে যান", "452054360": "RSI এর অনুরূপ, এই ব্লকটি আপনাকে ইনপুট তালিকার প্রতিটি এন্ট্রির জন্য মানগুলির একটি তালিকা দেয়।", @@ -453,7 +453,8 @@ "466837068": "হ্যাঁ, আমার সীমা বাড়ান", "467839232": "আমি ফরেক্স CFD এবং অন্যান্য জটিল আর্থিক ইন্সট্রুমেন্ট নিয়মিতভাবে অন্যান্য প্লাটফর্মে ট্রেড করি।", "471402292": "আপনার বট প্রতিটি রানের জন্য একটি একক ট্রেড টাইপ ব্যবহার করে।", - "471667879": "সময় বন্ধ করুন:", + "471667879": "কাট অফ সময়", + "471994882": "Your {{ currency }} account is ready.", "473154195": "সেটিংস", "474306498": "আপনার চলে যাওয়া দেখে আমরা দুঃখিত। আপনার অ্যাকাউন্ট এখন বন্ধ।", "475492878": "সিন্থেটিক সূচকগুলি চেষ্টা করুন", @@ -464,7 +465,7 @@ "479420576": "টারশিয়ারি", "480356486": "*বুম 300 এবং ক্র্যাশ 300 ইনডেক্স", "481276888": "Goes Outside", - "481564514": "আপনি যদি “আ <0>প” নির্বাচন করেন তবে স্পট মূল্য কখনই বাধার নীচে না হলে আপনি অর্থ প্রদান করবেন।", + "481564514": "আপনি যদি \"<0>Up\" নির্বাচন করেন, তাহলে স্পট মূল্য বাধার নিচে না নামলে আপনি পেআউট করবেন।", "483279638": "অ্যাসেসমেন্ট সম্পন্ন<0/><0/>", "485379166": "লেনদেন দেখুন", "487239607": "একটি প্রদত্ত সত্য বা মিথ্যার বিপরীত মান রূপান্তর করে", @@ -479,7 +480,7 @@ "499522484": "1. “স্ট্রিং” জন্য: 1325.68 মার্কিন ডলার", "500855527": "প্রধান নির্বাহী কর্মকর্তা, সিনিয়র কর্মকর্তা এবং লেজিসলেটর", "500920471": "এই ব্লকটি দুটি সংখ্যার মধ্যে গাণিতিকভাবে অপারেশন করে।", - "501284861": "ডেরিভ বটে কীভাবে ট্রেডিং বট তৈরি করবেন তা শিখতে এই ভিডিওটি দেখুন। এছাড়াও, একটি ট্রেডিং বট তৈরির বিষয়ে এই ব্লগ পোস্টটি দেখুন।", + "501284861": "Deriv Bot এ কীভাবে ট্রেডিং বট তৈরি করবেন তা শিখতে এই ভিডিওটি দেখুন। এছাড়াও, একটি ট্রেডিং বট তৈরির বিষয়ে এই ব্লগ পোস্টটি দেখুন।", "501401157": "শুধুমাত্র ডিপোজিট করার অনুমতি দেওয়া হয়", "501537611": "*ওপেন পজিশনের সর্বোচ্চ সংখ্যা", "502007051": "ডেমো সোয়াপ মুক্ত SVG", @@ -548,7 +549,6 @@ "573173477": "মোমবাতি {{ input_candle }} কি কালো?", "575668969": "3. যে ট্রেডের ফলে লাভ হয়, পরবর্তী ট্রেডের জন্য শেয়ার 2 USD বৃদ্ধি করা হবে। Deriv Bot প্রতিটি সফল ট্রেডের জন্য 2 USD যোগ করতে থাকবে। A1 দেখুন।", "575702000": "মনে রাখবেন, সেলফি, ঘরগুলির ছবি, বা অ-সম্পর্কিত চিত্রগুলি প্রত্যাখ্যান করা হবে।", - "575968081": "অ্যাকাউন্ট তৈরি করা হয়েছে। আমানতের জন্য পেমেন্ট পদ্ধতি নির্বাচন করুন।", "576355707": "আপনার দেশ এবং নাগরিকত্ব নির্বাচন করুন:", "577215477": "{{ variable }} থেকে {{ start_number }} থেকে {{ end_number }} দ্বারা {{ step_size }}এর সাথে গণনা করুন", "577779861": "উত্তোলন", @@ -610,7 +610,7 @@ "634274250": "প্রতিটি ট্রেডের মেয়াদ শেষ হতে কতক্ষণ সময় নেয়।", "636219628": "<0>গ) নিষ্পত্তির সুযোগ না পাওয়া গেলে অভিযোগটি ডিআরসি কর্তৃক পরিচালিত সংকল্প পর্যায়ে অগ্রসর হবে।", "636427296": "ট্যাক্স তথ্য নিয়ে সাহায্য দরকার? লাইভ চ্যাটের মাধ্যমে <0>আমাদের জানান।", - "636579615": "হারিয়ে যাওয়া বাণিজ্যের পরে পরবর্তী ট্রেডে যুক্ত হওয়া ইউনিট (গুলি) সংখ্যা। একটি ইউনিট প্রাথমিক স্ষ্টেকের পরিমাণের সমতুল্য।", + "636579615": "হারিয়ে যাওয়া ট্রেডের পরে পরবর্তী ট্রেডে যুক্ত হওয়া ইউনিট (গুলি) সংখ্যা। একটি ইউনিট প্রাথমিক স্ষ্টেকের পরিমাণের সমতুল্য।", "639382772": "অনুগ্রহ করে সমর্থিত ফাইল টাইপ আপলোড করুন।", "640249298": "স্বাভাবিক", "640596349": "আপনি এখনও কোনো বিজ্ঞপ্তি পাননি", @@ -635,8 +635,8 @@ "654924603": "Martingale", "655937299": "আমরা আপনার সীমা আপডেট করবো। স্বীকার করতে <0>স্বীকার ক্লিক করুন যে আপনি আপনার কর্মের জন্য সম্পূর্ণরূপে দায়বদ্ধ, এবং আমরা কোন আসক্তি বা ক্ষতির জন্য দায়ী নই।", "656893085": "টাইমস্ট্যাম্প", - "657325150": "এই ব্লকটি ট্রেড প্যারামিটার রুট ব্লকের মধ্যে ট্রেড অপশনগুলি সংজ্ঞায়িত করতে ব্যবহৃত হয়। কিছু অপশন শুধুমাত্র নির্দিষ্ট ট্রেড টাইপের জন্য প্রযোজ্য। বেশিরভাগ ট্রেড টাইপের মধ্যে সময়কাল এবং অংশীদারির মতো প্যারামিটারগুলি সাধারণ। ভবিষ্যদ্বাণী যেমন ডিজিট হিসাবে ট্রেড ধরনের জন্য ব্যবহার করা হয়, যখন বাধা অফসেট বাণিজ্য ধরনের যে বাধা জড়িত যেমন টাচ/না স্পর্শ, শেষ ইন/আউট, ইত্যাদি জন্য হয়।", - "658745169": "মেয়াদ শেষ হওয়ার 60 সেকেন্ড আগে আপনি চুক্তিটি বিক্রি করতে পারেন। আপনি যদি তা করেন তবে আমরা আপনাকে চুক্তির মূল্য প্র <0>দান করব।", + "657325150": "এই ব্লকটি ট্রেড প্যারামিটার রুট ব্লকের মধ্যে ট্রেড অপশনগুলি সংজ্ঞায়িত করতে ব্যবহৃত হয়। কিছু অপশন শুধুমাত্র নির্দিষ্ট ট্রেড টাইপের জন্য প্রযোজ্য। বেশিরভাগ ট্রেড টাইপের মধ্যে সময়কাল এবং অংশীদারির মতো প্যারামিটারগুলি সাধারণ। ভবিষ্যদ্বাণী যেমন ডিজিট হিসাবে ট্রেড ধরনের জন্য ব্যবহার করা হয়, যখন বাধা অফসেট ট্রেড ধরনের যে বাধা জড়িত যেমন টাচ/না স্পর্শ, শেষ ইন/আউট, ইত্যাদি জন্য হয়।", + "658745169": "আপনি মেয়াদ শেষ হওয়ার আগে 60 সেকেন্ড পর্যন্ত চুক্তি বিক্রি করতে পারেন। আপনি যদি তা করেন, আমরা আপনাকে <0>চুক্তি মূল্য প্রদান করবো।", "659482342": "অনুগ্রহ করে মনে রাখবেন যে আপনার উত্তরগুলি সঠিক এবং আপ টু ডেট রাখা আপনার দায়িত্ব। আপনি আপনার অ্যাকাউন্ট সেটিংসে যে কোনো সময় আপনার ব্যক্তিগত বিবরণ আপডেট করতে পারেন।", "660481941": "আপনার মোবাইল অ্যাপ্লিকেশন এবং অন্যান্য তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলি অ্যাক্সেস করতে, আপনাকে প্রথমে একটি API টোকেন তৈরি করতে হবে।", "660991534": "সমাপ্ত", @@ -646,7 +646,7 @@ "665089217": "আপনার অ্যাকাউন্ট প্রমাণীকরণ এবং আপনার ক্যাশিয়ার অ্যাক্সেস করার জন্য আপনার <0>পরিচয় প্রমাণ জমা দিন।", "665777772": "XLM/USD", "665872465": "নীচের উদাহরণে, উদ্বোধনী মূল্য নির্বাচন করা হয়, যা পরে “op” নামক একটি চলকের জন্য বরাদ্দ করা হয়।", - "666158951": "স্টপ আউট স্তরে পৌঁছানোর <0>সময় আপনার চুক্তি বন্ ধ হয়ে যাবে।", + "666158951": "<0>স্টপ আউট লেভেল এ পৌঁছালে আপনার চুক্তি বন্ধ হয়ে যাবে।", "666724936": "অনুগ্রহ করে একটি বৈধ ID নাম্বার দিন।", "669494711": "1.4 পিপস", "671630762": "আমরা আপনার ঠিকানা প্রমাণ হিসাবে শুধুমাত্র এই ধরনের নথি গ্রহণ করি। নথিটি অবশ্যই সাম্প্রতিক (বিগত {{expiry_in_months}} মাসের মধ্যে জারি করা ) এবং আপনার নাম এবং ঠিকানা অন্তর্ভুক্ত থাকতে হবে:", @@ -774,6 +774,7 @@ "793526589": "আমাদের সেবা সম্পর্কে একটি অভিযোগ দায়ের করতে, <0>complaints@deriv.com এ একটি ইমেইল পাঠান এবং আপনার অভিযোগ বিস্তারিতভাবে জানান। আমাদের আরও ভাল বোঝার জন্য অনুগ্রহ করে আপনার ট্রেডিং বা সিস্টেমের প্রাসঙ্গিক স্ক্রিনশট জমা দিন।", "793531921": "আমাদের কোম্পানি বিশ্বের প্রাচীনতম এবং সবচেয়ে সম্মানজনক অনলাইন ট্রেডিং কোম্পানিগুলির মধ্যে একটি। আমরা আমাদের ক্লায়েন্টদের মোটামুটি আচরণ এবং তাদের চমৎকার সেবা প্রদান করতে প্রতিশ্রুতিবদ্ধ।<0/><1/> বিশ্রাম নিশ্চিত করুন যে আপনি সব সময়ে শোনা, মূল্যবান এবং মোটামুটি চিকিত্সা করা হবে।", "794682658": "আপনার ফোনে লিঙ্কটি অনুলিপি করুন", + "794778483": "Deposit later", "795859446": "পাসওয়ার্ড সংরক্ষিত", "795992899": "চূড়ান্ত মূল্য এবং বাধার মধ্যে পরিবর্তনের প্রতিটি পয়েন্টের জন্য আপনি মেয়াদ শেষে যে পরিমাণ পেতে পছন্দ করেন। ", "797007873": "ক্যামেরা অ্যাক্সেস পুনরুদ্ধার করতে এই পদক্ষেপগুলি অনুসরণ করুন:", @@ -808,7 +809,7 @@ "830164967": "শেষ নাম", "830703311": "আমার প্রোফাইল", "830993327": "বর্তমান লেনদেন উপলব্ধ নেই", - "831344594": "আপনি যদি “লোয়ার” নির্ <0>বাচন করেন তবে প্রস্থান স্থান বাধার চেয়ে কঠোরভাবে কম থাকলে আপনি পেআউট জিতেন।", + "831344594": "আপনি যদি \"<0>নিম্ন\" নির্বাচন করেন, তাহলে প্রস্থান স্পটটি বাধার চেয়ে কঠোরভাবে কম হলে আপনি পেআউট জিতবেন।", "832053636": "ডকুমেন্ট জমা", "832217983": "গত 12 মাসে 40 টি বা তার বেশি লেনদেন", "832398317": "বিক্রয় ত্রুটি", @@ -995,7 +996,7 @@ "1012102263": "আপনি এই তারিখ পর্যন্ত (আজ থেকে 6 সপ্তাহ পর্যন্ত) আপনার অ্যাকাউন্টে লগ ইন করতে পারবেন না।", "1015201500": "আপনার ট্রেড বিকল্পগুলি যেমন সময়কাল এবং অংশীদারিত্ব নির্ধারণ করুন।", "1016220824": "এই বৈশিষ্ট্যটি ব্যবহার করার জন্য আপনাকে একটি আসল অর্থ অ্যাকাউন্টে স্যুইচ করতে হবে।<0/> আপনি অ্যাকাউন্ট <1>সুইচার থেকে একটি আসল অ্যাকাউন্ট নির্বাচন করে এটি করতে পারেন।", - "1017081936": "আপনি যদি “পুট” নির্ <0>বাচন করেন তবে শেষ হওয়ার সময় চূড়ান্ত মূল্য স্ট্রাইক প্রাইসের নীচে থাকলে আপনি অর্থ প্রদান করবেন। অন্যথায়, আপনি অর্থ প্রদান পাবেন না।", + "1017081936": "আপনি যদি \"<0>পুট\" নির্বাচন করেন, তাহলে মেয়াদ শেষ হওয়ার সময় চূড়ান্ত মূল্য স্ট্রাইক মূল্যের নিচে থাকলে আপনি একটি পেআউট পাবেন। অন্যথায়, আপনি পেআউট পাবেন না।", "1018803177": "মান বিচ্যুতি", "1019265663": "আপনার এখনও কোন লেনদেন নেই।", "1019508841": "ব্যারিয়ার 1", @@ -1053,10 +1054,10 @@ "1056381071": "ট্রেডে রিটার্ন", "1056821534": "আপনি কি নিশ্চিত?", "1057216772": "পাঠ্য {{ input_text }} ফাঁকা", - "1057519018": "4. যদি একটি ট্রেড লাভে শেষ হয়, তাহলে নিম্নোক্ত বাণিজ্যের জন্য স্টক 1 USD-এর প্রারম্ভিক স্টেকের পরিমাণে পুনরায় সেট করা হবে।", + "1057519018": "4. যদি একটি ট্রেড লাভে শেষ হয়, তাহলে নিম্নোক্ত ট্রেডের জন্য স্টক 1 USD-এর প্রারম্ভিক স্টেকের পরিমাণে পুনরায় সেট করা হবে।", "1057749183": "দুই ফ্যাক্টর প্রমাণীকরণ (2FA)", "1057765448": "স্টপ আউট লেভেল", - "1057904606": "D'Alembert কৌশল ধারণা Martingale কৌশল অনুরূপ হতে বলা হয় যেখানে আপনি একটি ক্ষতি পরে আপনার চুক্তি আকার বৃদ্ধি হবে। D'Alembert কৌশল সঙ্গে, আপনি একটি সফল বাণিজ্য পরে আপনার চুক্তি আকার হ্রাস করা হবে।", + "1057904606": "D'Alembert কৌশল ধারণা Martingale কৌশল অনুরূপ হতে বলা হয় যেখানে আপনি একটি ক্ষতি পরে আপনার চুক্তি আকার বৃদ্ধি হবে। D'Alembert কৌশল সঙ্গে, আপনি একটি সফল ট্রেড পরে আপনার চুক্তি আকার হ্রাস করা হবে।", "1058804653": "মেয়াদ শেষ", "1058905535": "টিউটোরিয়াল", "1060231263": "প্রাথমিক মার্জিন কখন পরিশোধ করতে হবে?", @@ -1073,7 +1074,7 @@ "1070624871": "ঠিকানা ডকুমেন্ট যাচাইকরণ অবস্থা প্রমাণ পরীক্ষা করুন", "1073261747": "যাচাইকরণ", "1073611269": "আপনার পরিচয় নথির একটি অনুলিপি (যেমন পরিচয় কার্ড, পাসপোর্ট, ড্রাইভারের লাইসেন্স)", - "1073711308": "বাণিজ্য বন্ধ", + "1073711308": "ট্রেড বন্ধ", "1076006913": "শেষ {{item_count}} চুক্তির মুনাফা/ক্ষতি", "1077515534": "তারিখ থেকে", "1078189922": "আপনার অ্যাকাউন্টের যাচাইকরণ সম্পূর্ণ হয়ে গেলে আপনি একটি নতুন আমানত করতে পারেন।", @@ -1111,7 +1112,7 @@ "1109182113": "দ্রষ্টব্য: ডিল বাতিলকরণ শুধুমাত্র মাল্টিপ্লাইয়ারগুলিতে অস্থিরতা সূচক", "1109217274": "সফলতা!", "1110102997": "বিবৃতি", - "1111743543": "স্টপ লস (গুণক)", + "1111743543": "স্টপ লস (Multiplier)", "1112582372": "ব্যবধান সময়কাল", "1113119682": "এই ব্লকটি আপনাকে মোমবাতি তালিকা থেকে নির্বাচিত মোমবাতি মান প্রদান করে।", "1113227831": "হ্যাঁ, আপনি পারেন। যাইহোক, আপনার অ্যাকাউন্টে সীমা রয়েছে, যেমন উন্মুক্ত পজিশনের সর্বাধিক সংখ্যা এবং ওপেন পজিশনগুলিতে সর্বাধিক সমষ্টি অর্থ প্রদানের সুতরাং, একাধিক পজিশন খোলার সময় কেবল এই সীমাগুলি মাথায় রাখুন। আপনি সেটিংস > অ্যাকাউন্ট সীমাএ এই সীমাবদ্ধতা সম্পর্কে আরও তথ্য পেতে পারেন।", @@ -1224,7 +1225,7 @@ "1223993374": "এন্ট্রি স্পটের জন্য, আমরা বর্তমান-টিক-এক্সিকিউশন প্রক্রিয়া ব্যবহার করি, যা আমাদের সার্ভার দ্বারা ট্রেড খোলার প্রক্রিয়া করার সময় সর্বশেষ সম্পদের মূল্য।", "1225874865": "স্টেক সমন্বয়: লক্ষ্য সেশন মুনাফা (1 ডলার) - বর্তমান সেশন লাভ (0 USD) = 1 মার্কিন ডলার", "1227074958": "র্যান্ডম ভগ্নাংশ", - "1227132397": "4. যে ব্যবসার ফলে ক্ষতি হয়, তার দুটি ফলাফল আছে। যদি এটি প্রারম্ভিক স্টেক এ ট্রেড করা হয়, তাহলে পরবর্তী ট্রেড একই পরিমাণে থাকবে যেমন স্ট্র্যাটেজি প্রাথমিক স্টেক এ ন্যূনতম ট্রেড করে, A2 দেখুন। যদি এটি বেশি পরিমাণে লেনদেন করা হয়, তাহলে পরবর্তী বাণিজ্যের জন্য অংশীদারি 2 USD কমে যাবে, A3 দেখুন।", + "1227132397": "4. যে ব্যবসার ফলে ক্ষতি হয়, তার দুটি ফলাফল আছে। যদি এটি প্রারম্ভিক স্টেক এ ট্রেড করা হয়, তাহলে পরবর্তী ট্রেড একই পরিমাণে থাকবে যেমন স্ট্র্যাটেজি প্রাথমিক স্টেক এ ন্যূনতম ট্রেড করে, A2 দেখুন। যদি এটি বেশি পরিমাণে লেনদেন করা হয়, তাহলে পরবর্তী ট্রেডের জন্য অংশীদারি 2 USD কমে যাবে, A3 দেখুন।", "1227240509": "ফাঁকা স্থান ছাঁটাই", "1228534821": "কিছু মুদ্রা আপনার দেশে পেমেন্ট এজেন্ট দ্বারা সমর্থিত নাও হতে পারে।", "1229883366": "কর সনাক্তকরণ নাম্বার", @@ -1284,10 +1285,10 @@ "1281045211": "একটি প্রদত্ত তালিকায় আইটেমগুলিকে, তাদের সংখ্যাসূচক বা বর্ণানুক্রমিক মান অনুসারে, ঊর্ধ্বমুখী বা অবরোহ ক্রমে সাজানো।", "1281290230": "নির্বাচন ", "1282951921": "শুধুমাত্র ডাউনস", - "1283418744": "আপনার অবস্থানগুলি পরিচালনা করার জন্য অতিরিক্ত বৈশিষ্ট্যগুলি উপলব্ধ: “লা <1>ভ নি ন”, “<2>স্টপ লস” এবং “ডিল <0>বাতিল করণ” আপনাকে আপনার ঝুঁকি বিরক্তির স্তর সমন্বয় করতে দেয়।", - "1284522768": "যদি \"ক্ষতি\" নির্বাচন করা হয়, আপনার শেষ বাণিজ্য ব্যর্থ হলে এটি \"সত্য\" ফেরত দেবে। অন্যথায়, এটি একটি খালি স্ট্রিং ফিরিয়ে দেবে।", + "1283418744": "আপনার অবস্থানগুলি পরিচালনা করার জন্য অতিরিক্ত বৈশিষ্ট্যগুলি উপলব্ধ: “<0>লাভ নিন”, “<1>লস বন্ধ করুন” এবং “<2>ডিল বাতিলকরণ” ঝুঁকি এড়াতে আপনাকে স্তর সামঞ্জস্য করতে দেয় ", + "1284522768": "যদি \"ক্ষতি\" নির্বাচন করা হয়, আপনার শেষ ট্রেড ব্যর্থ হলে এটি \"সত্য\" ফেরত দেবে। অন্যথায়, এটি একটি খালি স্ট্রিং ফিরিয়ে দেবে।", "1286094280": "প্রত্যাহার", - "1286384690": "আপনি যদি “ইভেন<0>” নির্বাচন করেন তবে শেষ টিকের শেষ সংখ্যাটি যদি একটি সমান সংখ্যা হয় (অর্থাৎ 2, 4, 6, 8, বা 0) আপনি পেআউট জিতবেন।", + "1286384690": "আপনি যদি “<0>ইভেন” নির্বাচন করেন, তাহলে শেষ টিকটির শেষ সংখ্যাটি যদি একটি জোড় সংখ্যা হয় (যেমন 2, 4, 6, 8, বা 0) তাহলে আপনি পেআউট জিতবেন।", "1286507651": "পরিচয় যাচাইকরণ পর্দা বন্ধ", "1288965214": "পাসপোর্ট", "1289146554": "British Virgin Islands Financial Services Commission", @@ -1346,8 +1347,9 @@ "1337846406": "এই ব্লক আপনাকে নির্বাচিত সময় ব্যবধানের মধ্যে মোমবাতি তালিকা থেকে নির্বাচিত মোমবাতি মান দেয়।", "1337864666": "আপনার নথির ছবি", "1338496204": "সূত্র আইডি", + "1339565304": "Deposit now to start trading", "1339613797": "রেগুলেটর/বাহ্যিক বিরোধ নিষ্পত্তি", - "1340286510": "বট বন্ধ হয়েছে, কিন্তু আপনার বাণিজ্য এখনও চলমান হতে পারে। আপনি রিপোর্ট পৃষ্ঠায় এটি চেক করতে পারেন।", + "1340286510": "বট বন্ধ হয়েছে, কিন্তু আপনার ট্রেড এখনও চলমান হতে পারে। আপনি রিপোর্ট পৃষ্ঠায় এটি চেক করতে পারেন।", "1341840346": "জার্নালে দেখুন", "1341921544": "ট্রেডিং অ্যাকাউন্ট এবং ফান্ড", "1344696151": "ফরেক্স, স্টক, স্টক সূচক, পণ্য, ক্রিপ্টোকারেন্সি এবং সিন্থেটিক সূচক।", @@ -1361,7 +1363,7 @@ "1349295677": "{{ input_text }} {{ position1 }} {{ index1 }} থেকে {{ position2 }} {{ index2 }} পর্যন্ত সাবস্ট্রিং পান", "1351906264": "এই বৈশিষ্ট্যটি পেমেন্ট এজেন্টদের জন্য উপলব্ধ নয়।", "1352234202": "সর্বশেষ {{positionsCount}} চুক্তিসমূহ:", - "1352413406": "আপনার বাণিজ্য বিকল্পগুলি যেমন অ্যাকুলেটর এবং স্টেক সংজ্ঞায়িত করুন।", + "1352413406": "আপনার ট্রেড বিকল্পগুলি যেমন অ্যাকুলেটর এবং স্টেক সংজ্ঞায়িত করুন।", "1353197182": "অনুগ্রহ করে নির্বাচন করুন", "1354288636": "আপনার উত্তরগুলির উপর ভিত্তি করে, মনে হচ্ছে আপনার CFD ট্রেডিং সম্পর্কে অপর্যাপ্ত জ্ঞান এবং অভিজ্ঞতা আছে। CFD ট্রেডিং ঝুঁকিপূর্ণ এবং আপনি সম্ভাব্য আপনার সমস্ত মূলধন হারাতে পারেন।<0/><0/>", "1355250245": "তালিকার {{ input_list }}এর {{ calculation }}", @@ -1385,7 +1387,7 @@ "1371555192": "আপনার পছন্দের পেমেন্ট এজেন্ট নির্বাচন করুন এবং আপনার উইথড্রয়াল অ্যামাউন্টটি লিখুন। যদি আপনার পেমেন্ট এজেন্ট তালিকাভুক্ত না হয়, তাহলে <0>তাদের অ্যাকাউন্ট নম্বর ব্যবহার করে তাদের সন্ধান করুন।", "1371641641": "আপনার মোবাইলে লিঙ্কটি খুলুন", "1371911731": "ইইউতে আর্থিক পণ্যগুলি {{legal_entity_name}}দ্বারা সরবরাহ করা হয়, মাল্টা ফাইন্যান্সিয়াল সার্ভিসেস অথরিটি দ্বারা বিভাগ 3 বিনিয়োগ পরিষেবা প্রদানকারী হিসাবে লাইসেন্সপ্রাপ্ত (<0>লাইসেন্স নং। ইস/৭০১৫৬)।", - "1373949314": "Reverse Martingale কৌশল প্রতিটি সফল বাণিজ্যের পরে আপনার শেক বাড়ানোর সাথে জড়িত এবং প্রতিটি হারানো ট্রেডের জন্য প্রাথমিক শেয়ারে পুনরায় সেট করে কারণ এটি ধারাবাহিক জয় থেকে সম্ভাব্য লাভ।", + "1373949314": "Reverse Martingale কৌশল প্রতিটি সফল ট্রেডের পরে আপনার শেক বাড়ানোর সাথে জড়িত এবং প্রতিটি হারানো ট্রেডের জন্য প্রাথমিক শেয়ারে পুনরায় সেট করে কারণ এটি ধারাবাহিক জয় থেকে সম্ভাব্য লাভ।", "1374627690": "সর্বোচ্চ অ্যাকাউন্ট ব্যালেন্স", "1374902304": "আপনার নথি ক্ষতিগ্রস্ত বা ক্রপকৃত বলে মনে হচ্ছে।", "1375884086": "আর্থিক, আইনী, বা সরকারি নথি: সাম্প্রতিক ব্যাংক স্টেটমেন্ট, হলফনামা, বা সরকার প্রদত্ত চিঠি।", @@ -1550,7 +1552,7 @@ "1537711064": "ক্যাশিয়ার অ্যাক্সেস করার আগে আপনাকে একটি দ্রুত পরিচয় যাচাই করতে হবে। আপনার পরিচয়ের প্রমাণ জমা দিতে অনুগ্রহ করে আপনার অ্যাকাউন্ট সেটিংসে যান।", "1540585098": "প্রত্যাখ্যান", "1541508606": "CFD খুঁজছেন? ট্রেডার'স হাব এ যান", - "1541770236": "1-3-2-6 কৌশলটির লক্ষ্য ধারাবাহিক চারটি সফল ট্রেড দিয়ে সম্ভাব্য লাভ সর্বাধিক করা। একটি ইউনিট প্রাথমিক শেকের পরিমাণের সমান। প্রথম সফল বাণিজ্যের পরে শেক 1 ইউনিট থেকে 3 ইউনিটে, তারপরে আপনার দ্বিতীয় সফল ট্রেডের পরে 2 ইউনিটে এবং তৃতীয় সফল বাণিজ্যের পরে 6 ইউনিটে সমন্বয় করবে। যদি কোনও হারিয়ে যাওয়া বাণিজ্য বা বাণিজ্য চক্র সমাপ্ত হয় তবে পরবর্তী বাণিজ্যের জন্য স্টেক প্রাথমিক শেয়ারে পুনরায় সেট করা হবে।", + "1541770236": "1-3-2-6 কৌশলটির লক্ষ্য ধারাবাহিক চারটি সফল ট্রেড দিয়ে সম্ভাব্য লাভ সর্বাধিক করা। একটি ইউনিট প্রাথমিক শেকের পরিমাণের সমান। প্রথম সফল ট্রেডের পরে শেক 1 ইউনিট থেকে 3 ইউনিটে, তারপরে আপনার দ্বিতীয় সফল ট্রেডের পরে 2 ইউনিটে এবং তৃতীয় সফল ট্রেডের পরে 6 ইউনিটে সমন্বয় করবে। যদি কোনও হারিয়ে যাওয়া ট্রেড বা ট্রেড চক্র সমাপ্ত হয় তবে পরবর্তী ট্রেডের জন্য স্টেক প্রাথমিক শেয়ারে পুনরায় সেট করা হবে।", "1541969455": "উভয়", "1542742708": "ফরেক্স, স্টক সূচক, পণ্য এবং ক্রিপ্টোকারেন্সি", "1544642951": "আপনি যদি “Only Ups” নির্বাচন করেন, তাহলে এন্ট্রি স্পটের পরে ধারাবাহিকভাবে টিক বৃদ্ধি পেলে আপনি পেআউট জিতবেন। কোন টিক পড়ে গেলে বা পূর্ববর্তী টিকের সমান না হলে পেআউট করা হয় না।", @@ -1803,7 +1805,7 @@ "1789273878": "প্রতি পয়েন্ট পেআউট", "1789497185": "নিশ্চিত করুন যে আপনার পাসপোর্টের বিবরণ পড়তে স্পষ্ট, কোন দাগ বা একদৃষ্টি ছাড়াই", "1791432284": "দেশের জন্য অনুসন্ধান", - "1791926890": "আপনি যদি “<0>উচ্চতর” নির্বাচ ন করেন তবে প্রস্থান স্থান বাধার চেয়ে কঠোরভাবে বেশি হলে আপনি পেআউট জিতেন।", + "1791926890": "আপনি যদি \"<0>উচ্চতর\" নির্বাচন করেন, তাহলে প্রস্থান স্পটটি বাধার থেকে কঠোরভাবে বেশি হলে আপনি পেআউট জিতবেন।", "1791971912": "সাম্প্রতিক", "1792037169": "বিলম্ব এড়াতে, আপনার <0>নাম এবং <0>জন্ম তারিখ লিখুন ঠিক যেমনটি আপনার {{document_name}} উল্লেখিত।", "1793913365": "অর্থ জমা করতে, অনুগ্রহ করে আপনার {{currency_symbol}} অ্যাকাউন্টে যান।", @@ -1841,7 +1843,7 @@ "1824292864": "Call", "1827607208": "ফাইল আপলোড করা হয়নি।", "1828370654": "অনবোর্ডিং", - "1828856382": "আপনি যদি “পার্থক্ <0>য” নির্বাচন করেন তবে শেষ টিকের শেষ সংখ্যা আপনার ভবিষ্যদ্বাণীর মতো না হলে আপনি পেআউট জিতবেন।", + "1828856382": "আপনি যদি \"<0>পার্থক্য\" নির্বাচন করেন, তাহলে শেষ টিকটির শেষ সংখ্যাটি আপনার ভবিষ্যদ্বাণীর মতো না হলে আপনি পেআউট জিতবেন।", "1830520348": "{{platform_name_dxtrade}} পাসওয়ার্ড", "1831847842": "আমি নিশ্চিত করি যে উপরের নাম এবং জন্ম তারিখ আমার নির্বাচিত পরিচয় দস্তাবেজের সাথে মেলে (নিচে দেখুন)", "1833499833": "পরিচয় দস্তাবেজ আপলোড প্রমাণ ব্যর্থ", @@ -2029,7 +2031,7 @@ "1995023783": "ঠিকানার প্রথম লাইন*", "1996767628": "অনুগ্রহ করে আপনার ট্যাক্স সংক্রান্ত তথ্য নিশ্চিত করুন।", "1997138507": "যদি শেষ টিক গড়ের সমান হয়, তাহলে আপনি পেআউট জিতবেন না।", - "1997313835": "যতদিন বর্তমান স্পট প্রাইস <0>আগের স্পট প্রাইস থেকে নির্দিষ্ট <0>সীমার মধ্যে থাকে ততক্ষণ পর্যন্ত আপনার স্টক বাড়তে থাকবে। অন্যথা, আপনি আপনার পণ হারান এবং বাণিজ্য বাতিল করা হয়।", + "1997313835": "যতদিন বর্তমান স্পট প্রাইস <0>আগের স্পট প্রাইস থেকে নির্দিষ্ট <0>সীমার মধ্যে থাকে ততক্ষণ পর্যন্ত আপনার স্টক বাড়তে থাকবে। অন্যথা, আপনি আপনার পণ হারান এবং ট্রেড বাতিল করা হয়।", "1999213036": "উন্নত সুরক্ষা মাত্র এক ট্যাপ দূরে।", "1999346412": "দ্রুত যাচাইকরণের জন্য, আপনার ঠিকানা নথির প্রুফ হিসাবে এখানে একই ঠিকানা ইনপুট করুন (নীচের বিভাগ দেখুন)", "2001222130": "আপনার স্প্যাম বা অপ্রয়োজনীয় ফোল্ডার পরীক্ষা করুন। যদি তা না থাকে, তাহলে ইমেইল পুনরায় পাঠানোর চেষ্টা করুন।", @@ -2044,6 +2046,7 @@ "2012139674": "অ্যান্ড্রয়েড: Google পাসওয়ার্ড ম্যানেজার।", "2014536501": "কার্ড নাম্বার", "2014590669": "পরিবর্তনশীল '{{variable_name}}' এর কোন মান নেই। অবহিত করার জন্য অনুগ্রহ করে পরিবর্তনশীল '{{variable_name}}' এর মান নির্ধারণ করুন।", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "দয়া করে ডকুমেন্ট ইস্যু করার দেশ নির্বাচন করুন।", "2018044371": "মাল্টিপ্লায়ার আপনাকে লিভারেজের সাথে ট্রেড করতে দেয় এবং আপনার ঝুঁকিকে আপনার ষ্টেকে সীমিত করতে দেয়। <0>আরো জানুন", "2019596693": "প্রদানকারীর ডকুমেন্ট প্রত্যাখ্যান করা হয়েছে।", @@ -2079,6 +2082,7 @@ "2048134463": "ফাইলের আকার ছাড়িয়ে গেছে।", "2049386104": "এই অ্যাকাউন্টটি পেতে আপনাকে এগুলি জমা দিতে হবে:", "2050170533": "টিক- এর তালিকা", + "2051249190": "Add funds and start trading", "2051558666": "লেনদেনের ইতিহাস দেখুন", "2051596653": "ডেমো জিরো স্প্রেড BVI", "2052022586": "আপনার MT5 অ্যাকাউন্টের নিরাপত্তা বাড়াতে আমরা আমাদের পাসওয়ার্ড নীতি আপগ্রেড করেছি।", @@ -2163,7 +2167,7 @@ "2135563258": "ফরেক্স ট্রেডিং ফ্রিকোয়েন্সি", "2136246996": "সেলফি আপলোড করা হয়েছে", "2136480755": "আপনার নথিতে কিছু বিবরণ অবৈধ, অনুপস্থিত বা অস্পষ্ট বলে মনে হচ্ছে।", - "2137645254": "আপনি যদি “কল” নির্ <0>বাচ ন করেন তবে শেষ হওয়ার সময় চূড়া <2>ন্ত <1>মূ ল্য স্ট্রাইক প্রাইসের উপরে থাকলে আপনি <3>অর্থ প্র দান করবেন<4>। অন্যথায়, আপনি অর্থ প্রদান পাবেন না।", + "2137645254": "আপনি যদি \"<0>কল\" নির্বাচন করেন, তাহলে আপনি একটি <1>পেআউট উপার্জন করবেন যদি <2>চূড়ান্ত মূল্য <3>স্ট্রাইক মূল্য এর উপরে হয় <4>মেয়াদ শেষ হওয়ার সময়। অন্যথায়, আপনি পেআউট পাবেন না।", "2137901996": "এটি সারসংক্ষেপ, লেনদেন এবং জার্নাল প্যানেলের সমস্ত ডেটা সাফ করবে। সমস্ত কাউন্টারে শূন্য পুনরায় সেট করা হবে।", "2137993569": "এই ব্লক দুটি মান তুলনা করে এবং একটি শর্তাধীন কাঠামো নির্মাণ করতে ব্যবহৃত হয়।", "2138861911": "স্ক্যান এবং ফটোকপি গ্রহণ করা হয় না", @@ -2355,7 +2359,7 @@ "-477761028": "ভোটার আইডি", "-1466346630": "সিপিএফ", "-1161338910": "প্রথম নাম প্রয়োজন।", - "-1629185446": "50 টিরও বেশি অক্ষর লিখুন না।", + "-1629185446": "50টির বেশি অক্ষর লিখবেন না।", "-1281693513": "জন্ম তারিখ প্রয়োজন।", "-26599672": "নাগরিকত্ব প্রয়োজন", "-912174487": "ফোন প্রয়োজন।", @@ -2531,7 +2535,7 @@ "-1101737402": "অনুগ্রহ করে নির্বাচন করুন*", "-975118358": "আপনার অ্যাকাউন্ট {{legal_entity_name}}দিয়ে খোলা হবে, মাল্টা ফাইন্যান্সিয়াল সার্ভিসেস অথরিটি (এমএফএসএ) দ্বারা নিয়ন্ত্রিত হবে এবং মাল্টা আইন সাপেক্ষে হবে।", "-2073934245": "এই সাইটে প্রদত্ত আর্থিক ট্রেডিং পরিষেবাগুলি কেবলমাত্র গ্রাহকদের জন্য উপযুক্ত, যারা তাদের বিনিয়োগ করা সমস্ত অর্থ হারানোর সম্ভাবনা গ্রহণ করে এবং যারা আর্থিক চুক্তি ক্রয়ের সাথে জড়িত ঝুঁকির অভিজ্ঞতা অর্জন করে। আর্থিক চুক্তির লেনদেন উচ্চ মাত্রার ঝুঁকি বহন করে। যদি আপনি যে চুক্তিগুলি ক্রয় করেন সেগুলি মূল্যহীন হিসাবে মেয়াদ শেষ হয়ে যায়, তাহলে আপনি আপনার সমস্ত বিনিয়োগ হারাবেন, যার মধ্যে রয়েছে চুক্তি প্রিমিয়াম।", - "-1035494182": "আপনি স্বীকার করেন যে, কোম্পানির বিবেচনা, প্রযোজ্য নিয়ম এবং অভ্যন্তরীণ চেকগুলি পূরণ হওয়ার সাপেক্ষে, আমরা আপনার জন্য একটি অ্যাকাউন্ট খুলব এবং ক্লায়েন্ট গ্রহণযোগ্যতা পদ্ধতির সময় আপনাকে তহবিল জমা করার অনুমতি দেব। যাইহোক, আপনার অ্যাকাউন্টের যাচাইকরণ সম্পন্ন না হওয়া পর্যন্ত আপনি বাণিজ্য করতে, প্রত্যাহার করতে বা আরও আমানত করতে সক্ষম হবেন না। আপনি যদি 30 দিনের মধ্যে প্রাসঙ্গিক নথি সরবরাহ না করেন তবে আপনি জমা দিয়েছিলেন এমন একই অর্থ প্রদানের পদ্ধতির মাধ্যমে আমরা জমা পরিমাণ ফেরত দেব।", + "-1035494182": "আপনি স্বীকার করেন যে, কোম্পানির বিবেচনা, প্রযোজ্য নিয়ম এবং অভ্যন্তরীণ চেকগুলি পূরণ হওয়ার সাপেক্ষে, আমরা আপনার জন্য একটি অ্যাকাউন্ট খুলব এবং ক্লায়েন্ট গ্রহণযোগ্যতা পদ্ধতির সময় আপনাকে তহবিল জমা করার অনুমতি দেব। যাইহোক, আপনার অ্যাকাউন্টের যাচাইকরণ সম্পন্ন না হওয়া পর্যন্ত আপনি ট্রেড করতে, প্রত্যাহার করতে বা আরও আমানত করতে সক্ষম হবেন না। আপনি যদি 30 দিনের মধ্যে প্রাসঙ্গিক নথি সরবরাহ না করেন তবে আপনি জমা দিয়েছিলেন এমন একই অর্থ প্রদানের পদ্ধতির মাধ্যমে আমরা জমা পরিমাণ ফেরত দেব।", "-1125193491": "অ্যাকাউন্ট যোগ করুন", "-2068229627": "আমি একটি PEP নই, এবং আমি গত 12 মাসে একটি PEP হয়েছে না।", "-1209644365": "আমি এতদ্বারা নিশ্চিত করছি যে Deriv Investments (Europe) Ltd-এর সাথে একটি অ্যাকাউন্ট খোলার জন্য আমার অনুরোধ আমার নিজের উদ্যোগে করা হয়েছে।", @@ -2986,7 +2990,7 @@ "-248283982": "বি ক্ষতি থ্রেশহোল্ড।", "-1148521416": "f হল ইউনিট বৃদ্ধি।", "-211800490": "ডি'আলেম্বার্ট সূত্র 2", - "-1772692202": "এই সূত্রটি আপনার কাছে থাকা অর্থের পরিমাণ এবং ঝুঁকির সাথে আপনার আরামের স্তর বিবেচনা করে আপনার ব্যবসায়ের পরিকল্পনা করতে সহায়তা করে। এতে আপনার লস থ্রেশহোল্ড এবং আপনি যে প্রাথমিক শেয়ারের সাথে বাণিজ্য করতে চান তা নির্ধারণ তারপরে, আপনি যে রাউন্ডের সংখ্যা বাণিজ্য করতে পারেন তা গণনা করতে আপনি এই সূত্রটি ব্যবহার করেন। এই প্রক্রিয়াটি স্টেক আকার এবং প্রত্যাশার অন্তর্দৃষ্টি সরবরাহ করে।", + "-1772692202": "এই সূত্রটি আপনার কাছে থাকা অর্থের পরিমাণ এবং ঝুঁকির সাথে আপনার আরামের স্তর বিবেচনা করে আপনার ব্যবসায়ের পরিকল্পনা করতে সহায়তা করে। এতে আপনার লস থ্রেশহোল্ড এবং আপনি যে প্রাথমিক শেয়ারের সাথে ট্রেড করতে চান তা নির্ধারণ তারপরে, আপনি যে রাউন্ডের সংখ্যা ট্রেড করতে পারেন তা গণনা করতে আপনি এই সূত্রটি ব্যবহার করেন। এই প্রক্রিয়াটি স্টেক আকার এবং প্রত্যাশার অন্তর্দৃষ্টি সরবরাহ করে।", "-2107238266": "ডি'আলেম্বার্ট সিস্টেম নিয়ন্ত্রিত স্টেক অগ্রগতির মাধ্যমে আরও সুষম ট্রেডিং সরবরাহ করে স্টেক লিমিটের মতো বিচক্ষণ ঝুঁকি ব্যবস্থাপনার সাহায্যে এটি Deriv Bot এ কার্যকরভাবে স্বয়ংক্রিয় করা যায় তবে, ব্যবসায়ীদের তাদের ঝুঁকির ক্ষুধা পুঙ্খানুপুঙ্খভাবে মূল্যায়ন করা উচিত, বাস্তব অর্থের সাথে ট্রেডিং করার পূর্বে তাদের ট্রেডিং স্টাইলের সাথে সারিবদ্ধ করার জন্য এটি পদ্ধতিটি অনুকূল করতে এবং ঝুঁকি পরিচালনা করার সময় সম্ভাব্য লাভ এবং ক্ষতির মধ্যে ভারসাম্য অর্জনের অনুমতি দেয়।", "-500873566": "অস্বীকৃতি:", "-344769349": "দয়া করে সচেতন থাকুন যে আমরা চিত্রণের জন্য বৃত্তাকার পরিসংখ্যান ব্যবহার করতে পারি, তবে একটি নির্দিষ্ট পরিমাণের শেয়ার সফল ট্রেডে সঠিক পরিমাণের গ্যারান্টি দেয় না। উদাহরণস্বরূপ, 1 USD ডলার শেয়ার অপরিহার্য সফল ট্রেডে 1 USD লাভের সমান নয়।", @@ -3009,22 +3013,22 @@ "-90079299": "Deriv Bot-এর সাহায্যে, ট্রেডাররা লাভ এবং ক্ষতির সীমা নির্ধারণ করতে পারে লাভ সুরক্ষিত করতে এবং সম্ভাব্য ক্ষতি সীমিত করতে। এর মানে হল লাভ বা ক্ষতির থ্রেশহোল্ডে পৌঁছে গেলে ট্রেডিং বট স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে। এটি ঝুঁকি ব্যবস্থাপনার একটি রূপ যা সম্ভাব্যভাবে রিটার্ন বাড়াতে পারে৷ উদাহরণস্বরূপ, যদি একজন ব্যবসায়ী 100 USD-এ লাভের থ্রেশহোল্ড সেট করে এবং কৌশলটি সমস্ত ট্রেড থেকে 100 USD লাভের বেশি হয়, তাহলে বটটি চলা বন্ধ হয়ে যাবে৷", "-1549673884": "অস্কারের গ্রাইন্ড কৌশল পদ্ধতিগত অংশীদারিত্বের মাধ্যমে ক্রমবর্ধমান লাভের জন্য একটি সুশৃঙ্খল পদ্ধতির ব্যবস্থা করে। লাভ বা ক্ষতির থ্রেশহোল্ডের মতো সঠিক ঝুঁকি ব্যবস্থাপনার সাথে Deriv Bot-এ একত্রিত হলে, এটি ব্যবসায়ীদের একটি সম্ভাব্য শক্তিশালী স্বয়ংক্রিয় ট্রেডিং কৌশল অফার করে। যাইহোক, ব্যবসায়ীদের প্রথমে তাদের ঝুঁকি সহনশীলতা পুঙ্খানুপুঙ্খভাবে মূল্যায়ন করা উচিত এবং প্রকৃত তহবিলের সাথে ট্রেড করার আগে কৌশলটির সাথে পরিচিত হওয়ার জন্য প্রথমে একটি ডেমো অ্যাকাউন্টে ট্রেডের চেষ্টা করা উচিত।", "-655650222": "Deriv Bot এ Reverse D’Alembert কৌশল অন্বেষণ করা", - "-1864807973": "Reverse D'Alembert কৌশলটিতে একটি সফল বাণিজ্যের পরে আপনার শেয়ার বাড়ানো এবং পূর্বনির্ধারিত সংখ্যক ইউনিট দ্বারা হারিয়ে যাওয়া বাণিজ্যের পরে এটি হ্রাস করার অন্তর্ভুক্ত।", + "-1864807973": "Reverse D'Alembert কৌশলটিতে একটি সফল ট্রেডের পরে আপনার শেয়ার বাড়ানো এবং পূর্বনির্ধারিত সংখ্যক ইউনিট দ্বারা হারিয়ে যাওয়া ট্রেডের পরে এটি হ্রাস করার অন্তর্ভুক্ত।", "-809681645": "এগুলি Reverse D’Alembert কৌশল সহ Deriv Bot এ ব্যবহৃত ট্রেড পরামিতি।", "-1239374257": "Reverse D’Alembert কৌশলের একটি উদাহরণ", "-309821442": "দয়া করে সচেতন থাকুন যে আমরা চিত্রণের জন্য বৃত্তাকার পরিসংখ্যান ব্যবহার করতে পারি, তবে একটি নির্দিষ্ট পরিমাণের শেয়ার সফল ট্রেডে সঠিক পরিমাণের গ্যারান্টি দেয় না। উদাহরণস্বরূপ, 1 USD ডলার শেয়ার অপরিহার্য সফল ট্রেডে 1 USD লাভের সমান নয়।", "-1576691912": "এই নিবন্ধটি Deriv Bot-এ সমন্বিত Reverse Martingale কৌশল অন্বেষণে, একটি বহুমুখী ট্রেডিং বট যা ফরেক্স, পণ্য এবং প্রাপ্ত সূচকের মতো সম্পদের ব্যবসা করার জন্য ডিজাইন করা হয়েছে। আমরা কৌশলটির মূল পরামিতিগুলি, এর প্রয়োগ সম্পর্কে অনুসন্ধান করব এবং বটটিকে কার্যকরভাবে ব্যবহার করতে চাওয়া ট্রেডারদের জন্য প্রয়োজনীয় উপায়সমূহ সরবরাহ করবে।", "-1934849823": "এগুলি Reverse Martingale কৌশল সহ Deriv Bot এ ব্যবহৃত ট্রেড পরামিতি।", - "-1021919630": "Multiplier: আপনার বাণিজ্য সফল হলে আপনার শেক বাড়ানোর জন্য ব্যবহৃত multiplier। মান অবশ্যই 1 এর চেয়ে বেশি হতে হবে।", + "-1021919630": "Multiplier: আপনার ট্রেড সফল হলে আপনার শেক বাড়ানোর জন্য ব্যবহৃত multiplier। মান অবশ্যই 1 এর চেয়ে বেশি হতে হবে।", "-760516362": "3. যদি প্রথম ট্রেডটি হারে শেষ হয়, Deriv Bot স্বয়ংক্রিয়ভাবে পরবর্তী ট্রেডের জন্য আপনার শেয়ারকে দ্বিগুণ করে $2 করে দেবে। Deriv Bot প্রতিটি হারানো ট্রেডের পরে শেয়ার দ্বিগুণ করতে থাকবে।", "-1410950365": "Deriv Bot এ 1-3-2-6 কৌশল অন্বেষণ করা", "-1175255072": "এগুলি 1-3-2-6 কৌশল সহ Deriv Bot এ ব্যবহৃত ট্রেড পরামিতি।", "-183884527": "1-3-2-6 কৌশলের একটি উদাহরণ", "-275617819": "4. যাইহোক, যদি কোন ট্রেডের ফলে ক্ষতি হয়, তাহলে আপনার শেয়ার পরবর্তী ট্রেডের জন্য 1 USD-এর প্রারম্ভিক স্টেক রিসেট হবে। তৃতীয় ট্রেডের ফলে ক্ষতি হয় তাই স্টেক পরবর্তী ট্রেডের জন্য 1 USD-এর প্রারম্ভিক স্টেক রিসেট করে।", - "-719846465": "5. প্রারম্ভিক ষ্টেকে পৌঁছানোর পর, যদি পরবর্তী ট্রেডের ফলে এখনও ক্ষতি হয়, তাহলে আপনার স্টক 1 USD-এর প্রারম্ভিক বাজিতে থাকবে। এই কৌশলটি ন্যূনতম প্রাথমিক অংশে বাণিজ্য করবে। চতুর্থ এবং পঞ্চম ট্রেড পড়ুন।", + "-719846465": "5. প্রারম্ভিক ষ্টেকে পৌঁছানোর পর, যদি পরবর্তী ট্রেডের ফলে এখনও ক্ষতি হয়, তাহলে আপনার স্টক 1 USD-এর প্রারম্ভিক বাজিতে থাকবে। এই কৌশলটি ন্যূনতম প্রাথমিক অংশে ট্রেড করবে। চতুর্থ এবং পঞ্চম ট্রেড পড়ুন।", "-1452746011": "ট্রেডিংয়ে 1-3-2-6 কৌশলটি যথেষ্ট লাভ অফার করতে পারে কিন্তু এর সাথে উল্লেখযোগ্য ঝুঁকিও আসে। প্রতিটি স্টেক স্বাধীন, এবং কৌশলটি দীর্ঘমেয়াদে সফল ট্রেডের আপনার সম্ভাবনা বাড়ায় না। আপনি যদি একটি সিরিজ ক্ষতির সম্মুখীন হন, কৌশলটি উল্লেখযোগ্য ক্ষতির কারণ হতে পারে। অতএব, ব্যবসায়ীদের জন্য তাদের ঝুঁকি সহনশীলতা মূল্যায়ন করা, একটি ডেমো অ্যাকাউন্টে অনুশীলন করা, লাভ এবং ক্ষতির থ্রেশহোল্ড ব্যবহার করা এবং বাস্তব-মানি ট্রেডিংয়ে জড়িত হওয়ার আগে কৌশলটি সম্পূর্ণরূপে বোঝা অত্যন্ত গুরুত্বপূর্ণ।", "-1016171176": "অ্যাসেট", - "-138833194": "অন্তর্নিহিত বাজার আপনার বট এই কৌশলটির সাথে বাণিজ্য করবে।", + "-138833194": "অন্তর্নিহিত বাজার আপনার বট এই কৌশলটির সাথে ট্রেড করবে।", "-621128676": "ট্রেডের ধরণ", "-399349239": "আপনার বট প্রতিটি রানের জন্য এই ট্রেড টাইপ ব্যবহার করবে", "-410856998": "আপনার মোট লাভ এই পরিমাণ ছাড়িয়ে গেলে বট ট্রেডিং বন্ধ করবে।", @@ -3041,8 +3045,8 @@ "-2066779239": "প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী", "-280324365": "Deriv Bot কি?", "-155173714": "চলুন শুরু করা যাক একটি বট নির্মাণ!", - "-2093569327": "কীভাবে ডেরিভ বট দিয়ে একটি বেসিক ট্রেডিং বট তৈরি করবেন", - "-2072114761": "ডেরিভ বটে মার্টিঙ্গেল কৌশল কীভাবে ব্যবহার করবেন", + "-2093569327": "কীভাবে Deriv Bot দিয়ে একটি বেসিক ট্রেডিং বট তৈরি করবেন", + "-2072114761": "Deriv Bot এ মার্টিঙ্গেল কৌশল কীভাবে ব্যবহার করবেন", "-1919212468": "3। আপনি বিভাগগুলির উপরে অনুসন্ধান বার ব্যবহার করে আপনি যে ব্লকগুলি চান সেগুলিও অনুসন্ধান করতে পারেন।", "-1800386057": "আরও তথ্যের জন্য, একটি ট্রেডিং বট তৈরির মূল বিষয়গুলি সম্পর্কে এই ব্লগ পোস্টটি দেখুন।", "-980360663": "3। আপনি চান ব্লক চয়ন করুন এবং কর্মক্ষেত্রে এটি টেনে আনুন।", @@ -3138,7 +3142,7 @@ "-555996976": "- এন্ট্রি সময়: চুক্তির শুরু সময়", "-1391071125": "- প্রস্থান সময়: চুক্তি মেয়াদ শেষ হওয়ার সময়", "-1961642424": "- প্রস্থান মান: চুক্তির শেষ টিক মান", - "-111312913": "- ব্যারিয়ার: চুক্তির বাধা মূল্য (বাধা ভিত্তিক বাণিজ্য ধরনের প্রযোজ্য যেমন ইন/আউট, স্পর্শ/কোন স্পর্শ, ইত্যাদি)", + "-111312913": "- ব্যারিয়ার: চুক্তির বাধা মূল্য (বাধা ভিত্তিক ট্রেড ধরনের প্রযোজ্য যেমন ইন/আউট, স্পর্শ/কোন স্পর্শ, ইত্যাদি)", "-674283099": "- ফলাফল: শেষ চুক্তির ফলাফল: “জয়” বা “ক্ষতি”", "-704543890": "এই ব্লকটি আপনাকে নির্বাচিত ক্যান্ডেলের মূল্য দেয় যেমন ওপেন প্রাইস, ক্লোজ প্রাইস, উচ্চ মূল্য, কম দাম এবং ওপেন টাইম। এটি একটি ইনপুট প্যারামিটার হিসাবে একটি মোমবাতি প্রয়োজন।", "-482281200": "নীচের উদাহরণে, খোলা মূল্য পরিবর্তনশীল “op” নির্ধারিত হয়।", @@ -3549,6 +3553,9 @@ "-2036288743": "বায়োমেট্রিক্স বা স্ক্রিন লক সহ উন্নত সুরক্ষা ", "-143216768": "পাসকি সম্পর্কে আরও জানুন <0> এখানে।", "-778309978": "আপনি যে লিঙ্কটিতে ক্লিক করেছেন তার মেয়াদ উত্তীর্ণ হয়ে গেছে। আপনার ইনবক্সে সর্বশেষ ইমেইলের লিঙ্কটিতে ক্লিক করার বিষয়টি নিশ্চিত করুন। বিকল্পভাবে, নীচে আপনার ইমেইল লিখুন এবং একটি নতুন লিঙ্কের জন্য <0>পুনঃ ইমেইল পাঠানো ক্লিক করুন।", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "তথ্য আপডেট", "-941870889": "ক্যাশিয়ার শুধুমাত্র বাস্তব অ্যাকাউন্টের জন্য", "-352838513": "দেখে মনে হচ্ছে আপনার আসল {{regulation}} অ্যাকাউন্ট নেই৷ ক্যাশিয়ার ব্যবহার করতে, আপনার {{active_real_regulation}} আসল অ্যাকাউন্টে স্যুইচ করুন, অথবা একটি {{regulation}} আসল অ্যাকাউন্ট নিন৷", @@ -3561,8 +3568,7 @@ "-55435892": "আপনার নথিগুলি পর্যালোচনা করতে এবং ইমেইলের মাধ্যমে আপনাকে অবহিত করতে আমাদের 1 - 3 দিনের প্রয়োজন হবে। আপনি ইতিমধ্যে ডেমো অ্যাকাউন্টগুলির সাথে অনুশীলন করতে পারেন।", "-1916578937": "<0>আপনার Wallet অফার করে এমন উত্তেজনাপূর্ণ নতুন বৈশিষ্ট্যগুলি অন্বেষণ করুন৷৷", "-1724438599": "<0>আপনি প্রায় সেখানে আছেন!", - "-1089300025": "আমরা আমানত ফি চার্জ করি না! আপনার অ্যাকাউন্ট যাচাই হয়ে গেলে, আপনি বাণিজ্য করতে, অতিরিক্ত আমানত করতে বা তহবিল প্রত্যাহার করতে সক্ষম হবেন।", - "-476018343": "লাইভ চ্যাট", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "ইমেইল ইনপুট ফাঁকা থাকা উচিত নয়।", "-1471705969": "<0>{{title}}: {{symbol}}এ {{trade_type_name}}", "-1771117965": "ট্রেড খোলা", @@ -3733,51 +3739,51 @@ "-802374032": "ঘণ্টা", "-1700010072": "এই বৈশিষ্ট্যটি টিক ব্যবধানের জন্য উপলব্ধ নয়। মিনিট, ঘন্টা বা দিনে স্যুইচ করুন।", "-663862998": "মার্কেটস", - "-1341681145": "এটি সক্রিয় হলে, আপনি নির্বাচিত সময়সীমার মধ্যে আপনার বাণিজ্য বাতিল করতে পারেন। আপনার অংশ ক্ষতি ছাড়াই ফেরত দেওয়া হবে।", + "-1341681145": "এটি সক্রিয় হলে, আপনি নির্বাচিত সময়সীমার মধ্যে আপনার ট্রেড বাতিল করতে পারেন। আপনার অংশ ক্ষতি ছাড়াই ফেরত দেওয়া হবে।", "-2069438609": "কোন ম্যাচ পাওয়া যায়নি", "-97673874": "কোনও বন্ধ ট্রেড নেই", "-1727419550": "আপনার বন্ধ ট্রেডগুলি এখানে দেখানো হবে।", - "-225500551": "এন্ট্রি এবং প্রস্থানের বিবরণ", + "-225500551": "প্রবেশ এবং প্রস্থান বিবরণ", "-1022682526": "আপনার প্রিয় বাজারগুলি এখানে উপস্থিত হবে।", "-315741954": "{{amount}} ট্রেডের ধরন", "-232254547": "কাস্টম", "-1251526905": "গত 7 দিন", "-1539223392": "গত 90 দিন", - "-1123299427": "যতদিন বর্তমান স্পট প্রাইস <1>আগের স্পট প্রাইস থেকে নির্দিষ্ট <0>সীমার মধ্যে থাকে ততক্ষণ পর্যন্ত আপনার স্টক বাড়তে থাকবে। অন্যথা, আপনি আপনার পণ হারান এবং বাণিজ্য বাতিল করা হয়।", + "-1123299427": "যতক্ষণ না বর্তমান স্পট প্রাইস <1>আগের স্পট প্রাইস থেকে একটি নির্দিষ্ট <0>সীমার মধ্যে থাকবে ততক্ষণ পর্যন্ত আপনার শেয়ার বাড়তে থাকবে। অন্যথায়, আপনি আপনার অংশীদারিত্ব হারাবেন এবং ট্রেড বন্ধ হয়ে যাবে।", "-1052279158": "আপনার <0>পেআউট হল আপনার প্রাথমিক ষ্টেক এবং লাভের যোগফল।", "-274058583": "<0>মুনাফা গ্রহণ হল একটি অতিরিক্ত বৈশিষ্ট্য যা আপনার লাভের লক্ষ্যমাত্রার পরিমাণে পৌঁছে গেলে স্বয়ংক্রিয়ভাবে ট্রেড বন্ধ করে আপনার ঝুঁকি পরিচালনা করতে দেয়। এই বৈশিষ্ট্যটি চলমান Accumulator চুক্তিগুলির জন্য অনুপলব্ধ৷", "-1819891401": "আপনি যেকোনো সময় আপনার ট্রেড বন্ধ করতে পারেন। যাইহোক, <0>স্লিপেজ ঝুঁকি সম্পর্কে সচেতন থাকুন।", "-859589563": "আপনি যদি “অড<0>” নির্বাচন করেন তবে শেষ টিকের শেষ সংখ্যা একটি অদ্ভুত সংখ্যা (অর্থাৎ 1, 3, 5, 7 বা 9) হলে আপনি পেআউট জিতবেন।", - "-1911850849": "যদি প্রস্থান স্পটটি বাধার সমান হয় তবে আপনি অর্থ প্রদান জিতবেন না।", + "-1911850849": "যদি প্রস্থান স্পট বাধা সমান হয়, আপনি পেআউট জিতবেন না।", "-618782785": "আপনার সম্ভাব্য রিটার্ন লাভ করতে Multiplier ব্যবহার করুন। সম্পদের মূল্য উপরে (বুলিশ) বা নিম্নমুখী (বিয়ারিশ) চলবে কিনা তা ভবিষ্যদ্বাণী করুন। আপনি যখন Multiplier্স ট্রেড খুলবেন তখন আমরা একটি কমিশন চার্জ করব", "-565391674": "আপনি যদি \"আ <0>Up “নির্বাচন করেন তবে আপনার মোট লাভ/ক্ষতি হবে অন্তর্নিহিত সম্পদের দামের শতাংশ বৃদ্ধি, Multiplier এবং শেকের গুণ, মাইনস কমিশন।", - "-1158764468": "আপনি যদি “ওভার” নির্বাচন করেন তবে <0>শেষ টিকের শেষ সংখ্যা আপনার পূর্বাভাসের চেয়ে বেশি হলে আপনি পেআউট জিতবেন।", + "-1158764468": "আপনি যদি \"<0>ওভার\" নির্বাচন করেন, তাহলে শেষ টিকটির শেষ সংখ্যাটি আপনার পূর্বাভাসের চেয়ে বেশি হলে আপনি পেআউট জিতবেন।", "-1268105691": "আপনি যদি “অধী <0>নে” নির্বাচন করেন তবে শেষ টিকের শেষ সংখ্যা আপনার পূর্বাভাসের চেয়ে কম হলে আপনি পেআউট জিতবেন।", - "-444119935": "আপনি যদি \"রাইজ “নির্ <0>বাচন করেন, প্রস্থান স্পট এন্ট্রি স্পটের চেয়ে কঠোরভাবে বেশি হলে আপনি পেআউট জিতবেন।", - "-521457890": "আপনি যদি “টা <0>চ” নির্বাচন করেন তবে চুক্তির সময়কালে যে কোনও সময় বাজার বাধা স্পর্শ করলে আপনি পেআউট জিতেন।", + "-444119935": "আপনি যদি \"<0>উত্থান\" নির্বাচন করেন, তাহলে আপনি পেআউট জিতবেন যদি প্রস্থান স্পট প্রবেশের স্থান থেকে কঠোরভাবে বেশি হয়।", + "-521457890": "আপনি যদি “<0>টাচ” নির্বাচন করেন, তাহলে চুক্তির সময়কালে বাজার যে কোনো সময় বাধা স্পর্শ করলে আপনি পেআউট জিতবেন।", "-1020271578": "আপনি যদি “<0>ডাউন” নির্বাচন করেন তবে স্পট মূল্য কখনই বাধার উপরে না উঠলে আপনি অর্থ প্রদান করবেন।", - "-403573339": "আপনার অর্থ প্রদান চূড়ান্ত মূল্য <1>এবং বাধার মধ্যে পার্ থক্য দ্বারা গুণিত প্রতি প <0>য়েন্টের সমান। আপনার অর্থ প্রদান আপনার প্রাথমিক শেকের চেয়ে বেশি হলে আপনি কেবল লাভ অর্জন করবেন।", + "-403573339": "আপনার পে-আউটটি <0>প্রতি পয়েন্টে পে-আউটের সমান <1>চূড়ান্ত মূল্য এবং বাধার মধ্যে পার্থক্য দ্বারা গুণিত। আপনি শুধুমাত্র একটি মুনাফা অর্জন করতে পারবেন যদি আপনার পেআউট আপনার প্রারম্ভিক অংশের থেকে বেশি হয়।", "-1307465836": "মেয়াদ শেষ হওয়ার 15 সেকেন্ড আগে আপনি চুক্তিটি বিক্রি করতে পারেন। আপনি যদি তা করেন তবে আমরা আপনাকে চুক্তির মূল্য প্র <0>দান করব।", "-1121315439": "ভ্যানিলা বিকল্পগুলি আপনাকে একটি “কল” বা “পুট” কেনার মাধ্যমে অন্তর্নিহিত সম্পদের উপরের (বুলিশ) বা নিম্নমুখী (বিয়ারিশ) দিকের পূর্বাভাস দিতে দেয়।", "-1763848396": "Put", - "-1119872505": "কিভাবে বাণিজ্য করবেন ", + "-1119872505": "কিভাবে ট্রেড করবেন ", "-586636553": "এই ট্রেড টাইপ সম্পর্কে জানতে এই ভিডিওটি দেখুন।", "-2017825013": "পেয়েছি এটা।", "-1117111580": "প্রিয় থেকে সরানো হয়েছে", "-197162398": "বন্ধ", "-1913695340": "অর্ডার বিবরণ", - "-1882287418": "আমি কিভাবে পেআউট উপার্জন করব?", + "-1882287418": "আমি কিভাবে পেআউট উপার্জন করবো?", "-725670935": "টেক মুনাফা এবং স্টপ লস উপলব্ধ নয় যখন চুক্তি বাতিল সক্রিয়।", "-1331298683": "মুনাফা গ্রহণ চলমান Accumulator চুক্তির জন্য সামঞ্জস্য করা যাবে না।", "-509210647": "অন্য কিছু অনুসন্ধান করার চেষ্টা করুন।", - "-99964540": "যখন আপনার লাভ সেট পরিমাণ পৌঁছায় বা অতিক্রম করে, তখন আপনার বাণিজ্য স্বয়ংক্রিয়ভাবে বন্ধ হবে।", + "-99964540": "যখন আপনার লাভ সেট পরিমাণ পৌঁছায় বা অতিক্রম করে, তখন আপনার ট্রেড স্বয়ংক্রিয়ভাবে বন্ধ হবে।", "-542594338": "সর্বোচ্চ পেআউট", "-1622900200": "সক্ষম", "-2131851017": "বৃদ্ধির হার", "-339236213": "Multiplier", "-1396928673": "ঝুঁকি পরিচালনা", "-1358367903": "ষ্টেক", - "-1853307892": "আপনার বাণিজ্য সেট করুন", + "-1853307892": "আপনার ট্রেড সেট করুন", "-1221049974": "চূড়ান্ত মূল্য", "-843831637": "স্টপ লস", "-583023237": "এটি আপনার চুক্তির পুনরায় বিক্রয় মূল্য, প্রচলিত বাজারের অবস্থার উপর ভিত্তি করে (যেমন, বর্তমান স্পট), যদি থাকে তবে অতিরিক্ত কমিশন সহ।", @@ -3790,7 +3796,7 @@ "-1682624802": "এটি আগের স্পট মূল্যের একটি শতাংশ। শতাংশ হার সূচক এবং বৃদ্ধির হার আপনার পছন্দ উপর ভিত্তি করে।", "-1545819495": "যখন আপনার ক্ষতি আপনার শেয়ারের একটি নির্দিষ্ট শতাংশে পৌঁছাবে তখন আপনার ব্যবসাটি নিকটতম উপলব্ধ সম্পদ মূল্যে স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে, কিন্তু আপনার ক্ষতি কখনই আপনার শেয়ারের বেশি হবে না। এই শতাংশ নির্ভর করে নির্বাচিত অন্তর্নিহিত সম্পদ এবং Multiplier এর উপর।", "-1293590531": "আপনি যদি “কল” নির্বাচন করেন তবে শেষ হওয়ার সময় চূড়ান্ত মূল্য স্ট্রাইক প্রাইসের উপরে থাকলে আপনি অর্থ প্রদান করবেন। অন্যথায়, আপনি অর্থ প্রদান পাবেন না।", - "-1432332852": "আপনি যদি 'পুট' নির্বাচন করেন তবে শেষ হওয়ার সময় চূড়ান্ত মূল্য স্ট্রাইক প্রাইসের নীচে থাকলে আপনি অর্থ প্রদান করবেন। অন্যথায়, আপনি অর্থ প্রদান পাবেন না।", + "-1432332852": "আপনি 'পুট' নির্বাচন করলে, মেয়াদ শেষ হওয়ার সময় চূড়ান্ত মূল্য স্ট্রাইক প্রাইসের নিচে থাকলে আপনি একটি পেআউট পাবেন। অন্যথায়, আপনি পেআউট পাবেন না।", "-468501352": "আপনি যদি এই বৈশিষ্ট্যটি নির্বাচন করেন, আপনার মুনাফা টেক প্রফিট পরিমাণে পৌঁছালে বা অতিক্রম করলে নিকটতম উপলব্ধ সম্পদ মূল্যে আপনার ট্রেড স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে। বন্ধের সময় বাজার মূল্যের উপর নির্ভর করে আপনার মুনাফা আপনার প্রবেশ করা পরিমাণের চেয়ে বেশি হতে পারে।", "-993480898": "Accumulators", "-123659792": "Vanillas", @@ -3830,7 +3836,7 @@ "-1547935605": "আপনার অর্থ প্রদান চূড়ান্ত মূল্য <0>এবং বাধার মধ্যে পার্ থক্য দ্বারা গুণিত প্রতি প <0>য়েন্টের সমান। আপনার অর্থ প্রদান আপনার প্রাথমিক শেকের চেয়ে বেশি হলে আপনি কেবল লাভ অর্জন করবেন।", "-351875097": "টিক সংখ্যা", "-729830082": "কম দেখানো", - "-1649593758": "বাণিজ্য তথ্য", + "-1649593758": "ট্রেড তথ্য", "-1382749084": "ট্রেডিং এ ফিরে যান", "-1239477911": "দ্বিতীয়", "-1585766960": "ন্যূনতম", @@ -3875,7 +3881,7 @@ "-629549519": "কমিশন<0/>", "-2131859340": "স্টপ আউট <0/>", "-1686280757": "<0>{{commission_percentage}}এর% (<1/>* {{multiplier}})", - "-732683018": "যখন আপনার লাভ এই পরিমাণে পৌঁছায় বা তার বেশি হয়, তখন আপনার বাণিজ্য স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।", + "-732683018": "যখন আপনার লাভ এই পরিমাণে পৌঁছায় বা তার বেশি হয়, তখন আপনার ট্রেড স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।", "-989393637": "আপনার চুক্তি শুরু হওয়ার পরে মুনাফা গ্রহণ সামঞ্জস্য করা যাবে না৷", "-194424366": "উপরে", "-857660728": "স্ট্রাইক দাম", @@ -3885,7 +3891,7 @@ "-952298801": "পিছনের দিকে তাকানো", "-763273340": "Digits", "-420223912": "ব্লকগুলি পরিষ্কার করুন", - "-301596978": "ব্লক পড়ুন", + "-301596978": "ব্লকগুলি সঙ্কুচিত করুন।", "-2002533437": "স্বনির্বাচিত ফাংশন", "-215053350": "সঙ্গে:", "-1257232389": "একটি পরামিতি নাম উল্লেখ করুন:", @@ -4035,8 +4041,8 @@ "-1374685318": "আপনার ক্ষতি এই পরিমাণের চেয়ে বেশি বা সমান হলে আপনার চুক্তি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়। এই ব্লকটি শুধুমাত্র multipliers ট্রেড টাইপের সাথে ব্যবহার করা যাবে।", "-1797602591": "স্টপ লস: {{ currency }} {{ stop_loss }}", "-1214929127": "স্টপ লস একটি ইতিবাচক সংখ্যা হতে হবে।", - "-1626615625": "লাভ নিন (গুণক)", - "-1871944173": "সংগ্রহকারী বাণিজ্য বিকল্প", + "-1626615625": "লাভ নিন (Multiplier)", + "-1871944173": "সংগ্রহকারী ট্রেড বিকল্প", "-625636913": "পরিমাণ একটি ইতিবাচক সংখ্যা হতে হবে।", "-780745489": "যদি চুক্তির ধরন “উভয়” হয়, তাহলে ক্রয়ের শর্তগুলি “শর্তাধীন ব্লক” ব্যবহার করে রাইজ এবং পতন উভয়ই অন্তর্ভুক্ত করা উচিত", "-2142851225": "Multiplier ট্রেড অপশন", @@ -4120,7 +4126,7 @@ "-2047029150": "ব্লক ফাইল লোড করা যায়নি।", "-1410769167": "টার্গেট একটি XML ফাইল হতে হবে", "-609157479": "এই URL ইতোমধ্যে লোড করা হয়েছে", - "-260939264": "ধ্বংস", + "-260939264": "সঙ্কুচিত", "-894560707": "ক্রিয়া", "-1867119688": "ডুপ্লিকেট", "-1710107207": "মন্তব্য যোগ করুন", @@ -4130,7 +4136,7 @@ "-1087890592": "সর্বোচ্চ ক্ষতির পরিমাণ পৌঁছেছে", "-1030545878": "আপনি হার সীমিত: {{ message_type }}, {{ delay }}সেকেন্ড মধ্যে পুনরায় চেষ্টা (আইডি: {{ request }})", "-490766438": "আপনি সংযোগ বিচ্ছিন্ন, {{ delay }}সেকেলে পুনরায় চেষ্টা করছেন", - "-339973827": "বাজার বন্ধ", + "-339973827": "মার্কেট বন্ধ", "-1389975609": "অজানা", "-1900515692": "স্থিতিকাল একটি ধনাত্মক পূর্ণসংখ্যা হতে হবে", "-245297595": "অনুগ্রহ করে লগইন করুন", @@ -4139,7 +4145,7 @@ "-1919680487": "ওয়ার্কস্পেস", "-1703118772": "{{block_type}} ব্লক থেকে {{missing_space}}ভুল স্থাপন করা হয়।", "-1785726890": "ক্রয়ের শর্তাবলী", - "-1993203952": "বাণিজ্য বিকল্প সংগ্রহকারী", + "-1993203952": "ট্রেড বিকল্প সংগ্রহকারী", "-461955353": "ক্রয় মূল্য", "-172348735": "মুনাফা", "-1624674721": "চুক্তির ধরন", diff --git a/packages/translations/src/translations/de.json b/packages/translations/src/translations/de.json index d20511e4eeba..dfaef57f247b 100644 --- a/packages/translations/src/translations/de.json +++ b/packages/translations/src/translations/de.json @@ -454,6 +454,7 @@ "467839232": "Ich handele regelmäßig mit Forex-CFDs und anderen komplexen Finanzinstrumenten auf anderen Plattformen.", "471402292": "Ihr Bot verwendet eine einzige Handelsart für jeden Lauf.", "471667879": "Sperrzeit:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Einstellungen", "474306498": "Es tut uns leid, dass du gehst. Ihr Konto ist jetzt geschlossen.", "475492878": "Probieren Sie synthetische Indizes aus", @@ -548,7 +549,6 @@ "573173477": "Ist Kerze {{ input_candle }} schwarz?", "575668969": "3. Für Trades, die zu einem Gewinn führen, wird der Einsatz für den nächsten Trade um 2 USD erhöht. Deriv Bot wird weiterhin 2 USD für jeden erfolgreichen Handel hinzufügen. Siehe A1.", "575702000": "Denken Sie daran, dass Selfies, Bilder von Häusern oder nicht verwandte Bilder abgelehnt werden.", - "575968081": "Konto erstellt. Wählen Sie die Zahlungsmethode für die Einzahlung.", "576355707": "Wählen Sie Ihr Land und Ihre Staatsbürgerschaft aus:", "577215477": "zähle mit {{ variable }} von {{ start_number }} bis {{ end_number }} mal {{ step_size }}", "577779861": "Rücknahme", @@ -774,6 +774,7 @@ "793526589": "Um eine Beschwerde über unseren Service einzureichen, senden Sie eine E-Mail an <0>complaints@deriv.com und geben Sie Ihre Beschwerde ausführlich an. Bitte reichen Sie alle relevanten Screenshots Ihres Handels oder Systems ein, damit wir sie besser verstehen können.", "793531921": "Unser Unternehmen ist eines der ältesten und seriösesten Online-Handelsunternehmen der Welt. Wir verpflichten uns, unsere Kunden fair zu behandeln und ihnen einen exzellenten Service zu bieten.<0/><1/> Bitte geben Sie uns Feedback, wie wir unsere Dienstleistungen für Sie verbessern können. Seien Sie versichert, dass Sie jederzeit gehört, geschätzt und fair behandelt werden.", "794682658": "Kopiere den Link auf dein Handy", + "794778483": "Deposit later", "795859446": "Passwort gespeichert", "795992899": "Der Betrag, den Sie bei Verfall für jeden Punkt der Veränderung zwischen dem Endpreis und der Barriere erhalten möchten. ", "797007873": "Gehen Sie wie folgt vor, um den Kamerazugriff wiederherzustellen:", @@ -1346,6 +1347,7 @@ "1337846406": "Dieser Block gibt Ihnen den ausgewählten Kerzenwert aus einer Liste von Kerzen innerhalb des ausgewählten Zeitintervalls.", "1337864666": "Foto Ihres Dokuments", "1338496204": "Ref. ID", + "1339565304": "Deposit now to start trading", "1339613797": "Regulatorische/Externe Streitbeilegung", "1340286510": "Der Bot wurde angehalten, aber Ihr Handel läuft möglicherweise noch. Sie können ihn auf der Seite Berichte überprüfen.", "1341840346": "Im Journal ansehen", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Google Passwort-Manager.", "2014536501": "Nummer der Karte", "2014590669": "Die Variable '{{variable_name}}' hat keinen Wert. Bitte geben Sie einen Wert für die Variable '{{variable_name}}' ein, um eine Benachrichtigung zu erhalten.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Bitte wählen Sie das Land aus, in dem das Dokument ausgestellt wurde.", "2018044371": "Mit Multipliers können Sie mit Hebelwirkung handeln und Ihr Risiko auf Ihren Einsatz begrenzen. <0>Weitere Informationen", "2019596693": "Das Dokument wurde vom Provider abgelehnt.", @@ -2079,6 +2082,7 @@ "2048134463": "Die Dateigröße wurde überschritten.", "2049386104": "Sie müssen diese einreichen, um dieses Konto zu erhalten:", "2050170533": "Tick liste", + "2051249190": "Add funds and start trading", "2051558666": "Transaktionshistorie anzeigen", "2051596653": "Demo Zero Spread BVI", "2052022586": "Um die Sicherheit Ihres MT5-Kontos zu erhöhen, haben wir unsere Passwortpolitik verbessert.", @@ -3549,6 +3553,9 @@ "-2036288743": "Verbesserte Sicherheit mit Biometrie oder Bildschirmsperre ", "-143216768": "Erfahre <0>hier mehr über Passwörter.", "-778309978": "Der Link, auf den Sie geklickt haben, ist abgelaufen. Stellen Sie sicher, dass Sie den Link in der neuesten E-Mail in Ihrem Posteingang anklicken. Alternativ können Sie Ihre E-Mail unten eingeben und auf <0>E-Mail senden klicken, um einen neuen Link zu erhalten.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Informationen aktualisiert", "-941870889": "Der Kassierer ist nur für echte Konten", "-352838513": "Es sieht so aus, als hätten Sie kein echtes {{regulation}}-Konto. Um die Kasse zu benutzen, wechseln Sie zu Ihrem {{active_real_regulation}} real account, oder besorgen Sie sich ein {{regulation}} real account.", @@ -3561,8 +3568,7 @@ "-55435892": "Wir benötigen 1 - 3 Tage, um Ihre Unterlagen zu prüfen und Sie per E-Mail zu benachrichtigen. In der Zwischenzeit können Sie mit Demo-Konten üben.", "-1916578937": "<0>Entdecken Sie die aufregenden neuen Funktionen, die Ihr Wallet bietet.", "-1724438599": "<0>Sie sind fast am Ziel!", - "-1089300025": "Wir erheben keine Einzahlungsgebühren! Sobald Ihr Konto verifiziert ist, können Sie handeln, weitere Einzahlungen vornehmen oder Geld abheben.", - "-476018343": "Live-Chat", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "Die E-Mail-Eingabe sollte nicht leer sein.", "-1471705969": "<0>{{title}}: {{trade_type_name}} auf {{symbol}}", "-1771117965": "Handel eröffnet", diff --git a/packages/translations/src/translations/es.json b/packages/translations/src/translations/es.json index d625c85c6d85..ca711ad00aa3 100644 --- a/packages/translations/src/translations/es.json +++ b/packages/translations/src/translations/es.json @@ -454,6 +454,7 @@ "467839232": "Opero con CFD de divisas y otros instrumentos financieros complejos con regularidad en otras plataformas.", "471402292": "Su bot utiliza un único tipo de operación para cada ejecución.", "471667879": "Hora límite:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Configuración", "474306498": "Lamentamos que se vaya. Su cuenta ahora está cerrada.", "475492878": "Pruebe los índices sintéticos", @@ -548,7 +549,6 @@ "573173477": "¿La vela {{ input_candle }} es negra?", "575668969": "3. En el caso de las operaciones que generen ganancias, la inversión de la próxima operación se incrementará en 2 USD. Deriv Bot seguirá añadiendo 2 USD por cada operación exitosa. Consulte A1.", "575702000": "Recuerde que se rechazarán las selfies, las fotos de casas o las imágenes no relacionadas.", - "575968081": "Cuenta creada. Seleccione el método de pago para el depósito.", "576355707": "Seleccione su país y su ciudadanía:", "577215477": "cuente con {{ variable }} desde {{ start_number }} hasta {{ end_number }} por {{ step_size }}", "577779861": "Retirar", @@ -774,6 +774,7 @@ "793526589": "Para presentar una queja sobre nuestro servicio, envíe un correo electrónico a <0>complaints@deriv.com y exponga su queja en detalle. Envíe cualquier captura de pantalla relevante y relacionada con su queja para que la comprendamos mejor.", "793531921": "Nuestra empresa es una de las empresas de trading online más antiguas y de mayor reputación del mundo. Estamos comprometidos a tratar a nuestros clientes de manera justa y brindarles un excelente servicio.<0/><1/>Por favor, envíenos sus comentarios sobre cómo podemos mejorar nuestros servicios para usted. Tenga la seguridad de que será escuchado, valorado y tratado de manera justa en todo momento.", "794682658": "Copie el enlace a su teléfono", + "794778483": "Deposit later", "795859446": "Contraseña guardada", "795992899": "La cantidad que decide recibir al vencimiento por cada punto de cambio entre el precio final y la barrera. ", "797007873": "Siga estos pasos para recuperar el acceso a la cámara:", @@ -1346,6 +1347,7 @@ "1337846406": "Este bloque le proporciona el valor de vela seleccionado de una lista de velas dentro del intervalo de tiempo seleccionado.", "1337864666": "Foto de su documento", "1338496204": "ID de ref.", + "1339565304": "Deposit now to start trading", "1339613797": "Resolución de disputa reguladora/externa", "1340286510": "El bot se ha detenido, pero es posible que su operación siga en curso. Puede comprobarlo en la página Informes.", "1341840346": "Ver en el Diario", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Gestor de contraseñas de Google.", "2014536501": "Número de tarjeta", "2014590669": "La variable '{{variable_name}}' no tiene valor. Establezca un valor para la variable '{{variable_name}}' para notificar.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Seleccione el país de emisión del documento.", "2018044371": "Los multipliers le permiten operar con apalancamiento y limitar el riesgo de su inversión. <0>Más información", "2019596693": "El documento fue rechazado por el Proveedor.", @@ -2079,6 +2082,7 @@ "2048134463": "Se ha excedido el tamaño del archivo.", "2049386104": "Necesitamos que nos envíe lo siguiente para obtener esta cuenta:", "2050170533": "Lista de ticks", + "2051249190": "Add funds and start trading", "2051558666": "Ver el historial de transacciones", "2051596653": "Zero Spread BVI Demo", "2052022586": "Para mejorar la seguridad de su cuenta MT5 hemos actualizado nuestra política de contraseñas.", @@ -3549,6 +3553,9 @@ "-2036288743": "Seguridad mejorada con biometría o bloqueo de pantalla ", "-143216768": "Obtén más información sobre las claves de acceso <0>aquí.", "-778309978": "El enlace que ha pulsado ha expirado. Asegúrese de hacer clic en el enlace del último correo electrónico que haya recibido. Como alternativa, introduzca su correo electrónico a continuación y haga clic en <0>Reenviar correo electrónico para obtener un nuevo enlace.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Información actualizada", "-941870889": "El cajero es solo para cuentas reales", "-352838513": "Al parecer, usted no tiene una cuenta real {{regulation}}. Para utilizar el cajero, cambie a su cuenta real {{active_real_regulation}}, o abra una cuenta real {{regulation}}.", @@ -3561,8 +3568,7 @@ "-55435892": "Necesitaremos de 1 a 3 días para revisar sus documentos y notificárselo por correo electrónico. Mientras tanto, puede practicar con cuentas demo.", "-1916578937": "<0>Descubre las nuevas e interesantes funciones que ofrece su Billetera.", "-1724438599": "<0>¡Ya está casi listo!", - "-1089300025": "¡No cobramos comisiones por depósito! Una vez verificada su cuenta, podrá operar, realizar depósitos adicionales o retirar fondos.", - "-476018343": "Live Chat", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "El campo correo electrónico no debe estar vacía.", "-1471705969": "<0>{{title}}: {{trade_type_name}} en {{symbol}}", "-1771117965": "Operación abierta", diff --git a/packages/translations/src/translations/fr.json b/packages/translations/src/translations/fr.json index 49441302ba68..edc97e0ea02d 100644 --- a/packages/translations/src/translations/fr.json +++ b/packages/translations/src/translations/fr.json @@ -454,6 +454,7 @@ "467839232": "Je négocie régulièrement des CFD sur le forex et d'autres instruments financiers complexes sur d'autres plateformes.", "471402292": "Votre robot utilise un type de contrat unique pour chaque exécution.", "471667879": "Heure limite :", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Paramètres", "474306498": "Nous sommes désolés de vous voir partir. Votre compte est maintenant fermé.", "475492878": "Essayez les indices synthétiques", @@ -548,7 +549,6 @@ "573173477": "La bougie {{ input_candle }} est-elle noire?", "575668969": "3. Pour les transactions qui se soldent par un profit, la mise du prochain contrat sera augmentée de 2 USD. Deriv Bot continuera à ajouter 2 USD à chaque transaction fructueuse. Voir A1.", "575702000": "N'oubliez pas que les selfies, les photos de maisons ou les images sans rapport avec le sujet seront rejetés.", - "575968081": "Compte créé. Sélectionnez la méthode de paiement pour le dépôt.", "576355707": "Sélectionnez votre pays et votre citoyenneté :", "577215477": "compter avec {{ variable }} de {{ start_number }} à {{ end_number }} par {{ step_size }}", "577779861": "Retrait", @@ -774,6 +774,7 @@ "793526589": "Pour déposer une réclamation concernant notre service, envoyez un e-mail à <0>complaints@deriv.com et énoncez votre réclamation en détail. Veuillez soumettre toutes les captures d'écran pertinentes de votre trading ou de votre système pour une meilleure compréhension.", "793531921": "Notre société est l'une des sociétés de commerce en ligne les plus anciennes et les plus réputées au monde. Nous nous engageons à traiter nos clients équitablement et à leur fournir un excellent service. <0/><1/> Veuillez nous faire part de vos commentaires sur la manière dont nous pouvons améliorer nos services. Soyez assuré que vous serez entendu, apprécié et traité équitablement à tout moment.", "794682658": "Copiez le lien sur votre téléphone", + "794778483": "Deposit later", "795859446": "Mot de passe enregistré", "795992899": "Le montant que vous choisissez de recevoir à l'expiration pour chaque point de variation entre le prix final et la barrière. ", "797007873": "Suivez ces étapes pour récupérer l'accès à la caméra:", @@ -1346,6 +1347,7 @@ "1337846406": "Ce bloc vous donne la valeur de bougie sélectionnée à partir d'une liste de bougies dans l'intervalle de temps sélectionné.", "1337864666": "Photo de votre document", "1338496204": "N° de réf.", + "1339565304": "Deposit now to start trading", "1339613797": "Régulateurs/Résolution externe des litiges", "1340286510": "Le bot s'est arrêté, mais votre transaction est peut-être toujours en cours. Vous pouvez le vérifier sur la page Rapports.", "1341840346": "Afficher dans le journal", @@ -2044,6 +2046,7 @@ "2012139674": "Android : Gestionnaire de mots de passe Google.", "2014536501": "Numéro de carte", "2014590669": "La variable '{{variable_name}}' n'a pas de valeur. Veuillez définir une valeur pour la variable '{{variable_name}}' pour notifier.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Veuillez sélectionner le pays de délivrance du document.", "2018044371": "Les multipliers vous permettent de négocier avec effet de levier et de limiter votre risque par rapport à votre mise. <0>En savoir plus", "2019596693": "Le document a été rejeté par le Prestataire.", @@ -2079,6 +2082,7 @@ "2048134463": "Taille du fichier dépassée.", "2049386104": "Nous avons besoin que vous les soumettiez pour obtenir ce compte :", "2050170533": "Liste des ticks", + "2051249190": "Add funds and start trading", "2051558666": "Voir l'historique de la transaction", "2051596653": "Demo Zero Spread BVI", "2052022586": "Pour améliorer la sécurité de votre compte MT5, nous avons mis à jour notre politique en matière de mots de passe.", @@ -3549,6 +3553,9 @@ "-2036288743": "Sécurité renforcée grâce à la biométrie ou au verrouillage de l'écran ", "-143216768": "Pour en savoir plus sur les passkeys, cliquez <0>ici.", "-778309978": "Le lien sur lequel vous avez cliqué a expiré. Assurez-vous de cliquer sur le lien figurant dans le dernier e-mail de votre boîte de réception. Vous pouvez également saisir votre adresse e-mail ci-dessous et cliquer sur <0>Renvoyer l'e-mail pour obtenir un nouveau lien.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Informations mises à jour", "-941870889": "La caisse est réservée aux comptes réels", "-352838513": "Il semble que vous n'ayez pas de compte réel {{regulation}}. Pour utiliser la caisse, passez à votre compte réel {{active_real_regulation}} ou créez un compte réel {{regulation}}.", @@ -3561,8 +3568,7 @@ "-55435892": "L'examen de vos documents nécessitera 1 à 3 jours. Nous vous en informerons par e-mail. Dans l'intervalle, vous pouvez vous entraîner sur des comptes démo.", "-1916578937": "<0>Découvrez les nouvelles fonctionnalités intéressantes de votre Wallet.", "-1724438599": "<0>Vous y êtes presque !", - "-1089300025": "Nous ne facturons pas de frais de dépôt ! Une fois votre compte vérifié, vous pourrez y trader, des dépôts supplémentaires ou des retraits.", - "-476018343": "Chat en direct", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "L'email ne doit pas être vacant.", "-1471705969": "<0>{{title}}: {{trade_type_name}} sur {{symbol}}", "-1771117965": "Trade ouvert", diff --git a/packages/translations/src/translations/it.json b/packages/translations/src/translations/it.json index 33b454939d75..24d3150c8e15 100644 --- a/packages/translations/src/translations/it.json +++ b/packages/translations/src/translations/it.json @@ -454,6 +454,7 @@ "467839232": "Faccio trading con CFD su Fforex e altri strumenti finanziari complessi regolarmente su altre piattaforme.", "471402292": "Il suo bot utilizza un singolo tipo di trade per ogni corsa.", "471667879": "Orario di chiusura:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Impostazioni", "474306498": "Ci dispiace vederti andare via. Il conto è ora chiuso.", "475492878": "Prova gli indici sintetici", @@ -548,7 +549,6 @@ "573173477": "La candela {{ input_candle }} è nera?", "575668969": "3. Per le transazioni che producono un profitto, la puntata per la transazione successiva sarà aumentata di 2 USD. Deriv Bot continuerà ad aggiungere 2 USD per ogni trade di successo. Vedere A1.", "575702000": "Si ricordi che selfie, foto di case o immagini non correlate saranno rifiutate.", - "575968081": "Account creato. Seleziona il metodo di pagamento per il deposito.", "576355707": "Seleziona il tuo paese e la tua cittadinanza:", "577215477": "conta con {{ variable }} da {{ start_number }} a {{ end_number }} per {{ step_size }}", "577779861": "Prelievo", @@ -774,6 +774,7 @@ "793526589": "Per presentare un reclamo sul nostro servizio, invia un'e-mail a <0>complaints@deriv.com e riporta nel dettaglio l'oggetto del reclamo. Includi eventuali screenshot dei trade rilevanti o del sistema per aiutarci a capire meglio.", "793531921": "La nostra è una delle prime e più stimate società di trading online nel mondo. Ci impegniamo affinché i nostri clienti ricevano un trattamento equo e un servizio eccellente.<0/><1/>Ti invitiamo a comunicarci come, secondo te, possiamo migliorare i servizi forniti: in ogni caso ti garantiamo che sarai sempre ascolto, apprezzato e un trattato in modo equo.", "794682658": "Copia il link sul tuo telefono", + "794778483": "Deposit later", "795859446": "Password salvata", "795992899": "L'importo che sceglie di ricevere alla scadenza per ogni punto di variazione tra il prezzo finale e la barriera. ", "797007873": "Segui questi passaggi per ripristinare l'accesso alla fotocamera:", @@ -1346,6 +1347,7 @@ "1337846406": "Questo blocco fornisce il valore della candela selezionata da un elenco di candele all'interno di un determinato periodo di tempo.", "1337864666": "Fotografia del documento", "1338496204": "ID rifer.", + "1339565304": "Deposit now to start trading", "1339613797": "Autorità regolatrice/Risoluzione esterna delle controversie", "1340286510": "Il bot si è fermato, ma il suo trade potrebbe essere ancora in corso. Può verificarlo nella pagina dei Rapporti.", "1341840346": "Vedi in Registro", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Gestore di password di Google.", "2014536501": "Numero della carta", "2014590669": "La variabile \"{{variable_name}}\" non ha valore. Imposta un valore per \"{{variable_name}}\".", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Seleziona il Paese in cui è stato emesso il documento.", "2018044371": "I Multipliers ti consentono di fare trading con la leva finanziaria e di limitare il rischio della tua puntata. <0>Ulteriori informazioni", "2019596693": "Il documento è stato rifiutato dal fornitore.", @@ -2079,6 +2082,7 @@ "2048134463": "Volume del file superato.", "2049386104": "Abbiamo bisogno che tu li invii per ottenere questo account:", "2050170533": "Elenco dei tick", + "2051249190": "Add funds and start trading", "2051558666": "Visualizza cronologia operazioni", "2051596653": "Demo Zero Spread BVI", "2052022586": "Per migliorare la sicurezza del suo conto MT5, abbiamo aggiornato la nostra politica sulle password.", @@ -3549,6 +3553,9 @@ "-2036288743": "Sicurezza avanzata con biometria o blocco dello schermo ", "-143216768": "Scopri di più sulle passkey <0>qui.", "-778309978": "Il link su cui hai fatto clic è scaduto. Assicurati di fare clic sul link nell'ultima e-mail nella tua casella di posta. In alternativa, inserisci la tua email qui sotto e fai clic su <0>Reinvia e-mail per un nuovo link.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Informazioni aggiornate", "-941870889": "La Cassa è solo per conti reali", "-352838513": "Sembra che tu non abbia un vero conto {{regulation}}. Per utilizzare la cassa, passa al tuo conto reale {{active_real_regulation}} o ottieni un conto reale {{regulation}}.", @@ -3561,8 +3568,7 @@ "-55435892": "Avremo bisogno di 1-3 giorni per esaminare i tuoi documenti e inviarti una notifica via e-mail. Nel frattempo puoi fare pratica con gli account demo.", "-1916578937": "<0>Esplora le nuove entusiasmanti funzionalità offerte dal tuo Wallet.", "-1724438599": "<0>Ci sei quasi!", - "-1089300025": "Non addebitiamo commissioni di deposito! Una volta verificato il tuo account, potrai fare trading, effettuare depositi aggiuntivi o prelevare fondi.", - "-476018343": "Chat Live", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "Il campo e-mail non deve essere vuoto.", "-1471705969": "<0>{{title}}: {{trade_type_name}} su {{symbol}}", "-1771117965": "Apertura del commercio", diff --git a/packages/translations/src/translations/km.json b/packages/translations/src/translations/km.json index 2f8373b1715b..7be11a8e739a 100644 --- a/packages/translations/src/translations/km.json +++ b/packages/translations/src/translations/km.json @@ -454,6 +454,7 @@ "467839232": "ខ្ញុំជួញដូរ forex CFDs និងឧបករណ៍ហិរញ្ញវត្ថុស្មុគស្មាញផ្សេងទៀតជាទៀងទាត់នៅលើប្លាតហ្វ័រផ្សេងទៀត។", "471402292": "មេកានិចរបស់អ្នកប្រើប្រាស់ប្រសិនបើមួយការធ្វើការ។", "471667879": "ពេលវេលាបិទ៖", + "471994882": "Your {{ currency }} account is ready.", "473154195": "ការកំណត់", "474306498": "យើងសូមអភ័យទោសចំពោះការចាកចេញរបស់អ្នក។ គណនីរបស់អ្នកត្រូវបានបិទ", "475492878": "សាកល្បងសន្ទស្សន៍ Synthetic", @@ -548,7 +549,6 @@ "573173477": "តើវីរុស {{ input_candle }} មានលក្ខណៈក្រុមចំនួនស្ពានទម្រង់?", "575668969": "3. សម្រាប់ការជួញដូរដែលនាំមកនូវប្រាក់ចំណេញ ភាគហ៊ុនឬប្រាក់ដើមសម្រាប់ការជួញដូរបន្ទាប់នឹងត្រូវបានកើនឡើង 2 USD ។ Deriv Bot នឹងបន្តបន្ថែម 2 USD សម្រាប់រាល់ការជួញដូរដែលជោគជ័យ។ សូមមើល A1 ។", "575702000": "ចូលចុះកាតនិងរូបថតដែលមិនទាន់ពាក់ព័ន្ធត្រូវបានសង្ខាន់។", - "575968081": "បង្កើតគណនីហាងលើស្តុកសង្គម។ ជ្រើសវិធីសាស្រ្តកក់ប្រាក់។", "576355707": "ជ្រើសរើសប្រទេសរបស់អ្នកនិងសញ្ញាសិទ្ធិរចនាសរដ្", "577215477": "ចំនួនដែលមានជាមួយ {{ variable }} ពី {{ start_number }} ទៅ {{ end_number }} ដោយកំណែទំហំ {{ step_size }}", "577779861": "ការដកប្រាក់", @@ -774,6 +774,7 @@ "793526589": "ដើម្បីដាក់ប្រាក់ប្រគល់ប្រាក់មួយចំនួនសម្រាប់ការយកចំនួលទាំងអស់។ សូមក្នុម៉្តោយប្រាក់របស់លោកអ្នកបោះពុម្ពគោលដោយសុវត្ថិភាពជាមួយទូរស័ព្ទរបស់យើង។", "793531921": "ផ្តល់អត្ថប្រយោជន៍ និង សេវាកម្មល្បីផ្លាស់ប្តូរការប្រើប្រាស់អោយអ្នកយើង។<0/><1/>សូមផ្តល់យោបល់ច្រើនអោយយើងដើម្បីកើតឡើងនិងធ្វើឱ្យសុវត្ថិភាពបន្ត។", "794682658": "ចម្លងតំណួតរបស់លោកអ្នកដើម្បីស្ដារទៅកាន់ទូរស័ព្ទរបស់អ្នក", + "794778483": "Deposit later", "795859446": "ពាក្យសម្ងាត់រក្សារួច", "795992899": "ចំនួនទឹកប្រាក់ដែលអ្នកជ្រើសរើសទទួលនៅពេលផុតកំណត់សម្រាប់រាល់ចំណុចនៃការផ្លាស់ប្តូររវាងតម្លៃចុងក្រោយ និងកម្រិតបន្ទាត់តម្លៃគោលដៅ។ ", "797007873": "តាមលំហាត់នេះដើម្បីយកទំនាក់ទំនងជាមួយការចូលប្រព័ន្ធរបស់អ្នក:", @@ -1346,6 +1347,7 @@ "1337846406": "ប្រមាសនៃបង្វិកដែលបានជ្រើសរើសពីបញ្ជីនៃបង្ហាញពីការ។", "1337864666": "រូបថតឯកសាររបស់អ្នក", "1338496204": "លេខលេខយោធា", + "1339565304": "Deposit now to start trading", "1339613797": "សន្តិសុខ/យកកម្មវិធីបរិស្ថានឬដោយសារៈទំនើបផ្សេងៗ", "1340286510": "កម្មវិធីស្អាតតែបានបញ្ឈប់ហើយពួកគេកំពុងប្រើប្រាស់បញ្ជា នោះគ្រាន់តែកន្លងទៅនៅការចូលទៅហើយ។ អ្នកអាចពិនិត្យវានៅទីផ្សាររាយនៅក្នុងទំព័រ Reports", "1341840346": "មើលក្នុងកំណត់សកម្ម", @@ -2044,6 +2046,7 @@ "2012139674": "Android៖ Google password manager។", "2014536501": "លេខកាត", "2014590669": "អថេរ '{{variable_name}}' មិនមានតម្លៃ។ សូមកំណត់តម្លៃសម្រាប់អថេរ '{{variable_name}}' ដើម្បីជូនដំណឹង។", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "សូមជ្រើសរើសពាក្យតែមួយប្រទេសដែលបានប៉ាន់ស្មាន។", "2018044371": "Multiplier អនុញ្ញាតឱ្យអ្នកធ្វើពាណិជ្ជកម្មជាមួយអានុភាព និងកំណត់ហានិភ័យរបស់អ្នកចំពោះភាគហ៊ុនរបស់អ្នក។ <0>ស្វែងយល់បន្ថែម", "2019596693": "ឯកសារនេះត្រូវបានបដិសេធដោយអ្នកផ្តល់សេវា។", @@ -2079,6 +2082,7 @@ "2048134463": "ទំហំ​ឯកសារ​លើស", "2049386104": "យើង​ត្រូវ​ការ​ឱ្យ​អ្នក​ដាក់​ស្នើ​ទាំង​នេះ​ដើម្បី​ទទួល​បាន​គណនី​នេះ​:", "2050170533": "បញ្ជីតម្លៃចំណុច Tick", + "2051249190": "Add funds and start trading", "2051558666": "មើលប្រវត្តិលទ្ធផលលើអេឡិចត្រូនិច", "2051596653": "ការបង្ហាញ Zero Spread BVI", "2052022586": "ដើម្បីបង្កើនសុវត្ថិភាពគណនី MT5 របស់អ្នក យើងបានធ្វើឱ្យទាន់សម័យនយោបាយពាក្យសម្ងាត់។", @@ -3549,6 +3553,9 @@ "-2036288743": "សុវត្ថិភាពកាន់តែខ្ពស់ជាមួយបច្ចេកវិទ្យាឬការចាក់សោរតាមអេក្រង់", "-143216768": "ស្វែងយល់បន្ថែមអំពី passkeys <0> នៅទីនេះ", "-778309978": "តែសូមពិនិត្យ<0>ចំនួនស្នាដៃដែលអ្នកចុចតំណិនិហានចុងក្រោយនៅក្នុងអ៊ីម៉ែលរបស់អ្នក។ ជាលក្ខខ័ណ្ឌផ្ញើអ៊ីមែលថ្មីរបស់អ្នកកុំទទួលបានសម្រាប់តែរឿងក្នុងប្រអប់សំបុត្រ។ អ្នកក៏អាចបញ្ចូលអ៊ីមែលរបស់អ្នកខាងក្រោម រួចចុច<0>ផ្ញើអ៊ីមែលម្តងទៀតដើម្បីទទួលសម្តងៗក៏បាន។", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "ព័ត៌មានបន្ថែមត្រូវបានធ្វើបច្ចុប្បន្ន", "-941870889": "អ្នកគិតលុយគឺសម្រាប់តែគណនីពិតប៉ុណ្ណោះ។", "-352838513": "វាហាក់ដូចជាអ្នកមិនមានគណនី {{regulation}} ពិតប្រាកដទេ។ ដើម្បីប្រើអ្នកគិតលុយ សូមប្តូរទៅគណនីពិត {{active_real_regulation}} របស់អ្នក ឬទទួលបានគណនីពិត {{regulation}}។", @@ -3561,8 +3568,7 @@ "-55435892": "យើងនឹងត្រូវទទួលព័ត៌មានវិភាគរបស់អ្នក នឹងពិនិត្យសារអ្នកនឹងប្រាប់ពីការដាក់ប្រាក់របស់អ្នក។ អ្នកអាចធ្វើការប្រើការរំលឹកជាមុំសិនកុំគ្នា នៅពេលដែលយើងកំពុងពិនិត្យមើលឯកសាររបស់អ្នក។", "-1916578937": "<0>ស្វែងយល់ពីលក្ខណៈពិសេសថ្មីរំភើបដែលកាបូបរបស់អ្នកផ្ដល់ជូន។", "-1724438599": "<0>អ្នកនៅផ្នែកនៃវិធី!", - "-1089300025": "យើងមិនគិតថ្លៃការដាក់ប្រាក់ទល់និងចំណូលបន្ថែមទេ! បន្ទាប់ពីការផ្ទៀងផ្ទាត់គណនីរបស់អ្នកបានរួច អ្នកនឹងអាចដាក់ប្រាក់ ឬហាក់ដុបប្រាក់បាន។", - "-476018343": "ជជែកក្រៅនៅរដ្ឋបាលជាមួយនឹងខ្សែរវាយតូច", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "ការបញ្ចូលអ៊ីមែលមិនគួរតែទទេ។", "-1471705969": "<0>{{title}}: {{trade_type_name}} នៅលើ {{symbol}}", "-1771117965": "ការជួញដូរត្រូវបានបើក", diff --git a/packages/translations/src/translations/ko.json b/packages/translations/src/translations/ko.json index c3c308cca868..1fecea11b377 100644 --- a/packages/translations/src/translations/ko.json +++ b/packages/translations/src/translations/ko.json @@ -454,6 +454,7 @@ "467839232": "외환 CFD 및 기타 복잡한 금융 상품을 다른 플랫폼에서 정기적으로 거래합니다.", "471402292": "봇은 각 실행에 단일 거래 유형을 사용합니다.", "471667879": "차단 시간:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "설정", "474306498": "귀하께서 떠나시게 되어 유감입니다. 귀하의 계정은 해지되었습니다.", "475492878": "합성 지수를 사용해 보세요", @@ -548,7 +549,6 @@ "573173477": "{{ input_candle }} 캔들이 검정인가요?", "575668969": "3. 수익이 발생한 거래의 경우 다음 거래에 대한 판돈이 2 USD 증가합니다. 파생 봇은 거래가 성공할 때마다 2 USD를 계속 추가합니다. A1을 참조하십시오.", "575702000": "셀카, 집 사진 또는 관련 없는 이미지는 거부된다는 점을 기억하세요.", - "575968081": "계정이 생성되었습니다. 입금할 결제 방법을 선택합니다.", "576355707": "귀하의 국가 및 국적을 선택하세요:", "577215477": "{{ step_size }} 로 {{ start_number }} 에서 {{ end_number }} 까지 {{ variable }} 와 함께 세기", "577779861": "인출", @@ -774,6 +774,7 @@ "793526589": "우리의 서비스에 대한 불만사항을 접수하시기 위해서는, <0>complaints@deriv.com으로 이메일을 보내셔서 귀하의 불만사항에 대해 상세히 서술해주세요. 저희가 이해를 더 잘 할 수 있도록 귀하의 트레이딩 또는 시스템의 관련 스크린샷들을 제출해주시기 바랍니다.", "793531921": "저희 회사는 세계적으로 가장 평판이 좋고 역사가 긴 온라인 트레이딩 회사들 중 하나입니다. 저희는 저희의 고객분들을 공정하게 대하고 훌륭한 서비스를 제공하기 위해 전념합니다.<0/><1/>귀하에게 제공하는 저희의 서비스를 어떻게 더 향상시킬 수 있는지에 대한 피드백을 저희에게 알려주세요. 귀하의 목소리는 저희에게 항상 들릴 것이며 또한 항상 존중받으시고 공정하게 대해지실 것을 확신합니다.", "794682658": "귀하의 폰으로 해당 링크를 복사하세요", + "794778483": "Deposit later", "795859446": "비밀번호가 저장되었습니다", "795992899": "최종 가격과 배리어 사이의 모든 변동 지점에 대해 만기 시 수령할 금액을 선택합니다. ", "797007873": "카메라 접근을 불러오기 위해 이 단계들을 따라주세요:", @@ -1346,6 +1347,7 @@ "1337846406": "이 블록은 선택되어진 시간간격 내의 캔들 목록으로부터 선택되어진 캔들 값을 귀하에게 제공합니다.", "1337864666": "귀하의 서류 사진", "1338496204": "참조 ID", + "1339565304": "Deposit now to start trading", "1339613797": "규제 기관/외부 분쟁 해결", "1340286510": "봇이 중지되었지만 거래는 계속 진행 중일 수 있습니다. 보고서 페이지에서 확인할 수 있습니다.", "1341840346": "저널로 보기", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Google 비밀번호 관리자.", "2014536501": "카드 번호", "2014590669": "변수 '{{variable_name}}'가 값을 가지고 있지 않습니다. 공지하기 위해 변수 '{{variable_name}}'에 대하여 값을 설정해 주시기 바랍니다.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "문서가 발급된 국가를 선택해 주시기 바랍니다.", "2018044371": "승수를 사용하면 레버리지로 거래하고 위험을 지분으로 제한할 수 있습니다. <0>자세히 알아보기", "2019596693": "해당 문서는 제공자에 의해 거부되었습니다.", @@ -2079,6 +2082,7 @@ "2048134463": "파일 사이즈가 초과되었습니다.", "2049386104": "이 계정을 받으려면 다음을 제출해야 합니다.", "2050170533": "틱 목록", + "2051249190": "Add funds and start trading", "2051558666": "거래 내역 확인하기", "2051596653": "Demo Zero Spread BVI", "2052022586": "MT5 계정 보안을 강화하기 위해 비밀번호 정책을 업그레이드했습니다.", @@ -3549,6 +3553,9 @@ "-2036288743": "생체인식 또는 화면 잠금을 통한 보안 강화 ", "-143216768": "<0>여기에서 패스키에 대해 Passkey 알아보세요.", "-778309978": "클릭하신 링크는 만료되었습니다. 받은 편지함에서 최신 이메일 내의 링크를 클릭해야 합니다. 대안적으로는, 아래에 있는 귀하의 이메일을 입력하고 <0>이메일 재전송을 클릭하여 새 링크를 받을 수도 있습니다.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "정보 업데이트", "-941870889": "캐셔는 실제 계정에만 사용할 수 있습니다", "-352838513": "귀하께서는 실제 {{regulation}} 계정이 없는 것으로 보입니다. 캐셔를 사용하기 위해서는, 귀하의 {{active_real_regulation}} 실제 계정으로 전환하시거나 또는 {{regulation}} 실제 계정을 만드시기 바랍니다.", @@ -3561,8 +3568,7 @@ "-55435892": "문서를 검토하고 이메일로 알려드리는 데 1~3일이 소요됩니다. 그 동안 데모 계정으로 연습할 수 있습니다.", "-1916578937": "<0>Wallet이 제공하는 흥미로운 새 기능을 살펴보세요.", "-1724438599": "<0>거의 다 왔어요!", - "-1089300025": "입금 수수료가 없습니다! 계좌가 인증되면 거래, 추가 입금, 자금 인출을 할 수 있습니다.", - "-476018343": "라이브 챗", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "이메일 입력란은 비어 있을 수 없습니다.", "-1471705969": "<0>{{title}} {{trade_type_name}} on {{symbol}}", "-1771117965": "거래 개시", diff --git a/packages/translations/src/translations/mn.json b/packages/translations/src/translations/mn.json index 59c5bc4a2d6c..44d8ee476062 100644 --- a/packages/translations/src/translations/mn.json +++ b/packages/translations/src/translations/mn.json @@ -454,6 +454,7 @@ "467839232": "Би форекс CFD болон бусад нарийн төвөгтэй санхүүгийн хэрэгслийг бусад платформ дээр тогтмол арилжаалдаг.", "471402292": "Таны бот гүйлт бүрт нэг худалдааны төрлийг ашигладаг.", "471667879": "Хугацаа таслах хугацаа:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Тохиргоо", "474306498": "Таныг явахыг хараад харамсаж байна. Таны данс одоо хаалттай байна.", "475492878": "Синтетик индексүүдийг туршиж", @@ -548,7 +549,6 @@ "573173477": "Лаа {{ input_candle }} хар уу?", "575668969": "3. Ашиг хүргэх арилжааны хувьд дараагийн арилжааны хувьцааг 2 ам.доллараар нэмэгдүүлнэ. Deriv Bot амжилттай арилжаа бүрт 2 ам.доллар нэмсээр байх болно. А1-ийг үзнэ үү.", "575702000": "Селфи, байшингийн зураг, эсвэл хамааралгүй зургууд татгалзах болно гэдгийг санаарай.", - "575968081": "Данс үүсгэсэн. Хадгаламжийн төлбөрийн аргыг сонгоно уу.", "576355707": "Улс орон, иргэншлээ сонгоно уу:", "577215477": "{{ start_number }} -аас {{ end_number }} хүртэл {{ variable }} -аар тоолно {{ step_size }}", "577779861": "Гарах", @@ -774,6 +774,7 @@ "793526589": "Манай үйлчилгээний талаар гомдол гаргахын тулд <0>complaints@deriv.com хаягаар и-мэйл илгээж, гомдлоо дэлгэрэнгүй бичээрэй. Биднийг илүү сайн ойлгохын тулд арилжаа эсвэл системийнхээ холбогдох дэлгэцийн зургийг ирүүлнэ үү.", "793531921": "Манай компани нь дэлхийн хамгийн эртний, нэр хүндтэй онлайн худалдааны компаниудын нэг юм. Бид үйлчлүүлэгчиддээ шударгаар хандаж, маш сайн үйлчилгээг тэдэнд үзүүлэх зорилготой. <0/> <1/> бид танд үйлчилгээгээ хэрхэн сайжруулж болох талаар санал хүсэлтийг бидэнд өгнө үү. Таныг үргэлж сонсож, үнэлэгдэж, шударгаар хандах болно гэдэгт итгэлтэй байгаарай.", "794682658": "Холбоосыг утас руугаа хуулна уу", + "794778483": "Deposit later", "795859446": "Нууц үг хадгалагдсан", "795992899": "Эцсийн үнэ ба саад бэрхшээлийн хоорондох өөрчлөлтийн цэг бүрт дуусах үед хүлээн авахаар сонгосон дүн. ", "797007873": "Камерын хандалтыг сэргээхийн тулд дараах алхмуудыг дагана уу.", @@ -1346,6 +1347,7 @@ "1337846406": "Энэ блок нь сонгосон хугацааны интервал доторх лааны жагсаалтаас сонгосон лааны утгыг танд өгдөг.", "1337864666": "Таны баримт бичгийн зураг", "1338496204": "Реф. ID", + "1339565304": "Deposit now to start trading", "1339613797": "Зохицуулагч/Гадаад маргааны шийдвэр", "1340286510": "Бот зогссон боловч таны худалдаа хэвээр байгаа байж магадгүй юм. Та үүнийг Тайлан хуудсан дээрээс шалгаж болно.", "1341840346": "Сэтгүүл дээрээс харах", @@ -2044,6 +2046,7 @@ "2012139674": "Андройд: Google-ийн нууц үгийн менежер.", "2014536501": "Картын дугаар", "2014590669": "Хувьсагч '{{variable_name}}' ямар ч утгагүй. Мэдэгдэхийн тулд '{{variable_name}}' хувьсагчийн утгыг тохируулна уу.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Баримт бичиг олгосон улсыг сонгоно уу.", "2018044371": "Үржүүлэгчид нь хөшүүргээр арилжаа хийх боломжийг олгож, таны хувьцаанд эрсдэлийг хязгаарлах. дэлгэрэ <0>нгүй", "2019596693": "Баримт бичгийг Үйлчилгээ үзүүлэгч татгалзсан.", @@ -2079,6 +2082,7 @@ "2048134463": "Файлын хэмжээ хэтэрсэн.", "2049386104": "Энэ дансыг авахын тулд бид эдгээрийг ирүүлэх хэрэгтэй:", "2050170533": "Шалганы жагсаалт", + "2051249190": "Add funds and start trading", "2051558666": "Гүйлгээний түүхийг харах", "2051596653": "Демо Zero Spread BVI", "2052022586": "Таны MT5 дансны аюулгүй байдлыг сайжруулахын тулд бид нууц үгийн бодлогоо сайжруулсан.", @@ -3549,6 +3553,9 @@ "-2036288743": "Биометр эсвэл дэлгэцийн түгжээгээр сайжруулсан аюулгүй байдал ", "-143216768": "<0>Нууц үгийн талаар эндээс илүү ихийг мэдэж аваарай.", "-778309978": "Таны дарсан холбоосын хугацаа дууссан. Ирсэн мэйл дэх хамгийн сүүлийн үеийн имэйл дэх холбоосыг дарж байгаарай. Өөр нэг арга нь доорх имэйлээ оруулаад шинэ холбо <0>осыг дахин илгээх имэйлийг дарна уу.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Мэдээлэл шинэчлэгдсэн", "-941870889": "Касс нь зөвхөн бодит дансанд зориулагдсан", "-352838513": "Танд жинхэнэ {{regulation}} данс байхгүй мэт харагдаж байна. Кассыг ашиглахын тулд {{active_real_regulation}} жинхэнэ данс руугаа шилжих, эсвэл {{regulation}} бодит данс аваарай.", @@ -3561,8 +3568,7 @@ "-55435892": "Бидэнд таны баримт бичгийг хянаж, имэйлээр мэдэгдэхэд 1-3 хоног хэрэгтэй болно. Та энэ хооронд демо данстай дадлага хийх боломжтой.", "-1916578937": "<0>Таны түрийвч санал болгож буй сэтгэл хөдөлгөм шинэ функцуудыг судлаарай.", "-1724438599": "<0>Чи бараг тэнд байна!", - "-1089300025": "Бид хадгаламжийн төлбөр авдаггүй! Таны данс баталгаажсаны дараа та арилжаа хийх, нэмэлт хадгаламж хийх, эсвэл хөрөнгө татах боломжтой болно.", - "-476018343": "Шууд чат", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "И-мэйлийн оролт хоосон байх ёсгүй.", "-1471705969": "<0>{{title}}: {{trade_type_name}} дээр {{symbol}}", "-1771117965": "Худалдаа нээгдлээ", diff --git a/packages/translations/src/translations/pl.json b/packages/translations/src/translations/pl.json index cd539e546514..c9a8268f539d 100644 --- a/packages/translations/src/translations/pl.json +++ b/packages/translations/src/translations/pl.json @@ -454,6 +454,7 @@ "467839232": "Regularnie handluję kontraktami CFD i innymi złożonymi instrumentami finansowymi na innych platformach.", "471402292": "Twój bot korzysta z jednego typu transakcji dla każdego uruchomienia.", "471667879": "Czas odcięcia:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Ustawienia", "474306498": "Przykro nam, że nas opuszczasz. Twoje konto zostało zamknięte.", "475492878": "Wypróbuj wskaźniki syntetyczne", @@ -548,7 +549,6 @@ "573173477": "Czy świeca {{ input_candle }} jest czarna?", "575668969": "3. W przypadku transakcji, które przyniosą zysk, stawka na następną transakcję zostanie zwiększona o 2 USD. Deriv Bot będzie nadal dodawał 2 USD za każdą udaną transakcję. Patrz A1.", "575702000": "Pamiętaj, że selfie, zdjęcia domów lub niepowiązane obrazy zostaną odrzucone.", - "575968081": "Konto utworzone. Wybierz metodę płatności dla wpłaty.", "576355707": "Wybierz swój kraj i obywatelstwo:", "577215477": "liczy z {{ variable }} od {{ start_number }} do {{ end_number }} o {{ step_size }}", "577779861": "Wypłata", @@ -774,6 +774,7 @@ "793526589": "Aby złożyć skargę na nasze usługi, wyślij wiadomość e-mail na adres: <0>complaints@deriv.com i opisz szczegółowo skargę. Prześlij zrzuty ekranu przedstawiające zakłady lub system, aby ułatwić nam zrozumienie składanej skargi.", "793531921": "Nasza firma jest jedną z najstarszych i cieszących się największą renomą firm na świecie zajmujących się inwestowaniem on-line. Dbamy o to, by traktować naszych klientów sprawiedliwie i dostarczać im doskonałe usługi.<0/><1/>Podziel się z nami swoją opinią, jak możemy ulepszać nasze usługi. Zapewniamy Cię że zawsze będziemy Cię cenić i traktować sprawiedliwie, a Twoje zdanie jest dla nas bardzo ważne.", "794682658": "Skopiuj link na swój telefon", + "794778483": "Deposit later", "795859446": "Zapisano hasło", "795992899": "Kwota, którą zdecydujesz się otrzymać w momencie wygaśnięcia za każdy punkt zmiany między ostateczną ceną a barierą. ", "797007873": "Wypełnij te kroki, aby odzyskać dostęp do aparatu:", @@ -1346,6 +1347,7 @@ "1337846406": "Ten blok daje wartość wybranych świec z listy świec w wybranym interwale czasowym.", "1337864666": "Zdjęcie Twojego dokumentu", "1338496204": "Nr ref.", + "1339565304": "Deposit now to start trading", "1339613797": "Regulator/Zewnętrzne rozstrzyganie sporów", "1340286510": "Bot został zatrzymany, ale Państwa transakcja może być nadal aktywna. Mogą to Państwo sprawdzić na stronie Raporty.", "1341840346": "Zobacz w Dzienniku", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Menedżer haseł Google.", "2014536501": "Numer karty", "2014590669": "Zmienna '{{variable_name}}' nie ma żadnych wartości. Ustal wartość zmiennej '{{variable_name}}' do powiadomienia.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Wybierz kraj wydania dokumentu.", "2018044371": "Mnożniki pozwalają handlować z dźwignią finansową i ograniczyć ryzyko do Twojej stawki. <0>Dowiedz się więcej", "2019596693": "Dokument został odrzucony przez dostawcę.", @@ -2079,6 +2082,7 @@ "2048134463": "Przekroczono maksymalną wielkość pliku.", "2049386104": "Aby uzyskać to konto, musisz je przesłać:", "2050170533": "Lista ticków", + "2051249190": "Add funds and start trading", "2051558666": "Zobacz historię transakcji", "2051596653": "Demo Zero Spread BVI", "2052022586": "Aby zwiększyć bezpieczeństwo Twojego konta MT5, zaktualizowaliśmy naszą politykę dotyczącą haseł.", @@ -3549,6 +3553,9 @@ "-2036288743": "Zwiększone bezpieczeństwo dzięki biometrii lub blokadzie ekranu ", "-143216768": "Dowiedz się więcej o passkeys <0>tutaj.", "-778309978": "Kliknięty link wygasł. Upewnij się, że klikniesz łącze w najnowszej wiadomości e-mail w skrzynce odbiorczej. Alternatywnie, wpisz poniżej swój adres e-mail i kliknij Wyślij <0>ponownie e-mail, aby uzyskać nowy link.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Informacje zaktualizowane", "-941870889": "Kasjer jest przeznaczony tylko dla kont rzeczywistych", "-352838513": "Wygląda na to, że nie masz prawdziwego {{regulation}} konto. Aby skorzystać z kasjera, przełącz się na {{active_real_regulation}} prawdziwe konto, lub zdobądź {{regulation}} prawdziwe konto.", @@ -3561,8 +3568,7 @@ "-55435892": "Będziemy potrzebować 1 - 3 dni, aby przejrzeć Twoje dokumenty i powiadomić Cię e-mailem. W międzyczasie możesz ćwiczyć z kontami demo.", "-1916578937": "<0>Poznaj ekscytujące nowe funkcje oferowane przez Twój Wallet.", "-1724438599": "<0>Już prawie tam jesteś!", - "-1089300025": "Nie pobieramy opłat depozytowych! Po zweryfikowaniu konta będziesz mógł handlować, dokonywać dodatkowych wpłat lub wypłacać środki.", - "-476018343": "Czat na żywo", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "Pole e-mail nie może być puste.", "-1471705969": "<0>{{title}}: {{trade_type_name}} na {{symbol}}", "-1771117965": "Transakcja otwarta", diff --git a/packages/translations/src/translations/pt.json b/packages/translations/src/translations/pt.json index 1d84bec41ab7..d8e723bcf45d 100644 --- a/packages/translations/src/translations/pt.json +++ b/packages/translations/src/translations/pt.json @@ -454,6 +454,7 @@ "467839232": "Negoceio regularmente CFDs em Forex e outros instrumentos financeiros complexos noutras plataformas.", "471402292": "O seu bot utiliza um único tipo de negociação para cada execução.", "471667879": "Momento-limite:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Definições", "474306498": "Lamentamos a sua saída. A sua conta está agora encerrada.", "475492878": "Experimente os Índices Sintéticos", @@ -548,7 +549,6 @@ "573173477": "A vela {{ input_candle }} é preta?", "575668969": "3. Para negociações que resultam em lucro, a entrada para a próxima negociação será aumentada para 2 USD. A Deriv Bot vai continuar a adicionar 2 USD por cada negociação bem sucedida. Ver A1.", "575702000": "Não se esqueça de que as selfies, as imagens de casas ou imagens não relacionadas serão rejeitadas.", - "575968081": "Conta criada. Selecione o método de pagamento para efetuar o depósito.", "576355707": "Selecione o seu país e cidadania:", "577215477": "conte com {{ variable }} de {{ start_number }} a {{ end_number }} por {{ step_size }}", "577779861": "Levantamentos", @@ -774,6 +774,7 @@ "793526589": "Para apresentar uma reclamação sobre o nosso serviço, envie um e-mail para <0>complaints@deriv.com e descreva a sua reclamação detalhadamente. Por favor, envie capturas de ecrã relevantes da negociação ou do sistema para podermos ter um melhor entendimento.", "793531921": "A nossa empresa é uma das mais antigas e conceituadas empresas de negociação online do mundo. Assumimos o compromisso de tratar os nossos clientes de forma justa e de prestar um excelente serviço.<0/><1/>Por favor, dê-nos o seu feedback sobre como podemos melhorar os nossos serviços. Asseguramos que será ouvido, valorizado e tratado de forma justa em todos os momentos.", "794682658": "Copie o link para o seu telemóvel", + "794778483": "Deposit later", "795859446": "Palavra-passe guardada", "795992899": "O montante que escolhe receber no vencimento por cada ponto de variação entre o preço final e a barreira. ", "797007873": "Siga os seguintes passos para recuperar o acesso à câmara:", @@ -1346,6 +1347,7 @@ "1337846406": "Esse bloco fornece o valor da vela selecionada de uma lista de velas dentro do intervalo de tempo selecionado.", "1337864666": "Foto do seu documento", "1338496204": "N.° de ref.", + "1339565304": "Deposit now to start trading", "1339613797": "Regulador/Resolução externa de litígios", "1340286510": "O bot parou, mas a sua negociação pode estar ainda a decorrer. Pode verificá-la na página Relatórios.", "1341840346": "Exibir no diário", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Gestor de palavras-passe do Google.", "2014536501": "Número do cartão", "2014590669": "A variável '{{variable_name}}' não tem valor. Por favor, defina um valor para a variável '{{variable_name}}' para notificar.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Selecione o país de emissão do documento.", "2018044371": "Os \"multipliers\" permitem-lhe negociar com alavancagem e limitar o seu risco ao montante investido inicialmente. <0>Saiba mais", "2019596693": "O documento foi rejeitado pelo prestador de serviços.", @@ -2079,6 +2082,7 @@ "2048134463": "O tamanho do ficheiro foi excedido.", "2049386104": "Para obter esta conta, é necessário enviar:", "2050170533": "Lista de Ticks", + "2051249190": "Add funds and start trading", "2051558666": "Ver o histórico de transacções", "2051596653": "Demo Zero Spread BVI", "2052022586": "Para reforçar a segurança da sua conta MT5, atualizámos a nossa política de palavras-passe.", @@ -3549,6 +3553,9 @@ "-2036288743": "Segurança reforçada com dados biométricos ou bloqueio do ecrã ", "-143216768": "Saiba mais sobre as passkeys <0> aqui.", "-778309978": "O link em que clicou expirou. Certifique-se de que clica no link do último e-mail na sua caixa de entrada. Em alternativa, introduza o seu e-mail abaixo e clique em <0>Reenviar e-mail para obter um novo link.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Informação atualizada", "-941870889": "A caixa é apenas para contas reais", "-352838513": "Parece que não tem uma conta real em {{regulation}}. Para utilizar a caixa, mude para a sua conta real {{active_real_regulation}} ou obtenha uma conta real {{regulation}}.", @@ -3561,8 +3568,7 @@ "-55435892": "Vamos precisar de 1 a 3 dias para analisar os seus documentos e notificá-lo por e-mail. Entretanto, pode praticar com contas demo.", "-1916578937": "<0>Explore as novas e entusiasmantes funcionalidades que a sua Wallet oferece.", "-1724438599": "<0>Está quase! ", - "-1089300025": "Não cobramos taxas de depósito! Assim que a sua conta for validada, pode negociar, efetuar depósitos adicionais ou levantar fundos.", - "-476018343": "Live Chat", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "A entrada de e-mail não deve estar vazia.", "-1471705969": "<0>{{title}}: {{trade_type_name}} sobre {{symbol}}", "-1771117965": "Negociação aberta", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index 34904f7ee797..f06f7d4b8a18 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -454,6 +454,7 @@ "467839232": "Я регулярно торгую CFD на форекс и другими сложными финансовыми инструментами на других платформах.", "471402292": "Ваш бот использует один тип контракта для каждого запуска.", "471667879": "Время отсечки:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Настройки", "474306498": "Жаль, что вы уходите. Ваш счет закрыт.", "475492878": "Попробуйте Синтетические индексы", @@ -548,7 +549,6 @@ "573173477": "Свеча {{ input_candle }} черная?", "575668969": "3. Для сделок, в результате которых была получена прибыль, ставка для следующей сделки будет увеличена на 2 USD. Deriv Bot будет продолжать добавлять 2 USD за каждую успешную сделку. См. A1.", "575702000": "Помните, что селфи, фотографии домов или изображения, не относящиеся к делу, будут отклонены.", - "575968081": "Счет создан. Выберите платежный метод для пополнения.", "576355707": "Выберите страну и гражданство:", "577215477": "подсчитать с {{ variable }} от {{ start_number }} до {{ end_number }} по {{ step_size }}", "577779861": "Вывод", @@ -774,6 +774,7 @@ "793526589": "Чтобы подать жалобу на наш сервис, отправьте электронное письмо по адресу <0>complaints@deriv.com и подробно изложите свою претензию. Пожалуйста, прикрепите к письму соответствующие скриншоты истории счета или торговой системы для лучшего понимания проблемы с нашей стороны.", "793531921": "Наша компания - одна из старейших и наиболее уважаемых в мире онлайн-трейдинга. Мы стремимся справедливо относиться к нашим клиентам и предоставлять им отличный сервис.<0/><1/>Пожалуйста, поделитесь с нами своим мнением о том, как мы можем улучшить наши услуги. Будьте уверены, что вас всегда будут слышать и ценить.", "794682658": "Скопируйте ссылку на свой телефон", + "794778483": "Deposit later", "795859446": "Пароль сохранен", "795992899": "Сумма, которую вы хотите получить по истечении срока действия контракта за каждый пункт изменения между конечной ценой и барьером. ", "797007873": "Выполните следующие действия, чтобы восстановить доступ к камере:", @@ -1346,6 +1347,7 @@ "1337846406": "Этот блок отображает значение выбранной свечи из списка свечей в указанном временном интервале.", "1337864666": "Фото вашего документа", "1338496204": "Номер", + "1339565304": "Deposit now to start trading", "1339613797": "Регулирующие органы/Внешнее разрешение споров", "1340286510": "Бот остановлен, но ваш контракт может все еще продолжаться. Это можно проверить на странице Отчеты.", "1341840346": "Смотреть в журнале", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Менеджер паролей Google.", "2014536501": "Номер карты", "2014590669": "Отсутствует значение переменной '{{variable_name}}'. Пожалуйста, установите значение переменной '{{variable_name}}' для уведомления.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Выберите страну выдачи документа.", "2018044371": "Multipliers позволяют вам торговать с кредитным плечом и ограничивать риск размером ставки. <0>Подробнее", "2019596693": "Документ отклонен провайдером.", @@ -2079,6 +2082,7 @@ "2048134463": "Превышен допустимый размер файла.", "2049386104": "Чтобы открыть этот счет, нам понадобится следующее:", "2050170533": "Список тиков", + "2051249190": "Add funds and start trading", "2051558666": "См. историю транзакций", "2051596653": "Демо Zero Spread BVI", "2052022586": "Чтобы повысить безопасность вашего счета МТ5, мы обновили нашу политику в отношении паролей.", @@ -3549,6 +3553,9 @@ "-2036288743": "Повышенная безопасность с помощью биометрии или блокировки экрана ", "-143216768": "Узнайте больше о passkeys <0>здесь.", "-778309978": "Срок действия ссылки истек. Попробуйте нажать на ссылку в последнем письме в папке Входящие. Или введите свой адрес электронной почты ниже и нажмите <0>Отправить письмо повторно, чтобы получить новую ссылку.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Обновленная информация", "-941870889": "Касса предназначена только для реальных счетов", "-352838513": "Похоже, у вас нет реального счета {{regulation}}. Чтобы воспользоваться кассой, переключитесь на реальный счет {{active_real_regulation}} или откройте реальный счет {{regulation}}.", @@ -3561,8 +3568,7 @@ "-55435892": "Нам понадобится 1 - 3 дня, чтобы проверить ваши документы. Мы уведомим вас о результатах по электронной почте. Пока вы можете потренироваться на демо-счетах.", "-1916578937": "<0>Изучите новые захватывающие возможности, которые предлагает Wallet.", "-1724438599": "<0>Вы почти у цели!", - "-1089300025": "Мы не взимаем комиссию за пополнение счета! Как только ваш счет будет подтвержден, вы сможете торговать, пополнять счет и выводить средства.", - "-476018343": "Чат", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "Поле email не должно быть пустым.", "-1471705969": "<0>{{title}}: {{trade_type_name}} на {{symbol}}", "-1771117965": "Торговля открыта", diff --git a/packages/translations/src/translations/si.json b/packages/translations/src/translations/si.json index 270354d9ebb5..d6b2af0cab2d 100644 --- a/packages/translations/src/translations/si.json +++ b/packages/translations/src/translations/si.json @@ -454,6 +454,7 @@ "467839232": "මම වෙනත් වේදිකාවල forex CFD සහ අනෙකුත් සංකීර්ණ මූල්‍ය මෙවලම් සමඟ නිතිපතා ගනුදෙනු කරන්නෙමි.", "471402292": "ඔබේ බොට් එක එක් එක් ධාවනය සඳහා තනි ගනුදෙනු වර්ගයක් භාවිත කරයි.", "471667879": "කපා හැරීමේ කාලය:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "සැකසීම්", "474306498": "ඔබ ඉවත්ව යාම ගැන අපට කනගාටුයි. ඔබේ ගිණුම දැන් වසා ඇත.", "475492878": "කෘත්‍රිම​ දර්ශක උත්සාහ කරන්න", @@ -548,7 +549,6 @@ "573173477": "{{ input_candle }} candle එක කළු පැහැති ද?", "575668969": "3. ලාභ ලබන ගනුදෙනු සඳහා, ඊළඟ ගනුදෙනුවේ කොටස් ඩොලර් 2 කින් වැඩි කරනු ලැබේ. සෑම සාර්ථක ගනුදෙනුවක් සඳහාම Deriv බොට් විසින් 2 USD එකතු කරනු ඇත. A1 බලන්න.", "575702000": "සෙල්ෆි ඡායාරූප, නිවාසවල පින්තූර හෝ අදාළ නොවන පින්තූර ප්‍රතික්ෂේප කරන බව මතක තබා ගන්න.", - "575968081": "ගිණුම නිර්මාණය කර ඇත. තැන්පතු සඳහා ගෙවීම් ක්‍රමය තෝරන්න.", "576355707": "ඔබේ රට සහ පුරවැසිභාවය තෝරන්න:", "577215477": "{{ variable }} සමඟ {{ start_number }} සිට {{ end_number }} දක්වා {{ step_size }} මඟින් ගණන් කරන්න", "577779861": "ආපසු ගැනීම", @@ -774,6 +774,7 @@ "793526589": "අපගේ සේවාව පිළිබඳ පැමිණිල්ලක් ගොනු කිරීමට, <0>complaints@deriv.com වෙත ඊ-තැපෑලක් යවා ඔබේ පැමිණිල්ල විස්තරාත්මකව සඳහන් කරන්න. අපට වඩාත් හොඳින් ගැටළුව අවබෝධ කර ගත හැකි වීම සඳහා කරුණාකර ඔබේ ගනුදෙනුවේ හෝ පද්ධතියේ අදාළ තිර රුවක් ඉදිරිපත් කරන්න.", "793531921": "අපගේ සමාගම ලෝකයේ පැරණිතම සහ වඩාත්ම පිළිගත් මාර්ගගත ගනුදෙනු සමාගම්වලින් එකකි. අපගේ ගනුදෙනුකරුවන්ට සාධාරණ ලෙස සැලකීමට සහ ඔවුන්ට විශිෂ්ට සේවාවක් ලබා දීමට අපි කැපවී සිටිමු.<0/><1/>ඔබට ලබා දෙන අපගේ සේවා වැඩිදියුණු කළ හැකි ආකාරය පිළිබඳ ප්‍රතිපෝෂණ අපට ලබා දෙන්න. සෑම විටම ඔබට සවන් දෙමින්, අගය කරමින්, සාධාරණව සලකනු ඇති බවට සැකයක් නැත.", "794682658": "සබැඳිය ඔබේ දුරකථනයට පිටපත් කරන්න", + "794778483": "Deposit later", "795859446": "මුරපදය සුරකින ලදි", "795992899": "අවසාන මිල සහ බාධකය අතර වෙනස්වීමේ සෑම අවස්ථාවකදීම කල් ඉකුත් වන විට ඔබට ලැබීමට තෝරා ගන්නා මුදල. ", "797007873": "කැමරා ප්‍රවේශය නැවත ලබා ගැනීමට මෙම පියවර අනුගමනය කරන්න:", @@ -1346,6 +1347,7 @@ "1337846406": "මෙම බ්ලොක් එක මඟින් තෝරාගත් කාල පරතරය තුළ candles ලැයිස්තුවකින් තෝරාගත් candle අගය ඔබට ලබා දේ.", "1337864666": "ඔබේ ලේඛනයේ ඡායාරූපය", "1338496204": "යොමු හැඳුනුම්පත", + "1339565304": "Deposit now to start trading", "1339613797": "නියාමක/බාහිර මත භේද විසඳීම", "1340286510": "බොට් නැවතී ඇත, නමුත් ඔබේ ගනුදෙනුව තවමත් ක්‍රියාත්මක විය හැක. ඔබට එය වාර්තා පිටුවෙන් පරීක්ෂා කළ හැකිය.", "1341840346": "ජර්නලයේ බලන්න", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Google මුරපද කළමනාකරු.", "2014536501": "කාඩ් අංකය", "2014590669": "'{{variable_name}}' විචල්‍යයට අගයක් නැත. ඒ බව දැනුම් දීමට කරුණාකර '{{variable_name}}' විචල්‍යය සඳහා අගයක් සකසන්න.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "කරුණාකර ලේඛන නිකුත් කරන රට තෝරන්න.", "2018044371": "Multipliers ඔබට උත්තෝලනය සමඟ ගනුදෙනු කිරීමට සහ ඔබේ අවදානම ඔබේ කොටස්වලට සීමා කර ගැනීමට ඉඩ දෙයි. <0>තව දැන ගන්න", "2019596693": "ලේඛනය සපයන්නා විසින් ප්‍රතික්ෂේප කරන ලදී.", @@ -2079,6 +2082,7 @@ "2048134463": "ගොනු ප්‍රමාණය ඉක්මවා ඇත.", "2049386104": "මෙම ගිණුම ලබා ගැනීම සඳහා අපට ඔබ පහත සඳහන් දේවල් ඉදිරිපත් කළ යුතුය:", "2050170533": "ටික් ලැයිස්තුව", + "2051249190": "Add funds and start trading", "2051558666": "ගනුදෙනු ඉතිහාසය බලන්න", "2051596653": "ආදර්ශන ශුන්‍ය ව්‍යාප්ති BVI", "2052022586": "ඔබේ MT5 ගිණුමේ ආරක්ෂාව වැඩි දියුණු කිරීම සඳහා අපි අපගේ මුරපද ප්‍රතිපත්තිය උත්ශ්‍රේණි කර ඇත.", @@ -3549,6 +3553,9 @@ "-2036288743": "ජෛවමිතික හෝ තිර අගුල සමඟ වැඩි දියුණු කළ ආරක්ෂාව ", "-143216768": "Passkeys පිළිබඳ වැඩි විස්තර <0>මෙතැනින් දැන ගන්න.", "-778309978": "ඔබ ක්ලික් කළ සබැඳිය කල් ඉකුත් වී ඇත. ඔබේ එන ලිපි තුළ ඇති නවතම ඊ-තැපෑලෙහි ඇති සබැඳිය ක්ලික් කළ බවට සහතික වන්න. විකල්පයක් ලෙස, ඔබේ ඊ-තැපෑල පහතින් ඇතුළු කර නව සබැඳියක් සඳහා <0>යළි ඊ-තැපෑලක් එවන්න ක්ලික් කරන්න.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "තොරතුරු යාවත්කාලීන කරන ලදී", "-941870889": "මුදල් අයකැමි සැබෑ ගිණුම් සඳහා පමණි", "-352838513": "ඔබට සැබෑ {{regulation}} ගිණුමක් නොමැති බව පෙනේ. අයකැමි භාවිත කිරීමට, ඔබේ {{active_real_regulation}} සැබෑ ගිණුමට මාරු වන්න, නැතහොත් සැබෑ {{regulation}} ගිණුමක් ලබා ගන්න.", @@ -3561,8 +3568,7 @@ "-55435892": "ඔබේ ලේඛන සමාලෝචනය කර ඊ-තැපැල් මඟින් ඔබට දැනුම් දීමට අපට දින 1 - 3ක් අවශ්‍ය වේ. මේ අතර ඔබට ආදර්ශන ගිණුම් සමඟ පුහුණු විය හැකිය.", "-1916578937": "<0>ඔබේ Wallet ලබා දෙන ආකර්ෂණීය නව විශේෂාංග ගවේෂණය කරන්න.", "-1724438599": "<0>ඔබ දැනටමත් එතැනට පැමිණ ඇත!", - "-1089300025": "අපි තැන්පතු ගාස්තු අය කරන්නේ නැහැ! ඔබේ ගිණුම සත්‍යාපනය කළ පසු, ඔබට ගනුදෙනු කිරීමට, අමතර තැන්පතු කිරීමට හෝ මුදල් ආපසු ගැනීමට හැකි වනු ඇත.", - "-476018343": "සජීවී කතාබස්", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "ඊ-තැපැල් ආදානය හිස් නොවිය යුතුය.", "-1471705969": "<0>{{title}}: {{symbol}} මත {{trade_type_name}}", "-1771117965": "ගනුදෙනුව විවෘත විය", diff --git a/packages/translations/src/translations/sw.json b/packages/translations/src/translations/sw.json index 02d697d5e66d..2c3d1d4ca112 100644 --- a/packages/translations/src/translations/sw.json +++ b/packages/translations/src/translations/sw.json @@ -12,7 +12,7 @@ "9488203": "Deriv Bot ni mjenzi wa mkakati wa wavuti wa biashara ya chaguzi digitali. Ni jukwaa ambalo unaweza kujenga bot yako mwenyewe otomatiki ya biashara ukitumia 'vizuzi' vya drag-na-drop.", "9757544": "Tafadhali wasilisha uthibisho wako wa anwani", "11533428": "Fanya biashara ya nafasi kubwa kwa mtaji mdogo katika masoko ya ulimwengu kote. <0>Jifunze zaidi", - "11539750": "weka {{ variable }} kwa Shirika la Kiashiria cha Nguvu wa Relay {{ dummy }}", + "11539750": "weka {{ variable }} kuwa Relative Strength Index Array {{ dummy }}", "11706633": "Kizingiti cha upotezaji: Bot itaacha kufanya biashara ikiwa jumla ya hasara zako zinazidi kiasi hiki.", "11872052": "Ndio, nitarudi baadaye", "14365404": "Ombi limeshindikana kwa: {{ message_type }}, jaribu tena katika {{ delay }}s", @@ -454,6 +454,7 @@ "467839232": "Ninafanya biashara ya forex CFDs na vyombo vingine tata vya kifedha mara kwa mara kwenye majukwaa mengine.", "471402292": "Bot yako hutumia aina moja ya biashara kwa kila uendeshaji.", "471667879": "Wakati wa kukata:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Mipangilio", "474306498": "Tunasikitika kuona unaondoka. Akaunti yako sasa imefungwa.", "475492878": "Jaribu Sintetiki Indeksi", @@ -548,7 +549,6 @@ "573173477": "Je, candle {{ input_candle }} ni nyeusi?", "575668969": "3. Kwa biashara ambazo husababisha faida, dau la biashara inayofuata litaongezeka kwa USD 2. Deriv Bot itaendelea kuongeza USD 2 kwa kila biashara iliyofanikiwa. Tazama A1.", "575702000": "Kumbuka, selfie, picha za nyumba, au picha zisizohusika zitakataliwa.", - "575968081": "Akaunti imeundwa. Chagua njia ya malipo ya uwekaji pesa.", "576355707": "Chagua nchi yako na uraia:", "577215477": "hesabu kwa {{ variable }} kutoka {{ start_number }} hadi {{ end_number }} na {{ step_size }}", "577779861": "Kutoa pesa", @@ -774,6 +774,7 @@ "793526589": "Ili kufungua malalamiko kuhusu huduma yetu, tuma barua pepe kwenda <0> complaints@deriv.com na ueleze malalamiko yako kwa undani. Tafadhali wasilisha skrini zozote zinazohusika na biashara au mfumo wako ili tuweze kuelewa vizuri.", "793531921": "Kampuni yetu ni moja ya kampuni za zamani na zinazojulikana zaidi za biashara za mtandaoni ulimwenguni. Tumejitolea kuwatendea wateja wetu kwa haki na kuwapa huduma bora. <0/> <1/> Tafadhali tupe maoni juu ya jinsi tunavyoweza kuboresha huduma zetu kwako. Hakikisha kuwa utasikiwa, utathaminiwa, na kutibiwa kwa haki wakati wote.", "794682658": "Nakili kiunganishi kwenye simu yako", + "794778483": "Deposit later", "795859446": "Nenosiri limehifadhiwa", "795992899": "Kiasi unachochagua kupokea wakati wa kumalizika kwa kila hatua ya mabadiliko kati ya bei ya mwisho na kizuizi. ", "797007873": "Fuata hatua hizi ili kurejesha upatikanaji wa kamera:", @@ -1143,7 +1144,7 @@ "1134883120": "Tumia barua pepe na nenosiri lako la akaunti ya Deriv kuingia kwenye cTrader.", "1138126442": "Forex: standard", "1143730031": "Mwelekeo ni {{ direction_type }}", - "1144028300": "Mfumo wa Fahirisi ya Nguvu ya Hisia (RSIA)", + "1144028300": "Relative Strength Index Array (RSIA)", "1145927365": "Endesha vizuizi vilivyo ndani baada ya idadi fulani ya sekunde", "1146064568": "Nenda kwenye ukurasa wa Kutoa pesa", "1147269948": "Kizuizi hakiwezi kuwa sifuri.", @@ -1346,6 +1347,7 @@ "1337846406": "Kizuizi hiki kinakupa thamani ya candle iliyochaguliwa kutoka kwenye orodha ya candles ndani ya muda uliochaguliwa.", "1337864666": "Picha ya hati yako", "1338496204": "Ref. KITAMBULISHO", + "1339565304": "Deposit now to start trading", "1339613797": "Udhibiti/Utatuzi wa migogoro ya nje", "1340286510": "Bot imesimama, lakini biashara yako bado inaweza kuendelea. Unaweza kuiangalia kwenye ukurasa wa Ripoti.", "1341840346": "Tazama katika Jarida", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Google password manager.", "2014536501": "Nambari ya kadi", "2014590669": "Tofauti '{{variable_name}}' haina thamani. Tafadhali weka thamani ya tofauti '{{variable_name}}' ili kuarifu.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Tafadhali chagua nchi ya utoaji wa hati.", "2018044371": "Multipliers hukuruhusu kufanya biashara kwa mkopo na kupunguza hatari ya dau lako. <0>Jifunze zaidi", "2019596693": "Hati ilikataliwa na Mtoa huduma.", @@ -2079,6 +2082,7 @@ "2048134463": "Ukubwa wa faili umezidi.", "2049386104": "Tunahitaji wewe uwasilishe hivi ili kupata akaunti hii:", "2050170533": "Orodha ya tick", + "2051249190": "Add funds and start trading", "2051558666": "Tazama historia ya muamala", "2051596653": "Demo Zero Spread BVI", "2052022586": "Ili kuimarisha usalama wa akaunti yako ya MT5 tumeboresha sera yetu ya nenosiri.", @@ -3549,6 +3553,9 @@ "-2036288743": "Usalama ulioimarishwa kwa kutumia bayometriki au kufunga skrini ", "-143216768": "Jifunze zaidi kuhusu passkeys <0>hapa.", "-778309978": "Kiunganishi ulichobonyeza kimeisha muda wake wa matumizi. Hakikisha unabonyeza kiungo kwenye barua pepe ya hivi karibuni kwenye sanduku lako la ujumbe. Vinginevyo, ingiza barua pepe yako hapa chini na bonyeza <0>Tuma tena barua pepe ili kupata kiunganishi kipya.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Taarifa imesasishwa", "-941870889": "Cashier ni kwa akaunti halisi tu", "-352838513": "Inaonekana kama hauna akaunti halisi ya {{regulation}}. Ili kutumia cashier, nenda kwenye akaunti yako halisi ya {{active_real_regulation}}, au pata akaunti halisi ya {{regulation}}.", @@ -3561,8 +3568,7 @@ "-55435892": "Tutahitaji siku 1 hadi 3 kukagua hati zako na kukujulisha kwa barua pepe. Unaweza kufanya mazoezi na akaunti za demo wakati huo.", "-1916578937": "<0>Gundua huduma mpya za kusisimua ambazo Wallet yako hutoa.", "-1724438599": "<0>Karibu unakaribia!", - "-1089300025": "Hatutozi ada ya kuweka pesa! Mara tu akaunti yako imethibitishwa, utaweza kufanya biashara, kufanya uwekaji zaidi, au kutoa fedha.", - "-476018343": "Mazungumzo Mubashara", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "Sehemu ya kuingiza barua pepe haipaswi kuwa tupu.", "-1471705969": "<0>{{title}}: {{trade_type_name}} kwenye {{symbol}}", "-1771117965": "Biashara imefunguliwa", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index 8c8ee2622283..a56dec649ccf 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -454,6 +454,7 @@ "467839232": "ฉันเทรดสัญญาการเทรดส่วนต่างของ Forex และตราสารทางการเงินที่ซับซ้อนอื่นๆ อย่างสม่ำเสมอบนแพลตฟอร์มอื่นๆ", "471402292": "บอทของคุณใช้ประเภทการเทรดเดียวสำหรับแต่ละรอบ", "471667879": "เวลาที่กำหนดปิด:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "การตั้งค่า", "474306498": "เราเสียใจที่เห็นคุณจากไป บัญชีของคุณนั้นถูกปิดแล้ว", "475492878": "ลองดัชนี Synthetic", @@ -548,7 +549,6 @@ "573173477": "แท่งเทียน {{ input_candle }} เป็นสีดำหรือไม่?", "575668969": "3. สำหรับการเทรดที่นำสู่กำไร เงินทุนทรัพย์ในการเทรดครั้งถัดไปจะเพิ่มขึ้น 2 USD โดย Deriv Bot จะยังคงเพิ่ม 2 USD สำหรับทุกการเทรดที่ประสบความสำเร็จ ดู A1", "575702000": "โปรดจำไว้ว่า ภาพเซลฟี่ ภาพบ้าน หรือ ภาพที่ไม่เกี่ยวข้องต่างๆ จะถูกปฏิเสธ", - "575968081": "สร้างบัญชี เลือกวิธีการชำระเงินสำหรับทำการฝากเงิน", "576355707": "โปรดเลือกประเทศและสัญชาติของคุณ:", "577215477": "นับด้วย {{ variable }} จาก {{ start_number }} ถึง {{ end_number }} โดย {{ step_size }}", "577779861": "ถอนเงิน", @@ -774,6 +774,7 @@ "793526589": "หากต้องการร้องเรียนการให้บริการของเรา โปรดส่งอีเมล์ไปที่ <0>complaints@deriv.com และแจ้งรายละเอียดข้อร้องเรียนของคุณ โปรดส่งภาพแคปหน้าจอที่เกี่ยวข้องของการเทรดหรือระบบให้เราเพื่อให้เราเข้าใจได้ดียิ่งขึ้น", "793531921": "บริษัทของเราเป็นหนึ่งในบริษัทการเทรดออนไลน์ที่เก่าแก่และมีชื่อเสียงที่สุดในโลก เรามุ่งมั่นที่จะปฏิบัติต่อลูกค้าของเราอย่างยุติธรรมและให้การบริการที่ดีเยี่ยม <0/><1/>โปรดให้ข้อเสนอแนะเรื่องการปรับปรุงการให้บริการของเราให้ดียิ่งขึ้น ขอคุณจงมั่นใจว่าเราจะรับฟังและให้ความสำคัญแก่คุณพร้อมกับปฏิบัติต่อคุณอย่างเป็นธรรมตลอดเวลา", "794682658": "คัดลอกลิงก์ไปยังโทรศัพท์ของคุณ", + "794778483": "Deposit later", "795859446": "บันทึกรหัสผ่าน", "795992899": "จำนวนเงินที่คุณเลือกที่จะได้รับเมื่อหมดอายุสำหรับทุกจุดพอยท์ที่เปลี่ยนแปลงระหว่างราคาสุดท้ายและระดับเส้นราคาเป้าหมาย ", "797007873": "ทำตามขั้นตอนต่อไปนี้เพื่อกู้คืนการเข้าถึงกล้อง:", @@ -1346,6 +1347,7 @@ "1337846406": "บล็อกนี้ให้คุณเลือกค่าแท่งเทียนจากลิสต์รายการของแท่งเทียนภายในช่วงเวลาที่เลือก", "1337864666": "ภาพถ่ายของเอกสารของคุณ", "1338496204": "รหัสอ้างอิง", + "1339565304": "Deposit now to start trading", "1339613797": "หน่วยงานกำกับดูแล/การระงับข้อพิพาทภายนอก", "1340286510": "บอทได้หยุดทำงาน แต่การเทรดของคุณอาจจะยังคงทำงานอยู่ คุณสามารถตรวจสอบได้ในหน้ารายงาน", "1341840346": "ดูในบันทึก", @@ -2044,6 +2046,7 @@ "2012139674": "Android: ตัวจัดการรหัสผ่าน Google", "2014536501": "หมายเลขบัตร", "2014590669": "ตัวแปร '{{variable_name}}' นั้นไม่มีการตั้งค่า โปรดตั้งค่าสำหรับตัวแปร '{{variable_name}}' เพื่อการแจ้งเตือน", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "กรุณาเลือกประเทศที่ออกเอกสาร", "2018044371": "Multiplier ช่วยให้คุณเทรดด้วยเลเวอเรจและจำกัดความเสี่ยงของคุณอยู่เพียงที่เงินทุนทรัพย์ของคุณ <0>เรียนรู้เพิ่มเติม", "2019596693": "เอกสารนั้นถูกปฏิเสธโดยผู้ให้บริการ", @@ -2079,6 +2082,7 @@ "2048134463": "ขนาดไฟล์เกินกำหนด", "2049386104": "เราต้องการให้คุณส่งข้อมูลเหล่านี้เพื่อที่จะได้รับบัญชีนี้:", "2050170533": "ลิสต์ค่าจุด Tick", + "2051249190": "Add funds and start trading", "2051558666": "ดูประวัติธุรกรรม", "2051596653": "บัญชีทดลอง Zero Spread BVI", "2052022586": "เพื่อเพิ่มความปลอดภัยของบัญชี MT5 ของคุณ เราได้อัพเกรดนโยบายรหัสผ่านของเรา", @@ -3549,6 +3553,9 @@ "-2036288743": "เพิ่มความปลอดภัยด้วยไบโอเมตริกซ์หรือการล็อคหน้าจอ ", "-143216768": "เรียนรู้เพิ่มเติมเกี่ยวกับ Passkey <0> ที่นี่", "-778309978": "ลิงก์ที่คุณคลิกได้หมดอายุแล้ว โปรดตรวจดูให้แน่ใจว่าได้คลิกลิงก์ในอีเมล์อันล่าสุดในกล่องจดหมายของคุณหรือป้อนอีเมล์ของคุณที่ด้านล่างและคลิก <0>ส่งอีเมล์อีกครั้ง เพื่อขอลิงก์อันใหม่", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "ข้อมูลอัพเดทแล้ว", "-941870889": "แคชเชียร์ใช้สำหรับบัญชีจริงเท่านั้น", "-352838513": "ดูเหมือนว่าคุณไม่มีบัญชี {{regulation}} จริง หากต้องการใช้แคชเชียร์ ให้เปลี่ยนไปใช้บัญชีจริง {{active_real_regulation}} ของคุณ หรือสมัครเปิดบัญชีจริง {{regulation}} เสียก่อน", @@ -3561,8 +3568,7 @@ "-55435892": "เราจะต้องใช้เวลา 1 - 3 วันเพื่อตรวจสอบเอกสารของคุณและแจ้งให้คุณทราบทางอีเมล์ คุณสามารถฝึกฝนใช้บัญชีทดลองได้ในระหว่างนี้", "-1916578937": "<0>สำรวจฟีเจอร์ใหม่ที่น่าตื่นเต้นที่นำเสนอโดย Wallet ของคุณ", "-1724438599": "<0>คุณทำเกือบจะสำเร็จแล้ว!", - "-1089300025": "เราไม่เรียกเก็บค่าธรรมเนียมการฝากเลย! เมื่อบัญชีของคุณได้รับการยืนยันแล้ว คุณจะสามารถเทรด ฝากเงินเพิ่มเติม หรือถอนเงินได้", - "-476018343": "แชทสด", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "ข้อมูลอีเมล์ต้องไม่เว้นว่าง", "-1471705969": "<0>{{title}}: {{trade_type_name}} บน {{symbol}}", "-1771117965": "เปิดการเทรด", diff --git a/packages/translations/src/translations/tr.json b/packages/translations/src/translations/tr.json index ed3a852eb807..28598f987779 100644 --- a/packages/translations/src/translations/tr.json +++ b/packages/translations/src/translations/tr.json @@ -454,6 +454,7 @@ "467839232": "Forex CFD'leri ve diğer karmaşık finansal enstrümanları düzenli olarak diğer platformlarda takas ediyorum.", "471402292": "Botunuz her çalışma için tek bir işlem türü kullanır.", "471667879": "Bitiş zamanı:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Ayarlar", "474306498": "Ayrıldığınızı gördüğümüz için üzgünüz. Hesabınız artık kapatıldı.", "475492878": "Sentetik Endeksleri Deneyin", @@ -548,7 +549,6 @@ "573173477": "{{ input_candle }} mumu siyah mı?", "575668969": "3. Kârla sonuçlanan işlemler için, bir sonraki işlemin hissesi 2 USD artırılacaktır. Deriv Bot, her başarılı işlem için 2 USD eklemeye devam edecek. Bkz. A1.", "575702000": "Unutmayın, selfie'ler, ev resimleri veya ilgili olmayan görseller reddedilecektir.", - "575968081": "Hesap oluşturuldu. Para yatırmak için ödeme yöntemini seçin.", "576355707": "Ülkenizi ve vatandaşlığınızı seçin:", "577215477": "{{ step_size }} tarafından {{ start_number }} ile {{ end_number }} arasında {{ variable }} ile sayın", "577779861": "Para çekme", @@ -774,6 +774,7 @@ "793526589": "Hizmetimiz hakkında şikayette bulunmak için <0>complaints@deriv.com adresine bir e-posta gönderin ve şikayetinizi ayrıntılı olarak belirtin. Daha iyi anlamamız için lütfen alım satım veya sisteminizin ilgili ekran görüntülerini gönderin.", "793531921": "Şirketimiz dünyanın en eski ve en saygın online ticaret şirketlerinden biridir. Müşterilerimize dürüst davranmaya ve onlara mükemmel hizmet sunmaya kararlıyız <0/><1/>Lütfen size sunduğumuz hizmetleri nasıl geliştirebileceğimiz konusunda bize geri bildirimde bulunun. Her zaman adil bir şekilde muamele edileceğinizden, değer göreceğinizden ve duyulacağınızdan emin olabilirsiniz.", "794682658": "Bağlantıyı telefonunuza kopyalayın", + "794778483": "Deposit later", "795859446": "Parola kaydedildi", "795992899": "Nihai fiyat ile bariyer arasındaki her değişim noktası için vade sonunda almayı seçtiğiniz tutar. ", "797007873": "Kamera erişimini geri getirmek için aşağıdaki adımları izleyin:", @@ -1346,6 +1347,7 @@ "1337846406": "Bu blok, seçilen zaman aralığında mum listesinden seçtiğiniz mum değerini verir.", "1337864666": "Belgenizin fotoğrafı", "1338496204": "Ref. ID", + "1339565304": "Deposit now to start trading", "1339613797": "Düzenleyici/Dış uyuşmazlık çözümü", "1340286510": "Bot durdu, ancak işleminiz hala çalışıyor olabilir. Raporlar sayfasından kontrol edebilirsiniz.", "1341840346": "Günlükte Görüntüle", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Google şifre yöneticisi.", "2014536501": "Kart numarası", "2014590669": "'{{variable_name}}' değişkeninin değeri yok. Lütfen '{{variable_name}}' değişkeni için bildirimde bulunmak üzere bir değer ayarlayın.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Lütfen belgenin düzenlendiği ülkeyi seçin.", "2018044371": "Multipliers kaldıraçla işlem yapmanıza ve riskinizi bahis miktarınızla sınırlandırmanıza olanak tanır. <0>Daha fazla bilgi edinin", "2019596693": "Belge Sağlayıcı tarafından reddedilmiştir.", @@ -2079,6 +2082,7 @@ "2048134463": "Dosya boyutu aşıldı.", "2049386104": "Bu hesabı almak için bunları göndermeniz gerekiyor:", "2050170533": "Tik listesi", + "2051249190": "Add funds and start trading", "2051558666": "İşlem geçmişini görüntüle", "2051596653": "Demo Zero Spread BVI", "2052022586": "MT5 hesap güvenliğinizi artırmak için şifre politikamızı yükselttik.", @@ -2397,7 +2401,7 @@ "-138380129": "İzin verilen toplam para çekme", "-1502578110": "Hesabınızın kimliği tamamen doğrulandı ve para çekme limitleriniz kaldırıldı.", "-506122621": "Lütfen bilgilerinizi şimdi güncellemek için bir dakikanızı ayırın.", - "-1106259572": "Vergi kimlik numaranızı bilmiyor musunuz? <1 />Daha fazlasını öğrenmek için <0>buraya <1 />tıklayın<0>.", + "-1106259572": "Vergi kimlik numaranızı bilmiyor musunuz? <1 />Daha fazlasını öğrenmek için <0>buraya tıklayın.", "-252665911": "Doğum yeri {{required}}", "-859814496": "Vergi ikametgahı{{required}}", "-237940902": "Vergi Kimlik numarası{{required}}", @@ -3549,6 +3553,9 @@ "-2036288743": "Biyometri veya ekran kilidi ile gelişmiş güvenlik ", "-143216768": "Passkeys hakkında daha fazla bilgiyi <0>buradan edinebilirsiniz.", "-778309978": "Tıkladığınız bağlantının süresi doldu. Gelen kutunuzdaki en son e-postadaki bağlantıyı tıkladığınızdan emin olun. Alternatif olarak, e-postanızı aşağıya girin ve yeni bir bağlantı için <0>E-postayı yeniden gönder seçeneğine tıklayın.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Bilgiler güncellendi", "-941870889": "Kasiyer sadece gerçek hesaplar içindir", "-352838513": "Görünüşe göre gerçek bir {{regulation}} hesabın yok. Kasiyeri kullanmak için, {{active_real_regulation}} gerçek hesabınıza geçin, veya {{regulation}} gerçek hesabı alın.", @@ -3561,8 +3568,7 @@ "-55435892": "Belgelerinizi incelemek ve sizi e-posta ile bilgilendirmek için 1 - 3 güne ihtiyacımız olacak. Bu süre zarfında demo hesaplarla pratik yapabilirsiniz.", "-1916578937": "<0>Wallet'ınızın sunduğu heyecan verici yeni özellikleri keşfedin.", "-1724438599": "<0>Neredeyse vardınız!", - "-1089300025": "Para yatırma ücreti almıyoruz! Hesabınız doğrulandıktan sonra işlem yapabilir, ek para yatırabilir veya para çekebilirsiniz.", - "-476018343": "Canlı Sohbet", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "E-posta girişi boş olmamalıdır.", "-1471705969": "<0>{{title}}: {{trade_type_name}} üzerinde {{symbol}}", "-1771117965": "Ticaret açıldı", diff --git a/packages/translations/src/translations/uz.json b/packages/translations/src/translations/uz.json index fa3b7dea6c69..2064391bacc6 100644 --- a/packages/translations/src/translations/uz.json +++ b/packages/translations/src/translations/uz.json @@ -454,6 +454,7 @@ "467839232": "Men mutazim ravishda boshqa platformalarda forex CFD vaboshqa mukab moilaviy vositalar bilan savdo qilaman.", "471402292": "Sizning botingiz har bir ishga tushish uchun bitta shartoma turidan foydalanadi.", "471667879": "Tugash vaqti:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Sozlamalar", "474306498": "Ketganingizdan afsusdamiz. Hisobingiz yopildi.", "475492878": "Sintetik indekslarni sinab ko'ring", @@ -548,7 +549,6 @@ "573173477": "{{ input_candle }} sham qorami?", "575668969": "Foyda keltirgan tranzaksiyalar uchun keyingi tranzaksiya kursi 2 USD dollariga oshiriladi. Deriv Bot har bit muvaffaqiyatli savdo uchun 2 USD qo'shishda davom etadi. A1 ga qarang.", "575702000": "Esda tuting, sefi, uy rasmlar yoki aloqador bo'lmagan rasmlar rad etiladi.", - "575968081": "Hisob yaratildi. Depozit uchun to'lov usulini tanlang.", "576355707": "Mamlakatingiz va fuqoroligingizni tanlang:", "577215477": "{{ variable }} bilan {{ start_number }} dan {{ end_number }} gacha {{ step_size }} bilan hisoblash", "577779861": "Pulni yechib olish", @@ -774,6 +774,7 @@ "793526589": "Xizmatimiz ustidan shikoyat qilish uchun <0>complaints@deriv.com manziliga email yuboring va shikoyatingizni batafsil bayon qiling. Muammoni biz tomondan yaxshiroq tushunish uchun xatingizga hisob qaydnomangiz tarixi yoki savdo tizmingizga tegishli skrinshotlarni ilova qiling.", "793531921": "Bizning kompaniyamiz onlayn savdo dunyosidagi eng qadim va eng hurmatli kompaniyalran birdir. Biz mijozlarimizga adolatli munosabatda bo'lishga va ularga mukammal xizmat ko'rsatishga intilamiz.<0/><1/>Iltimos, xizmatlarimizni qanday yaxshilashimiz haqida fikr-mulohazalaringizni biz bilan baham ko'ring. Siz har doim adolatli munosabatda bo'lishingiz, qadrlashingiz va eshitishingizga amin bo'lishingiz mumkin.", "794682658": "Havolani telefoningizga nuxsa oling", + "794778483": "Deposit later", "795859446": "Parol saqlandi", "795992899": "Yakuniy narx va to'siq o'rtasidagi har bir o'zgarish nuqtasi uchun muddati so'ng olishni tanlagan miqdor. ", "797007873": "Kameraga kirishni tiklash uchun quydagi amallarni bajaring:", @@ -1346,6 +1347,7 @@ "1337846406": "This block gives you the selected candle value from a list of candles within the selected time interval.", "1337864666": "Photo of your document", "1338496204": "Ref. ID", + "1339565304": "Deposit now to start trading", "1339613797": "Regulator/External dispute resolution", "1340286510": "The bot has stopped, but your trade may still be running. You can check it on the Reports page.", "1341840346": "View in Journal", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Google password manager.", "2014536501": "Card number", "2014590669": "Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Please select the country of document issuance.", "2018044371": "Multipliers let you trade with leverage and limit your risk to your stake. <0>Learn more", "2019596693": "The document was rejected by the Provider.", @@ -2079,6 +2082,7 @@ "2048134463": "File size exceeded.", "2049386104": "We need you to submit these in order to get this account:", "2050170533": "Tick list", + "2051249190": "Add funds and start trading", "2051558666": "View transaction history", "2051596653": "Demo Zero Spread BVI", "2052022586": "To enhance your MT5 account security we have upgraded our password policy.", @@ -3549,6 +3553,9 @@ "-2036288743": "Enhanced security with biometrics or screen lock ", "-143216768": "Learn more about passkeys <0> here.", "-778309978": "The link you clicked has expired. Ensure to click the link in the latest email in your inbox. Alternatively, enter your email below and click <0>Resend email for a new link.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Information updated", "-941870889": "The cashier is for real accounts only", "-352838513": "It looks like you don’t have a real {{regulation}} account. To use the cashier, switch to your {{active_real_regulation}} real account, or get an {{regulation}} real account.", @@ -3561,8 +3568,7 @@ "-55435892": "We’ll need 1 - 3 days to review your documents and notify you by email. You can practice with demo accounts in the meantime.", "-1916578937": "<0>Explore the exciting new features that your Wallet offers.", "-1724438599": "<0>You're almost there!", - "-1089300025": "We don’t charge deposit fees! Once your account is verified, you will be able to trade, make additional deposits, or withdraw funds.", - "-476018343": "Live Chat", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "The email input should not be empty.", "-1471705969": "<0>{{title}}: {{trade_type_name}} on {{symbol}}", "-1771117965": "Trade opened", diff --git a/packages/translations/src/translations/vi.json b/packages/translations/src/translations/vi.json index 119e05c0bbeb..6234d6c73e51 100644 --- a/packages/translations/src/translations/vi.json +++ b/packages/translations/src/translations/vi.json @@ -454,6 +454,7 @@ "467839232": "Tôi giao dịch CFD forex và các công cụ tài chính phức tạp khác thường xuyên trên các nền tảng khác.", "471402292": "Bot của bạn sử dụng một loại giao dịch duy nhất cho mỗi lần chạy.", "471667879": "Cắt thời gian:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "Cài đặt", "474306498": "Chúng tôi rất tiếc khi bạn rời đi. Tài khoản của bạn hiện đã bị hủy.", "475492878": "Thử Chỉ số Tổng hợp", @@ -548,7 +549,6 @@ "573173477": "Nến {{ input_candle }} màu đen?", "575668969": "3. Đối với các giao dịch mang lại lợi nhuận, cổ phần cho giao dịch tiếp theo sẽ được tăng thêm 2 USD. Deriv Bot sẽ tiếp tục thêm 2 USD cho mỗi giao dịch thành công. Xem A1.", "575702000": "Hãy nhớ rằng, ảnh tự chụp, hình ảnh ngôi nhà hoặc hình ảnh không liên quan sẽ bị từ chối.", - "575968081": "Tài khoản đã được tạo. Chọn phương thức thanh toán để nạp tiền.", "576355707": "Chọn quốc gia và quốc tịch của bạn:", "577215477": "đếm {{ variable }} từ {{ start_number }} tới {{ end_number }} qua {{ step_size }} bước", "577779861": "Rút tiền", @@ -774,6 +774,7 @@ "793526589": "Để gửi khiếu nại về dịch vụ của chúng tôi, hãy gửi email đến <0>complaints@deriv.com và nêu chi tiết khiếu nại của bạn. Vui lòng gửi bất kỳ ảnh chụp màn hình nào liên quan đến giao dịch của bạn hoặc hệ thống để chúng tôi hiểu rõ hơn.", "793531921": "Công ty chúng tôi là một trong những công ty giao dịch trực tuyến lâu đời và uy tín nhất trên thế giới. Chúng tôi cam kết đối xử công bằng với khách hàng và cung cấp dịch vụ tốt nhất. <0/><1/>Vui lòng cung cấp cho chúng tôi phản hồi về cách chúng tôi có thể cải thiện dịch vụ của mình. Hãy yên tâm rằng bạn sẽ được lắng nghe, trân trọng và đối xử công bằng mọi lúc.", "794682658": "Sao chép liên kết vào điện thoại của bạn", + "794778483": "Deposit later", "795859446": "Đã lưu mật khẩu", "795992899": "Số tiền bạn chọn nhận khi hết hạn cho mỗi điểm thay đổi giữa giá cuối cùng và rào cản. ", "797007873": "Vui lòng làm theo các bước sau để khôi phục quyền truy cập máy ảnh:", @@ -1346,6 +1347,7 @@ "1337846406": "Khung này cung cấp cho bạn giá trị nến đã chọn từ danh sách nến trong khoảng thời gian được chọn.", "1337864666": "Ảnh giấy tờ của bạn", "1338496204": "Ref. ID", + "1339565304": "Deposit now to start trading", "1339613797": "Cơ quan Quản lý/Giải quyết tranh chấp bên ngoài", "1340286510": "Bot đã dừng, nhưng giao dịch của bạn có thể vẫn đang chạy. Bạn có thể kiểm tra giao dịch trên trang Báo cáo.", "1341840346": "Xem trên Nhật ký", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Trình quản lý mật khẩu Google.", "2014536501": "Số thẻ", "2014590669": "Biến '{{variable_name}}' không có giá trị. Vui lòng chọn một giá trị cho biến '{{variable_name}}' để thông báo.", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "Vui lòng chọn quốc gia đã cấp giấy tờ.", "2018044371": "<0>Multipliers cho phép bạn giao dịch bằng đòn bẩy và hạn chế rủi ro đối với tiền cược của bạn. Tìm hiểu thêm", "2019596693": "Giấy tờ đã bị từ chối bởi Nhà cung cấp.", @@ -2079,6 +2082,7 @@ "2048134463": "Tệp quá giới hạn.", "2049386104": "Chúng tôi cần bạn gửi những thông tin này để tạo được tài khoản:", "2050170533": "Danh sách tick", + "2051249190": "Add funds and start trading", "2051558666": "Xem lịch sử giao dịch", "2051596653": "Bản demo Zero Spread BVI", "2052022586": "Để tăng cường bảo mật tài khoản MT5 của bạn, chúng tôi đã nâng cấp chính sách mật khẩu của chúng tôi.", @@ -3549,6 +3553,9 @@ "-2036288743": "Tăng cường bảo mật với sinh trắc học hoặc khóa màn hình ", "-143216768": "Tìm hiểu thêm về passkeys tại <0>đây.", "-778309978": "Liên kết bạn nhấp vào đã hết hạn. Hãy đảm bảo bạn nhấp vào liên kết trong email mới nhất trong hộp thư đến của bạn. Hoặc bạn có thể nhập email của bạn vào bên dưới và nhấp vào <0>Gửi lại email để có liên kết mới.", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "Thông tin đã được cập nhật", "-941870889": "Cổng thu ngân chỉ dành cho các tài khoản thực", "-352838513": "Có vẻ như bạn không có tài khoản {{regulation}} thực. Để sử dụng cổng thu ngân, chuyển sang tài khoản {{active_real_regulation}} thực của bạn, hoặc tạo một tài khoản {{regulation}} thực.", @@ -3561,8 +3568,7 @@ "-55435892": "Chúng tôi sẽ cần 1-3 ngày để xem xét giấy tờ của bạn và thông báo đến bạn qua email. Bạn có thể thử giao dịch với tài khoản thử nghiệm trong thời gian chờ đợi.", "-1916578937": "<0>Khám phá các tính năng mới thú vị mà Wallet của bạn cung cấp.", "-1724438599": "<0>Bạn sắp đến rồi!", - "-1089300025": "Chúng tôi không tính phí nạp tiền! Sau khi tài khoản của bạn được xác minh, bạn sẽ có thể giao dịch, nạp thêm hoặc rút tiền.", - "-476018343": "Live Chat", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "Phần điền email không được để trống.", "-1471705969": "<0>{{title}}: {{trade_type_name}} trên {{symbol}}", "-1771117965": "Giao dịch đã mở", diff --git a/packages/translations/src/translations/zh_cn.json b/packages/translations/src/translations/zh_cn.json index 3f970e0a3794..937d4a4f7a78 100644 --- a/packages/translations/src/translations/zh_cn.json +++ b/packages/translations/src/translations/zh_cn.json @@ -454,6 +454,7 @@ "467839232": "我定期在其他平台交易外汇差价合约和其他复杂的金融工具。", "471402292": " Bot每次运行都使用单一的交易类型。", "471667879": "截止时间:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "设置", "474306498": "很遗憾看到您离开。账户现已关闭。", "475492878": "试试综合指数", @@ -548,7 +549,6 @@ "573173477": "蜡烛 {{ input_candle }} 是否呈黑色?", "575668969": "3. 交易获利后,下一笔交易的投注额将增加 2 美元。Deriv Bot 将继续为每笔成功交易增加 2 美元。参见 A1。", "575702000": "请记住,自拍照、房屋图片或无关图片将被拒绝。", - "575968081": "账户已开立。选择存款的付款方式。", "576355707": "选择国家和国籍:", "577215477": "用 {{ variable }} 自 {{ start_number }} 至 {{ end_number }} 按 {{ step_size }} 计算", "577779861": "提款", @@ -774,6 +774,7 @@ "793526589": "要对服务提出投诉,请发送电子邮件至<0> complaints@deriv.com 并详细说明投诉。请提交交易或系统的任何相关屏幕截图,以便我们更好地理解。", "793531921": "我们公司是世上历史最悠久、最负盛名的在线交易公司之一。我们致力于公平对待客户,并为他们提供优质的服务。<0/> <1/>请向我们提供有关如何改善对您的服务的反馈。请放心,您将一直得到重视和公正的对待。", "794682658": "复制链接到手机", + "794778483": "Deposit later", "795859446": "已保存密码", "795992899": "选择到期时在最终价格和障碍之间的每一个变动点收到的金额。 ", "797007873": "请按照以下步骤恢复相机访问权限:", @@ -1346,6 +1347,7 @@ "1337846406": "此程序块向您提供选定时间间隔内自烛形线图列表选定的烛形线值。", "1337864666": "文件的相片", "1338496204": "参考 ID", + "1339565304": "Deposit now to start trading", "1339613797": "监管机构/外部争议解决", "1340286510": " Bot已经停止,但交易可能仍在运行。可以在报告页面查看。", "1341840346": "日志中查看", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Google 密码管理器。", "2014536501": "卡号", "2014590669": "变量 '{{variable_name}}' 无数值。请为变量 '{{variable_name}}' 设置数值以通知。", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "请选择文件签发国.", "2018044371": "Multipliers 使您可以利用杠杆交易,并限制投注金的风险。<0>了解更多", "2019596693": "该文件被提供商拒绝。", @@ -2079,6 +2082,7 @@ "2048134463": "超过了文件大小。", "2049386104": "必须提交这些以获得账户:", "2050170533": "跳动点列表", + "2051249190": "Add funds and start trading", "2051558666": "查看交易历史", "2051596653": "演示 Zero Spread BVI", "2052022586": "为了提高 MT5 账户的安全性,我们升级了密码政策。", @@ -3549,6 +3553,9 @@ "-2036288743": "通过生物识别或屏幕锁增强安全性 ", "-143216768": "在<0>此处了解有关密钥的更多信息。", "-778309978": "您点击的链接已过期。确保点击收件箱中最新电子邮件中的链接。或者,在下面输入电子邮件地址,然后点击<0>重新发送电子邮件以获取新链接。", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "信息已更新", "-941870889": "收银台仅适用于真实账户", "-352838513": "看来您没有真正的 {{regulation}} 账户。要使用收银台,请切换到 {{active_real_regulation}} 真实账户,或开立 {{regulation}} 真实账户。", @@ -3561,8 +3568,7 @@ "-55435892": "需要 1 - 3 天时间审核文件,并通过电子邮件通知您。在此期间,您可以使用演示账户进行练习。", "-1916578937": "<0>探索 Wallet 提供的令人兴奋的新功能。", "-1724438599": "<0>快全都准备就绪了!", - "-1089300025": "我们不收取存款费用!一旦账户通过验证,您就可以交易、追加存款或取款。", - "-476018343": "实时聊天", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "电子邮件输入不可为空。", "-1471705969": "<0>{{title}}:{{symbol}} 的{{trade_type_name}}", "-1771117965": "交易已开启", diff --git a/packages/translations/src/translations/zh_tw.json b/packages/translations/src/translations/zh_tw.json index 9fe5575aa60e..d5f53773201c 100644 --- a/packages/translations/src/translations/zh_tw.json +++ b/packages/translations/src/translations/zh_tw.json @@ -454,6 +454,7 @@ "467839232": "我定期在其他平台交易外匯差價合約和其他複雜的金融工具。", "471402292": " Bot每次運行都使用單一交易類型。", "471667879": "截止時間:", + "471994882": "Your {{ currency }} account is ready.", "473154195": "設定", "474306498": "很遺憾看到您離開。帳戶現已關閉。", "475492878": "試試綜合指數", @@ -548,7 +549,6 @@ "573173477": "燭線 {{ input_candle }} 是否呈黑色'?", "575668969": "3. 交易獲利後,下一筆交易的投注額將增加 2 美元。 Deriv Bot 將繼續為每筆獲利的交易增加 2 美元。 參見 A1。", "575702000": "請記住,自拍照,房屋圖片或不相關的圖像將被拒絕。", - "575968081": "已建立帳戶。選擇付款方式進行存款。", "576355707": "選擇國家和公民身份:", "577215477": "用 {{ variable }} 自 {{ start_number }} 至 {{ end_number }} 按 {{ step_size }} 計算", "577779861": "提款", @@ -774,6 +774,7 @@ "793526589": "要對服務提出投訴​​,請傳送電子郵件至<0> complaints@deriv.com 並詳細說明投訴。請提交交易或系統的任何相關螢幕擷取畫面,以便我們更好地理解。", "793531921": "我們公司是世上歷史最悠久、最負盛名的線上交易公司之一。致力於公平對待客戶,並提供優質的服務。 <0/> <1/>請向我們提供有關如何改善服務的反饋。請放心,您將一直得到重視和公正的對待。", "794682658": "複製連結到手機", + "794778483": "Deposit later", "795859446": "已儲存密碼", "795992899": "選擇到期時每一點變動與最終價格和障礙之間獲得的金額。 ", "797007873": "請按照以下步驟復原相機存取權限:", @@ -1346,6 +1347,7 @@ "1337846406": "此區塊提供選定時間間隔內自燭線圖清單選定的燭線值。", "1337864666": "文件的相片", "1338496204": "參考 ID", + "1339565304": "Deposit now to start trading", "1339613797": "監管機構/外部爭議解決", "1340286510": " Bot已停止,但交易可能仍在運行。可以在「報告」頁面查看。", "1341840346": "日誌中檢視", @@ -2044,6 +2046,7 @@ "2012139674": "Android: Google 密碼管理器。", "2014536501": "卡號", "2014590669": "變數 '{{variable_name}}' 無數值。請為變數 '{{variable_name}}' 設定數值以通知。", + "2015878683": "Need help? Contact us via <0>live chat", "2017672013": "請選擇文件簽發國。", "2018044371": "Multipliers 可讓您使用槓桿交易,並限制投注風險。<0>了解更多資訊", "2019596693": "文件被提供商拒絕。", @@ -2079,6 +2082,7 @@ "2048134463": "超過了文件大小。", "2049386104": "必須提交這些資料以獲取帳戶:", "2050170533": "Tick 清單", + "2051249190": "Add funds and start trading", "2051558666": "檢視交易歷史", "2051596653": "示範 Zero Spread BVI", "2052022586": "為了提高 MT5 帳戶安全性,已升級密碼政策。", @@ -3549,6 +3553,9 @@ "-2036288743": "通過生物特徵或螢幕鎖定增強安全性 ", "-143216768": "在<0>此處了解有關金鑰的更多資訊。", "-778309978": "您點選的連結已過期。請務必點選收件匣中最新電子郵件中的連結。或者,請在下方輸入電子郵件地址,然後按一下<0>重新傳送電子郵件以獲取新的連結。", + "-2101368724": "Transaction processing", + "-1772981256": "We'll notify you when it's complete.", + "-198662988": "Make a deposit to trade the world's markets!", "-2007055538": "資訊已更新", "-941870889": "收銀台僅適用於真實帳戶", "-352838513": "看來您沒有真正的 {{regulation}} 帳戶。要使用收銀台,請切換到 {{active_real_regulation}} 真實帳戶,或開立 {{regulation}} 真實帳戶。", @@ -3561,8 +3568,7 @@ "-55435892": "需要 1 至 3 天才能檢閱文件並通過電子郵件通知您。同時,您可以使用示範帳戶練習。", "-1916578937": "<0>探索 Wallet 提供的令人興奮的新功能。", "-1724438599": "<0>快全部就緒了!", - "-1089300025": "我們不收取存款費!一旦帳戶通過驗證,將可以交易,繼續存款或提取資金。", - "-476018343": "即時聊天", + "-32454015": "Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat", "-310434518": "電子郵件輸入不可為空。", "-1471705969": "<0>{{title}}:{{symbol}} 的 {{trade_type_name}}", "-1771117965": "交易已開始", From 622cf2668b89ffdb4b967e443198578f3dd174ac Mon Sep 17 00:00:00 2001 From: nada-deriv <122768621+nada-deriv@users.noreply.github.com> Date: Tue, 30 Jul 2024 05:33:00 +0400 Subject: [PATCH 30/40] fix: removed clean urls from vercel dr json (#16249) --- vercel.dr.json | 1 - 1 file changed, 1 deletion(-) diff --git a/vercel.dr.json b/vercel.dr.json index 32f9ca94fffc..8b972ec0c144 100644 --- a/vercel.dr.json +++ b/vercel.dr.json @@ -1,5 +1,4 @@ { - "cleanUrls": true, "outputDirectory": "packages/core/dist", "buildCommand": "echo ✅ Skipping build to use existing built files", "routes": [{ "handle": "filesystem" }, { "src": "/(.*)", "dest": "/index.html" }] From fd346e161baeea055041dc709a959445fa0be919 Mon Sep 17 00:00:00 2001 From: nada-deriv <122768621+nada-deriv@users.noreply.github.com> Date: Mon, 29 Jul 2024 16:42:11 +0400 Subject: [PATCH 31/40] =?UTF-8?q?Revert=20"[WALL]=20george=20/=20WALL-4522?= =?UTF-8?q?=20/=20Add=20ce=5Fcashier=5Fdeposit=5Fonboarding=5Fform=20an?= =?UTF-8?q?=E2=80=A6"=20(#16246)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit a10f85ced2d3ac9f29137bb1f1a72c5309074651. --- packages/cashier/package.json | 1 - ...posit-sub-page-analytics-event-tracker.tsx | 24 ----- .../deposit-sub-page-event-tracker/index.ts | 1 - .../cashier/__tests__/cashier.spec.tsx | 50 ++++----- .../src/containers/cashier/cashier.tsx | 34 ++---- .../cashier-onboarding/cashier-onboarding.tsx | 14 +-- .../__test__/cashier-onboarding-card.test.tsx | 1 - .../cashier-onboarding-card.tsx | 20 +--- .../cashier-onboarding-crypto-card.tsx | 1 - .../cashier-onboarding-fiat-card.tsx | 19 ++-- .../cashier-onboarding-onramp-card.tsx | 1 - .../cashier-onboarding-p2p-card.tsx | 18 ++-- .../cashier-onboarding-payment-agent-card.tsx | 1 - .../deposit-crypto-wallet-address.tsx | 14 +-- .../modules/deposit-crypto/deposit-crypto.tsx | 2 - .../src/modules/deposit-fiat/deposit-fiat.tsx | 2 - .../cashier/src/pages/on-ramp/on-ramp.tsx | 100 +++++++++--------- .../payment-agent-list/payment-agent-list.tsx | 2 - .../src/components/clipboard/clipboard.tsx | 3 - .../vertical-tab-content-container.tsx | 54 ++++------ .../components/vertical-tab/vertical-tab.tsx | 11 +- packages/p2p/package.json | 1 - packages/p2p/src/pages/app.jsx | 15 +-- packages/p2p/webpack.config.js | 1 - 24 files changed, 122 insertions(+), 268 deletions(-) delete mode 100644 packages/cashier/src/components/deposit-sub-page-event-tracker/deposit-sub-page-analytics-event-tracker.tsx delete mode 100644 packages/cashier/src/components/deposit-sub-page-event-tracker/index.ts diff --git a/packages/cashier/package.json b/packages/cashier/package.json index 563c0a06d70a..12402ee5f6fa 100644 --- a/packages/cashier/package.json +++ b/packages/cashier/package.json @@ -37,7 +37,6 @@ "url": "https://github.com/binary-com/deriv-app/issues" }, "dependencies": { - "@deriv-com/analytics": "1.10.0", "@deriv/api": "^1.0.0", "@deriv/api-types": "1.0.172", "@deriv/components": "^1.0.0", diff --git a/packages/cashier/src/components/deposit-sub-page-event-tracker/deposit-sub-page-analytics-event-tracker.tsx b/packages/cashier/src/components/deposit-sub-page-event-tracker/deposit-sub-page-analytics-event-tracker.tsx deleted file mode 100644 index 15c7eb4387a1..000000000000 --- a/packages/cashier/src/components/deposit-sub-page-event-tracker/deposit-sub-page-analytics-event-tracker.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React, { useEffect } from 'react'; -import { Analytics } from '@deriv-com/analytics'; -import { useStore } from '@deriv/stores'; - -type TProps = { deposit_category: 'crypto' | 'fiat' | 'fiat_onramp' | 'payment_agent' | 'p2p' }; - -const DepositSubPageAnalyticsEventTracker: React.FC = ({ deposit_category }) => { - const { client } = useStore(); - const { currency, loginid } = client; - - useEffect(() => { - Analytics.trackEvent('ce_cashier_deposit_onboarding_form', { - action: 'open_deposit_subpage', - form_name: 'ce_cashier_deposit_onboarding_form', - currency, - deposit_category, - login_id: loginid, - }); - }, [currency, deposit_category, loginid]); - - return null; -}; - -export default DepositSubPageAnalyticsEventTracker; diff --git a/packages/cashier/src/components/deposit-sub-page-event-tracker/index.ts b/packages/cashier/src/components/deposit-sub-page-event-tracker/index.ts deleted file mode 100644 index b914207bb670..000000000000 --- a/packages/cashier/src/components/deposit-sub-page-event-tracker/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as DepositSubPageAnalyticsEventTracker } from './deposit-sub-page-analytics-event-tracker'; diff --git a/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx b/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx index 8e5a79468870..50f42334797d 100644 --- a/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx +++ b/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx @@ -11,38 +11,6 @@ import CashierProviders from '../../../cashier-providers'; jest.mock('@deriv/hooks', () => { return { ...jest.requireActual('@deriv/hooks'), - usePaymentAgentList: jest.fn(() => ({ - data: [ - { - currencies: 'USD', - email: 'pa-test@email.com', - further_information: 'Further information', - max_withdrawal: '2000', - min_withdrawal: '10', - name: 'PA', - paymentagent_loginid: 'CR9999999', - phone_numbers: [ - { - phone_number: '+987654321', - }, - ], - summary: '', - supported_payment_methods: [ - { - payment_method: 'Visa', - }, - ], - urls: [ - { - url: 'https://test.test', - }, - ], - withdrawal_commission: '0', - }, - ], - isLoading: false, - isSuccess: true, - })), usePaymentAgentTransferVisible: jest.fn(() => ({ data: true, isLoading: false, @@ -135,6 +103,9 @@ describe('', () => { transaction_history: { is_transactions_crypto_visible: false, }, + payment_agent: { + is_payment_agent_visible: false, + }, }, }, }); @@ -182,6 +153,9 @@ describe('', () => { transaction_history: { is_transactions_crypto_visible: true, }, + payment_agent: { + is_payment_agent_visible: true, + }, }, }, }); @@ -232,6 +206,9 @@ describe('', () => { // transaction_history: { // is_transactions_crypto_visible: false, // }, + // payment_agent: { + // is_payment_agent_visible: true, + // }, // }, // }, // }); @@ -282,6 +259,9 @@ describe('', () => { transaction_history: { is_transactions_crypto_visible: true, }, + payment_agent: { + is_payment_agent_visible: true, + }, }, }, }); @@ -331,6 +311,9 @@ describe('', () => { transaction_history: { is_transactions_crypto_visible: true, }, + payment_agent: { + is_payment_agent_visible: true, + }, }, }, }); @@ -381,6 +364,9 @@ describe('', () => { transaction_history: { is_transactions_crypto_visible: true, }, + payment_agent: { + is_payment_agent_visible: true, + }, }, }, }); diff --git a/packages/cashier/src/containers/cashier/cashier.tsx b/packages/cashier/src/containers/cashier/cashier.tsx index 99f4330b1800..7cbf588b6ce5 100644 --- a/packages/cashier/src/containers/cashier/cashier.tsx +++ b/packages/cashier/src/containers/cashier/cashier.tsx @@ -16,12 +16,11 @@ import { useOnrampVisible, useAccountTransferVisible, useIsP2PEnabled, - usePaymentAgentList, usePaymentAgentTransferVisible, useP2PNotificationCount, useP2PSettings, } from '@deriv/hooks'; -import { getSelectedRoute, getStaticUrl, routes, setPerformanceValue, WS, matchRoute } from '@deriv/shared'; +import { getSelectedRoute, getStaticUrl, routes, setPerformanceValue, WS } from '@deriv/shared'; import ErrorDialog from '../../components/error-dialog'; import { TRoute } from '../../types'; import { localize } from '@deriv/translations'; @@ -53,7 +52,7 @@ type TCashierOptions = { const Cashier = observer(({ history, location, routes: routes_config }: TCashierProps) => { const { common, ui, client } = useStore(); - const { withdraw, general_store } = useCashierStore(); + const { withdraw, general_store, payment_agent } = useCashierStore(); const { error } = withdraw; const { is_cashier_onboarding, @@ -66,18 +65,13 @@ const Cashier = observer(({ history, location, routes: routes_config }: TCashier } = general_store; const { data: is_payment_agent_transfer_visible, - isLoading: is_payment_agent_transfer_checking, + isLoading: is_payment_agent_checking, isSuccess: is_payment_agent_transfer_visible_is_success, } = usePaymentAgentTransferVisible(); + const { is_payment_agent_visible } = payment_agent; const { is_from_derivgo } = common; const { is_cashier_visible: is_visible, is_mobile, toggleCashier, toggleReadyToDepositModal } = ui; const { currency, is_account_setting_loaded, is_logged_in, is_logging_in, is_svg, is_virtual } = client; - const { - data: paymentAgentList, - isLoading: is_payment_agent_list_loading, - isSuccess: is_payment_agent_list_success, - } = usePaymentAgentList(currency); - const is_payment_agent_visible = paymentAgentList && paymentAgentList.length > 0; const is_account_transfer_visible = useAccountTransferVisible(); const is_onramp_visible = useOnrampVisible(); const p2p_notification_count = useP2PNotificationCount(); @@ -246,26 +240,15 @@ const Cashier = observer(({ history, location, routes: routes_config }: TCashier toggleReadyToDepositModal, ]); - const is_p2p_loading = is_p2p_enabled_loading && !is_p2p_enabled_success; - const is_payment_agent_loading = is_payment_agent_list_loading && !is_payment_agent_list_success; - const is_cashier_loading = + if ( ((!is_logged_in || is_mobile) && is_logging_in) || !is_account_setting_loaded || - is_payment_agent_transfer_checking || - is_p2p_loading || - is_payment_agent_loading; - - if (is_cashier_loading) { + is_payment_agent_checking || + (is_p2p_enabled_loading && !is_p2p_enabled_success) + ) { return ; } - // Calculation of `initial_tab_index` must be performed after cashier loading - // Because at this stage `getMenuOptions` list has all available routes - const initial_tab_index = Math.max( - getMenuOptions.findIndex(item => matchRoute(item, location.pathname)), - 0 - ); - // measure performance metrics (load cashier time) setPerformanceValue('load_cashier_time'); @@ -277,7 +260,6 @@ const Cashier = observer(({ history, location, routes: routes_config }: TCashier { const history = useHistory(); - const { client, ui } = useStore(); - const { loginid } = client; + const { ui } = useStore(); const { general_store } = useCashierStore(); const { setIsCashierOnboarding } = general_store; const { toggleSetCurrencyModal } = ui; const has_set_currency = useHasSetCurrency(); - useEffect(() => { - if (loginid) { - Analytics.trackEvent('ce_cashier_deposit_onboarding_form', { - action: 'open', - form_name: 'ce_cashier_deposit_onboarding_form', - login_id: loginid, - }); - } - }, [loginid]); - useEffect(() => { setIsCashierOnboarding(true); diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/__test__/cashier-onboarding-card.test.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/__test__/cashier-onboarding-card.test.tsx index b24950208c20..b7f61951b6b4 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/__test__/cashier-onboarding-card.test.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/__test__/cashier-onboarding-card.test.tsx @@ -10,7 +10,6 @@ describe('CashierOnboardingCard', () => { const props: React.ComponentProps = { title: 'foo', description: 'bar', - depositCategory: 'crypto', onClick: jest.fn(), }; diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/cashier-onboarding-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/cashier-onboarding-card.tsx index 31361c6be00c..760d9f157695 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/cashier-onboarding-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-card/cashier-onboarding-card.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import { Analytics } from '@deriv-com/analytics'; import { Icon, Text } from '@deriv/components'; import { observer, useStore } from '@deriv/stores'; import './cashier-onboarding-card.scss'; @@ -7,27 +6,14 @@ import './cashier-onboarding-card.scss'; type TProps = { title: string; description: string; - depositCategory: 'crypto' | 'fiat' | 'fiat_onramp' | 'payment_agent' | 'p2p'; onClick?: VoidFunction; }; const CashierOnboardingCard: React.FC> = observer( - ({ title, description, depositCategory, onClick, children }) => { - const { client, ui } = useStore(); - const { currency, loginid } = client; + ({ title, description, onClick, children }) => { + const { ui } = useStore(); const { is_dark_mode_on, is_mobile } = ui; - const onClickHandler = () => { - onClick?.(); - Analytics.trackEvent('ce_cashier_deposit_onboarding_form', { - action: 'click_deposit_card', - form_name: 'ce_cashier_deposit_onboarding_form', - deposit_category: depositCategory, - currency, - login_id: loginid, - }); - }; - return (
@@ -36,7 +22,7 @@ const CashierOnboardingCard: React.FC> = observe
diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-crypto-card/cashier-onboarding-crypto-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-crypto-card/cashier-onboarding-crypto-card.tsx index a5e3e35b8fc2..31841bb2b6ba 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-crypto-card/cashier-onboarding-crypto-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-crypto-card/cashier-onboarding-crypto-card.tsx @@ -36,7 +36,6 @@ const CashierOnboardingCryptoCard: React.FC = observer(() => { `${icon}${is_dark_mode_on ? 'Dark' : 'Light'}`)} /> diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-fiat-card/cashier-onboarding-fiat-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-fiat-card/cashier-onboarding-fiat-card.tsx index ced34110e5a9..b923097d8f72 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-fiat-card/cashier-onboarding-fiat-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-fiat-card/cashier-onboarding-fiat-card.tsx @@ -42,17 +42,12 @@ const CashierOnboardingFiatCard: React.FC = observer(() => { }; return ( - - - `${icon}${is_dark_mode_on ? 'Dark' : 'Light'}`)} - /> - + + `${icon}${is_dark_mode_on ? 'Dark' : 'Light'}`)} /> {can_switch_to_fiat_account && ( { onSwitchDone={onSwitchDone} /> )} - + ); }); diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-onramp-card/cashier-onboarding-onramp-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-onramp-card/cashier-onboarding-onramp-card.tsx index 99bde98ffc10..e4282458acdc 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-onramp-card/cashier-onboarding-onramp-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-onramp-card/cashier-onboarding-onramp-card.tsx @@ -34,7 +34,6 @@ const CashierOnboardingOnrampCard: React.FC = observer(() => { : localize('Buy cryptocurrencies via fiat onramp') } description={localize('Choose any of these exchanges to buy cryptocurrencies:')} - depositCategory='fiat_onramp' onClick={onClick} > `${icon}${is_dark_mode_on ? 'Dark' : 'Light'}`)} /> diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-p2p-card/cashier-onboarding-p2p-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-p2p-card/cashier-onboarding-p2p-card.tsx index d5a505ef2e4a..05bab9fa7eef 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-p2p-card/cashier-onboarding-p2p-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-p2p-card/cashier-onboarding-p2p-card.tsx @@ -46,15 +46,13 @@ const CashierOnboardingP2PCard: React.FC = observer(() => { if (!should_show_p2p_card) return null; return ( - - + {can_switch_to_fiat_account && ( { onSwitchDone={onSwitchDone} /> )} - + ); }); diff --git a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-payment-agent-card/cashier-onboarding-payment-agent-card.tsx b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-payment-agent-card/cashier-onboarding-payment-agent-card.tsx index 81101dec37de..11cef7dc3bb6 100644 --- a/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-payment-agent-card/cashier-onboarding-payment-agent-card.tsx +++ b/packages/cashier/src/modules/cashier-onboarding/components/cashier-onboarding-payment-agent-card/cashier-onboarding-payment-agent-card.tsx @@ -28,7 +28,6 @@ const CashierOnboardingPaymentAgentCard: React.FC = observer(() => { description={localize( 'Deposit in your local currency via an authorised, independent payment agent in your country.' )} - depositCategory='payment_agent' onClick={onClick} /> ); diff --git a/packages/cashier/src/modules/deposit-crypto/components/deposit-crypto-wallet-address/deposit-crypto-wallet-address.tsx b/packages/cashier/src/modules/deposit-crypto/components/deposit-crypto-wallet-address/deposit-crypto-wallet-address.tsx index 16022218c158..0ed63bcbcea3 100644 --- a/packages/cashier/src/modules/deposit-crypto/components/deposit-crypto-wallet-address/deposit-crypto-wallet-address.tsx +++ b/packages/cashier/src/modules/deposit-crypto/components/deposit-crypto-wallet-address/deposit-crypto-wallet-address.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import { Analytics } from '@deriv-com/analytics'; import { Button, Clipboard, InlineMessage, Loading, Text } from '@deriv/components'; import { useDepositCryptoAddress } from '@deriv/hooks'; import { observer, useStore } from '@deriv/stores'; @@ -10,8 +9,7 @@ import { DepositCryptoDisclaimers } from '../deposit-crypto-disclaimers'; import './deposit-crypto-wallet-address.scss'; const DepositCryptoWalletAddress: React.FC = observer(() => { - const { client, ui } = useStore(); - const { currency, loginid } = client; + const { ui } = useStore(); const { is_mobile } = ui; const { data: deposit_crypto_address, isLoading, error, resend } = useDepositCryptoAddress(); @@ -19,15 +17,6 @@ const DepositCryptoWalletAddress: React.FC = observer(() => { setPerformanceValue('load_crypto_deposit_cashier_time'); - const onClickHandler = () => { - Analytics.trackEvent('ce_cashier_deposit_onboarding_form', { - action: 'click_copy_crypto_address', - form_name: 'ce_cashier_deposit_onboarding_form', - currency, - login_id: loginid, - }); - }; - if (error) { return (
@@ -60,7 +49,6 @@ const DepositCryptoWalletAddress: React.FC = observer(() => { text_copy={deposit_crypto_address || ''} info_message={is_mobile ? undefined : localize('copy')} success_message={localize('copied!')} - onClickHandler={onClickHandler} popoverAlignment={is_mobile ? 'left' : 'bottom'} />
diff --git a/packages/cashier/src/modules/deposit-crypto/deposit-crypto.tsx b/packages/cashier/src/modules/deposit-crypto/deposit-crypto.tsx index a8e00860143e..b3d2418252ea 100644 --- a/packages/cashier/src/modules/deposit-crypto/deposit-crypto.tsx +++ b/packages/cashier/src/modules/deposit-crypto/deposit-crypto.tsx @@ -2,7 +2,6 @@ import React, { useEffect } from 'react'; import { observer, useStore } from '@deriv/stores'; import { Divider } from '../../components/divider'; import { PageContainer } from '../../components/page-container'; -import { DepositSubPageAnalyticsEventTracker } from '../../components/deposit-sub-page-event-tracker'; import { useCashierStore } from '../../stores/useCashierStores'; import { DepositCryptoCurrencyDetails, DepositCryptoSideNotes, DepositCryptoWalletAddress } from './components'; import DepositCryptoSideNoteTryFiatOnRamp from './components/deposit-crypto-side-notes/deposit-crypto-side-note-try-fiat-onramp'; @@ -28,7 +27,6 @@ const DepositCrypto: React.FC = observer(() => { // side notes for consistency and then we can remove unnecessary components from the children. right={is_mobile ? undefined : } > - diff --git a/packages/cashier/src/modules/deposit-fiat/deposit-fiat.tsx b/packages/cashier/src/modules/deposit-fiat/deposit-fiat.tsx index 77068ac9e7e2..d045db2819ab 100644 --- a/packages/cashier/src/modules/deposit-fiat/deposit-fiat.tsx +++ b/packages/cashier/src/modules/deposit-fiat/deposit-fiat.tsx @@ -3,7 +3,6 @@ import { SideNote } from '@deriv/components'; import { observer, useStore } from '@deriv/stores'; import { Localize } from '@deriv/translations'; import { PageContainer } from '../../components/page-container'; -import { DepositSubPageAnalyticsEventTracker } from '../../components/deposit-sub-page-event-tracker'; import { DepositFiatIframe } from './components'; import { SideNoteFAQ } from 'Components/side-notes'; @@ -42,7 +41,6 @@ const DepositFiat: React.FC = observer(() => { } > - ); diff --git a/packages/cashier/src/pages/on-ramp/on-ramp.tsx b/packages/cashier/src/pages/on-ramp/on-ramp.tsx index 1dd11982f66f..80059d0d07ae 100644 --- a/packages/cashier/src/pages/on-ramp/on-ramp.tsx +++ b/packages/cashier/src/pages/on-ramp/on-ramp.tsx @@ -8,7 +8,6 @@ import CashierLocked from '../../components/cashier-locked'; import SideNote from '../../components/side-note'; import OnRampProviderCard from './on-ramp-provider-card'; import OnRampProviderPopup from './on-ramp-provider-popup'; -import { DepositSubPageAnalyticsEventTracker } from '../../components/deposit-sub-page-event-tracker'; import { useCashierStore } from '../../stores/useCashierStores'; import './on-ramp.scss'; @@ -113,55 +112,56 @@ const OnRamp = observer(({ menu_options, setSideNotes }: TOnRampProps) => { } return ( -
- - {isMobile() && ( - - { - if (e.currentTarget.value !== selected_cashier_path) { - setSelectedCashierPath(e.currentTarget.value); - } - }} - /> - - - )} - - - - {filtered_onramp_providers.map(provider => ( - - ))} - setIsOnRampModalOpen(!is_onramp_modal_open)} - onUnmount={resetPopup} - width={should_show_dialog ? '44rem' : '62.8rem'} - > - - - - -
+ +
+ {isMobile() && ( + + { + if (e.currentTarget.value !== selected_cashier_path) { + setSelectedCashierPath(e.currentTarget.value); + } + }} + /> + + + )} + + + + {filtered_onramp_providers.map(provider => ( + + ))} + setIsOnRampModalOpen(!is_onramp_modal_open)} + onUnmount={resetPopup} + width={should_show_dialog ? '44rem' : '62.8rem'} + > + + + + +
+
); }); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx index 9b75c0ab12d7..e0a9b01e2aeb 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx @@ -9,7 +9,6 @@ import DepositTab from './deposit-tab'; import WithdrawalTab from './withdrawal-tab'; import MissingPaymentMethodNote from '../missing-payment-method-note'; import PaymentAgentDisclaimer from '../payment-agent-disclaimer'; -import { DepositSubPageAnalyticsEventTracker } from '../../../components/deposit-sub-page-event-tracker'; import { useCashierStore } from '../../../stores/useCashierStores'; import './payment-agent-list.scss'; @@ -45,7 +44,6 @@ const PaymentAgentList = observer(({ setSideNotes }: TProps) => { return (
-
; @@ -24,7 +23,6 @@ const Clipboard = ({ icon, success_message, className, - onClickHandler, popoverClassName, popover_props = {}, popoverAlignment = 'bottom', @@ -42,7 +40,6 @@ const Clipboard = ({ } }, 2000); event.stopPropagation(); - onClickHandler?.(); }; React.useEffect(() => { diff --git a/packages/components/src/components/vertical-tab/vertical-tab-content-container.tsx b/packages/components/src/components/vertical-tab/vertical-tab-content-container.tsx index 844e6a9ae43b..338d792cfb02 100644 --- a/packages/components/src/components/vertical-tab/vertical-tab-content-container.tsx +++ b/packages/components/src/components/vertical-tab/vertical-tab-content-container.tsx @@ -1,5 +1,5 @@ import classNames from 'classnames'; -import React, { memo, useMemo } from 'react'; +import React from 'react'; import { Route, Switch } from 'react-router-dom'; import Icon from '../icon/icon'; import { TItem } from './vertical-tab-header'; @@ -51,48 +51,38 @@ const SideNotes = ({ class_name, side_notes }: TSideNotes) => { }; const ContentWrapper = ({ children, has_side_note }: React.PropsWithChildren) => { - return ( -
- {children} -
- ); + if (has_side_note) { + return
{children}
; + } + return children as JSX.Element; }; -const Content = memo(({ is_routed, items, selected }: TContent) => { +const Content = ({ is_routed, items, selected }: TContent) => { const selected_item = items.find(item => item.label === selected.label); + const TabContent = selected_item?.value as React.ElementType; const [side_notes, setSideNotes] = React.useState(null); const addToNotesQueue = React.useCallback((notes: React.ReactNode[]) => { setSideNotes(notes); }, []); - const MemoizedTabContent = useMemo(() => { - return selected_item?.value as React.ElementType; - }, [selected_item?.value]); - - const memoized_routes = useMemo(() => { - return items.map(({ value, component, path, icon }, idx) => { - const Component = (value as React.ElementType) || component; - return ( - } - /> - ); - }); - }, [addToNotesQueue, items]); - return ( {is_routed ? ( - {memoized_routes} + + {items.map(({ value, component, path, icon }, idx) => { + const Component = (value as React.ElementType) || component; + return ( + } + /> + ); + })} + ) : ( - + )} {selected.has_side_note && ( // for components that have side note, even if no note is passed currently, @@ -101,9 +91,7 @@ const Content = memo(({ is_routed, items, selected }: TContent) => { )} ); -}); - -Content.displayName = 'Content'; +}; const VerticalTabContentContainer = ({ action_bar, diff --git a/packages/components/src/components/vertical-tab/vertical-tab.tsx b/packages/components/src/components/vertical-tab/vertical-tab.tsx index ef338d055265..ba870ca7e1f9 100644 --- a/packages/components/src/components/vertical-tab/vertical-tab.tsx +++ b/packages/components/src/components/vertical-tab/vertical-tab.tsx @@ -1,4 +1,4 @@ -import React, { useMemo } from 'react'; +import React from 'react'; import classNames from 'classnames'; import { matchRoute } from '@deriv/shared'; import VerticalTabContentContainer, { TAction_bar } from './vertical-tab-content-container'; @@ -29,7 +29,6 @@ type TVerticalTab = { has_mixed_dimensions?: boolean; header_classname?: string; header_title?: string; - initial_vertical_tab_index?: number; is_collapsible?: boolean; is_floating?: boolean; is_grid?: boolean; @@ -82,7 +81,6 @@ const VerticalTab = ({ has_mixed_dimensions, header_classname, header_title, - initial_vertical_tab_index, is_collapsible, is_floating, is_grid, @@ -97,8 +95,7 @@ const VerticalTab = ({ title, vertical_tab_index, }: TVerticalTab) => { - const [curr_tab_index, setCurrTabIndex] = React.useState(initial_vertical_tab_index ?? (vertical_tab_index || 0)); - const selected = useMemo(() => list[curr_tab_index] || list[0], [curr_tab_index, list]); + const [curr_tab_index, setCurrTabIndex] = React.useState(vertical_tab_index || 0); const changeSelected = (e: TItem) => { setSelectedIndex({ @@ -156,7 +153,7 @@ const VerticalTab = ({ items={list} item_groups={list_groups} onChange={changeSelected} - selected={selected} + selected={list[curr_tab_index] || list[0]} has_mixed_dimensions={has_mixed_dimensions} is_collapsible={is_collapsible} is_floating={is_floating} @@ -175,7 +172,7 @@ const VerticalTab = ({ className={className} is_floating={is_floating} items={list} - selected={selected} + selected={list[curr_tab_index] || list[0]} is_routed={is_routed} />
diff --git a/packages/p2p/package.json b/packages/p2p/package.json index 278a572d572f..c2574afc2bcd 100644 --- a/packages/p2p/package.json +++ b/packages/p2p/package.json @@ -32,7 +32,6 @@ "author": "", "license": "ISC", "dependencies": { - "@deriv-com/analytics": "1.10.0", "@deriv-com/utils": "^0.0.25", "@deriv/api": "^1.0.0", "@deriv/api-types": "1.0.172", diff --git a/packages/p2p/src/pages/app.jsx b/packages/p2p/src/pages/app.jsx index 60387af7b48e..bfdf79aaa6ed 100644 --- a/packages/p2p/src/pages/app.jsx +++ b/packages/p2p/src/pages/app.jsx @@ -1,7 +1,6 @@ import React from 'react'; import { useHistory, useLocation } from 'react-router-dom'; import { reaction } from 'mobx'; -import { Analytics } from '@deriv-com/analytics'; import { Loading } from '@deriv/components'; import { useP2PCompletedOrdersNotification, useFeatureFlags, useP2PSettings } from '@deriv/hooks'; import { isEmptyObject, routes, WS } from '@deriv/shared'; @@ -20,7 +19,7 @@ import './app.scss'; const App = () => { const { is_p2p_v2_enabled } = useFeatureFlags(); const { notifications, client, ui, common, modules } = useStore(); - const { balance, currency, is_logging_in, loginid } = client; + const { balance, is_logging_in } = client; const { setOnRemount } = modules?.cashier?.general_store; const { is_mobile } = ui; @@ -191,18 +190,6 @@ const App = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [setQueryOrder]); - React.useEffect(() => { - if (loginid && currency) { - Analytics.trackEvent('ce_cashier_deposit_onboarding_form', { - action: 'open_deposit_subpage', - form_name: 'ce_cashier_deposit_onboarding_form', - deposit_category: 'p2p', - currency, - login_id: loginid, - }); - } - }, [currency, loginid]); - const setQueryOrder = React.useCallback( input_order_id => { const current_query_params = new URLSearchParams(location.search); diff --git a/packages/p2p/webpack.config.js b/packages/p2p/webpack.config.js index 37c45c4e0fb2..16cbb75678f4 100644 --- a/packages/p2p/webpack.config.js +++ b/packages/p2p/webpack.config.js @@ -174,7 +174,6 @@ module.exports = function (env) { 'react-router': 'react-router', 'react-router-dom': 'react-router-dom', 'prop-types': 'prop-types', - '@deriv-com/analytics': '@deriv-com/analytics', ...(is_publishing ? {} : { 'lodash.debounce': 'lodash.debounce', formik: 'formik' }), ...publisher_utils.getLocalDerivPackageExternals(__dirname, is_publishing), }, From bd32ef2850803922df36411a0d9795a49ff7b086 Mon Sep 17 00:00:00 2001 From: Maryia <103177211+maryia-deriv@users.noreply.github.com> Date: Tue, 30 Jul 2024 05:53:03 +0300 Subject: [PATCH 32/40] [DTRA] Maryia/DTRA-1546/fix: [V2] style & animation for Digits Current spot price + active_symbols request (#16225) * fix: styles & animation for current spot for digit trade types * fix: active_symbols call for rise/fall and higher/lower * fix: useActiveSymbols usage * fix: active_symbols call with relevant barrier_category + error handling same like in prod --- .../ActiveSymbolsList/active-symbols-list.tsx | 2 +- .../Components/CurrentSpot/current-spot.scss | 21 ++++++++ .../Components/CurrentSpot/current-spot.tsx | 11 ++-- .../MarketCategories/market-categories.tsx | 2 +- .../MarketSelector/market-selector.tsx | 2 +- .../AppV2/Containers/Chart/trade-chart.tsx | 2 +- .../Hooks/__tests__/useActiveSymbols.spec.tsx | 10 ++-- .../src/AppV2/Hooks/useActiveSymbols.ts | 38 ++++++++------ .../src/AppV2/Hooks/useGetFavoriteSymbols.ts | 2 +- .../AppV2/Hooks/useGetSymbolSearchResults.ts | 2 +- .../Helpers/__tests__/contract-type.spec.ts | 52 +++++++++++++++++++ .../Modules/Trading/Helpers/contract-type.ts | 7 +++ 12 files changed, 122 insertions(+), 29 deletions(-) diff --git a/packages/trader/src/AppV2/Components/ActiveSymbolsList/active-symbols-list.tsx b/packages/trader/src/AppV2/Components/ActiveSymbolsList/active-symbols-list.tsx index f1d27f13a958..750cc6744f12 100644 --- a/packages/trader/src/AppV2/Components/ActiveSymbolsList/active-symbols-list.tsx +++ b/packages/trader/src/AppV2/Components/ActiveSymbolsList/active-symbols-list.tsx @@ -13,7 +13,7 @@ type TActiveSymbolsList = { }; const ActiveSymbolsList = observer(({ isOpen, setIsOpen }: TActiveSymbolsList) => { - const { default_symbol } = useActiveSymbols({}); + const { default_symbol } = useActiveSymbols(); const [isSearching, setIsSearching] = useState(false); const [selectedSymbol, setSelectedSymbol] = useState(default_symbol); diff --git a/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.scss b/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.scss index c7fef839d019..d42a930aea19 100644 --- a/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.scss +++ b/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.scss @@ -9,6 +9,7 @@ align-items: center; .current-spot { + position: relative; display: flex; gap: var(--core-spacing-100); @@ -71,6 +72,7 @@ } } } + &--winning, &--won { border: var(--core-borderWidth-75) solid var(--core-color-solid-green-700); @@ -78,6 +80,7 @@ color: var(--core-color-solid-green-700); } } + &--losing, &--lost { border: var(--core-borderWidth-75) solid var(--core-color-solid-red-700); @@ -85,6 +88,12 @@ color: var(--core-color-solid-red-700); } } + &--won { + background-color: var(--core-color-solid-green-100); + } + &--lost { + background-color: var(--core-color-solid-red-100); + } &--has-contract { .current-spot { &__display { @@ -104,4 +113,16 @@ } } } + &--enter-from-right { + .current-spot { + animation: enter-from-right var(--motion-duration-snappy) ease-out; + + @keyframes enter-from-right { + from { + transform: translateX(-50%); + margin-inline-start: 100%; + } + } + } + } } diff --git a/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.tsx b/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.tsx index 31ead8621a63..63e75bb006e5 100644 --- a/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.tsx +++ b/packages/trader/src/AppV2/Components/CurrentSpot/current-spot.tsx @@ -30,6 +30,8 @@ const CurrentSpot = observer(() => { const { tick_data, symbol } = useTraderStore(); const { contract_id, entry_tick, date_start, contract_type, tick_stream, underlying } = contract_info; const prev_contract_id = usePrevious(contract_id); + const last_contract_ticks = last_contract.contract_info?.tick_stream?.length; + const prev_last_contract_ticks = usePrevious(last_contract_ticks); let tick = tick_data; @@ -86,7 +88,7 @@ const CurrentSpot = observer(() => { const should_show_tick_count = has_contract && has_relevant_tick_data; const should_enter_from_left = !prev_contract?.contract_info || - !!(is_prev_contract_elapsed && last_contract.contract_info?.tick_stream?.length === 1); + !!(is_prev_contract_elapsed && last_contract_ticks === 1 && !prev_last_contract_ticks); const setNewData = React.useCallback(() => { setDisplayedTick(current_tick); @@ -128,8 +130,11 @@ const CurrentSpot = observer(() => { 'trade__current-spot', should_show_tick_count && 'trade__current-spot--has-contract', should_show_tick_count && should_enter_from_left && 'trade__current-spot--enter-from-left', - (is_won || (has_open_contract && is_winning)) && 'trade__current-spot--won', - (is_lost || (has_open_contract && !is_winning)) && 'trade__current-spot--lost' + !should_show_tick_count && is_contract_elapsed && 'trade__current-spot--enter-from-right', + has_open_contract && is_winning && 'trade__current-spot--winning', + is_won && 'trade__current-spot--won', + has_open_contract && !is_winning && 'trade__current-spot--losing', + is_lost && 'trade__current-spot--lost' )} > {tick && has_relevant_tick_data && displayed_spot ? ( diff --git a/packages/trader/src/AppV2/Components/MarketCategories/market-categories.tsx b/packages/trader/src/AppV2/Components/MarketCategories/market-categories.tsx index 17ae080ff268..340b7cf64324 100644 --- a/packages/trader/src/AppV2/Components/MarketCategories/market-categories.tsx +++ b/packages/trader/src/AppV2/Components/MarketCategories/market-categories.tsx @@ -14,7 +14,7 @@ type TMarketCategories = { const MarketCategories = forwardRef( ({ selectedSymbol, setSelectedSymbol, setIsOpen, isOpen }: TMarketCategories, ref: Ref) => { - const { activeSymbols } = useActiveSymbols({}); + const { activeSymbols } = useActiveSymbols(); const categorizedSymbols = categorizeSymbols(activeSymbols); return ( diff --git a/packages/trader/src/AppV2/Components/MarketSelector/market-selector.tsx b/packages/trader/src/AppV2/Components/MarketSelector/market-selector.tsx index 224325795f3d..d45a8267f9c9 100644 --- a/packages/trader/src/AppV2/Components/MarketSelector/market-selector.tsx +++ b/packages/trader/src/AppV2/Components/MarketSelector/market-selector.tsx @@ -11,7 +11,7 @@ import { Skeleton } from '@deriv/components'; const MarketSelector = observer(() => { const [isOpen, setIsOpen] = useState(false); - const { default_symbol, activeSymbols } = useActiveSymbols({}); + const { default_symbol, activeSymbols } = useActiveSymbols(); const { symbol: storeSymbol, tick_data } = useTraderStore(); const currentSymbol = activeSymbols.find( symbol => symbol.symbol === storeSymbol || symbol.symbol === default_symbol diff --git a/packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx b/packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx index 538abd068f47..da5fbd961532 100644 --- a/packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx +++ b/packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx @@ -51,7 +51,7 @@ const TradeChart = observer(() => { const { all_positions } = portfolio; const { is_chart_countdown_visible, is_chart_layout_default, is_dark_mode_on, is_positions_drawer_on } = ui; const { current_language, is_socket_opened } = common; - const { default_symbol, activeSymbols: active_symbols } = useActiveSymbols({}); + const { default_symbol, activeSymbols: active_symbols } = useActiveSymbols(); const { barriers_flattened: extra_barriers, chartStateChange, diff --git a/packages/trader/src/AppV2/Hooks/__tests__/useActiveSymbols.spec.tsx b/packages/trader/src/AppV2/Hooks/__tests__/useActiveSymbols.spec.tsx index e84e8612f6ba..82b357ec8217 100644 --- a/packages/trader/src/AppV2/Hooks/__tests__/useActiveSymbols.spec.tsx +++ b/packages/trader/src/AppV2/Hooks/__tests__/useActiveSymbols.spec.tsx @@ -62,7 +62,7 @@ describe('useActiveSymbols', () => { it('should fetch active symbols when not logged in', async () => { // Need the opposite return value (true) of usePrevious(is_logged_in) for fetchActiveSymbols to trigger: (usePrevious as jest.Mock).mockReturnValueOnce(true).mockReturnValueOnce(TRADE_TYPES.RISE_FALL); - const { result } = renderHook(() => useActiveSymbols({ barrier_category: [] }), { + const { result } = renderHook(() => useActiveSymbols(), { wrapper, }); await waitFor(() => { @@ -74,7 +74,7 @@ describe('useActiveSymbols', () => { mocked_store.client.is_logged_in = true; mocked_store.modules.trade.active_symbols = logged_in_active_symbols; mocked_store.modules.trade.has_symbols_for_v2 = true; - const { result } = renderHook(() => useActiveSymbols({ barrier_category: [] }), { + const { result } = renderHook(() => useActiveSymbols(), { wrapper, }); await waitFor(() => { @@ -83,7 +83,7 @@ describe('useActiveSymbols', () => { }); it('should set correct default_symbol and call correct onChange when store symbol is not set', async () => { (usePrevious as jest.Mock).mockReturnValueOnce(true).mockReturnValueOnce(TRADE_TYPES.RISE_FALL); - const { result } = renderHook(() => useActiveSymbols({ barrier_category: [] }), { + const { result } = renderHook(() => useActiveSymbols(), { wrapper, }); @@ -97,7 +97,7 @@ describe('useActiveSymbols', () => { it('should set correct default_symbol and call correct onChange when store symbol is set', async () => { (usePrevious as jest.Mock).mockReturnValueOnce(true).mockReturnValueOnce(TRADE_TYPES.RISE_FALL); mocked_store.modules.trade.symbol = 'test'; - const { result } = renderHook(() => useActiveSymbols({ barrier_category: [] }), { + const { result } = renderHook(() => useActiveSymbols(), { wrapper, }); @@ -112,7 +112,7 @@ describe('useActiveSymbols', () => { (usePrevious as jest.Mock).mockReturnValueOnce(false).mockReturnValueOnce(TRADE_TYPES.RISE_FALL); mocked_store.modules.trade.active_symbols = [{ symbol: 'fromStore' }]; mocked_store.modules.trade.has_symbols_for_v2 = true; - const { result } = renderHook(() => useActiveSymbols({ barrier_category: [] }), { + const { result } = renderHook(() => useActiveSymbols(), { wrapper, }); diff --git a/packages/trader/src/AppV2/Hooks/useActiveSymbols.ts b/packages/trader/src/AppV2/Hooks/useActiveSymbols.ts index 99285135e6e3..503c60f817d8 100644 --- a/packages/trader/src/AppV2/Hooks/useActiveSymbols.ts +++ b/packages/trader/src/AppV2/Hooks/useActiveSymbols.ts @@ -1,18 +1,17 @@ import { useState, useEffect, useCallback, useRef } from 'react'; -import { WS, getContractTypesConfig, pickDefaultSymbol } from '@deriv/shared'; +import { TRADE_TYPES, WS, getContractTypesConfig, pickDefaultSymbol } from '@deriv/shared'; import { useStore } from '@deriv/stores'; +import { localize } from '@deriv/translations'; import { ActiveSymbols } from '@deriv/api-types'; -import { useTraderStore } from 'Stores/useTraderStores'; import { usePrevious } from '@deriv/components'; +import { useTraderStore } from 'Stores/useTraderStores'; +import { ContractType } from 'Stores/Modules/Trading/Helpers/contract-type'; -type TUseActiveSymbols = { - barrier_category?: string[]; -}; -//TODO: barrier_category needs to come from trade-store after calling contracts_for -const useActiveSymbols = ({ barrier_category = [] }: TUseActiveSymbols) => { +const useActiveSymbols = () => { const [activeSymbols, setActiveSymbols] = useState([]); - const { client } = useStore(); + const { client, common } = useStore(); const { is_logged_in } = client; + const { showError } = common; const { active_symbols: symbols_from_store, contract_type, @@ -30,10 +29,19 @@ const useActiveSymbols = ({ barrier_category = [] }: TUseActiveSymbols) => { async (trade_type = '') => { let response; + const trade_types_with_barrier_category = [ + TRADE_TYPES.RISE_FALL, + TRADE_TYPES.RISE_FALL_EQUAL, + TRADE_TYPES.HIGH_LOW, + ] as string[]; + const barrier_category = ContractType.getBarrierCategory(trade_type).barrier_category; + const request = { active_symbols: 'brief', contract_type: getContractTypesConfig()[trade_type]?.trade_types ?? [], - barrier_category, + ...(trade_types_with_barrier_category.includes(trade_type) && barrier_category + ? { barrier_category: [barrier_category] } + : {}), }; if (is_logged_in) { @@ -42,20 +50,20 @@ const useActiveSymbols = ({ barrier_category = [] }: TUseActiveSymbols) => { response = await WS.activeSymbols(request); } - const { active_symbols, error } = response; - - setActiveSymbolsV2(active_symbols); - - if (!active_symbols?.length || error) { + const { active_symbols = [], error } = response; + if (error) { + showError({ message: localize('Trading is unavailable at this time.') }); + } else if (!active_symbols?.length) { setActiveSymbols([]); } else { setActiveSymbols(active_symbols); + setActiveSymbolsV2(active_symbols); default_symbol_ref.current = symbol || (await pickDefaultSymbol(active_symbols)) || '1HZ100V'; onChange({ target: { name: 'symbol', value: default_symbol_ref.current } }); } }, // eslint-disable-next-line react-hooks/exhaustive-deps - [barrier_category, is_logged_in, symbol] + [is_logged_in, symbol] ); useEffect(() => { const is_logged_in_changed = previous_logged_in !== undefined && previous_logged_in !== is_logged_in; diff --git a/packages/trader/src/AppV2/Hooks/useGetFavoriteSymbols.ts b/packages/trader/src/AppV2/Hooks/useGetFavoriteSymbols.ts index dc6600087e4d..d9689cb3dac5 100644 --- a/packages/trader/src/AppV2/Hooks/useGetFavoriteSymbols.ts +++ b/packages/trader/src/AppV2/Hooks/useGetFavoriteSymbols.ts @@ -5,7 +5,7 @@ import sortSymbols from 'AppV2/Utils/sort-symbols-utils'; import { useModulesStore } from 'Stores/useModulesStores'; export const useGetFavoriteSymbols = () => { - const { activeSymbols } = useActiveSymbols({}); + const { activeSymbols } = useActiveSymbols(); const { markets } = useModulesStore(); const { favoriteSymbols } = markets; diff --git a/packages/trader/src/AppV2/Hooks/useGetSymbolSearchResults.ts b/packages/trader/src/AppV2/Hooks/useGetSymbolSearchResults.ts index c551fe974633..de7b6de50806 100644 --- a/packages/trader/src/AppV2/Hooks/useGetSymbolSearchResults.ts +++ b/packages/trader/src/AppV2/Hooks/useGetSymbolSearchResults.ts @@ -3,7 +3,7 @@ import useActiveSymbols from 'AppV2/Hooks/useActiveSymbols'; import sortSymbols from 'AppV2/Utils/sort-symbols-utils'; export const useGetSymbolSearchResults = (searchValue: string) => { - const { activeSymbols } = useActiveSymbols({}); + const { activeSymbols } = useActiveSymbols(); const searchResults = useMemo(() => { if (searchValue.trim() === '') return []; diff --git a/packages/trader/src/Stores/Modules/Trading/Helpers/__tests__/contract-type.spec.ts b/packages/trader/src/Stores/Modules/Trading/Helpers/__tests__/contract-type.spec.ts index 149bb6f8cad6..5667827ddda6 100644 --- a/packages/trader/src/Stores/Modules/Trading/Helpers/__tests__/contract-type.spec.ts +++ b/packages/trader/src/Stores/Modules/Trading/Helpers/__tests__/contract-type.spec.ts @@ -2,6 +2,7 @@ import ServerTime from '_common/base/server_time'; import { ContractType } from '../contract-type'; import moment from 'moment'; import { mockStore } from '@deriv/stores'; +import { TRADE_TYPES } from '@deriv/shared'; jest.mock('@deriv/shared', () => ({ ...jest.requireActual('@deriv/shared'), @@ -63,6 +64,43 @@ jest.mock('@deriv/shared', () => ({ submarket: 'major_pairs', underlying_symbol: 'frxAUDJPY', }, + { + barrier_category: 'euro_atm', + barriers: 0, + contract_category: 'callputequal', + contract_category_display: 'Rise/Fall Equal', + contract_display: 'Higher', + contract_type: 'CALLE', + default_stake: 10, + exchange_name: 'FOREX', + expiry_type: 'daily', + market: 'forex', + max_contract_duration: '365d', + min_contract_duration: '1d', + sentiment: 'up', + start_type: 'spot', + submarket: 'major_pairs', + underlying_symbol: 'frxAUDJPY', + }, + { + barrier: '101.389', + barrier_category: 'euro_non_atm', + barriers: 1, + contract_category: 'callput', + contract_category_display: 'Up/Down', + contract_display: 'Higher', + contract_type: 'CALL', + default_stake: 10, + exchange_name: 'FOREX', + expiry_type: 'daily', + market: 'forex', + max_contract_duration: '365d', + min_contract_duration: '1d', + sentiment: 'up', + start_type: 'spot', + submarket: 'major_pairs', + underlying_symbol: 'frxAUDJPY', + }, ], close: 1701215999, feed_license: 'realtime', @@ -565,3 +603,17 @@ describe('ContractType.getContractCategories', () => { expect(result.non_available_contract_types_list).not.toEqual({}); }); }); +describe('ContractType.getBarrierCategory', () => { + it('should return a correct barrier_category for Rise/Fall', () => { + const { barrier_category } = ContractType.getBarrierCategory(TRADE_TYPES.RISE_FALL); + expect(barrier_category).toEqual('euro_atm'); + }); + it('should return a correct barrier_category for Rise/Fall Equal', () => { + const { barrier_category } = ContractType.getBarrierCategory(TRADE_TYPES.RISE_FALL); + expect(barrier_category).toEqual('euro_atm'); + }); + it('should return a correct barrier_category for Higher/Lower', () => { + const { barrier_category } = ContractType.getBarrierCategory(TRADE_TYPES.HIGH_LOW); + expect(barrier_category).toEqual('euro_non_atm'); + }); +}); diff --git a/packages/trader/src/Stores/Modules/Trading/Helpers/contract-type.ts b/packages/trader/src/Stores/Modules/Trading/Helpers/contract-type.ts index 3269d5dbeb07..ff5201db55fd 100644 --- a/packages/trader/src/Stores/Modules/Trading/Helpers/contract-type.ts +++ b/packages/trader/src/Stores/Modules/Trading/Helpers/contract-type.ts @@ -40,6 +40,7 @@ type TConfig = ReturnType[string]['config'] & { has_spot?: boolean; durations?: ReturnType; trade_types?: { [key: string]: string }; + barrier_category?: string; barriers?: ReturnType; forward_starting_dates?: ReturnType; growth_rate_range?: number[]; @@ -130,6 +131,7 @@ export const ContractType = (() => { config.durations = config.hide_duration ? undefined : buildDurationConfig(contract, config.durations); config.trade_types = buildTradeTypesConfig(contract, config.trade_types); config.barriers = buildBarriersConfig(contract, config.barriers); + config.barrier_category = contract.barrier_category as TConfig['barrier_category']; config.barrier_choices = contract.barrier_choices as TConfig['barrier_choices']; config.forward_starting_dates = buildForwardStartingConfig(contract, config.forward_starting_dates); config.growth_rate_range = contract.growth_rate_range as TConfig['growth_rate_range']; @@ -641,6 +643,10 @@ export const ContractType = (() => { [], }); + const getBarrierCategory = (contract_type: string) => ({ + barrier_category: getPropertyValue(available_contract_types, [contract_type, 'config', 'barrier_category']), + }); + const getBarrierChoices = (contract_type: string, stored_barrier_choices = [] as string[]) => ({ barrier_choices: stored_barrier_choices.length ? stored_barrier_choices @@ -696,6 +702,7 @@ export const ContractType = (() => { return { buildContractTypesConfig, + getBarrierCategory, getBarriers, getContractType, getContractValues, From 148614337a4e6b7deaad9bea0a555e57a68663fc Mon Sep 17 00:00:00 2001 From: Likhith Kolayari <98398322+likhith-deriv@users.noreply.github.com> Date: Tue, 30 Jul 2024 09:52:42 +0400 Subject: [PATCH 33/40] chore: replace localize import with new library (#16140) * chore: replace localize import with new library * chore: removed unused component --- __mocks__/translation.mock.js | 46 ++++++++++--- .../financial-details-partials.tsx | 14 ++-- .../risk-tolerance-warning-modal.tsx | 4 +- .../trading-assessment/test-warning-modal.tsx | 4 +- .../trading-assessment-dropdown.tsx | 3 +- .../trading-assessment-form.tsx | 3 +- .../src/Configs/financial-details-config.ts | 2 +- .../account/src/Containers/toast-popup.tsx | 21 ------ .../financial-assessment.tsx | 65 ++++++++++--------- .../financial-information-list.ts | 2 +- .../TradingAssessment/trading-assessment.jsx | 3 +- 11 files changed, 95 insertions(+), 72 deletions(-) diff --git a/__mocks__/translation.mock.js b/__mocks__/translation.mock.js index 752629907184..61c0e4560c33 100644 --- a/__mocks__/translation.mock.js +++ b/__mocks__/translation.mock.js @@ -1,20 +1,48 @@ -const Localize = ({ i18n_default_text, values }) => { - // Replace placeholders in the default text with actual values - const localizedText = i18n_default_text.replace(/\{\{(\w+)\}\}/g, (match, key) => values[key] || match); +import React from 'react'; - return localizedText || null; +const replaceValue = (text, values) => { + const valueMatch = text.match(/{{(\w+)}}/); + if (valueMatch) { + const valueKey = valueMatch[1]; + return values[valueKey] || text; + } + return text; }; +const Localize = ({ i18n_default_text, components = [], values = {} }) => { + // Split text into parts, extracting placeholders for components + const parts = i18n_default_text.split(/(<\d+>.*?<\/\d+>|{{\w+}})/g); + + return ( + <> + {parts.map((part, index) => { + // Handle component placeholders + const componentMatch = part.match(/<(\d+)>(.*?)<\/\1>/); + if (componentMatch) { + const componentIndex = parseInt(componentMatch[1]); + const content = replaceValue(componentMatch[2], values); + const Component = components[componentIndex]; + return Component ? React.cloneElement(Component, { key: index, children: content }) : content; + } + // Replace placeholders with actual values + return replaceValue(part, values); + })} + + ); +}; + +const mockFn = jest.fn((text, args) => { + return text.replace(/{{(.*?)}}/g, (_, match) => args[match.trim()]); +}); + // Mock for useTranslations hook const useTranslations = () => ({ - localize: jest.fn((text, args) => { - return text.replace(/{{(.*?)}}/g, (_, match) => args[match.trim()]); - }), + localize: mockFn, currentLang: 'EN', }); -const localize = jest.fn(text => text); +const localize = mockFn; const getAllowedLanguages = jest.fn(() => ({ EN: 'English', VI: 'Tiếng Việt' })); -export { Localize, localize, useTranslations, getAllowedLanguages }; +export { Localize, localize, useTranslations, getAllowedLanguages }; \ No newline at end of file diff --git a/packages/account/src/Components/financial-details/financial-details-partials.tsx b/packages/account/src/Components/financial-details/financial-details-partials.tsx index ec97de79d498..07927ed80c9d 100644 --- a/packages/account/src/Components/financial-details/financial-details-partials.tsx +++ b/packages/account/src/Components/financial-details/financial-details-partials.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { Field, FormikValues, useFormikContext } from 'formik'; import { Dropdown, SelectNative } from '@deriv/components'; import { EMPLOYMENT_VALUES, TEmploymentStatus, shouldHideOccupationField } from '@deriv/shared'; -import { localize } from '@deriv/translations'; +import { useTranslations } from '@deriv-com/translations'; import { useDevice } from '@deriv-com/ui'; import { getAccountTurnoverList, @@ -40,13 +40,14 @@ type TFinancialInformationProps = { const FinancialDetailsDropdownField = ({ dropdown_list, field_key, - placeholder = localize('Please select'), + placeholder, label, }: TFinancialDetailsDropdownFieldProps) => { const { values, handleChange, handleBlur, touched, errors, setFieldValue } = useFormikContext<{ [key: string]: string; }>(); const { isDesktop } = useDevice(); + const { localize } = useTranslations(); return ( {({ field }: FormikValues) => ( @@ -67,7 +68,7 @@ const FinancialDetailsDropdownField = ({ /> ) : ( { @@ -98,6 +99,7 @@ const FinancialDetailsOccupationDropdownField = ({ [key: string]: string; }>(); const { isDesktop } = useDevice(); + const { localize } = useTranslations(); const getFormattedOccupationValues = () => employment_status === EMPLOYMENT_VALUES.EMPLOYED && values?.occupation === EMPLOYMENT_VALUES.UNEMPLOYED @@ -128,7 +130,7 @@ const FinancialDetailsOccupationDropdownField = ({ ) : ( { + const { localize } = useTranslations(); + return ( { const { isDesktop } = useDevice(); + const { localize } = useTranslations(); + return ( {isDesktop ? ( diff --git a/packages/account/src/Components/trading-assessment/test-warning-modal.tsx b/packages/account/src/Components/trading-assessment/test-warning-modal.tsx index fdb015871faf..4c62f74414e2 100644 --- a/packages/account/src/Components/trading-assessment/test-warning-modal.tsx +++ b/packages/account/src/Components/trading-assessment/test-warning-modal.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { MobileDialog, Modal } from '@deriv/components'; -import { localize } from '@deriv/translations'; +import { useTranslations } from '@deriv-com/translations'; import { useDevice } from '@deriv-com/ui'; type TestWarningModalProps = { @@ -11,6 +11,8 @@ type TestWarningModalProps = { const TestWarningModal = ({ show_risk_modal, body_content, footer_content }: TestWarningModalProps) => { const { isDesktop } = useDevice(); + const { localize } = useTranslations(); + return ( {isDesktop ? ( diff --git a/packages/account/src/Components/trading-assessment/trading-assessment-dropdown.tsx b/packages/account/src/Components/trading-assessment/trading-assessment-dropdown.tsx index 9f3d77d01d4a..50b566e67c9c 100644 --- a/packages/account/src/Components/trading-assessment/trading-assessment-dropdown.tsx +++ b/packages/account/src/Components/trading-assessment/trading-assessment-dropdown.tsx @@ -2,7 +2,7 @@ import React from 'react'; import clsx from 'clsx'; import { Field } from 'formik'; import { Dropdown, Text, SelectNative } from '@deriv/components'; -import { localize } from '@deriv/translations'; +import { useTranslations } from '@deriv-com/translations'; import { TTradingAssessmentForm, TQuestion } from 'Types'; import { MAX_QUESTION_TEXT_LENGTH } from '../../Constants/trading-assessment'; import { useDevice } from '@deriv-com/ui'; @@ -45,6 +45,7 @@ const TradingAssessmentDropdown = ({ }, [values]); const { isDesktop } = useDevice(); + const { localize } = useTranslations(); const checkIfAllFieldsFilled = () => { if (values) { diff --git a/packages/account/src/Components/trading-assessment/trading-assessment-form.tsx b/packages/account/src/Components/trading-assessment/trading-assessment-form.tsx index 9d85001ed43f..23a9a69ddc2c 100644 --- a/packages/account/src/Components/trading-assessment/trading-assessment-form.tsx +++ b/packages/account/src/Components/trading-assessment/trading-assessment-form.tsx @@ -3,7 +3,7 @@ import clsx from 'clsx'; import { observer, useStore } from '@deriv/stores'; import { Formik, Form, FormikErrors, FormikHelpers } from 'formik'; import { Button, Modal, Text } from '@deriv/components'; -import { localize, Localize } from '@deriv/translations'; +import { useTranslations, Localize } from '@deriv-com/translations'; import TradingAssessmentRadioButton from './trading-assessment-radio-buttons'; import TradingAssessmentDropdown from './trading-assessment-dropdown'; import { getTradingAssessmentQuestions } from '../../Constants/trading-assessment-questions'; @@ -41,6 +41,7 @@ const TradingAssessmentForm = observer( is_responsive, }: TradingAssessmentFormProps) => { const { traders_hub } = useStore(); + const { localize } = useTranslations(); const { is_eu_user } = traders_hub; const assessment_questions = getTradingAssessmentQuestions(); const stored_items = parseInt(localStorage.getItem('current_question_index') ?? '0'); diff --git a/packages/account/src/Configs/financial-details-config.ts b/packages/account/src/Configs/financial-details-config.ts index 2e5403e4c51b..05f71b60daa0 100644 --- a/packages/account/src/Configs/financial-details-config.ts +++ b/packages/account/src/Configs/financial-details-config.ts @@ -7,7 +7,7 @@ import { EMPLOYMENT_VALUES, TEmploymentStatus, } from '@deriv/shared'; -import { localize } from '@deriv/translations'; +import { localize } from '@deriv-com/translations'; type TFinancialDetailsConfig = { real_account_signup_target: string; diff --git a/packages/account/src/Containers/toast-popup.tsx b/packages/account/src/Containers/toast-popup.tsx index 837bd9ac537d..6d9f896b0c38 100644 --- a/packages/account/src/Containers/toast-popup.tsx +++ b/packages/account/src/Containers/toast-popup.tsx @@ -5,33 +5,12 @@ import { Toast } from '@deriv/components'; import { observer, useStore } from '@deriv/stores'; import { useDevice } from '@deriv-com/ui'; -type TToastPopUp = { - portal_id?: string; - className: string; -} & React.ComponentProps; - type TNetworkStatusToastError = { status: string; portal_id: string; message: string; }; -export const ToastPopup = ({ - portal_id = 'popup_root', - children, - className, - ...props -}: React.PropsWithChildren) => { - const new_portal_id = document.getElementById(portal_id); - if (!new_portal_id) return null; - return ReactDOM.createPortal( - - {children} - , - new_portal_id - ); -}; - /** * Network status Toast components */ diff --git a/packages/account/src/Sections/Assessment/FinancialAssessment/financial-assessment.tsx b/packages/account/src/Sections/Assessment/FinancialAssessment/financial-assessment.tsx index 8eb6a5285afe..9ad301c02125 100644 --- a/packages/account/src/Sections/Assessment/FinancialAssessment/financial-assessment.tsx +++ b/packages/account/src/Sections/Assessment/FinancialAssessment/financial-assessment.tsx @@ -8,7 +8,7 @@ import { useHistory, withRouter } from 'react-router'; import { FormSubmitErrorMessage, Loading, Button, Dropdown, Modal, Icon, SelectNative, Text } from '@deriv/components'; import { routes, platforms, WS, shouldHideOccupationField } from '@deriv/shared'; import { observer, useStore } from '@deriv/stores'; -import { localize, Localize } from '@deriv/translations'; +import { useTranslations, Localize } from '@deriv-com/translations'; import LeaveConfirm from 'Components/leave-confirm'; import IconMessageContent from 'Components/icon-message-content'; import DemoMessage from 'Components/demo-message'; @@ -71,34 +71,37 @@ const ConfirmationContent = ({ className }: { className?: string }) => { ); }; -const ConfirmationModal = ({ is_visible, toggleModal, onSubmit }: TConfirmationModal) => ( - toggleModal(false)} - title={localize('Appropriateness Test, WARNING:')} - > - - - - - - - - -); +const ConfirmationModal = ({ is_visible, toggleModal, onSubmit }: TConfirmationModal) => { + const { localize } = useTranslations(); + return ( + toggleModal(false)} + title={localize('Appropriateness Test, WARNING:')} + > + + + + + + + + + ); +}; const ConfirmationPage = ({ toggleModal, onSubmit }: TConfirmationPage) => (
@@ -128,9 +131,10 @@ const ConfirmationPage = ({ toggleModal, onSubmit }: TConfirmationPage) => (
); + const SubmittedPage = ({ platform, routeBackInApp }: TSubmittedPage) => { const history = useHistory(); - + const { localize } = useTranslations(); const onClickButton = () => { if (platforms[platform].is_hard_redirect) { window.location.href = platforms[platform].url; @@ -197,6 +201,7 @@ const FinancialAssessment = observer(() => { const is_mf = landing_company_shortcode === 'maltainvest'; const history = useHistory(); + const { localize } = useTranslations(); const [is_loading, setIsLoading] = React.useState(true); const [is_confirmation_visible, setIsConfirmationVisible] = React.useState(false); diff --git a/packages/account/src/Sections/Assessment/FinancialAssessment/financial-information-list.ts b/packages/account/src/Sections/Assessment/FinancialAssessment/financial-information-list.ts index 5f4f08f1d3d5..49025d1a84da 100644 --- a/packages/account/src/Sections/Assessment/FinancialAssessment/financial-information-list.ts +++ b/packages/account/src/Sections/Assessment/FinancialAssessment/financial-information-list.ts @@ -1,4 +1,4 @@ -import { localize } from '@deriv/translations'; +import { localize } from '@deriv-com/translations'; export const getIncomeSourceList = () => [ { diff --git a/packages/account/src/Sections/Assessment/TradingAssessment/trading-assessment.jsx b/packages/account/src/Sections/Assessment/TradingAssessment/trading-assessment.jsx index 5bd19c05fa62..5e9cbe25a6ed 100644 --- a/packages/account/src/Sections/Assessment/TradingAssessment/trading-assessment.jsx +++ b/packages/account/src/Sections/Assessment/TradingAssessment/trading-assessment.jsx @@ -1,5 +1,5 @@ import React from 'react'; -import { localize, Localize } from '@deriv/translations'; +import { Localize, useTranslations } from '@deriv-com/translations'; import FormBody from 'Components/form-body'; import FormSubHeader from 'Components/form-sub-header'; import { RiskToleranceWarningModal, TestWarningModal } from 'Components/trading-assessment'; @@ -28,6 +28,7 @@ const populateData = form_data => { }; const TradingAssessment = observer(() => { const { isDesktop } = useDevice(); + const { localize } = useTranslations(); const { client } = useStore(); const { is_virtual, setFinancialAndTradingAssessment } = client; const history = useHistory(); From 46faae9b21343dc8713c1caad472bf045416bb8e Mon Sep 17 00:00:00 2001 From: lubega-deriv <142860499+lubega-deriv@users.noreply.github.com> Date: Tue, 30 Jul 2024 15:35:48 +0800 Subject: [PATCH 34/40] [WALL] Lubega / WALL-4549 / Wallets initial translations setup (#16158) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: draft wallet translations * feat: initial wallets translations setup * chore: clean up code * fix: resolve error * fix: resolve error * chore: update text component * fix: env variables and language switcher * [WALL] Lubega/ WALL-4549 / Wallets multi language support (#16069) * feat: draft wallet translations * feat: initial wallets translations setup * chore: clean up code * fix: resolve error * fix: resolve error * chore: update text component * fix: env variables and language switcher * fix: update locked scenarios * [WALL] Lubega / Wallets translations update (#16112) * feat: draft wallet translations * feat: initial wallets translations setup * chore: clean up code * fix: resolve error * fix: resolve error * chore: update text component * fix: env variables and language switcher * Suisin/fix: text not bold in email and password page (#16094) * fix: text not bold in email and password page * chore: update package version to use specific version * Fasih/COJ-1275/ Implemented lazy load (#16020) * chore: implemented lazy load on financial assessment and trading assesment * chore: working on personal details * chore: removed lazy load from personal details --------- Co-authored-by: amina-deriv <84661147+amina-deriv@users.noreply.github.com> * [WALL] george / WALL-4402 / feat(wallets): ✨ add analytics to track wallets events (#16004) * feat(wallets): :sparkles: add wallet migration analytic * chore: :mute: suppress ts error * chore: align with master * fix: prettified code * chore: fix isOpen condition appear twice * fix: update locked scenarios --------- Co-authored-by: Sui Sin <103026762+suisin-deriv@users.noreply.github.com> Co-authored-by: fasihali-deriv <121229483+fasihali-deriv@users.noreply.github.com> Co-authored-by: amina-deriv <84661147+amina-deriv@users.noreply.github.com> Co-authored-by: George Usynin <103181646+heorhi-deriv@users.noreply.github.com> * fix: update github workflow * fix: getWalletHeaderButtons format * Update index.js * Update index.js * Update index.js * Update index.js * Update index.js * chore: remove eslint auto format * chore: test remove line * chore: test remove line * chore: test remove line * chore: test remove line * chore: test remove line * chore: update deriv-com/translations version --------- Co-authored-by: Sui Sin <103026762+suisin-deriv@users.noreply.github.com> Co-authored-by: fasihali-deriv <121229483+fasihali-deriv@users.noreply.github.com> Co-authored-by: amina-deriv <84661147+amina-deriv@users.noreply.github.com> Co-authored-by: George Usynin <103181646+heorhi-deriv@users.noreply.github.com> Co-authored-by: nijil-deriv --- .github/actions/build/action.yml | 4 - .github/workflows/release_staging.yml | 1 - .github/workflows/release_test.yml | 1 - .github/workflows/sync-translations.yml | 16 +- __mocks__/translation.mock.js | 34 +-- packages/wallets/crowdin.yml | 10 - packages/wallets/jest.config.js | 1 + packages/wallets/package.json | 10 +- .../wallets/scripts/update-translations.sh | 59 ----- packages/wallets/src/App.tsx | 29 ++- packages/wallets/src/AppContent.tsx | 23 +- .../components/AccountsList/AccountsList.tsx | 6 +- .../OptionsAndMultipliersListing.tsx | 21 +- .../src/components/Page404/Page404.tsx | 3 +- .../SentEmailContent/SentEmailContent.tsx | 16 +- .../WalletLanguageSidePanel.scss | 26 --- .../WalletLanguageSidePanel.tsx | 42 ---- .../WalletLanguageSidePanel/index.ts | 1 - .../WalletListCardActions.tsx | 21 +- .../WalletListCardDetails.tsx | 10 +- .../WalletListCardDropdown.tsx | 47 ++-- .../WalletListHeader/WalletListHeader.scss | 9 +- .../WalletListHeader/WalletListHeader.tsx | 26 ++- .../WalletSuccessResetMT5Password.tsx | 3 +- .../WalletsResetMT5Password.tsx | 5 +- packages/wallets/src/components/index.ts | 1 - packages/wallets/src/constants/constants.tsx | 21 +- .../src/features/accounts/constants.tsx | 13 +- .../DocumentSubmission/DocumentSubmission.tsx | 30 ++- .../WalletCashierHeader.tsx | 15 +- .../modules/CashierLocked/CashierLocked.tsx | 9 +- .../CashierLocked/CashierLockedContent.tsx | 203 ++++++++++++------ .../modules/DepositLocked/DepositLocked.tsx | 6 +- .../DepositLocked/DepositLockedContent.tsx | 115 ++++++---- .../__tests__/DepositLockedContent.spec.tsx | 4 +- .../TransferMessages/TransferMessages.tsx | 6 +- .../WithdrawalLocked/WithdrawalLocked.tsx | 10 +- .../WithdrawalLockedContent.tsx | 96 +++++---- .../src/features/cfd/CFDPlatformsList.tsx | 37 ++-- .../ModalTradeWrapper/ModalTradeWrapper.tsx | 8 +- .../wallets/src/features/cfd/constants.tsx | 59 +++-- .../AvailableCTraderAccountsList.tsx | 4 +- .../AddedMT5AccountsList.tsx | 8 +- .../AvailableDxtradeAccountsList.tsx | 6 +- .../MT5ChangeInvestorPasswordInputsScreen.tsx | 6 +- .../MT5TradeLink/MT5MobileRedirectOption.tsx | 13 +- .../MT5TradeLink/MT5TradeLink.tsx | 12 +- packages/wallets/src/translations/de.json | 11 - packages/wallets/src/translations/en.json | 11 - packages/wallets/src/translations/i18n.ts | 68 ------ packages/wallets/src/translations/id.json | 11 - packages/wallets/src/translations/ms.json | 11 - packages/wallets/webpack.config.js | 105 ++++----- 53 files changed, 578 insertions(+), 745 deletions(-) delete mode 100644 packages/wallets/crowdin.yml delete mode 100644 packages/wallets/scripts/update-translations.sh delete mode 100644 packages/wallets/src/components/WalletLanguageSidePanel/WalletLanguageSidePanel.scss delete mode 100644 packages/wallets/src/components/WalletLanguageSidePanel/WalletLanguageSidePanel.tsx delete mode 100644 packages/wallets/src/components/WalletLanguageSidePanel/index.ts delete mode 100644 packages/wallets/src/translations/de.json delete mode 100644 packages/wallets/src/translations/en.json delete mode 100644 packages/wallets/src/translations/i18n.ts delete mode 100644 packages/wallets/src/translations/id.json delete mode 100644 packages/wallets/src/translations/ms.json diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index fa3538b32bfd..194a791d8fd3 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -9,9 +9,6 @@ inputs: description: 'Node environment' required: false default: 'test' - CROWDIN_WALLETS_API_KEY: - description: 'Crowdin wallets api key' - required: false DATADOG_CLIENT_TOKEN: description: 'Datadog client token' required: false @@ -64,7 +61,6 @@ runs: - name: Build all packages env: NODE_ENV: ${{ inputs.NODE_ENV }} - CROWDIN_WALLETS_API_KEY: ${{ inputs.CROWDIN_WALLETS_API_KEY }} DATADOG_APPLICATION_ID: ${{ inputs.DATADOG_APPLICATION_ID }} DATADOG_CLIENT_TOKEN: ${{ inputs.DATADOG_CLIENT_TOKEN }} DATADOG_CLIENT_TOKEN_LOGS: ${{ inputs.DATADOG_CLIENT_TOKEN_LOGS }} diff --git a/.github/workflows/release_staging.yml b/.github/workflows/release_staging.yml index 4623ae0bd255..3d7df848999a 100644 --- a/.github/workflows/release_staging.yml +++ b/.github/workflows/release_staging.yml @@ -24,7 +24,6 @@ jobs: uses: "./.github/actions/build" with: NODE_ENV: production - CROWDIN_WALLETS_API_KEY: ${{ secrets.CROWDIN_WALLETS_API_KEY }} IS_GROWTHBOOK_ENABLED: ${{ vars.IS_GROWTHBOOK_ENABLED }} DATADOG_APPLICATION_ID: ${{ vars.DATADOG_APPLICATION_ID }} DATADOG_CLIENT_TOKEN: ${{ vars.DATADOG_CLIENT_TOKEN }} diff --git a/.github/workflows/release_test.yml b/.github/workflows/release_test.yml index 3105ba94dfe5..9979c9ee3704 100644 --- a/.github/workflows/release_test.yml +++ b/.github/workflows/release_test.yml @@ -20,7 +20,6 @@ jobs: uses: "./.github/actions/build" with: NODE_ENV: production - CROWDIN_WALLETS_API_KEY: ${{ secrets.CROWDIN_WALLETS_API_KEY }} DATADOG_APPLICATION_ID: ${{ vars.DATADOG_APPLICATION_ID }} IS_GROWTHBOOK_ENABLED: ${{ vars.IS_GROWTHBOOK_ENABLED }} DATADOG_CLIENT_TOKEN: ${{ vars.DATADOG_CLIENT_TOKEN }} diff --git a/.github/workflows/sync-translations.yml b/.github/workflows/sync-translations.yml index d31fd7d7ca43..654fe06a9ebd 100644 --- a/.github/workflows/sync-translations.yml +++ b/.github/workflows/sync-translations.yml @@ -6,7 +6,7 @@ on: - master schedule: - cron: '0 */12 * * *' - + jobs: sync_translations: permissions: @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest environment: Staging steps: - - name: Sync translations + - name: Sync accounts translations uses: deriv-com/translations/.github/actions/extract_and_sync_translations@main with: PROJECT_NAME: ${{ vars.ACC_R2_PROJECT_NAME }} @@ -26,3 +26,15 @@ jobs: R2_SECRET_ACCESS_KEY: ${{ secrets.ACC_R2_SECRET_ACCESS_KEY }} R2_BUCKET_NAME: ${{ secrets.ACC_R2_BUCKET_NAME }} PROJECT_SOURCE_DIRECTORY: "packages/account/src" + - name: Sync wallets translations + uses: deriv-com/translations/.github/actions/extract_and_sync_translations@main + with: + PROJECT_NAME: ${{ vars.WALLETS_PROJECT_NAME }} + CROWDIN_BRANCH_NAME: staging + CROWDIN_PROJECT_ID: ${{ secrets.WALLETS_CROWDIN_PROJECT_ID }} + CROWDIN_PERSONAL_TOKEN: ${{ secrets.ACC_CROWDIN_PERSONAL_TOKEN }} + R2_ACCOUNT_ID: ${{ secrets.ACC_R2_ACCOUNT_ID }} + R2_ACCESS_KEY_ID: ${{ secrets.ACC_R2_ACCESS_KEY_ID }} + R2_SECRET_ACCESS_KEY: ${{ secrets.ACC_R2_SECRET_ACCESS_KEY }} + R2_BUCKET_NAME: ${{ secrets.ACC_R2_BUCKET_NAME }} + PROJECT_SOURCE_DIRECTORY: "packages/wallets/src" diff --git a/__mocks__/translation.mock.js b/__mocks__/translation.mock.js index 61c0e4560c33..0dd0e76a20d9 100644 --- a/__mocks__/translation.mock.js +++ b/__mocks__/translation.mock.js @@ -1,31 +1,35 @@ import React from 'react'; -const replaceValue = (text, values) => { - const valueMatch = text.match(/{{(\w+)}}/); - if (valueMatch) { - const valueKey = valueMatch[1]; - return values[valueKey] || text; - } - return text; -}; - const Localize = ({ i18n_default_text, components = [], values = {} }) => { - // Split text into parts, extracting placeholders for components + // Split text into parts, extracting placeholders for components and values const parts = i18n_default_text.split(/(<\d+>.*?<\/\d+>|{{\w+}})/g); + const replaceValues = text => { + return text.replace(/{{(\w+)}}/g, (match, key) => values[key] || match); + }; + return ( <> {parts.map((part, index) => { - // Handle component placeholders + // Replace component placeholders with actual components const componentMatch = part.match(/<(\d+)>(.*?)<\/\1>/); + if (componentMatch) { const componentIndex = parseInt(componentMatch[1]); - const content = replaceValue(componentMatch[2], values); + + // Replace values wrapped in components with actual values + const content = replaceValues(componentMatch[2]); const Component = components[componentIndex]; return Component ? React.cloneElement(Component, { key: index, children: content }) : content; } - // Replace placeholders with actual values - return replaceValue(part, values); + + // Replace value placeholders with actual values + const valueMatch = part.match(/{{(\w+)}}/); + if (valueMatch) { + const valueKey = valueMatch[1]; + return values[valueKey] || part; + } + return part; })} ); @@ -45,4 +49,4 @@ const localize = mockFn; const getAllowedLanguages = jest.fn(() => ({ EN: 'English', VI: 'Tiếng Việt' })); -export { Localize, localize, useTranslations, getAllowedLanguages }; \ No newline at end of file +export { Localize, localize, useTranslations, getAllowedLanguages }; diff --git a/packages/wallets/crowdin.yml b/packages/wallets/crowdin.yml deleted file mode 100644 index d043977d7a9d..000000000000 --- a/packages/wallets/crowdin.yml +++ /dev/null @@ -1,10 +0,0 @@ -project_id: '631094' -api_token_env: 'CROWDIN_WALLETS_API_KEY' - -files: - - source: /src/translations/messages.json - translation: /src/translations/%two_letters_code%.json - languages_mapping: - two_letters_code: - zh-CN: zh_cn - zh-TW: zh_tw diff --git a/packages/wallets/jest.config.js b/packages/wallets/jest.config.js index b4e375103328..8812c55d50b2 100644 --- a/packages/wallets/jest.config.js +++ b/packages/wallets/jest.config.js @@ -3,6 +3,7 @@ const baseConfigForPackages = require('../../jest.config.base'); module.exports = { ...baseConfigForPackages, moduleNameMapper: { + '@deriv-com/translations': '/../../__mocks__/translation.mock.js', '\\.(css|s(c|a)ss)$': '/../../__mocks__/styleMock.js', '^.+\\.svg$': '/../../__mocks__/fileMock.js', }, diff --git a/packages/wallets/package.json b/packages/wallets/package.json index 50c53631ab20..41678a6d4c44 100644 --- a/packages/wallets/package.json +++ b/packages/wallets/package.json @@ -9,19 +9,18 @@ "scripts": { "analyze:stats": "NODE_OPTIONS='-r ts-node/register' webpack --progress --config \"./webpack.config.js\" --profile --json=stats.json", "analyze:build": "webpack-bundle-analyzer --no-open -m static -r treemap.html stats.json ./dist && webpack-bundle-analyzer -m json stats.json ./dist", - "build": "rimraf dist && NODE_OPTIONS='-r ts-node/register' webpack --progress --config \"./webpack.config.js\" && npm run translate", + "build": "rimraf dist && NODE_OPTIONS='-r ts-node/register' webpack --progress --config \"./webpack.config.js\"", "serve": "rimraf dist && concurrently \"cross-env BUILD_MODE='serve' NODE_OPTIONS='-r ts-node/register' webpack --progress --watch --config ./webpack.config.js\" \"tsc -w --noEmit --preserveWatchOutput\"", - "start": "rimraf dist && npm run test && npm run serve", - "translate": "sh ./scripts/update-translations.sh" + "start": "rimraf dist && npm run test && npm run serve" }, "dependencies": { "@deriv-com/analytics": "1.10.0", + "@deriv-com/translations": "1.3.4", "@deriv-com/ui": "1.29.9", "@deriv-com/utils": "^0.0.25", "@deriv/api-v2": "^1.0.0", "@deriv/integration": "^1.0.0", "@deriv/quill-icons": "1.23.3", - "react-joyride": "^2.5.3", "@deriv/utils": "^1.0.0", "@tanstack/react-table": "^8.10.3", "@zxcvbn-ts/core": "^3.0.4", @@ -31,14 +30,13 @@ "downshift": "^8.2.2", "embla-carousel-react": "8.0.0-rc12", "formik": "^2.1.4", - "i18next": "^22.4.6", "moment": "^2.29.2", "qrcode.react": "^3.1.0", "react": "^17.0.2", "react-calendar": "^4.7.0", "react-dom": "^17.0.2", "react-dropzone": "11.0.1", - "react-i18next": "^11.11.0", + "react-joyride": "^2.5.3", "react-router-dom": "^5.2.0", "react-transition-group": "4.4.2", "usehooks-ts": "^2.7.0", diff --git a/packages/wallets/scripts/update-translations.sh b/packages/wallets/scripts/update-translations.sh deleted file mode 100644 index a8b8bea4ae6b..000000000000 --- a/packages/wallets/scripts/update-translations.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/sh -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' -WHITE='\033[1;37m' -RESET='\033[0m' - -message() { - echo ${GREEN}" >"${RESET} $1 -} - -fail() { - echo $1 >&2 - break -} - -retry() { - local max=5 - local delay=2 - local attempt=1 - while true; do - "$@" && break || { - if [[ $attempt -lt $max ]]; then - echo "Command failed. Attempt $attempt/$max:" - sleep $(($delay * 2 ** attempt)) - ((attempt++)) - else - fail "The command has failed after $attempt attempts." - break - fi - } - done -} - -if [ "$NODE_ENV" = "staging" ]; then - if ! [ -x "$(command -v crowdin)" ]; then - if [ -f /usr/local/bin/crowdin-cli.jar ]; then - alias crowdin="java -jar /usr/local/bin/crowdin-cli.jar" - else - echo "Installing Crowdin CLI..." - npm i -g @crowdin/cli - fi - fi - - GENERATE_KEY=src/utils/generate-keys.ts - if [ -f "$GENERATE_KEY" ]; then - message "Uploading source file to Crowdin" && - retry crowdin upload sources --auto-update && - message "Complete, new translations have been uploaded to Crowdin" - fi - - message "Downloading wallets files from Crowdin (*.json)" && - retry crowdin download && rm -rf src/translations/messages.json && - - echo ${GREEN}"\nSuccessfully Done." -else - rm -rf src/translations/messages.json && - echo ${YELLOW}"\nSkipping translations update..." -fi diff --git a/packages/wallets/src/App.tsx b/packages/wallets/src/App.tsx index 9b4541882f49..f2d0f4579f81 100644 --- a/packages/wallets/src/App.tsx +++ b/packages/wallets/src/App.tsx @@ -1,20 +1,29 @@ import React from 'react'; import { APIProvider } from '@deriv/api-v2'; +import { initializeI18n, TranslationProvider } from '@deriv-com/translations'; import { ModalProvider } from './components/ModalProvider'; import AppContent from './AppContent'; import WalletsAuthProvider from './AuthProvider'; import './styles/fonts.scss'; import './index.scss'; -import './translations/i18n'; -const App: React.FC = () => ( - - - - - - - -); +const App: React.FC = () => { + const i18nInstance = initializeI18n({ + cdnUrl: `${process.env.CROWDIN_URL}/${process.env.WALLETS_TRANSLATION_PATH}`, // 'https://translations.deriv.com/deriv-app-wallets/staging' + useSuspense: false, + }); + + return ( + + + + + + + + + + ); +}; export default App; diff --git a/packages/wallets/src/AppContent.tsx b/packages/wallets/src/AppContent.tsx index 7cdbb9c85277..b13fd3c207eb 100644 --- a/packages/wallets/src/AppContent.tsx +++ b/packages/wallets/src/AppContent.tsx @@ -1,16 +1,12 @@ -import React, { useEffect, useRef, useState } from 'react'; -import { useTranslation } from 'react-i18next'; +import React, { useEffect, useRef } from 'react'; import { useDerivAccountsList } from '@deriv/api-v2'; import { Analytics } from '@deriv-com/analytics'; import useAllBalanceSubscription from './hooks/useAllBalanceSubscription'; import { defineViewportHeight } from './utils/utils'; -import { WalletLanguageSidePanel } from './components'; import { Router } from './routes'; import './AppContent.scss'; const AppContent: React.FC = () => { - const [isPanelOpen, setIsPanelOpen] = useState(false); - const { i18n } = useTranslation(); const { isSubscribed, subscribeToAllBalance, unsubscribeFromAllBalance } = useAllBalanceSubscription(); const { data: derivAccountList } = useDerivAccountsList(); const previousDerivAccountListLenghtRef = useRef(0); @@ -28,20 +24,6 @@ const AppContent: React.FC = () => { }; }, [derivAccountList?.length, isSubscribed, subscribeToAllBalance, unsubscribeFromAllBalance]); - useEffect(() => { - const handleShortcutKey = (event: globalThis.KeyboardEvent) => { - if (event.ctrlKey && event.key === 'p') { - setIsPanelOpen(prev => !prev); - } - }; - - window.addEventListener('keydown', handleShortcutKey); - - return () => { - window.removeEventListener('keydown', handleShortcutKey); - }; - }, [setIsPanelOpen]); - useEffect(() => { defineViewportHeight(); }, []); @@ -54,10 +36,9 @@ const AppContent: React.FC = () => { }, []); return ( -
+
- {isPanelOpen && }
); }; diff --git a/packages/wallets/src/components/AccountsList/AccountsList.tsx b/packages/wallets/src/components/AccountsList/AccountsList.tsx index 4ecb454ff2c9..7cc85c16d04b 100644 --- a/packages/wallets/src/components/AccountsList/AccountsList.tsx +++ b/packages/wallets/src/components/AccountsList/AccountsList.tsx @@ -1,5 +1,4 @@ import React, { FC, useCallback } from 'react'; -import { useTranslation } from 'react-i18next'; import { Divider, Tab, Tabs } from '@deriv-com/ui'; import { CFDPlatformsList } from '../../features'; import useDevice from '../../hooks/useDevice'; @@ -15,7 +14,6 @@ type TProps = { const AccountsList: FC = ({ accountsActiveTabIndex, onTabClickHandler }) => { const { isMobile } = useDevice(); - const { t } = useTranslation(); const onChangeTabHandler = useCallback((activeTab: number) => onTabClickHandler?.(activeTab), [onTabClickHandler]); @@ -27,11 +25,11 @@ const AccountsList: FC = ({ accountsActiveTabIndex, onTabClickHandler }) onChange={onChangeTabHandler} wrapperClassName='wallets-accounts-list' > - + - + diff --git a/packages/wallets/src/components/OptionsAndMultipliersListing/OptionsAndMultipliersListing.tsx b/packages/wallets/src/components/OptionsAndMultipliersListing/OptionsAndMultipliersListing.tsx index 4d5c40bc35ea..a73a55804e91 100644 --- a/packages/wallets/src/components/OptionsAndMultipliersListing/OptionsAndMultipliersListing.tsx +++ b/packages/wallets/src/components/OptionsAndMultipliersListing/OptionsAndMultipliersListing.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import { Trans } from 'react-i18next'; import { useHistory } from 'react-router-dom'; import { useActiveLinkedToTradingAccount } from '@deriv/api-v2'; import { LabelPairedChevronRightCaptionRegularIcon } from '@deriv/quill-icons'; @@ -23,16 +22,14 @@ const OptionsAndMultipliersListing = () => {
{!isMobile && ( - + Options )} - , - ]} - defaults='Predict the market, profit if you’re right, risk only what you put in. <0>Learn more' - /> + Predict the market, profit if you’re right, risk only what you put in.{' '} + + Learn more +
@@ -61,12 +58,8 @@ const OptionsAndMultipliersListing = () => { } >
- - - - - - + {title} + {description}
); diff --git a/packages/wallets/src/components/Page404/Page404.tsx b/packages/wallets/src/components/Page404/Page404.tsx index 0f516223f761..fd2d95951333 100644 --- a/packages/wallets/src/components/Page404/Page404.tsx +++ b/packages/wallets/src/components/Page404/Page404.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import { Trans } from 'react-i18next'; import { useHistory } from 'react-router-dom'; import useDevice from '../../hooks/useDevice'; import { WalletButton, WalletText } from '../Base'; @@ -35,7 +34,7 @@ const Page404 = () => { size={buttonSize} > - + Return to Trader's Hub )} diff --git a/packages/wallets/src/components/SentEmailContent/SentEmailContent.tsx b/packages/wallets/src/components/SentEmailContent/SentEmailContent.tsx index e405764574dc..19da16e04537 100644 --- a/packages/wallets/src/components/SentEmailContent/SentEmailContent.tsx +++ b/packages/wallets/src/components/SentEmailContent/SentEmailContent.tsx @@ -1,6 +1,5 @@ import React, { FC, Fragment, useEffect, useState } from 'react'; import classNames from 'classnames'; -import { Trans } from 'react-i18next'; import { useCountdown } from 'usehooks-ts'; import { DerivLightIcEmailSentIcon, @@ -31,26 +30,23 @@ type SentEmailContentProps = { // NOTE: key field is not from BE or requirements, its only used for key prop const emailReasons = [ { - content: , + content: 'The email is in your spam folder (Sometimes things get lost there).', icon: , key: 'EmailInSpamFolder', }, { - content: ( - - ), + content: + 'You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).', icon: , key: 'AnotherEmailAddress', }, { - content: , + content: 'The email address you entered had a mistake or typo (happens to the best of us).', icon: , key: 'TypoEmailAddress', }, { - content: ( - - ), + content: 'We can’t deliver the email to this address (Usually because of firewalls or filtering).', icon: , key: 'UnableToDeliverEmailAddress', }, @@ -123,7 +119,7 @@ const SentEmailContent: FC = ({ variant='ghost' > - + Didn't receive the email? )} diff --git a/packages/wallets/src/components/WalletLanguageSidePanel/WalletLanguageSidePanel.scss b/packages/wallets/src/components/WalletLanguageSidePanel/WalletLanguageSidePanel.scss deleted file mode 100644 index 1dae8ce92e11..000000000000 --- a/packages/wallets/src/components/WalletLanguageSidePanel/WalletLanguageSidePanel.scss +++ /dev/null @@ -1,26 +0,0 @@ -.wallets-language-side-panel { - position: fixed; - bottom: 4.6rem; - right: 1rem; - width: 34rem; - border-radius: 0.6rem; - padding: 1.2rem 1.6rem; - background-color: #fff; - box-shadow: 0 2rem 1.3rem #00000003, 0 0.4rem 0.3rem #00000005; - border: 0.1rem solid #897d7d; - z-index: 69420; - display: grid; - grid-template-rows: auto 1fr; - gap: 1rem; - - &__language-list { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); - gap: 2.5rem; - margin-top: 1rem; - } - - &__language-item { - cursor: pointer; - } -} diff --git a/packages/wallets/src/components/WalletLanguageSidePanel/WalletLanguageSidePanel.tsx b/packages/wallets/src/components/WalletLanguageSidePanel/WalletLanguageSidePanel.tsx deleted file mode 100644 index cab564301275..000000000000 --- a/packages/wallets/src/components/WalletLanguageSidePanel/WalletLanguageSidePanel.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react'; -import i18n, { setLanguage } from '../../translations/i18n'; -import { WalletText } from '../Base'; -import './WalletLanguageSidePanel.scss'; - -const languages = { - English: 'EN', - German: 'DE', - Indonesian: 'ID', - Malay: 'MS', -}; - -const WalletLanguageSidePanel: React.FC = () => { - return ( -
- - Languages - -
    - {Object.keys(languages).map(language => { - const languageCode = languages[language as keyof typeof languages]; - return ( -
    { - setLanguage(languageCode); - }} - > -
  • - - {language} - -
  • -
    - ); - })} -
-
- ); -}; - -export default WalletLanguageSidePanel; diff --git a/packages/wallets/src/components/WalletLanguageSidePanel/index.ts b/packages/wallets/src/components/WalletLanguageSidePanel/index.ts deleted file mode 100644 index 4a5c66f66567..000000000000 --- a/packages/wallets/src/components/WalletLanguageSidePanel/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as WalletLanguageSidePanel } from './WalletLanguageSidePanel'; diff --git a/packages/wallets/src/components/WalletListCardActions/WalletListCardActions.tsx b/packages/wallets/src/components/WalletListCardActions/WalletListCardActions.tsx index a94e61a75d82..9a52002c9bf9 100644 --- a/packages/wallets/src/components/WalletListCardActions/WalletListCardActions.tsx +++ b/packages/wallets/src/components/WalletListCardActions/WalletListCardActions.tsx @@ -7,22 +7,24 @@ import { LabelPairedMinusMdBoldIcon, LabelPairedPlusMdBoldIcon, } from '@deriv/quill-icons'; +import { useTranslations } from '@deriv-com/translations'; +import { Text } from '@deriv-com/ui'; import useDevice from '../../hooks/useDevice'; -import { IconButton, WalletButton, WalletText } from '../Base'; +import { IconButton, WalletButton } from '../Base'; import './WalletListCardActions.scss'; type TProps = { accountsActiveTabIndex?: number; }; -const getWalletHeaderButtons = (isDemo?: boolean) => { +const getWalletHeaderButtons = (localize: ReturnType['localize'], isDemo?: boolean) => { const buttons = [ { className: isDemo ? 'wallets-mobile-actions-content-icon' : 'wallets-mobile-actions-content-icon--primary', color: isDemo ? 'white' : 'primary', icon: isDemo ? : , name: isDemo ? 'reset-balance' : 'deposit', - text: isDemo ? 'Reset balance' : 'Deposit', + text: isDemo ? localize('Reset balance') : localize('Deposit'), variant: isDemo ? 'outlined' : 'contained', }, { @@ -30,7 +32,7 @@ const getWalletHeaderButtons = (isDemo?: boolean) => { color: 'white', icon: , name: 'withdrawal', - text: 'Withdraw', + text: localize('Withdraw'), variant: 'outlined', }, { @@ -38,7 +40,7 @@ const getWalletHeaderButtons = (isDemo?: boolean) => { color: 'white', icon: , name: 'account-transfer', - text: 'Transfer', + text: localize('Transfer'), variant: 'outlined', }, ] as const; @@ -53,6 +55,7 @@ const WalletListCardActions: React.FC = ({ accountsActiveTabIndex }) => const { data: activeWallet } = useActiveWalletAccount(); const { isMobile } = useDevice(); const history = useHistory(); + const { localize } = useTranslations(); const isActive = activeWallet?.is_active; const isDemo = activeWallet?.is_virtual; @@ -61,7 +64,7 @@ const WalletListCardActions: React.FC = ({ accountsActiveTabIndex }) => return (
- {getWalletHeaderButtons(isDemo).map(button => ( + {getWalletHeaderButtons(localize, isDemo).map(button => (
= ({ accountsActiveTabIndex }) => }} size='lg' /> - + {button.text} - +
))}
@@ -84,7 +87,7 @@ const WalletListCardActions: React.FC = ({ accountsActiveTabIndex }) => return (
- {getWalletHeaderButtons(isDemo).map(button => ( + {getWalletHeaderButtons(localize, isDemo).map(button => ( { return (
{isDemo ? ( - - - + + + ) : ( )} diff --git a/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.tsx b/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.tsx index c2742d58a9a3..a915cdbe0d6e 100644 --- a/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.tsx +++ b/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.tsx @@ -1,15 +1,16 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import classNames from 'classnames'; -import { Trans, useTranslation } from 'react-i18next'; import { useEventListener, useOnClickOutside } from 'usehooks-ts'; import { useActiveWalletAccount, useWalletAccountsList } from '@deriv/api-v2'; import { displayMoney } from '@deriv/api-v2/src/utils'; import { LabelPairedChevronDownLgFillIcon } from '@deriv/quill-icons'; +import { Localize } from '@deriv-com/translations'; +import { Text } from '@deriv-com/ui'; import useAllBalanceSubscription from '../../hooks/useAllBalanceSubscription'; import useWalletAccountSwitcher from '../../hooks/useWalletAccountSwitcher'; import { THooks } from '../../types'; import reactNodeToString from '../../utils/react-node-to-string'; -import { WalletText, WalletTextField } from '../Base'; +import { WalletTextField } from '../Base'; import { WalletCurrencyIcon } from '../WalletCurrencyIcon'; import './WalletListCardDropdown.scss'; @@ -24,7 +25,6 @@ const WalletListCardDropdown = () => { const { data: wallets } = useWalletAccountsList(); const { data: activeWallet } = useActiveWalletAccount(); const switchWalletAccount = useWalletAccountSwitcher(); - const { t } = useTranslation(); const dropdownRef = useRef(null); const { data: balanceData, isLoading: isBalanceLoading } = useAllBalanceSubscription(); @@ -33,12 +33,9 @@ const WalletListCardDropdown = () => { const [isOpen, setIsOpen] = useState(false); const [selectedText, setSelectedText] = useState(''); - const generateTitleText = useCallback( - (wallet: THooks.WalletAccountsList) => { - return t(`${wallet?.currency} Wallet`); - }, - [t] - ); + const generateTitleText = useCallback((wallet: THooks.WalletAccountsList) => { + return `${wallet?.currency} Wallet`; + }, []); const walletList: WalletList = useMemo(() => { return ( @@ -112,9 +109,9 @@ const WalletListCardDropdown = () => { {isOpen && (
    - - - + + +
    {walletList.map((wallet, index) => (
  • {
    - - - + {wallet.currency} Wallet {isBalanceLoading ? (
    ) : ( - - - + + {displayMoney( + balanceData?.[wallet.loginid]?.balance, + wallet?.currency, + { + fractional_digits: + wallet?.currencyConfig?.fractional_digits, + } + )} + )}
    diff --git a/packages/wallets/src/components/WalletListHeader/WalletListHeader.scss b/packages/wallets/src/components/WalletListHeader/WalletListHeader.scss index 05a0cf1dcf8f..3b62db52486e 100644 --- a/packages/wallets/src/components/WalletListHeader/WalletListHeader.scss +++ b/packages/wallets/src/components/WalletListHeader/WalletListHeader.scss @@ -10,11 +10,16 @@ &__label { display: flex; position: absolute; - margin-left: 3rem; + margin-left: 2rem; margin-top: 1rem; - gap: 2.4rem; z-index: 1; pointer-events: none; + + &-item { + width: 5.6rem; + display: flex; + justify-content: center; + } } &__switcher { diff --git a/packages/wallets/src/components/WalletListHeader/WalletListHeader.tsx b/packages/wallets/src/components/WalletListHeader/WalletListHeader.tsx index 6e7c1a305f7a..bf73c0c99722 100644 --- a/packages/wallets/src/components/WalletListHeader/WalletListHeader.tsx +++ b/packages/wallets/src/components/WalletListHeader/WalletListHeader.tsx @@ -1,9 +1,9 @@ import React, { useEffect, useState } from 'react'; -import { Trans } from 'react-i18next'; import { useActiveWalletAccount, useWalletAccountsList } from '@deriv/api-v2'; +import { Localize } from '@deriv-com/translations'; +import { Text } from '@deriv-com/ui'; import useDevice from '../../hooks/useDevice'; import useWalletAccountSwitcher from '../../hooks/useWalletAccountSwitcher'; -import { WalletText } from '../Base'; import './WalletListHeader.scss'; const WalletListHeader: React.FC = () => { @@ -35,18 +35,22 @@ const WalletListHeader: React.FC = () => { return (
    - - Trader's Hub - + + + {shouldShowSwitcher && (
    - - - - - - +
    + + + +
    +
    + + + +